C语言简易宾馆系统

上传人:微*** 文档编号:88533490 上传时间:2022-05-11 格式:DOCX 页数:17 大小:103.48KB
收藏 版权申诉 举报 下载
C语言简易宾馆系统_第1页
第1页 / 共17页
C语言简易宾馆系统_第2页
第2页 / 共17页
C语言简易宾馆系统_第3页
第3页 / 共17页
资源描述:

《C语言简易宾馆系统》由会员分享,可在线阅读,更多相关《C语言简易宾馆系统(17页珍藏版)》请在装配图网上搜索。

1、信息科学与工程学院课 程设计 报告书专业:通信工程课程设计名称:程序设计实践题目:简易宾馆客房管理系统班级:设 计者:学号:指导教师:完成时间:重庆交通大学信息科学与工程学院课程设计任务书课程程序设计实践班级指导教师题目简易宾馆客房管理系统同组人数1人(代码量不少于300行)21 .主要功能包括:管理信息的录入、修改、增加、/2 .数据用文件存储;3 .主要操作采用菜单方式;4 .数据输入有容错功能 (比如成绩:0-100分,删除、查询、统计、输出等;性别:“男”、“女”,日期型数据年、月、日的限制等 );5.分别用链表和数组实现所要求的功能。设计报告主要包括内容(参见后面的格式):1 .系统

2、的功能需求及分析2 .数据结构及主要算法设计说明报 告 书 要 求3 .系统总体结构4 .系统实现及主要代码5 .系统功能测试6 .设计体会要求:?学生完成课程设计后,每个同学均应提交课程设计报告及软件;?设计报告要求文字通畅,排版规范;?设计报告文字原则上不少于3000字(程序代码除外),并装订成册。 版面要求1 .题目用黑体三号,段后距 18磅(或1行),居中对齐;2 .标题用黑体四号,段前、段后距6磅(或行);3 .正文用小四号宋体,行距为固定值“20”,程序代码用固定值“ 15”4 .标题按“一”、“”、“1”、“”顺序编号。上 机周次一二三四五六日时 问 安第17周第18周排指导地

3、点及考 核时间1、指导地点:2、考核时间:重庆交通大学信息学院课程设计评分表序号项目评分标准及说明评分1学生自评分(20%)按任务书的要求,学生根据任务完成情况及质量t我评分。多人一组共同完成者,19-20分不超过1人,17-18不超过2人,由组长评分(多人一组独立完成者按独立完成定)。2纪律及平时成绩 (10%)按规定时间到实验室完成实验及综合实验,每缺1次实验扣2分,缺4次及以上不得分。3系统演示(功能) 及答辩(40%)根据学生PPT汇报、系统 演示及回答问题情况,由 答辩组(老师)给出答辩等 级(直接在此评分表中打),指导教师按等级 相应分值打分答辩等级分值A+39-40A38-A36

4、-37B+34-35B32-33B-30-31C+28-29C26-27C-24-25D0-234项目设计报告(30%)根据学生完成的项目设计 报告书情况,由指导教师 给定等级(直接在此评分表 中打“)及成绩(特别 提醒:设计报告相同者均 记0分)答辩等级分值A+30A28-29AB+2725-26B23-24B-21-22C+20C19C-18D0-17指导教师:总分:简易宾馆客房管理系统设计报告一、系统的功能需求及分析(一)设计要求:1 .主要功能包括:管理信息的录入、修改、增加、删除、查询、统计、输出等;2 .数据用文件存储;3 .主要操作采用菜单方式;4 .数据输入有容错功能(比如成绩

5、:0-100分,性别:“男”、“女”,日期型数 据年、月、日的限制等);5 .分别用链表和数组实现所要求的功能。(二)具体设计思路:简易宾馆雷理系舞1.针对我设计的简易宾馆管理系统,其所需 实现的具体功能如下:(1)登记入住;菖仔件P急E系 比县用生睡r斗部Tri上入1 Z 才 $ E H(2)信息修改;(3)信息查找;(4)退房登记;(5)入住情况统计输出;(6)基本数据文件存储;2.对于要求的容错功能,主要是在如下地方:(1)入住登记时判断输入客人身份证号码是否为 18位;(2)入住登记时判断输入电话号码是否为 11位;(3)入住登记时判断是否还有空房问;(4)入住情况统计输出时判断是否入

