酒店课设代码
第一次发布东西,因为一个同学帮助我很多,建议我把代码发上来,就按照他说的来了。这次写的肯定不多,也不知道要写什么,只写一下自己的部分内容了。
酒店的结构体
只设置了三个主要的结构体,其中ege的登陆界面搞成了烟花的样式,实际来说比较简陋。其实本人也不知道那个函数的原理,想要的可以评论一下,如果有想要的我可以把资源重新整理一下发出来。
typedef struct room//房间结构体
{
int floor;//楼层 1-12
int no;//房间编号 1-16 房间类型 ,1-3单人间 4-13标间 14-16豪华套间
int type;//a:1-3单人间 b:4-13标间 c:14-16豪华套间
char name[15];//用户编号
int month;
int day;
int yday;
int state;//房间状态
}sroom;
typedef struct guest
{
char name[15];//用户姓名
char sex[5];//用户性别
char age[3];//用户年龄
char cate[20];//身份证号码
int floor;//楼层 1-12
int no;//房间编号 1-16 房间类型 ,1-3单人间 4-13标间 14-16豪华套间
}sguest;
typedef struct{ //系统操作用户的登录账号和密码
char username[10];
char password[10];
}usertype;
在程序里用到了文件的相关知识,将数据储存到了文件里。如果对程序信任度较高就可以直接在D盘里创建文件,如果信任度较低就需要手动创建文件了。
创建文件
FILE *fp1;
usertype temp;
lest head,r,p;
fp1=fopen("d:\\user.txt","r");
if(fp1==NULL) //还没有用户文件user.txt
{
fclose(fp1);
fp1=fopen("d:\\user.txt","a+"); //以追加的方式写入文本中
fprintf(fp1,"%s %s\n",temp.username,temp.password);
fclose(fp1);
cleardevice();
setcolor(WHITE);
setfont(20,0,"宋体");
xyprintf(100,100,"请先完成注册,按任意位置退出"); //退出界面
mouse_msg msg = {0}; //获取鼠标权限
for ( ; is_run(); delay_fps(60))
{
//获取鼠标消息,这个函数会等待,等待到有消息为止
while (mousemsg())
{
msg = getmouse();
}
if((int)msg.is_up()&&(int)msg.is_left()&&msg.x>0&&msg.x <640&&msg.y>0&&msg.y<480)
{
sys(); //回到主界面
}
}
return 1;
}
else // 如果用户数据已经存在
{
cleardevice();
//sys_edit editBox;
setfont(30,0,"宋体");
setcolor(WHITE);
outtextxy(200,250,"请输入用户名:");
inputbox_getline("登录系统","请输入账号",temp.username,(char)sizeof(temp.username));
outtextxy(200,300,"请输入用户密码:");
inputbox_getline("登录系统","请输入密码",temp.password,(char)sizeof(temp.password));
xyprintf(460,250,temp.username);
xyprintf(460,300,temp.password);
do
{
fp1=fopen("d:\\user.txt","r");//先用只读的方式把文件打开,把数据用链表读出来,放在一个序列中
head=(lest)malloc(sizeof(unode));
head->next=NULL;
r=head;
while(!feof(fp1)) //建立一个链表。 feof检测文件是否结束
{
p=(lest)malloc(sizeof(unode));
fscanf(fp1,"%s %s\n",p->data.username,p->data.password);//读出文件信息
r->next=p;
r=p;
}
r->next=NULL;
fclose(fp1);
p=head->next;
while(p&&strcmp(temp.username,p->data.username)!=0)//比对数据,没找到相同用户名,如果没找完,继续找
p=p->next;
if(!p) //没找到相同用户名,则以追加的方式写入user.txt中,且档次的注册流程完成
{
cleardevice();
setcolor(WHITE);
setfont(20,0,"宋体");
xyprintf(100,100,"无此用户,请完成注册,按任意位置退出"); //退出界面
mouse_msg msg = {0}; //获取鼠标权限
for ( ; is_run(); delay_fps(60))
{
//获取鼠标消息,这个函数会等待,等待到有消息为止
while (mousemsg())
{
msg = getmouse();
}
if((int)msg.is_up()&&(int)msg.is_left()&&msg.x>0&&msg.x <640&&msg.y>0&&msg.y<480)
{
sys(); //即调用返回函数,回到主界面
}
}
return 1;
}
else //找到了,则需要重新输入用户名和密码,再循环刚刚的过程。
{
if(p&&strcmp(temp.password,p->data.password)!=0)
{
cleardevice();
setcolor(WHITE);
setfont(20,0,"宋体");
xyprintf(100,100,"密码输入错误,按任意位置退出"); //退出界面
mouse_msg msg = {0}; //获取鼠标权限
for ( ; is_run(); delay_fps(60))
{
//获取鼠标消息,这个函数会等待,等待到有消息为止
while (mousemsg())
{
msg = getmouse();
}
if((int)msg.is_up()&&(int)msg.is_left()&&msg.x>0&&msg.x <640&&msg.y>0&&msg.y<480)
{
sys(); //回到主界面
}
}
return 1;
}
else
{
cleardevice();
setcolor(WHITE);
setfont(20,0,"宋体");
xyprintf(100,100,"登陆成功,点击任意位置退出"); //退出界面
mouse_msg msg = {0}; //获取鼠标权限
for ( ; is_run(); delay_fps(60))
{
//获取鼠标消息,这个函数会等待,等待到有消息为止
while (mousemsg())
{
msg = getmouse();
}
if((int)msg.is_up()&&(int)msg.is_left()&&msg.x>0&&msg.x <640&&msg.y>0&&msg.y<480)
{
return 0; //即调用返回函数,回到主界面
}
}
return 0;//弹出
}
}
}while(1);
}
}
代码大部分都用到了ege,如果大家想要纯C语言的代码可以私信我,我会尽快发出来的。
代码中还用了好多代码,去获得鼠标信息。还有ege的输入框我只会最简单的所以比较简陋。
全部资源位置
因为是第一次写所以都设置了不用积分的大家可以随便查看。
1.酒店代码的资源位置https://download.youkuaiyun.com/download/qq_55391702/15678057
2.ege在devcpp的配置方式https://download.youkuaiyun.com/download/qq_55391702/15678123