收藏 分销(赏)

住宿结帐管理系统c语言课程设计大学毕设论文.doc

上传人:w****g 文档编号:7217691 上传时间:2024-12-28 格式:DOC 页数:23 大小:168KB
下载 相关 举报
住宿结帐管理系统c语言课程设计大学毕设论文.doc_第1页
第1页 / 共23页
住宿结帐管理系统c语言课程设计大学毕设论文.doc_第2页
第2页 / 共23页
住宿结帐管理系统c语言课程设计大学毕设论文.doc_第3页
第3页 / 共23页
住宿结帐管理系统c语言课程设计大学毕设论文.doc_第4页
第4页 / 共23页
住宿结帐管理系统c语言课程设计大学毕设论文.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、C语言课程设计设计题目: 住宿结帐管理系统专 业 计算机科学与技术、软件工程 班 级 计053、软件051、软件052 学 生 郭凌瑞 张亮 方宇 指导教师 王晓帆 2005-2006 年 2 学期 设计任务: 试设计一个住宿结帐管理系统,住宿结帐管理信息包括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录入、修改、删除功能;住宿信息的排序、浏览功能;按住宿天数查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、空房数。建议:一人负责信息的录入、修改、删除;一人负责文件的读取与写入操作;一人负责排序、查询。教师评语:目录1、试

2、验目的及内容32、系统总体模块图33、小组任务分工44、子系统设计方案4(1) 信息的录入、修改、删除;4(2) 文件的读取与写入、统计、主函数;4(3) 信息的排序、浏览、查询;45、子系统主要程序流程图4(1) 信息读取模块流程图5(2) 信息修改模块流程图6(3) 信息修改模块流程图 7(4) 按住宿时间查询模块流程图8(5) 按房间号码查询模块流程图96、个人设计小结与心得体会107、小组设计总结118、系统源代码12试验目的:(1)加深对C语言的理解,将在书本上掌握的知识点运用到实际的系统编程中去,为以后的学习打下基础。(2)通过简单的系统设计,增强面对复杂问题的处理能力,为以后实际

3、中解决问题打下基础。实验内容:试设计一个住宿结帐管理系统,住宿结帐管理信息包括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录入修改、删除功能;住宿信息的排序浏览功能;按住宿天数查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、空房数。系统总体模块图:住宿结帐管理系统主程序模块 信息保存模块按住宿房间号码查询模块按住宿天数查询模块按住宿天数浏览模块信息统计模块信息删除模块信息修改模块信息读取模块信息录入模块按住房间号码浏览模块 按房间号码排序模块按住宿天数排序模块小组任务分工(1) 由郭凌瑞负责住宿信息的录入、修改、删除功能

4、;(2) 由张亮负责文件的读取与写入操作,统计及主函数;(3) 由方宇负责排序、浏览、查询功能;子系统设计方案:(1) 信息的录入、修改、删除; 信息的录入、修改与删除通过对信息的标志的判断与修改,执行信息录入的地址、修改的目标及删除功能的实现。(2) 文件的读取与写入、统计、主函数; 文件的读取与写入可用已知的库函数来完成,统计工作可由已有信息通过计算获得,主函数可由swith语句来达到菜单选折功能的目的。 (3) 信息的排序、浏览、查询; 排序功能可通过冒泡法来实现,浏览实现排序然后显示即可,查询时,根据“=”来达到找到匹配信息的目的。子系统主要程序流程图N为所有房间数,NN为非空房间数信

5、息读取模块流程图开始0=i i+1=ii P i.flangNN+1=NNi+1=i i= =N-1? Y N“y”or “n” Y N i= =N-1? N Y输入信息房间已满 结束信息修改模块流程图开始输出所有住宿信息输入修改的房间号n 0=i, NN=jn = =0? Y N i i N YPi.flang= =1? Nj - - Y Y Pi.Rome= =n ? N Y“y”or “n” N Y重新输入该信息Pi“y”or “n”i= =N-1?i= =N-1?i= =N-1? j = =0? N Y 未找到要修改的信息 “y”or “n” 输入修改的房间号n输入一个信息Pi输入一个

6、信息Pi输入一个信息Pi输入一个信息Pi输入一个信息Pi 输入一个信息Pi输入一个信息Pi结束信息删除模块流程图开始输出所有住宿信息输入要删除的房间号n0=i, NN=jn = =0? Yi i YPi.flang= =1? Nj - -Pi.Rome= =n ? Y N“y”or “n” Y N Y1=Pi.flangj = =0? N Y未找到要删除的信息输入删除的房间号n结束 按住宿时间查询模块开始输出所有住宿信息 输入要查询的日期(年月日)0=i, NN=jii YPi.flang= =1? Nj - - Yi+1=i 日期是否相等 N Y输出要查询的信息Pi j= =0? Y N Y

