《住宿结帐管理系统c语言课程设计.docx》由会员分享,可在线阅读,更多相关《住宿结帐管理系统c语言课程设计.docx(44页珍藏版)》请在第一文库网上搜索。
1、C语言课程设计设计题目:住宿结帐管理系统专业计算机科学与技术、软件工程HMI班级 计053、软件051、软件052学 生郭凌瑞 张亮 方宇-1 -指导教师王晓帆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、小组设计总结11-5 -12系统源代码试验目的:(1)加深对c语言的理解,将在书本上掌握的知识点运用到实际的系统编程中去,为以后的学习打下基础。(2)通过简单的系统设计,增强面对复杂问题的处理能力,为以后实际中解决问题打下基础。实验
3、内容:试设计一个住宿结帐管理系统,住宿结帐管理信息包括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录入修改、删除功能;住宿信息的排序浏览功能;按住宿天数查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、空房数。系统总体模块图:信息读取模块信息录入模块信息修改模块信息删除模块信息统计模块按住房间号码浏览模按住宿天数排序模块块按住宿天数浏览模块按住宿天数查询模块按房间号码排序模块按住宿房间号码查询模块信息保存模块信息读取模块流程图小组任务分工(1)由郭凌瑞负责住宿信息的录入、修改、删除功能;(2)由张亮负责文件的读取与写入操作
4、,统计及主函数;(3)由方宇负责排序、浏览、查询功能;子系统设计方案:(1)信息的录入、修改、删除;信息的录入、修改与删除通过对信息的标志的判断与修改,执行信息录入的地址、修改的目标及删除功能的实现。(2)文件的读取与写入、统计、主函数;文件的读取与写入可用已知的库函数来完成,统计工作可由已有信息通过计算获得,主函数可由swith语句来达到菜单选折功能的目的。(3)信息的排序、浏览、查询;排序功能可通过冒泡法来实现,浏览实现排序然后显示即可,查询时,根据“”来达到找到匹配信息的目的。子系统主要程序流程图N为所有房间数,NN为非空房间数-7-信息修改模块流程图-9 -信息删除模块流程图-#-按住
5、宿时间查询模块个人设计小结及心得体会:(1)在我设计的子系统部分,包含很多细节问题,如果稍有不慎,往往导致模块无法运行,在设计中,我尝试了很多方法,对思维能力有了很大锻炼,提高了解决复杂问题的能力,同时,也很大程度上锻炼了耐心,做到不急不弃是系统最终成功的保证。计053 郭凌瑞(2)我的工作比较简单,但在书写代码时,发现了自己的问题:文件无法顺利操作!文件是很重要的一个知识点,很兴庆在这次实践中我及时弥补了以前的缺憾,为以后的继续学习和面对复杂问题打下了坚实的基础,问题在实践中才能被更好地发现和解决,在今后的学习中要更加重视实践的作用!软051 张亮(3)在我设计的模块中,主要是对已有信息的处
6、理,对排序算法有了一个新的认识,从深层次理解了排序函数的思想,突破了以前是似而非的局限。查询模块的书写,注意了很多细节,使模块在整体上有了很大优化,给了用户一个人性化的界面。软052 方宇-13 - 组设计总结:本次课程设计,我们做了一个简单管理系统,系统的功能较以前的小程序有了很大加强,对个人及团队的能力有了更大的要求,事实上,在本次课设中的确出现了很多以前没有遇到的问题,这是一次自我提高的过程,从中我们弥补了以前遗漏的很多东西,使自己的知识结构更加完善和牢固;同时,这也是一次实践的机会,是增加面对复杂问题处理经验的机会,对以后做一些比较大的系统有一定的借鉴。在本次试验的整个过程中,组员之间
7、的合作起到了很大作用,共同解决了很多关键性难题,最终,在我们的共同努力下,我们的第一个系统正常运行了,巨大成就感促使我们有一种挑战更高目标的欲望!-15 -#include#includettdefine N 3int NN=O;类定义区struct Dateint year;int month;int day;);struct Payroll(int flang;char Name15;Date date;int Rome;int Number;int Price;int Days;float Discountrate;float Money;);子函数声名区结帐信息的录入结账信息的读取信息
8、保存为文件结账信息的修改结账信息的删除信息统计按住宿天数浏览按住宿房间浏览按住宿天数查询按住宿房间查询按住宿天数排序按房间号码排序总房间数非空房间数入住时间顾客信息列表用来标志该顾客信息是否存在顾客姓名入住时间房间号顾客数量每日价格住宿天数折扣率实收金额void Imput(Payroll P, FILE *fp);void Read (Payroll P,FILE *fp);void Save (Payroll P,FILE *fp);void Reput(Payroll P, FILE *fp);void Delete(Payroll P,FILE *fp);void Stat(Payro
9、ll 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);void DAY(Payroll P,FILE *fp);void ROME (Payroll P,FILE *fp);以下为主函数void main ()FILE *fp;struct Payroll PN;fp=fopen (z,accout. dat,ab+);int select;Read(P, f
10、p);从文件中读取结账信息printf (*住宿结账管理系统*nn);printf (欢迎使用本系统!nn);printf (二二二=菜单请选择:n1-添加新信息n2一修改信息n3一删除信息n4 一统计信息n5按住宿天数浏览n6按住宿天数查询n7一按放房间号码浏览n8按房间号码查询n9一退出 n);scanf(%d, feselect);while(select!=9)(switch(select)(case 1:1 input (P, fp);break;case 2:Reput(P, fp);break;case 3:Delete(P, fp);break;case 4:Stat(P, f
11、p);break;case 5:Timeread(P, fp);break;case 6:Time(P, fp);break;case 7:Romenumber(P, fp);break;没有退出本系统时,循环提示操作信息录入修改信息删除信息统计信息按住宿天数浏览按住宿天数查询按放房间号码浏览-19 -case 8: Rome (P, fp);按房间号码查询break;printf (nn);printf (请选择要进行的操作:n每完成一次操作选折下一次操作1-添加新信息n2一修改信息修3删除信息n4统计信息n5按住宿天数浏览n6按住宿天数查询n7一按放房间号码浏览n8按房间号码查询n9- 退
12、出 n);scanf (%d, &select);Save (P, fp);将本次系统运行结果保存为文件printf (谢谢使用,再见! n);子函数定义区void Imput (Payroll P, FILE *fp)结帐信息的录入(int i;char ch;printf(姓名入住时间房间顾客数量每日价格住宿天数折扣率n);printf (=二二=二二=二二=二二二=二二=二二二=0 ;for(i=0;iN;i+)(if(Pi.flang!=l)避免覆盖已有信息(scanf (,z%s%d%d%d%d%d%d%d%f,z, P i. Name, &P i. date, year,&Pi.
13、date, month, &Pi. date, day, &Pi. Rome, &Pi. Number,&Pi. Price, &Pi. Days, &Pi. Discountrate);Pi. flang=l;标示已存信息NN+;Pi. Money=Pi. Days*Pi.Discountrate*Pi.Price;if (i=N-l)break;printf (是否继续录入? (y or n) );getchar ();ch=getchar ();if (ch!=n )(printf(姓名入住时间房间顾客数量每日价格住宿天数折扣率n);printf (=n);elsebreak;)if (匚NT)printf (抱歉,所有房间已满!nn);void