最新版C语言毕业课程设计报告客房管理系统文档格式.docx
- 文档编号:22938957
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:25
- 大小:86.99KB
最新版C语言毕业课程设计报告客房管理系统文档格式.docx
《最新版C语言毕业课程设计报告客房管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《最新版C语言毕业课程设计报告客房管理系统文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
此次C语言课程设计我选择的是客房管理系统设计,系统设计采用c语言在microsoftvisualc++6.0下编译而成。
客房管理系统包括客户基本信息的录入、统计、查询、修改功能。
系统开发由分析、设计、实施、调试和测试等阶段组成,其中信息管理为开发的重点。
在程序设计中结构体的调用与文件的读写为编译的重点部分。
报告正文
一、题目要求
客户信息包括身份证号、姓名、性别、年龄、房间号。
试设计一客房管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)客户信息录入功能(客户信息用文件保存)
(3)客户信息统计功能
(4)客户信息查询功能,查询方式
(5)客户信息修改功能(可选项)
[提示]
建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄、房间号
二、需求分析
根据题目要求,要求对客户信息进行输入、输出等操作;
在程序中需要浏览客户的信息,应提供显示、统计、查询、修改等操作;
另外还应提供键盘式选择菜单实现功能选择。
三、总体设计
根据需求分析,可以对这个系统的设计分为以下几个模块:
系统功能模块图
四、详细设计
1、主函数部分:
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
[流程图]:
主函数流程图
main()/**主函数**/
{
printf("
\n\n\n\t\t~~~~~~~~~~~~~~~~酒店管理系统~~~~~~~~~~~~~~~~~"
);
\n\n\n\t\t\tPressanykeytocontinue....."
\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t---By唐丹阳\n"
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;
{
(2)统计模块
[需求分析]该模块的功能是显示所有客户记录信息。
[流程图]
:
统计模块流程图
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)修改模块
[需求分析]该模块的功能是插入客户记录信息并且不能覆盖原有客户信息。
修改模块流程图
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:
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:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新版 语言 毕业 课程设计 报告 客房 管理 系统