7、未找到要查询的信息结束按房间号码查询模块开始 输出所有住宿信息输入要查询房间号码 no 0=i, NN=jii YPi.flang= =1? Nj - - Yi+1=i房间号码是否相等 N Y输出要查询的信息Pij= =0? N Y未找到要查询的信息结束0=i, NN=j0=i, NN=j个人设计小结及心得体会: (1)在我设计的子系统部分,包含很多细节问题,如果稍有不慎,往往导致模块无法运行,在设计中,我尝试了很多方法,对思维能力有了很大锻炼,提高了解决复杂问题的能力,同时,也很大程度上锻炼了耐心,做到不急不弃是系统最终成功的保证。 计053 郭凌瑞(2)我的工作比较简单,但在书写代码时,发

8、现了自己的问题:文件无法顺利操作!文件是很重要的一个知识点,很兴庆在这次实践中我及时弥补了以前的缺憾,为以后的继续学习和面对复杂问题打下了坚实的基础,问题在实践中才能被更好地发现和解决,在今后的学习中要更加重视实践的作用! 软051 张亮(3)在我设计的模块中,主要是对已有信息的处理,对排序算法有了一个新的认识,从深层次理解了排序函数的思想,突破了以前是似而非的局限。查询模块的书写,注意了很多细节,使模块在整体上有了很大优化,给了用户一个人性化的界面。 软052 方宇小组设计总结: 本次课程设计,我们做了一个简单管理系统,系统的功能较以前的小程序有了很大加强,对个人及团队的能力有了更大的要求,

9、事实上,在本次课设中的确出现了很多以前没有遇到的问题,这是一次自我提高的过程,从中我们弥补了以前遗漏的很多东西,使自己的知识结构更加完善和牢固;同时,这也是一次实践的机会,是增加面对复杂问题处理经验的机会,对以后做一些比较大的系统有一定的借鉴。在本次试验的整个过程中,组员之间的合作起到了很大作用,共同解决了很多关键性难题,最终,在我们的共同努力下,我们的第一个系统正常运行了,巨大成就感促使我们有一种挑战更高目标的欲望! #include#include#define N 3 /总房间数int NN=0; /非空房间数/类定义区struct Date /入住时间int year;int mont

10、h;int day;struct Payroll /顾客信息列表int flang; /用来标志该顾客信息是否存在char Name15; /顾客姓名Date date; /入住时间int Rome; /房间号int Number; /顾客数量 int Price; /每日价格 int Days; /住宿天数 float Discountrate; /折扣率float Money; /实收金额;/子函数声名区void Imput(Payroll P,FILE *fp); /结帐信息的录入void Read(Payroll P,FILE *fp); /结账信息的读取void Save(Payro

11、ll P,FILE *fp); /信息保存为文件void Reput(Payroll P,FILE *fp); /结账信息的修改void Delete(Payroll P,FILE *fp); /结账信息的删除void Stat(Payroll P,FILE *fp); /信息统计void Timeread(Payroll P,FILE *fp); /按住宿天数浏览void Romenumber(Payroll P,FILE *fp); /按住宿房间浏览void Time(Payroll P,FILE *fp); /按住宿天数查询void Rome(Payroll P,FILE *fp); /

12、按住宿房间查询 void DAY(Payroll P,FILE *fp); /按住宿天数排序void ROME(Payroll P,FILE *fp); /按房间号码排序/以下为主函数void main()FILE *fp; struct Payroll PN; fp=fopen(accout.dat,ab+);int select;Read(P,fp); /从文件中读取结账信息printf(*住宿结账管理系统*nn);printf(欢迎使用本系统!nn); printf(=菜单=n 请选择:n 1-添加新信息n 2-修改信息n 3-删除信息n 4-统计信息n 5-按住宿天数浏览n 6-按住宿

13、天数查询n 7-按放房间号码浏览n 8-按房间号码查询n 9-退出n); scanf(%d,&select); while(select!=9) /没有退出本系统时,循环提示操作 switch(select) case 1:Imput(P,fp); /信息录入 break; case 2:Reput(P,fp); /修改信息 break; case 3:Delete(P,fp); /删除信息 break; case 4:Stat(P,fp); /统计信息 break; case 5:Timeread(P,fp); /按住宿天数浏览 break; case 6:Time(P,fp); /按住宿天

14、数查询 break; case 7:Romenumber(P,fp); /按放房间号码浏览 break; case 8:Rome(P,fp); /按房间号码查询 break; printf(nn); printf(请选择要进行的操作:n /每完成一次操作选折下一次操作 1-添加新信息n 2-修改信息n 3-删除信息n 4-统计信息n 5-按住宿天数浏览n 6-按住宿天数查询n 7-按放房间号码浏览n 8-按房间号码查询n 9-退出n); scanf(%d,&select); Save(P,fp); /将本次系统运行结果保存为文件 printf(谢谢使用,再见!n);/子函数定义区void Im

15、put(Payroll P,FILE *fp) /结帐信息的录入int i; char ch; printf(姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率n);printf(=n); for(i=0;iN;i+) if(Pi.flang!=1) /避免覆盖已有信息 scanf(%s%d%d%d%d%d%d%d%f,Pi.Name,&Pi.date.year,&Pi.date.month,&Pi.date.day,&Pi.Rome,&Pi.Number,&Pi.Price,&Pi.Days,&Pi.Discountrate); Pi.flang=1; /标示已存信息 NN+; Pi

