c语言课程设计机房机位预定系统绝对正确-附源代码(共14页).doc
《c语言课程设计机房机位预定系统绝对正确-附源代码(共14页).doc》由会员分享,可在线阅读,更多相关《c语言课程设计机房机位预定系统绝对正确-附源代码(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上1 设计目的 机房机位预定系统2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。.3 模块划分机房机位预约系统查询机位预定机位退出预定查询等待信息4 主要函数说明及其N-S
2、图1. 主函数:int main()Menu(); /*当前状态函数*/void Menu() /*主界面*/int n,w;do puts(tt*机房机位预约系统*n); puts(tt*菜单*n); puts(ttt 1.查询某时间段机位状态); /*查询某时间段机位状态*/ puts(ttt 2.预定空机位); /*预定空机位*/ puts(ttt 3.取消预订); /*取消预订*/ puts(ttt 4.查询等待信息); /*查询等待信息*/ puts(ttt 5.退出); /*退出*/ puts(tt*n); printf(选择菜单号(1-5):); scanf(%d,&n); if
3、(n5) w=1;getchar(); else w=0;while(w=1);switch(n)case 1:Situation();break;case 2:Book();break; case 3:Cancel();break;case 4:SearchWaiting();break;case 5:exit(0);break;getch();2. 机位查询:void Situation()int time;printf(输在 (8-20)范围内的时间:);scanf(%d,&time);if(time20)printf(t时间输入错误!n);printf(输入在 (8-20)范围内的时间
4、:);scanf(%d,&time); detail(time); /*函数调用*/getchar();Menu();3. 机位预定:void Book()int time,i=0,x,y;FILE *fp; char c; printf(在(8-20)时间范围内输入你想要预定的时间:); scanf(%d,&time); if(time20) printf(t时间输入错误!n); printf(t在(8-20)时间范围内输入你想要预定的时间:); scanf(%d,&time); detail(time); /*函数调用*/if(sumT0) if(fp=fopen(,a)=NULL) pr
5、intf(n无法打开文件!n); exit(0); printf(nt请输入你想要预定的机号,并且留下你的电话号码!:n); scanf(%s %s,waiti.number,waiti.telephonenumber);for(i=0;i1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文档添加一个结构体单元*/printf(t再次输入你想要预定的时间!n);scanf(%d,&x);/*sumT-; / *预定后该时间段空机位数减1*/*computerTx=1; / *预定后该机状态变为1*/printf
6、(t预订成功!n);getchar();Menu();elseprintf(这是在这个时间段内未预定的电脑!n);for(i=T+1;i0)printf(tThe latest free time is %d,%dn,2*i+8,2*i+10);break;printf(t你想要预定吗:y/n);scanf(%s,&c);getchar();if(c=Y|c=y) if(fp=fopen(,r)=NULL) printf(n无法打开文件!n); exit(0); else printf(waitlist: number telephonenumbern); for(i=0;!feof(fp);
7、i+) fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber); fclose(fp); for(i=0;i10;i+) prione(i); printf(nt请输入你想要预定的机号,并且留下你的电话号码!:n); if(fp=fopen(,a)=NULL) printf(n无法打开文件!n); exit(0); scanf(%s %s,waiti.number,waiti.telephonenumber); for(i=0;i1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose
8、(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf(再次输入电脑的序号!n);scanf(%d,&y);sumT-; computerTy=1; printf(t好了,请等待我们的电话!n); Menu(); else Menu();N4. 取消预定:void Cancel()int time,number;printf(在(8-20)时间范围内输入你已经预定的时间:);scanf(%d,&time); if(time20) printf(t输入时间错误!n); printf(t在(8-20)时间范围内输入你已经预定的时间:); scanf
9、(%d,&time); elseprintf(t输入你预定的机号 :);scanf(%d,&number);detail(time); /* sumT+; / *预定后该时间段空机位数加1*/*computerTnumber=0; / *预定后该机状态变为0*/printf(t取消成功!n);getchar();Menu();5. 查询等待信息:void SearchWaiting()int time,i; FILE *fp;printf(tInput time you want to search between(8-20):);scanf(%d,&time);if(time20) prin
10、tf(tWrong time!n); printf(tInput time you want to search between(8-20):); scanf(%d,&time);else; if(fp=fopen(,r)=NULL) printf(nCannot open file!n); exit(0); else printf(waitlist: number telephonenumbern); for(i=0;!feof(fp);i+) fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber); fclose(fp); for(i=0
11、;i10;i+) prione(i);Menu();5 程序运行数据及其结果1. 主菜单:2.机位查询:3.机位预定:4.查询等待信息:6 课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握一些基本的软件开发技术是十分重要和必要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识
12、,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力,这样才能真正为体会和认识它,才能写出一个完整的程序代码,才能使自己在过程中得到锻炼和提高。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体的建立,指针的应用等都不太熟练。通过这次课程设计,也使我对以前所学过的知识重新温故和加强。程序设计过程有如解决一实际
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 机房 机位 预定 系统 绝对 正确 源代码 14
限制150内