C语言专业课程设计报告客房标准管理系统Word文件下载.docx
《C语言专业课程设计报告客房标准管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言专业课程设计报告客房标准管理系统Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
getch();
menu();
}
voidregist()/**注册函数**/
intn,m,i,j;
\tHowmanynewcustoms?
\t"
scanf("
%d"
&
n);
\tHowmanyroomstheywant?
"
m);
for(i=r;
i<
r+m;
i++)
{puts("
\n\tRoom_ID:
room[i].room_ID);
puts("
\n\tTel:
%s"
room[i].tel);
\n\tPrice:
room[i].price);
room[i].sign=1;
}
for(j=p;
j<
p+n;
j++)
\n\tName:
room[i].client_list[j].name);
\n\tSex(1formen||0forwomen):
room[i].client_list[j].sex);
\n\tAge:
room[i].client_list[j].age);
\n\tID_card:
room[i].client_list[j].ID_card);
\n\tYear:
room[i].client_list[j].year);
\n\tMonth:
room[i].client_list[j].month);
\n\tDate:
room[i].client_list[j].date);
}
r=r+m;
p=p+n;
save();
menu();
voidmenu()/*****菜单函数*****/
{intn,w;
do
puts("
\n\n\n\t***************************MENU*****************************\n\n"
\t\t\t||
(1).Regist||\n"
\t\t\t||
(2).Statistics||\n"
\t\t\t||(3).Search||\n"
\t\t\t||(4).Modify||\n"
\t\t\t||(5).Exit||\n"
\n\t***********************************************************\n"
\t\tPleasechoiceyounumber(1-5)"
if(n<
1||n>
5)w=1,getchar();
elsew=0;
}while(w==1);
switch(n)
case1:
regist();
break;
case2:
stat();
case3:
search();
case4:
modify();
case5:
exit(0);
注:
menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。
并用结构体来存放客户信息:
structclient
charname[20];
intsex;
intage;
charID_card[20];
/*居民身份证*/
intyear;
intmonth;
intdate;
/*住店时间*/
};
structhotel
introom_ID;
/*房间号*/
chartel[15];
intprice;
/*住房单价*/
intsign;
structclientclient_list[M];
/*实现两个结构体的嵌套*/
}room[N];
intr=0;
p=0;
/*r,p为全局变量*/
voidmenu();
voidsearch_one();
voidsearch_day();
voidmodify();
voidmodify_one();
voidload_room();
voidmodify_day();
voidmodify_s(intj,inti);
voidsave();
voidsearch();
voidstat_u();
voidstat_o();
voidregist();
voidstat();
2、各功能模块函数部分:
(1)输入模块
[需求分析]对信息进行输入。
输入模块流程图
程序
for(i=r;
for(j=p;
{
(2)统计模块
[需求分析]该模块的功能是显示所有客户记录信息。
显示客户记录(10个一屏)
:
按任意键显示下一屏
按任意键返回主菜单
统计模块流程图
voidstat()/***统计函数***/
intn,m;
\t\t*********************MENU************************\n"
\t\t\t\t1).Statisticsonemonth\n"
\t\t\t\t2).Statisticsusingroom\n"
\t\t\t\t3).MENU()"
\t\t**************************************************\n"
\t\tPleasechoiceyournumber(1-3):
[]\b\b"
1&
&
n>
3)
{m=1;
getchar();
elsem=0;
}while(m==1);
switch(n)
{case1:
stat_o();
case2:
stat_u();
case3:
voidstat_o()/*******统计人数******/
intj,i,n,l;
ints=0;
Pleaseinputthemonthyouwanttostatistics:
"
load_room();
for(i=0;
r;
i++)
for(j=0;
p;
if(room[i].client_list[j].month==n)s=s+1;
Thereare%dcustomerthismonth"
s);
\n\nWhatyouwanttodo?
\n"
1).Statisticsagain\t2).back\n"
l);
switch(l)
{case1:
voidstat_u()/******统计使用中的房间*****/
{intj,l,s=0;
{if(room[j].sign==1)s+=1;
Thereare%droomsinuse"
printf_p(inti,intj)/******显示个人信息******/
name:
puts(room[i].client_list[j].name);
\nsex:
%d\n"
room[i].client_list[j].sex);
\nage:
room[i].client_list[j].age);
\nID_card:
\nyear:
room[i].client_list[j].year);
\nmonth:
room[i].client_list[j].month);
\ndate:
room[i].client_list[j].date);
\nRoom_ID:
room[i].room_ID);
\nTel:
%s\n"
\nPrice:
room[i].price);
(3)查找模块
查找模块流程图
程序:
voidsearch()/********查找函数********/
\n\n\t\t*********************MENU************************\n"
\t\t1).Searchsomeonehaderevlivedhere\n"
\t\t2).Searchsomeday\n"
\t\t3).MENU()"
\t\t************************************************\n"
search_one();
search_day();
voidsearch_one()/*****查找个人*****/
{inti,j,w=0,l,m,n;
chars[20];
Pleaseinputthename\n"
for(j=0;
if(strcmp(room[i].client_list[j].name,s)==0)w=1,m=i,n=j;
if(w==1)
printf_p(m,n);
elseprintf("
\nThereisnorecordhere\n"
Whatdoyouwanttodo?
1).searchagain\t2).back\n"
switch(l)
voidsearch_day()/*******查询某日的使用情况*******/
inti,j,l,m,n,a,b,c,w=0;
\nPleaseinputthedayyouwanttosearch"
\nYear:
scanf("
a);
\nMonth:
b);
\nDate:
c);
if((room[i].client_list[j].date==c)&
(room[i].client_list[j].month==b)&
(room[i].client_list[j].year==a))w=1,m=i,n=j,printf_p(m,n);
if(w==0)
NOrecordthisday\n"
Whatyouwanttodo?
(4)修改模块
[需求分析]该模块的功能是插入客户记录信息并且不能覆盖原有客户信息。
[流程图]
插入模块
调用加载函数
让用户输入要插入的客户信息个数
调用整条信息输入函数
用户作出选择,输入1or2
1还是2
2返回主菜单
1浏览全部
修改模块流程图
voidmodify()/*****修改函数******/
\t\t\t\t1).modifyonepeople\n"
\t\t\t\t2).modifyoneday\n"
modify_one();
modify_day();
voidmodify_one()/*****修改个人信息*****/
inti,j,m,n,w=0,l;
\t\tPleaseinputthename"
if(strcmp(room[i].client_list[j].name,s)==0)w=1,m=i,n=j;
if(w==1)
printf_p(m,n);
elseprintf("
modify_s(m,n);
1).Modifyagain\t2).back\n"
voidmodify_s(inti,intj)/*********修改执行项*********/
inta,q;
chars[20],b[15];
\nChoicethetitleyouwanttomodify\n"
1).Name2).sex3).age4)ID_card5).year6).month7).date8).room_ID9)tel10).price\11).modifynone\n"
Pleasechoiceyournumber(1-10):
q);
switch(q)
{
case1:
printf("
Pleaseinputnewname\n"
strcpy(room[i].client_list[j].name,s);
Pleaseinputnewsex\n"
room[i].client_list[j].sex=a;
Pleaseinputthenewage\n"
room[i].client_list[j].age=a;
case4:
PleaseinputnewID_card\n"
strcpy(room[i].client_list[j].ID_card,s);
case5:
Pleaseinputnewyear\n"
room[i].client_list[j].year=a;
case6:
Pleaseinputthenewmonth\n"
room[i].client_list[j].month=a;
case7:
Pleaseinputthenewdate\n"
room[i].client_list[j].date=a;
case8:
Pleaseinputthenewroom_ID\n"
room[i].room_ID=a;
case9:
Pleaseinputthenewtel\n"
b);
strcpy(room[i].tel,b);
case10:
Pleaseinputthenewprice\n"
room[i].price=a;
case11:
modify();
voidmodify_day()/*******修改某日信息*