16、.Money=Pi.Days*Pi.Discountrate*Pi.Price; if(i=N-1) break; printf(是否继续录入?(y or n) ); getchar(); ch=getchar();if(ch!=n) printf(姓名 入住时间 房间 顾客数量 每日价格住宿天数 折扣率n);printf(=n); elsebreak; if(i=N-1) printf(抱歉,所有房间已满!nn);void Save(Payroll P,FILE *fp) /信息保存为文件 int i;for(i=0;iN;i+) if(Pi.flang=1) fwrite(&Pi,size

17、of(struct Payroll),1,fp);fclose(fp);void Read(Payroll P,FILE *fp) /结账信息的读取 int i; for(i=0;iN;i+) fread(&Pi,sizeof(struct Payroll),1,fp);void Reput(Payroll P,FILE *fp) /结账信息的修改 int i;int n,j=NN;char ch;printf( 姓名 住宿时间 房间 顾客数量 每日价格 住宿天数 折扣率 实收金额n);printf(=n);for(i=0;iN;i+)if(Pi.flang=1)printf(%8s%6d%3

18、d%3d%10d%8d%8d%8d%8.2f%8.2fn,Pi.Name,Pi.date.year,Pi.date.month,Pi.date.day,Pi.Rome,Pi.Number,Pi.Price,Pi.Days,Pi.Discountrate,Pi.Money);printf(请输入要修改的房间号(输入零结束修改!):n);scanf(%d,&n); while(n!=0) for(i=0;iN;i+) if(Pi.flang=1) if(Pi.Rome=n) printf(确认要修改吗?(y or n) ); getchar(); ch=getchar(); if(ch=y) pr

19、intf(请重新输入该信息:n); printf(姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率n);printf(=n); scanf(%s%d%d%d%d%d%d%d%f,Pi.Name,&Pi.date.year,&Pi.date.month,&Pi.date.day,&Pi.Rome,&Pi.Number,&Pi.Price,&Pi.Days,&Pi.Discountrate); Pi.Money=Pi.Days*Pi.Discountrate*Pi.Price; else continue; else j-; else continue; if(j=0) printf(没

20、有找到要修改的内容!请确认后再输入!n); printf(请输入要修改的房间号(输入零结束修改!):n); scanf(%d,&n);void Delete(Payroll P,FILE *fp) /住宿信息的删除 int i,n;int k=NN,j=NN;int NO=NN;char ch; printf( 姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率 实收金额n);printf(=n);for(i=0;iN;i+) if(Pi.flang=1) printf(%8s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2fn,Pi.Name,Pi.date.year,

21、Pi.date.month,Pi.date.day,Pi.Rome,Pi.Number,Pi.Price,Pi.Days,Pi.Discountrate,Pi.Money);printf(请输入要删除的房间号(输入零结束删除!):n);scanf(%d,&n);while(n!=0) for(i=0;iN;i+) if(Pi.flang=1) if(Pi.Rome=n) printf(确认要删除吗?(y or n) ); getchar(); ch=getchar(); if(ch=y) if(k=1) /此时删除所有住宿信息 for(i=0;iN;i+) Pi.flang=0; NO-; P

22、i.flang=0; /删除该项内容 k-; else continue; else j-; if(k=0) break; if(j=0) printf(没有找到要删除的内容,请确认!n); printf(请输入要删除的房间号(输入零结束删除!):n); scanf(%d,&n); NN=NO;void Timeread(Payroll P,FILE *fp) /按天数浏览 int i;/Read(P,fp);DAY(P,fp); printf( 姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率 实收金额n);printf(=n); for(i=0;iN;i+)if(Pi.flang

23、=1) printf(%8s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2fn,Pi.Name,Pi.date.year,Pi.date.month,Pi.date.day,Pi.Rome,Pi.Number,Pi.Price,Pi.Days,Pi.Discountrate,Pi.Money);printf(nn);void Romenumber(Payroll P,FILE *fp) /按住宿房间浏览 int i,j=NN; ROME(P,fp);printf( 姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率 实收金额n);printf(=n); for(i=0;

24、iN;i+)if(Pi.flang=1) printf(%8s%6d%3d%3d%8d%6d%8d%8d%8.2f%8.2fn,Pi.Name,Pi.date.year,Pi.date.month,Pi.date.day,Pi.Rome,Pi.Number,Pi.Price,Pi.Days,Pi.Discountrate,Pi.Money); printf(nn); void Stat(Payroll P,FILE *fp) /信息统计 int i,n=N;int Sumperson=0; /总人数 float Sum=0; /总收入struct Payroll t; /Read(P,fp);for(i=0;iN;i+) if(Pi.flang=1) Sumperson+=Pi.Number; Sum+=Pi.Money; n-; printf(入住总人数:%dn空房数:%dn总收入:%.2fnnn,Sumperson,n,Sum); void Time(Payroll P,FILE *fp) /按住宿时间查询 Date time;int i,j=N

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服