6、住客人;(5)菜单选择的时候必须输入相应的数字(如输入 8便会进行报错);(6)选择房型的时候必须输入相信的数字(同上报错);二、数据结构及主要算法设计说明(一)数据结构1.数组所需要存储的基本信息为:客人姓名,身份证号码,手机号码,入住天数,房 号,已入住房间数;#define Number 60 入住 登记 |n);printf(|2.信息 修改 |n);printf(|3.printf(|4.printf(|5.printf(|6.printf(|0.printf(printf(信息查找|n);退房登记|n);入住情况统计输出|n);基本数据文件存储|n);退出系统 |n);= = =

7、= = = = = = = = = = = = = = = = = =n);请选择输入:);(二)主要算法设计说明系统总体结构(一)总模块图简易宾馆管理系统(二)入 模块图住选择南、住登入住,天数,客输出房费借房房割,输入乂住客人相哭信息,如姓名、身份肺号码、手机号码、入住冲且在输入日昨!要输入期确的号码粒数公信息修首见输入联系我的姓名重、查找信计然后对其 出件他登记时填入的信息。储查找的联系人的信息/凶、0聋A住A ii关时输入想要查找的客人的姓名,然后会按格式输出所4.其他模块退房登记:输入客人的姓名,然后退房登记,相当 于将客人的信息从管理系统总删除,房间的的总数就会减少;入住情况统计输

8、出:将宾馆客房入住情况按格式输 出;基本数据文件存储:将文件存储在指定的位置。四、系统实现及主要代码(一)数组1.主函数:void main()int cho=0,sel;=0;=40;=20;=0;while(1)Menu();scanf(%d,&cho);if(cho7)printf(您的选择有误,请重新选择! n);else if=Number)printf(客房已全部入住! n);elseswitch(cho)case 0: exit(0);case 1:printf( 入住房型选择: n 1.n);scanf(%d,&sel);if(sel3)printf(elseswitch(se

9、l)case 1:biginputInformation();break;case 2:dblinputInformation();break;case 3:sglinputInformation();break;break;case 2:reviseinformation(); break;case 3:searchinformation(); break;case 4:deleteInformation(); break;case 5:outList(); break;case 6:break;2. 登记入住函数:void biginputInformation()ame);while(1

10、)printf( 身 份 证: );scanf(%s,&.IDnumber);int m;m=strlen.IDnumber);if(m!=18)printf(elsebreak;while(1)printf( 客人电话号码: );scanf(%s,&.phonenumber);int n;总统房(天)2.豪华房(天)3.普通单间(天)选择错误,请重新选择! n);您的输入有误,请重新输入! n);n=strlen.phonenumber);if(n!=11)printf(您的输入有误,请重新输入! n);elsebreak;printf( 入 住 天 数: );scanf(%d,&.days

11、);.fee= .days*;printf(应收金额为: %n口fee);.roomnumber=+1001;printf( 入住房间房号: %d,.roomnumber);+;+;printf(n);继续入住下一总统房? n);继续; 0: 退出 n);份 证: );printf(printf(1:scanf(%d,&pn);if (pn=0) break;void dblinputInformation()ame);while(1)printf( 身scanf(%s,&.IDnumber);int m=strlen.IDnumber);if(m!=18)printf(您的输入有误,请重新输

12、入! n);elsebreak;while(1)printf( 客人电话号码: );scanf(%s,&.phonenumber);int n;n=strlen.phonenumber);if(n!=11)printf(您的输入有误,请重新输入! n);elsebreak;printf( 入 住 天 数: );scanf(%d,&.days);.fee= .days*;printf(应收金额为: %n口fee);.roomnumber=+2001;printf( 入住房间房号: %d,.roomnumber);+;+;printf(n 继续入住下一豪华房? n11:继续; 0: 退出n);sc

