版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国地质大学(武汉)C语言课程设计论文学 院:专 业:题 目:客房管理系统设计班 级:姓 名:学 号:指导教师:2010年9月6日报告目录报告目录 1报告摘要 2一、题目要求 3二、需求分析 3三、总体设计 3四、详细设计 41、主函数部分: 42、各功能模块函数部分: 6(1)输入模块 6(2)统计模块 7(3)查找模块 10(4)修改模块 123、公共函数部分: 16(1)保存函数save() 16(2)加载函数load_room() 16(3)一个任务结束时的选择函数 prin tf_back() 17(4)修改整条数据记录函数 modify_data(i nt i,i nt n).17
2、五、 上机操作 18总结 21报告摘要此次C语言课程设计我选择的是客房管理系统设计,系统设计采用c语言在microsoft visual C+6.0下编译而成。客房管理系统包括客户基本信息的录入、统计、查询、修 改功能。系统开发由分析、设计、实施、调试和测试等阶段组成, 其中信息管理为开发的重点。在程序设计中结构体的调用与文 件的读写为编译的重点部分。4、题目要求客户信息包括身份证号、姓名、性别、年龄、房间号。试设计一客房管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)客户信息录入功能(客户信息用文件保存)(3)客户信息统计功能(4)客户信息查询功能,查询方式(5)客户信息修改功
3、能(可选项)建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄、房间 号提示二、需求分析根据题目要求,要求对客户信息进行输入、输出等操作;在程序中需要浏览客户 的信息,应提供显示、统计、查询、修改等操作;另外还应提供键盘式选择菜单实现 功能选择。三、总体设计根据需求分析,可以对这个系统的设计分为以下几个模块:客户信息管理系统数据输入数据统计数据查询数据修改数据删除系统功能模块图四、详细设计1、主函数部分:主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各 功能模块用菜单方式选择。并使用蓝色作为背景颜色。流程图:N主函数流程图main()/* 主函数 */ int
4、i;puts(欢迎进入:);for (i=0;ivl00;i+)system(color 1f); printf(nnnnntt客房管理系统);printf(nnntttPress any key to continue.); printf(nnnnnnnnnnnntttttttt-By 童川 n);/*菜单函数*/getch(); menu(); void menu()int n,w; do *nn);puts(nnnt*MENU*puts(ttt |(1).Regist |n); puts(ttt |(2).Statistics|n);puts(ttt |(3).Search|n);put
5、s(ttt |(4) .Modify |n); puts(ttt |(5).Exit|n);puts(nt* * printf(ttPlease choice you number(1-5); scanf(%d,&n);if(n5) w=1,getchar(); else w=0;while(w=1);switch(n) case 1:regist();break; case 2:stat();break;case 3:search();break; case 4:modify();break;case 5:exit(0);注:menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的
6、操作模 块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界 面。并用结构体来存放客户信息:struct client char name20;int sex;int age;char ID_card20; /* 居民身份证 */int year;int month;int date;/*住店时间*/;struct hotelint roomD;/* 房间号 */char tel15;int price;/* 住房单价 */int sign;struct client client_listM; /* 实现两个结构体的嵌套 */ roomN;int r=0;p=0;/*
7、 r,p 为全局变量 */void menu();void search_one();void search_day();void modify();void modify_one();void load_room();void modify_day();void modify_s(int j,int i);void save();void search();void stat_u();void stat_o();void regist();void stat();2、各功能模块函数部分:(1 )输入模块需求分析对信息进行输入流程图:输入模块流程图程序void regist()/* 注册函数
8、*/int n,m,i,j;printf(tHow many new customs?t);scanf(%d,&n);printf(tHow many rooms they want? );scanf(%d,&m); for(i=r;ivr+m;i+)puts(ntRoom_ID:t);scanf(%d,&roomi.room_ID); puts(ntTel:t);scanf(%s,roomi.tel);puts(ntPrice:t);scanf(%d,&roomi.price);roomi.sign=1;for(j=p;jvp+n;j+)puts(ntName:t);scanf(%s,roo
9、mi.client_);puts(ntSex(1 for men | 0 for women):t);scanf(%d,&roomi.client_listj.sex); puts(ntAge:t);scanf(%d,&roomi.client_listj.age);puts(ntID_card:t);scanf(%s,roomi.client_listj.ID_card); puts(ntYear:t);scanf(%d,&roomi.client_listj.year); puts(ntMonth:t);scanf(%d,&roomi.client_listj.mont
10、h); puts(ntDate:t);scanf(%d,&roomi.client_listj.date);r=r+m;p=p+n;save();menu();(2 )统计模块需求分析该模块的功能是显示所有客户记录信息。流程图显示客户记录(10个一屏)1!统计模块流程图 程序void stat()/* 统计函数 */int n,m;doputs(tt*MENU*puts(tttt1).Statistics one monthn);puts(tttt2).Statistics using roomn); puts(tttt3).MENU();puts(tt*n);printf(ttPlease
11、choice your number(1-3): bb); scanf(%d,&n);if(n3)m=1;getchar();else m=0;while(m=1);switch(n)case 1:stat_o();break;case 2:stat_u();break;case 3:menu();void stat_o()/* 统计人数 */int j,i,n,l;int s=0;puts(Please input the month you want to statistics:);scanf(%d,&n); load_room();for(i=0;ir;i+)for(j=0;jp;j+)
12、if(roomi.client_listj.month=n) s=s+1; printf(There are %d customer this month,s); puts(nnWhat you want to do?n); puts(1).Statistics againt2).backn); scanf(%d,&l);switch(l)case 1:stat_o();break;case 2:stat();void stat_u() /* 统计使用中的房间 */int j,l,s=0; load_room();for(j=0;jp;j+) if(roomj.sig n=1) s+=1;pr
13、intf(There are %d rooms in use,s); puts(nnWhat you want to do?n); puts(1).Statistics againt2).backn); scanf(%d,&l);switch(l)case 1:stat_u();break;case 2:stat();printf_p(int i,int j)/* 显示个人信息 */ printf(name:);puts(roomi.client_); printf(nsex:%dn,roomi.client_listj.sex); printf(nage:%dn,room
14、i.client_listj.age); puts(nlD_card:);printf(%s,roomi.client_listj.ID_card); printf(nyear:%dn,roomi.client_listj.year); printf(nmonth:%dn,roomi.client_listj.month); printf(ndate:%dn,roomi.client_listj.date);printf(nRoomD:%dn,roomi.roomD); printf(nTel:%sn,roomi.tel);printf(nPrice:%dn,roomi.price); (3
15、)查找模块查找模块提示没有找到程序:void search() /*查找函数 *int n,m;doputs(nntt*MENU*puts(tt1).Search someone had erev lived heren);puts(tt2).Search someday n);puts(tt3).MENU();puts(tt*n);printf(ttPlease choice your number(1-3): bb); scanf(%d,&n);if(n3)m=1;getchar();else m=0;while(m=1);switch(n)case 1:search_one();brea
16、k;case 2:search_day();break;case 3:menu();void search_one()/* 查找个人 */int i,j,w=0,l,m,n;char s20;printf(Please input the namen);scanf(%s,s);load_room();for(i=O;ivr;i+) for(j=O;jvp;j+) if(strcmp(roomi.client_,s)=0) w=1,m=i,n=j;if(w=1)printf_p(m,n);else printf(nThere is no record heren); puts
17、(What do you want to do?n); puts(1).search againt2).backn);scanf(%d,&l);switch(l)case 1:search_one();break;case 2:search();void search_day()/* 查询某日的使用情况 */int i,j,l,m,n,a,b,c,w=0;printf(nPlease input the day you want to search);printf(nYear:); scanf(%d, &a);printf(nMonth:); scanf(%d,&b);printf(nDate
18、:); scanf(%d, &c); load_room();for(i=0;ivp;i+)for(j=0;jvr;j+)if(roomi.client_listj.date=c)&(roomi.client_listj.month=b)&(roomi.cli ent_listj.year=a) w=1,m=i,n=j,printf_p(m,n);if(w=0)printf(NO record this dayn);puts(What you want to do?n);puts(1).search againt2).backn);scanf(%d,&l);switch(l)case 1:se
19、arch_day();break;case 2:search();(4 )修改模块需求分析该模块的功能是插入客户记录信息并且不能覆盖原有客户信息。流程图1还是21浏览全部2返回主菜单修改模块流程图程序:void modify() int n,m;do修改函数*puts(tt*MENU*puts(tttt1).modify one peoplen);puts(tttt2).modify one dayn);puts(tttt3).MENU();puts(tt*n);printf(ttPlease choice your number(1-3): bb); scanf(%d,&n);if(n3)
20、m=1; getchar();else m=0;while(m=1);switch(n)case 1:modify_one();break;case 2:modify_day();break;case 3:menu();void modify_one()/* 修改个人信息 *int i,j,m,n,w=0,l;char s20;puts(ttPlease input the name); scanf(%s,s);load_room();for(i=0;ir;i+)7).datenewnewnewnewnewnewnewfor(j=0;jvp;j+) if(strcmp(roomi.client
21、_,s)=0) w=1,m=i,n=j; if(w=1) printf_p(m,n);else printf(nThere is no record heren);modify_s(m,n);save();puts(What you want to do?n);puts(1).Modify againt2).backn);scanf(%d,&l);switch(l)case 1:modify_one();break;case 2:modify();void modify_s(int i,int j) /* 修改执行项 */int a,q;char s20,b15;print
22、f(nChoice the title you want to modifyn);puts(1).Name 2).sex 3).age 4)ID_card 5).year 6).month8).room_ID 9)tel 10).price 11).modify nonen);printf(Please choice your number(1-10): bb);scanf(%d, &q);switch(q)case1:printf(Pleaseinputnamen); scanf(%s,s) ;s trcpy(roomi.client_,s);break;case2:pr
23、intf(Pleaseinputsexn);scanf(%d, &a);roomi.client_listj.sex=a;break;case3:printf(Pleaseinputtheagen);scanf(%d, &a);roomi.client_listj.age=a;break;case4:printf(PleaseinputID_cardn);scanf(%s,s);strcpy(roomi.client_listj.ID_card,s);break;case5:printf(Pleaseinputyearn);scanf(%d, &a);roomi.client_listj.ye
24、ar=a;break;case6:printf(Pleaseinputthemonthn);scanf(%d, &a);roomi.client_listj.month=a;break;case7:printf(Pleaseinputthedaten);scanf(%d, &a);roomi.client_listj.date=a;break;newnewnewcase8:printf(Pleaseinputtheroom_IDn);scanf(%d, &a);roomi.room_ID=a;break;case9:printf(Pleaseinputtheteln);scanf(%s,b);
25、strcpy(roomi.tel,b);break;case10:printf(Pleaseinputthepricen);scanf(%d, &a);roomi.price=a;break;case 11:modify();void modify_day() /* 修改某日信息 */int i,j,l,a,b,c,w=0,m,n;puts(ttPlease input the date);puts(nYear:);scanf(%d, &a); puts(nMonth:);scanf(%d,&b); puts(nDate:);scanf(%d, &c);load_room();for(i=0;
26、ip;i+)for(j=0;jr;j+)if(roomi.client_listj.date=c)&(roomi.client_listj.month=b)&(roomi.cli ent_listj.year=a) w=1,m=i,n=j;if(w=1)printf_p(m,n);else printf(NO record this dayn);modify_s(m,n);save();puts(What you want to do?n);puts(1).modify againt2).backn);scanf(%d,&l);switch(l)case 1:modify_day();brea
27、k;case 2:menu();3、公共函数部分:(1 )保存函数 save()保存函数*/void save() FILE*fp;int i,j;if(fp=fopen(room.txt,w)=NULL) printf(nCannot open filen);return NULL;for(i=0;inn 1).number 2).name 3).cancel and back);printf(Which you needed?: bb);scanf(%d, &c);if(c3|c3|c1);doswitch(c)case 1:no_input(i,n);break;case 2:print
28、f(name:);scanf(%s,);break;case 3:menu();break;puts(nNow:n);printf_one(i);printf(nAre you sure?nnt1).sure 2).no and remodify 3).back without save in this time bb);scanf(%d, &w1);if(w仁=1)save(n);while(w 仁=2);return(w1);五、上机操作编译出一个程序,需要上机运行检验程序是否正确,此外在上机过程中你可以思考 一下该程序还有没有其他的实现方案或者那些事可以更好的改进的
29、。下面事各个模块的界面图:(1)主菜单函数效果如图所示(2)录入信息模块 效果如图所示(3)统计模块 效果如图所示怔屛且耳屛貝怔軽弭F屛躺弭耳怔屛且岸鼻岸軽耳屛弭用岸屛且岸鼻弭鼻屛覚屛屛H屛屛屛且屛豐貝鼻屛河耳凤屛屛貝Please choice you nuimber2苦XX秒刿JfM萬iMXK務:MW淹曲NX离强wflEMIJ泛務NW怔稗耳社務有苦胃材;荡W W恆酬JTM:斗lStatistics one nomth2.Statistics ysing room3,MENUPlease dio lice pour nujnherClS = Cl JPlease input the month you want to statistics- 9Ther
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行业标准与法规探讨-洞察分析
- 香菇多糖对肠道健康的影响-洞察分析
- 邮政金融与社区金融融合-洞察分析
- 2025年人民版七年级化学上册月考试卷
- 2025年上教版七年级物理上册阶段测试试卷含答案
- 药物研发项目管理概述-洞察分析
- 2025年冀教版九年级生物下册阶段测试试卷含答案
- 音乐培训行业法规研究-洞察分析
- 2025年沪科版七年级语文下册月考试卷含答案
- 2025年人教新课标九年级科学上册阶段测试试卷
- 2024高考复习必背英语词汇3500单词
- 消防控制室值班服务人员培训方案
- 《贵州旅游介绍》课件2
- 2024年中职单招(护理)专业综合知识考试题库(含答案)
- 无人机应用平台实施方案
- 挪用公款还款协议书范本
- 事业单位工作人员年度考核登记表(医生个人总结)
- 盾构隧道施工数字化与智能化系统集成
- 【企业盈利能力探析文献综述2400字】
- 2019年医养结合项目商业计划书
- 2023年店铺工程主管年终业务工作总结
评论
0/150
提交评论