C语言毕业课程设计报告客房管理系统.docx
- 文档编号:24871242
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:25
- 大小:87.04KB
C语言毕业课程设计报告客房管理系统.docx
《C语言毕业课程设计报告客房管理系统.docx》由会员分享,可在线阅读,更多相关《C语言毕业课程设计报告客房管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
C语言毕业课程设计报告客房管理系统
(此文档为word格式,下载后您可任意编辑修改!
)
中国地质大学(武汉)
C语言课程设计论文
学院:
资源学院
专业:
油气勘查
题目:
客房管理系统设计
班级:
021103
姓名:
唐丹阳
学号:
指导教师:
张霞
2012年1月15日
报告目录
报告摘要——————————————2
题目要求——————————————3
需求分析——————————————3
总体分析——————————————3
详细设计——————————————4
主函数部分——————————————4~7
各功能模块函数部分—————————7
输入模块——————————————7~8
统计模块——————————————8~10
查询模块——————————————11~13
修改模块——————————————13~16
公共函数部分—————————————16~19
上机操作——————————————19~21
总结——————————————22
报告摘要
此次C语言课程设计我选择的是客房管理系统设计,系统设计采用c语言在microsoftvisualc++6.0下编译而成。
客房管理系统包括客户基本信息的录入、统计、查询、修改功能。
系统开发由分析、设计、实施、调试和测试等阶段组成,其中信息管理为开发的重点。
在程序设计中结构体的调用与文件的读写为编译的重点部分。
报告正文
一、题目要求
客户信息包括身份证号、姓名、性别、年龄、房间号。
试设计一客房管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)客户信息录入功能(客户信息用文件保存)
(3)客户信息统计功能
(4)客户信息查询功能,查询方式
(5)客户信息修改功能(可选项)
[提示]
建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄、房间号
二、需求分析
根据题目要求,要求对客户信息进行输入、输出等操作;在程序中需要浏览客户的信息,应提供显示、统计、查询、修改等操作;另外还应提供键盘式选择菜单实现功能选择。
三、总体设计
根据需求分析,可以对这个系统的设计分为以下几个模块:
系统功能模块图
四、详细设计
1、主函数部分:
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
[流程图]:
主函数流程图
main()/**主函数**/
{
printf("\n\n\n\t\t~~~~~~~~~~~~~~~~酒店管理系统~~~~~~~~~~~~~~~~~");
printf("\n\n\n\t\t\tPressanykeytocontinue.....");
printf("\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;
printf("\tHowmanynewcustoms?
\t");scanf("%d",&n);
printf("\tHowmanyroomstheywant?
");scanf("%d",&m);
for(i=r;i { {puts("\n\tRoom_ID: \t");scanf("%d",&room[i].room_ID); puts("\n\tTel: \t");scanf("%s",room[i].tel); puts("\n\tPrice: \t");scanf("%d",&room[i].price); room[i].sign=1; } for(j=p;j { puts("\n\tName: \t");scanf("%s",room[i].client_list[j].name); puts("\n\tSex(1formen||0forwomen): \t");scanf("%d",&room[i].client_list[j].sex); puts("\n\tAge: \t");scanf("%d",&room[i].client_list[j].age); puts("\n\tID_card: \t");scanf("%s",room[i].client_list[j].ID_card); puts("\n\tYear: \t");scanf("%d",&room[i].client_list[j].year); puts("\n\tMonth: \t");scanf("%d",&room[i].client_list[j].month); puts("\n\tDate: \t");scanf("%d",&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"); puts("\t\t\t|| (1).Regist||\n"); puts("\t\t\t|| (2).Statistics||\n"); puts("\t\t\t||(3).Search||\n"); puts("\t\t\t||(4).Modify||\n"); puts("\t\t\t||(5).Exit||\n"); puts("\n\t***********************************************************\n"); printf("\t\tPleasechoiceyounumber(1-5)"); scanf("%d",&n); if(n<1||n>5)w=1,getchar(); elsew=0; }while(w==1); switch(n) { case1: regist();break; case2: stat();break; case3: search();break; case4: modify();break; 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)输入模块 [需求分析]对信息进行输入。 [流程图]: 输入模块流程图 程序 voidregist()/**注册函数**/ { intn,m,i,j; printf("\tHowmanynewcustoms? \t");scanf("%d",&n); printf("\tHowmanyroomstheywant? ");scanf("%d",&m); for(i=r;i { {puts("\n\tRoom_ID: \t");scanf("%d",&room[i].room_ID); puts("\n\tTel: \t");scanf("%s",room[i].tel); puts("\n\tPrice: \t");scanf("%d",&room[i].price); room[i].sign=1; } for(j=p;j { puts("\n\tName: \t");scanf("%s",room[i].client_list[j].name); puts("\n\tSex(1formen||0forwomen): \t");scanf("%d",&room[i].client_list[j].sex); puts("\n\tAge: \t");scanf("%d",&room[i].client_list[j].age); puts("\n\tID_card: \t");scanf("%s",room[i].client_list[j].ID_card); puts("\n\tYear: \t");scanf("%d",&room[i].client_list[j].year); puts("\n\tMonth: \t");scanf("%d",&room[i].client_list[j].month); puts("\n\tDate: \t");scanf("%d",&room[i].client_list[j].date); } } r=r+m; p=p+n; save(); menu(); } (2)统计模块 [需求分析]该模块的功能是显示所有客户记录信息。 [流程图] : 统计模块流程图 程序 voidstat()/***统计函数***/ { intn,m; do { puts("\t\t*********************MENU************************\n"); puts("\t\t\t\t1).Statisticsonemonth\n"); puts("\t\t\t\t2).Statisticsusingroom\n"); puts("\t\t\t\t3).MENU()"); puts("\t\t**************************************************\n"); printf("\t\tPleasechoiceyournumber(1-3): []\b\b"); scanf("%d",&n); if(n<1&&n>3) {m=1; getchar(); } elsem=0; }while(m==1); switch(n) {case1: stat_o();break; case2: stat_u();break; case3: menu(); } } voidstat_o()/*******统计人数******/ { intj,i,n,l; ints=0; puts("Pleaseinputthemonthyouwanttostatistics: ");scanf("%d",&n); load_room(); for(i=0;i for(j=0;j if(room[i].client_list[j].month==n)s=s+1; printf("Thereare%dcustomerthismonth",s); puts("\n\nWhatyouwanttodo? \n"); puts("1).Statisticsagain\t2).back\n"); scanf("%d",&l); switch(l) {case1: stat_o();break; case2: stat(); } } voidstat_u()/******统计使用中的房间*****/ {intj,l,s=0; load_room(); for(j=0;j {if(room[j].sign==1)s+=1;} printf("Thereare%droomsinuse",s); puts("\n\nWhatyouwanttodo? \n"); puts("1).Statisticsagain\t2).back\n"); scanf("%d",&l); switch(l) {case1: stat_u();break; case2: stat(); } } printf_p(inti,intj)/******显示个人信息******/ { printf("name: ");puts(room[i].client_list[j].name); printf("\nsex: %d\n",room[i].client_list[j].sex); printf("\nage: %d\n",room[i].client_list[j].age); puts("\nID_card: ");printf("%s",room[i].client_list[j].ID_card); printf("\nyear: %d\n",room[i].client_list[j].year); printf("\nmonth: %d\n",room[i].client_list[j].month); printf("\ndate: %d\n",room[i].client_list[j].date); printf("\nRoom_ID: %d\n",room[i].room_ID); printf("\nTel: %s\n",room[i].tel); printf("\nPrice: %d\n",room[i].price); } (3)查找模块 查找模块流程图 程序: voidsearch()/********查找函数********/ { intn,m; do { puts("\n\n\t\t*********************MENU************************\n"); puts("\t\t1).Searchsomeonehaderevlivedhere\n"); puts("\t\t2).Searchsomeday\n"); puts("\t\t3).MENU()"); puts("\t\t************************************************\n"); printf("\t\tPleasechoiceyournumber(1-3): []\b\b"); scanf("%d",&n); if(n<1&&n>3) {m=1; getchar(); } elsem=0; }while(m==1); switch(n) {case1: search_one();break; case2: search_day();break; case3: menu(); } } voidsearch_one()/*****查找个人*****/ {inti,j,w=0,l,m,n; chars[20]; printf("Pleaseinputthename\n"); scanf("%s",s); load_room(); for(i=0;i for(j=0;j 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"); puts("Whatdoyouwanttodo? \n"); puts("1).searchagain\t2).back\n"); scanf("%d",&l); switch(l) {case1: search_one();break; case2: search(); } } voidsearch_day()/*******查询某日的使用情况*******/ { inti,j,l,m,n,a,b,c,w=0; printf("\nPleaseinputthedayyouwanttosearch"); printf("\nYear: ");scanf("%d",&a); printf("\nMonth: ");scanf("%d",&b); printf("\nDate: ");scanf("%d",&c); load_room(); for(i=0;i for(j=0;j 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) printf("NOrecordthisday\n"); puts("Whatyouwanttodo? \n"); puts("1).searchagain\t2).back\n"); scanf("%d",&l); switch(l) {case1: search_day();break; case2: search(); } } (4)修改模块 [需求分析]该模块的功能是插入客户记录信息并且不能覆盖原有客户信息。 [流程图] 修改模块流程图 程序: voidmodify()/*****修改函数******/ { intn,m; do { puts("\t\t*********************MENU************************\n"); puts("\t\t\t\t1).modifyonepeople\n"); puts("\t\t\t\t2).modifyoneday\n"); puts("\t\t\t\t3).MENU()"); puts("\t\t**************************************************\n"); printf("\t\tPleasechoiceyournumber(1-3): []\b\b"); scanf("%d",&n); if(n<1&&n>3) {m=1; getchar(); } elsem=0; }while(m==1); switch(n) {case1: modify_one();break; case2: modify_day();break; case3: menu(); } } voidmodify_one()/*****修改个人信息*****/ { inti,j,m,n,w=0,l; chars[20]; puts("\t\tPleaseinputthename"); scanf("%s",s); load_room(); for(i=0;i for(j=0;j 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"); modify_s(m,n); save(); puts("Whatyouwanttodo? \n"); puts("1).Modifyagain\t2).back\n"); scanf("%d",&l); switch(l) {case1: modify_one();break; case2: modify(); } } voidmodify_s(inti,intj)/*********修改执行项*********/ { inta,q; chars[20],b[15]; printf("\nChoicethetitleyouwanttomodify\n"); puts("1).Name2).sex3).age4)ID_card5).year6).month7).date8).room_ID9)tel10).price\11).modifynone\n"); printf("Pleasechoiceyournumber(1-10): []\b\b"); scanf("%d",&q); switch(q) { case1: printf("Pleaseinputnewname\n");scanf("%s",s);strcpy(room[i].client_list[j].name,s);break; case2: printf("Pleaseinputnewsex\n");scanf("%d",&a);room[i].client_list[j].sex=a;break; case3: printf("Pleaseinputthenewage\n");scanf("%d",&a);room[i].client_list[j].age=a;break; case4: printf("PleaseinputnewID_card\n");scanf("%s",s);strcpy(room[i].client_list[j].ID_card,s);break; case5: printf("Pleaseinputnewyear\n");scanf("%d",&a);room[i].client_list[j].year=a;break; case6: printf("Pleaseinputthenewmonth\n");scanf("%d",&a);room[i].client_list[j].month
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 毕业 课程设计 报告 客房 管理 系统