住宿结帐管理系统c语言课程设计大学毕设论文.doc
《住宿结帐管理系统c语言课程设计大学毕设论文.doc》由会员分享,可在线阅读,更多相关《住宿结帐管理系统c语言课程设计大学毕设论文.doc(23页珍藏版)》请在咨信网上搜索。
C语言课程设计 设计题目: 住宿结帐管理系统 专 业 计算机科学与技术、软件工程 班 级 计053、软件051、软件052 学 生 郭凌瑞 张亮 方宇 指导教师 王晓帆 2005-2006 年 2 学期 设计任务: 试设计一个住宿结帐管理系统,住宿结帐管理信息包括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录入、修改、删除功能;住宿信息的排序、浏览功能;按住宿天数查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、空房数。 建议:一人负责信息的录入、修改、删除;一人负责文件的读取与写入操作;一人负责排序、查询。 教师评语: 目录 1、试验目的及内容……………………………3 2、系统总体模块图……………………………3 3、小组任务分工………………………………4 4、子系统设计方案……………………………4 (1) 信息的录入、修改、删除;………………4 (2) 文件的读取与写入、统计、主函数;……4 (3) 信息的排序、浏览、查询;………………4 5、子系统主要程序流程图……………………4 (1) 信息读取模块流程图………………………5 (2) 信息修改模块流程图………………………6 (3) 信息修改模块流程图 ……………………7 (4) 按住宿时间查询模块流程图………………8 (5) 按房间号码查询模块流程图………………9 6、个人设计小结与心得体会…………………10 7、小组设计总结………………………………11 8、系统源代码…………………………………12 试验目的: (1)加深对C语言的理解,将在书本上掌握的知识点运用到实际的系统编程中去,为以后的学习打下基础。 (2)通过简单的系统设计,增强面对复杂问题的处理能力,为以后实际中解决问题打下基础。 实验内容:试设计一个住宿结帐管理系统,住宿结帐管理信息包括:顾客姓名、入住时间、住宿房间、顾客数量、每日价格、住宿天数、折扣率、实收金额。系统包括以下功能:住宿信息的录入修改、删除功能;住宿信息的排序浏览功能;按住宿天数查询、按住宿房间号码查询;住宿信息的统计:总人数、总收入、空房数。 系统总体模块图: 住宿结帐管理系统 主程序模块 信息保存模块 按住宿房间号码查询模块 按住宿天数查询模块 按住宿天数浏览模块 信息统计模块 信息删除模块 信息修改模块 信息读取模块 信息录入模块 按住房间号码浏览模块 按房间号码排序模块 按住宿天数排序模块 小组任务分工 (1) 由郭凌瑞负责住宿信息的录入、修改、删除功能; (2) 由张亮负责文件的读取与写入操作,统计及主函数; (3) 由方宇负责排序、浏览、查询功能; 子系统设计方案: (1) 信息的录入、修改、删除; 信息的录入、修改与删除通过对信息的标志的判断与修改,执行信息录入的地址、修改的目标及删除功能的实现。 (2) 文件的读取与写入、统计、主函数; 文件的读取与写入可用已知的库函数来完成,统计工作可由已有信息通过计算获得,主函数可由swith语句来达到菜单选折功能的目的。 (3) 信息的排序、浏览、查询; 排序功能可通过冒泡法来实现,浏览实现排序然后显示即可,查询时,根据“==”来达到找到匹配信息的目的。 子系统主要程序流程图 N为所有房间数,NN为非空房间数 信息读取模块流程图 开始 0=>i i+1=>i i < N ? N Y P[i].flang= =1? Y N 输入一个信息P[i] 1=>P [i].flang NN+1=>NN i+1=>i i= =N-1? Y N “y”or “n” Y N i= =N-1? N Y 输入信息房间已满 结束 信息修改模块流程图 开始 输出所有住宿信息 输入修改的房间号n 0=>i, NN=>j n = =0? Y N i < N ? N i+1=>i N Y P[i].flang= =1? N j - - Y Y P[i].Rome= =n ? N Y “y”or “n” N Y 重新输入该信息P[i] “y”or “n” i= =N-1? i= =N-1? i= =N-1? j = =0? N Y 未找到要修改的信息 “y”or “n” 输入修改的房间号n 输入一个信息P[i] 输入一个信息P[i] 输入一个信息P[i] 输入一个信息P[i] 输入一个信息P[i] 输入一个信息P[i] 输入一个信息P[i] 结束 信息删除模块流程图 开始 输出所有住宿信息 输入要删除的房间号n 0=>i, NN=>j n = =0? Y i < N ? N i+1=>i Y P[i].flang= =1? N j - - P[i].Rome= =n ? Y N “y”or “n” Y N Y 1=>P[i].flang j = =0? N Y 未找到要删除的信息 输入删除的房间号n 结束 按住宿时间查询模块 开始 输出所有住宿信息 输入要查询的日期(年月日) 0=>i, NN=>j i<N? N i+1=>i Y P[i].flang= =1? N j - - Y i+1=>i 日期是否相等 N Y 输出要查询的信息P[i] j= =0? Y N Y 未找到要查询的信息 结束 按房间号码查询模块 开始 输出所有住宿信息 输入要查询房间号码 no 0=>i, NN=>j i<N? N i+1=>i Y P[i].flang= =1? N j - - Y i+1=>i 房间号码是否相等 N Y 输出要查询的信息P[i] j= =0? N Y 未找到要查询的信息 结束 0=>i, NN=>j 0=>i, NN=>j 个人设计小结及心得体会: (1)在我设计的子系统部分,包含很多细节问题,如果稍有不慎,往往导致模块无法运行,在设计中,我尝试了很多方法,对思维能力有了很大锻炼,提高了解决复杂问题的能力,同时,也很大程度上锻炼了耐心,做到不急不弃是系统最终成功的保证。 计053 郭凌瑞 (2)我的工作比较简单,但在书写代码时,发现了自己的问题:文件无法顺利操作!文件是很重要的一个知识点,很兴庆在这次实践中我及时弥补了以前的缺憾,为以后的继续学习和面对复杂问题打下了坚实的基础,问题在实践中才能被更好地发现和解决,在今后的学习中要更加重视实践的作用! 软051 张亮 (3)在我设计的模块中,主要是对已有信息的处理,对排序算法有了一个新的认识,从深层次理解了排序函数的思想,突破了以前是似而非的局限。查询模块的书写,注意了很多细节,使模块在整体上有了很大优化,给了用户一个人性化的界面。 软052 方宇 小组设计总结: 本次课程设计,我们做了一个简单管理系统,系统的功能较以前的小程序有了很大加强,对个人及团队的能力有了更大的要求,事实上,在本次课设中的确出现了很多以前没有遇到的问题,这是一次自我提高的过程,从中我们弥补了以前遗漏的很多东西,使自己的知识结构更加完善和牢固;同时,这也是一次实践的机会,是增加面对复杂问题处理经验的机会,对以后做一些比较大的系统有一定的借鉴。在本次试验的整个过程中,组员之间的合作起到了很大作用,共同解决了很多关键性难题,最终,在我们的共同努力下,我们的第一个系统正常运行了,巨大成就感促使我们有一种挑战更高目标的欲望! #include<stdio.h> #include<string.h> #define N 3 //总房间数 int NN=0; //非空房间数 //类定义区 struct Date{ //入住时间 int year; int month; int day; }; struct Payroll{ //顾客信息列表 int flang; //用来标志该顾客信息是否存在 char Name[15]; //顾客姓名 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(Payroll 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); //按住宿房间查询 void DAY(Payroll P[],FILE *fp); //按住宿天数排序 void ROME(Payroll P[],FILE *fp); //按房间号码排序 //以下为主函数 void main() { FILE *fp; struct Payroll P[N]; fp=fopen("accout.dat","ab+"); int select; Read(P,fp); //从文件中读取结账信息 printf("*******************住宿结账管理系统***************\n\n"); printf("~~~~~~~~~~~~~~~~~~~~欢迎使用本系统!~~~~~~~~~~~~\n\n"); printf("===============菜单===============\n" "请选择:\n" "1--添加新信息\n" "2--修改信息\n" "3--删除信息\n" "4--统计信息\n" "5--按住宿天数浏览\n" "6--按住宿天数查询\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); //按住宿天数查询 break; case 7:Romenumber(P,fp); //按放房间号码浏览 break; case 8:Rome(P,fp); //按房间号码查询 break; } printf("\n\n"); 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 Imput(Payroll P[],FILE *fp) //结帐信息的录入 { int i; char ch; printf("姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率\n"); printf("=============================================\n"); for(i=0;i<N;i++) { if(P[i].flang!=1) //避免覆盖已有信息 { scanf("%s%d%d%d%d%d%d%d%f",P[i].Name,&P[i].date.year, &P[i].date.month,&P[i].date.day,&P[i].Rome,&P[i].Number, &P[i].Price,&P[i].Days,&P[i].Discountrate); P[i].flang=1; //标示已存信息 NN++; P[i].Money=P[i].Days*P[i].Discountrate*P[i].Price; if(i==N-1) break; printf("是否继续录入?(y or n) "); getchar(); ch=getchar(); if(ch!='n') { printf("姓名 入住时间 房间 顾客数量 每日价格住宿天数 折扣率\n"); printf("======================================\n"); } else break; } } if(i==N-1) printf("抱歉,所有房间已满!\n\n"); } void Save(Payroll P[],FILE *fp) //信息保存为文件 { int i; for(i=0;i<N;i++) if(P[i].flang==1) fwrite(&P[i],sizeof(struct Payroll),1,fp); fclose(fp); } void Read(Payroll P[],FILE *fp) //结账信息的读取 { int i; for(i=0;i<N;i++) fread(&P[i],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;i<N;i++) if(P[i].flang==1) printf("%8s%6d%3d%3d%10d%8d%8d%8d%8.2f%8.2f\n",P[i].Name, P[i].date.year,P[i].date.month,P[i].date.day,P[i].Rome,P[i].Number, P[i].Price,P[i].Days,P[i].Discountrate,P[i].Money); printf("请输入要修改的房间号(输入零结束修改!):\n"); scanf("%d",&n); while(n!=0) { for(i=0;i<N;i++) { if(P[i].flang==1) { if(P[i].Rome==n) { printf("确认要修改吗?(y or n) "); getchar(); ch=getchar(); if(ch=='y') { printf("请重新输入该信息:\n"); printf("姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率\n"); printf("===========================================================\n"); scanf("%s%d%d%d%d%d%d%d%f",P[i].Name, &P[i].date.year,&P[i].date.month,&P[i].date.day, &P[i].Rome,&P[i].Number,&P[i].Price, &P[i].Days,&P[i].Discountrate); P[i].Money=P[i].Days*P[i].Discountrate*P[i].Price; } else continue; } else j--; } else continue; } if(j==0) printf("没有找到要修改的内容!请确认后再输入!\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;i<N;i++) if(P[i].flang==1) printf("%8s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2f\n", P[i].Name,P[i].date.year,P[i].date.month,P[i].date.day, P[i].Rome,P[i].Number,P[i].Price,P[i].Days, P[i].Discountrate,P[i].Money); printf("请输入要删除的房间号(输入零结束删除!):\n"); scanf("%d",&n); while(n!=0) { for(i=0;i<N;i++) { if(P[i].flang==1) { if(P[i].Rome==n) { printf("确认要删除吗?(y or n) "); getchar(); ch=getchar(); if(ch=='y') { if(k==1) //此时删除所有住宿信息 for(i=0;i<N;i++) P[i].flang=0; NO--; P[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;i<N;i++) { if(P[i].flang==1) { printf("%8s%6d%3d%3d%10d%6d%8d%8d%8.2f%8.2f\n", P[i].Name,P[i].date.year,P[i].date.month,P[i].date.day, P[i].Rome,P[i].Number,P[i].Price,P[i].Days, P[i].Discountrate,P[i].Money); } } printf("\n\n"); } void Romenumber(Payroll P[],FILE *fp) //按住宿房间浏览 { int i,j=NN; ROME(P,fp); printf(" 姓名 入住时间 房间 顾客数量 每日价格 住宿天数 折扣率 实收金额\n"); printf("================================================ =================\n"); for(i=0;i<N;i++) if(P[i].flang==1) printf("%8s%6d%3d%3d%8d%6d%8d%8d%8.2f%8.2f\n", P[i].Name,P[i].date.year,P[i].date.month,P[i].date.day, P[i].Rome,P[i].Number,P[i].Price,P[i].Days, P[i].Discountrate,P[i].Money); printf("\n\n"); } 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;i<N;i++) { if(P[i].flang==1) { Sumperson+=P[i].Number; Sum+=P[i].Money; n--; } } printf("入住总人数:%d\n空房数:%d\n 总收入:%.2f\n\n\n",Sumperson,n,Sum); } void Time(Payroll P[],FILE *fp) //按住宿时间查询 { Date time; int i,j=N- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 住宿 结帐 管理 系统 语言 课程设计 大学 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文