已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计报告机房机位预约模拟一题目要求20台机器,从早八点到晚八点,每两个小时一个时间段.需要实现的功能:(1) 查询,根据输入的时间,输出机位信息.(2) 机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表.(3) 退出预定,根据输入的时间,撤消该时间的预定.(4) 查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息.二需求分析根据题目要求,在程序中应实现查询,机位预定,插入等待列表,退出预定,查询等待信息等功能。还应提供键盘式选择菜单实现功能选择。而等待信息放在文件里,所以在相关的模块应提供文件的输入、输出操作。三总体设计根据上面的需求分析,将这个系统的设计分为下面4个模块:机房机位预约模拟系统状态查询模块预订模块取消预订模块查询等待信息模块4详细设计 1.预处理命令及函数声明#include#include#include#define N 20#define T (time-8)/2int sum6=0;int computer620=1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1;/*该数组表示假设某天某人查询时机房各个时间段机位数情况*/void Menu(); void Situation();void Book();void Cancel();void SearchWaiting();void Exit();void detail(int time);void printf_one(int i); struct waitlist char number3; char telephonenumber12; waitN;2主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如图所示:开始显示一系列功能模块根据的值调用各功能模块函数YN输入n的值1-5结束 2./*主函数*/void main()Menu(); /*当前状态函数*/void Menu() /*主界面*/int n,w;do puts(tt*COMPUTER BOOK SYSTERM*n); puts(tt*MENU*n); puts(ttt 1.Search the current situation); /*查询某时间段机位状态*/ puts(ttt 2.Book the vacant computer); /*预定空机位*/ puts(ttt 3.Cancel booking); /*取消预订*/ puts(ttt 4.Search waiting); /*查询等待信息*/ puts(ttt 5.Exit); /*退出*/ puts(tt*n); printf(Choose your number(1-5): bb); scanf(%d,&n); if(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;3.状态查询函数流程图调用detail函数返回主菜单输入1是否输入time的值8-20开始/*查询模块*/*查询当前状态*/void Situation()int time;printf(Input time between (8-20):);scanf(%d,&time);if(time20)printf(tWrong time!n);printf(Please input time between (8-20):);scanf(%d,&time); detail(time); /*函数调用*/getchar();Menu();4.预定模块函数流程图开始N执行一个循环,进入后面的时间段SumT0输入时间8-20调用detail函数,sumT的值改变输出空机位数,是否等待NY打开文本文件waitlist.txt,输入预定机位号和联系方式,追加一个结构体成员。返回主菜单程序:/*预定模块*/void Book()int time,i=0,x,y;FILE *fp; char c; printf(Input time you want to book between(8-20):); scanf(%d,&time); if(time20) printf(tWrong time!n); printf(tInput time you want to book between(8-20):); scanf(%d,&time); detail(time); /*函数调用*/if(sumT0) if(fp=fopen(waitlist.txt,a)=NULL) printf(nCannot open file!n); exit(0); printf(ntPlease Input the number you want to book and leave your telephonenumber!:n); scanf(%s %s,waiti.number,waiti.telephonenumber);for(i=0;i1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文档添加一个结构体单元*/printf(tInput the number you want to book again!n);scanf(%d,&x);sumT-; / *预定后该时间段空机位数减1*/computerTx=1; / *预定后该机状态变为1*/printf(tBook succeed!n);getchar();Menu();elseprintf(There is no vacant computer at that time!n);for(i=T+1;i0)printf(tThe latest free time is %d,%dn,2*i+8,2*i+10);break;printf(tDo you want to wait?:y/n?);scanf(%s,&c);getchar();if(c=Y|c=y) if(fp=fopen(waitlist.txt,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;i10;i+) printf_one(i); printf(ntPlease Input the number you want to book and leave your telephonenumber!:n); if(fp=fopen(waitlist.txt,a)=NULL) printf(nCannot open file!n); exit(0); scanf(%s %s,waiti.number,waiti.telephonenumber); for(i=0;i1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf(Input the number of the computer again!n);scanf(%d,&y);sumT-; computerTy=1; printf(tOk,please wait our phone!n); Menu(); else Menu();5,取消预订模块函数流程图调用detail函数输入机位号YN输入时间8-20开始该时间段空电脑数加1,所取消电脑号状态变为0主菜单/*取消预订模块*/void Cancel()int time,number;printf(Input time you have booked between(8-20):);scanf(%d,&time); if(time20) printf(tWrong time!n); printf(tInput time you have booked between(8-20):); scanf(%d,&time); elseprintf(tInput number you have booked :);scanf(%d,&number);detail(time); sumT+; / *预定后该时间段空机位数加1*/computerTnumber=0; / *预定后该机状态变为0*/printf(tCancel succeed!n);getchar();Menu();6查询等待信息模块流程图开始输入时间8-20打开文本文件,将文本文件转化为二进制文件输出到屏幕上,显示等待信息YN返回主菜单/*查询等待信息模块*/void SearchWaiting()int time,i; FILE *fp;printf(tInput time you want to search between(8-20):);scanf(%d,&time);if(time20) printf(tWrong time!n); printf(tInput time you want to search between(8-20):); scanf(%d,&time);else; if(fp=fopen(waitlist.txt,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;i10;i+) printf_one(i);Menu();7.公共函数程序void detail(int time) /*此函数功能是实现查找每个时间段空机位总数和空机位号*/ int i,j=0,k,s=0;int v30; for(i=0;i20;i+)if(computerTi=0) s+; vj+=i;sumT=s;printf(tCurrent vacant computers:%dn,sum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建晋江梧林君澜酒店有限责任公司常态化招聘项目制工作人员58人笔试考试参考试题及答案解析
- 2025河北石家庄市某大型国有企业招聘3人备考题库含答案详解(培优)
- 2026云南楚雄州大姚县教育体育局校园招聘高中教师13人考试笔试参考题库附答案解析
- 2026江西铜业集团有限公司南方公司第四批次一般管理岗社会招聘5人备考题库附答案详解(考试直接用)
- 2025云南玉溪市元江县卫生健康系统招聘32人笔试考试参考题库及答案解析
- 2025福建宁德市部分市直医院招聘编外人员3人(二)考试笔试备考题库及答案解析
- 类风湿病的症状辨析及护理要点
- 2025华夏银行成都分行社会招聘(12月)笔试考试备考题库及答案解析
- 2025年12月四川西南医科大学附属医院招聘保安员及特勤警辅人员5人笔试考试参考题库及答案解析
- 儿童青少年挑食偏食行为的营养干预策略
- 肝性脑病内科护理要点
- 体育安全教育题库及答案
- 2026鄂尔多斯市融媒体中心招聘35名工作人员历年真题汇编带答案解析
- 雨课堂学堂在线学堂云《爱性与健康》单元测试考核答案
- 创伤急救模拟教学中的重症创伤模拟教学优化
- 中小学生班主任基本功大赛笔试试卷及参考答案
- 错题逆袭:从绊脚石到提分引擎
- 2026九师联盟高三11月质量检测生物试题(含答案)
- 补牙流程课件
- 斜向救出法课件
- 贲门失弛缓症护理查房
评论
0/150
提交评论