13、anf(%d,&pn);if (pn=0) break;void sglinputInformation()ame);while(1) printf( 身 份 证: );scanf(%s,&.IDnumber);int m=strlen.IDnumber);if(m!=18)printf(您的输入有误,请重新输入! n);elsebreak;while(1)printf( 客人电话号码: );scanf(%s,&.phonenumber);int n;n=strlen.phonenumber);if(n!=11)printf(您的输入有误,请重新输入! n);elsebreak;printf(

14、 入 住 天 数: );scanf(%d,&.days);.fee= .days*;printf(应收金额为: %n口fee);.roomnumber=+3001;printf( 入住房间房号: %d,.roomnumber);+;+;printf(n 继续入住下一普通房? n1:继续; 0: 退出n);scanf(%d,&pn);if (pn=0) break;3. 查找函数:int search(char rname)for (int i=0;i;i+)if (strcmp(rname,i.name)=0) return i;for ( i=20;i;i+)if (strcmp(rname

15、,i.name)=0) return i;for ( i=40;i=0&i=20&i=40&i=59)i.fee=i.days*;printf(应收金额为: %dn,i.fee);return;5. 退房函数:void deleteInformation()6.char name20;printf( 请输入要退房的客人姓名: );scanf(%s,name);int i=search(name);if (i=-1)printf( 未找到该客人! n);elseif(i=0)for (int j=i+1;j=20&i=39)for (int j=i+1;j=40&i=59)for (int j=

16、i+1;j ;j+)j-1=j; ; return;6. 统计输出函数:void outList()(if=0)( printf(n还没有客人入住!nn);) else(printf(宾馆房间入住情况n);printf(= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =n);printf( 房号 房型客人姓名身份证号码电话号码入住天数房费(元)n);printf(= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

17、 = = = = = = = =n);for (int i=0;i;i+)(printf( 10%02d,i+1);printf( 总统房);printf( %-9s,i.name);printf(%-22s,i.IDnumber);printf(%-16s,i.phonenumber);printf(%-5d,i.days);printf(%8dn,i.days*388);)for (int j=20;j;j+)(printf( 20%02d,j+1);printf( 豪华房);printf( %-9s,j.name);printf(%-22s,j.IDnumber);printf(%-16

18、s,j.phonenumber);printf(%-5d,j.days);printf(%8dn,j.days*288);)for (int k=40;k;k+)(printf( 30%02d,k+1);printf( 普通房);printf( %-9s,k.name);printf(%-22s,k.IDnumber);printf(%-16s,k.phonenumber);printf(%-5d,k.days);printf(%8dn,k.days*188);)printf( = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

19、= = = = = = = = = = =n);)7. 信息查找函数:void searchinformation()(char name20;printf(请输入要查找的客人姓名:);scanf(%s,name);int i=search(name);if (i=-1)(printf(未找到该客人!n);)else(printf(您所查找客人信息如下n);printf(nn);printf( 房号 房型 客人姓名 身份证号码 电话号码入住天数 房费 ( 元) n); printf(n);if(i=0)printf( %d,i.roomnumber);printf( 总统房 );printf(

20、 %-9s,i.name);printf(%-22s,i.IDnumber);printf(%-1s,i.phonenumber);printf(%-7d,i.days);printf(%n,i.fee);else if(i=20&i=40&inext=NULL;droom=(struct droominformation *)malloc(sizeof(struct droominformation);droom-next=NULL;sroom=(struct sroominformation *)malloc(sizeof(struct sroominformation);sroom-ne

21、xt=NULL;while(1)Menu();scanf(%d,&cho);switch(cho)case 0:exit(0);case 1:if(all=60)printf(所有房间已全部入住! n);elseprintf(入住房型选择:n 1. 总统房(388/天)2. 豪华房(288/天)3. 普通房( 188/ 天)n);scanf(%d,&sel);if(sel3)printf( 选择错误,请重新选择! );elseswitch(sel)case 1:biginputInformation();break;case 2:dblinputInformation();break;case

22、 3:sglinputInformation();break;break;case 2: modifyInformation(); break;case 3: searchinformation(); break;case 4: deleteInformation(); break;case 5: outList(); break;case 6: saveInfoToFile(); break;2. 登记入住函数:void biginputInformation() 息统计输出函数:void outList()struct broominformation * p;struct droomin

23、formation * q;struct sroominformation * w;p=broom-next;q=droom-next;w=sroom-next;printf(宾 馆 房 间 入 住 情 况 n);printf(n);printf( 房号 房型客人姓名身份证号码电话号码入住天数 房费(元)n);printf( = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =n);while (p!=NULL)(printf( %d,p-broomnumber);printf(总统房);

24、printf(%-9s”,p-bname);printf(%-22s,p-bIDnumber);printf(%-16s,p-bphonenumber);printf(%-7d”,p-bdays);printf(%n,p-bfee);p=p-next;while (q!=NULL)(printf( %d,q-droomnumber);printf(豪华房);printf(%-9s”,q-dname);printf(%-22s,q-dIDnumber);printf(%-16s,q-dphonenumber);printf(%-7d”,q-ddays);printf(%n,q-dfee);q=q

25、-next;while (w!=NULL)(printf( %d,w-sroomnumber);printf(普通房);printf(%-9s”,w-sname);printf(%-22s,w-sIDnumber);printf(%-16s,w-sphonenumber);printf(%-7d”,w-sdays);printf(%n,w-sfee);w=w-next; printf( = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =n);6.退房登记函数:void deleteInf

26、ormation() (char name20;struct broominformation * p;struct broominformation * p1;struct droominformation * q;struct droominformation * q1;struct sroominformation * w;struct sroominformation * w1;printf(请输入要退房客人姓名:);scanf(%s,name);p=bsearch(name);q=dsearch(name);w=ssearch(name);if (p=NULL) (if (q=NUL

27、L)if (w=NULL)printf(未找到该客人! n);else if(p!=NULL)p1=p-next;p-next=p1-next;free(p1);return;else if(q!=NULL)q1=q-next;q-next=q1-next;free(q1);return;else if(w!=NULL)w1=w-next;w-next=w1-next;free(w1);return; return;7. 文件存储函数:void saveInfoToFile()FILE * fp;if(fp=fopen(d:,wb+)=NULL)printf(Cannot open file

28、strike any key exit!);getchar();exit(1);struct broominformation * p;struct droominformation * q;struct sroominformation * w;p=broom-next;q=droom-next;w=sroom-next;while (p!=NULL)fwrite(p,sizeof(struct broominformation),1,fp);p=p-next;while (q!=NULL)fwrite(q,sizeof(struct droominformation),1,fp);q=q-

29、next;while (w!=NULL)fwrite(p,sizeof(struct sroominformation),1,fp);w=w-next;fclose(fp);return;五、系统功能测试(一)菜单功能执行测试1. 执行程序,出现菜单:2. 选择入住登记,输入信息:3. 菜单选择信息修改:4. 菜单选择信息查找:5. 菜单选择入住情况统计输出:6. 菜单选择退房登记:(二)容错功能测试:1. 执行菜单选择有误:2. 房型选择输入错误:3. 登记入住输入信息时身份证号码和手机号码输入错误:4. 查找、修改客人信息时错误:5. 入住情况输出时为入住客人提醒:6设计体会1、取得的成效

30、及主要收获成功的用数组和链表两种形式做出了简易的宾馆管理系统,每一种形式的代码行数都超过了要求的 300 行达到 500行。相对于刚开始拿到题目一点也不会的时候, 经过半个多月的努力和老师、 同学们的帮助, 现在真的进步很多, 可以自己独立做出类似于此次题目的简单的程序。 在完成程序设计代码的编写过程中, 遇到了很多困难, 也发现了自己的很多不足。 很多知识掌握不牢固, 在运用的时候就喜欢出现不必要的麻烦, 通过不停地修改, 让自己更注意细节问题, 使自己的程序更加完善。 虽然这次只是一次对本学期的 c 语言学习的成果的检验, 从中可以反映出我们在学习上存在的很多问题, 比如在输出数组的时候,

31、 因为上一个数组的长度分配不够, 造成上一个数组占用下面一个数组的内存, 导致下面一个数组的内容复制到上一个数组里面。 为了纠正这个错误, 花了相当大的时间,因为系统没有报错,之前也没有遇到过同样的错误,没有经验,最后是通过询问同学才得到解决的。 经过这次错误的纠正, 我也学回了去询问他人, 之前一直觉得去请教别人问题就显得自己很差, 但事实上并不是这样, 这是很好的解决问题的方法。 这次的课程设计虽然只是做了一个简易的系统, 却激起了我对此门课程的浓厚兴趣,希望在以后的学习过程中,能够一步一步的进步,得到更好地提升!2、存在的主要问题对知识点掌握不牢固、不全面导致在编写程序的时候很多细节问题

32、即使花费相当的多的时间,但是自己也无法解决。有时候会参考一下其他同学的程序,从中发现可以利用的有点,这其中也发现不少同学用了一些课外的知识。对此我也在网上做了一定的了解,发现其实在课堂上我们掌握的知识是最基础的,只是c 语言海洋的冰山一角。 自己本身对c 语言有相当大的兴趣, 希望自己以后在课后能够了解掌握更多的知识来丰富自己。3、对教学工作的建议因为平时对C语言的接触不多,而它本身在某些方面理解起来有一定的难度,老师上课在讲的时候很多没有理解到, 希望老师能够在课堂多举写些经典实例, 在每节课能够留出一定的时间让同学们提出自己本节课的问题, 老师通过在全班同学面前进行答疑,这样既可以解决一部分同学的疑惑,也可以让掌握论文的同学进行知识的巩固。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!