c语言课程设计作业医院挂号系统,c语言课程设计机房机位预定系统绝对正确,附源代码...

《c语言课程设计机房机位预定系统绝对正确,附源代码》由会员分享,可在线阅读,更多相关《c语言课程设计机房机位预定系统绝对正确,附源代码(17页珍藏版)》请在人人文库网上搜索。

1、1设计目的机房机位预定系统2任务概述20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个 时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3 )机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间 段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4 )退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。3模块划分4主要函数说明及其N-S图1.主函数:int mai n()Men u();/*当前状态函数*/void M。

2、enu()/*主界面*/int n,w;doputs(tt*机房机位预约系统*puts(tt*菜* n);puts(ttt 1.查询某时间段机位状态”);/*查询某时间段机位状态*/puts(ttt 2.预定空机位”);/*预定空机位*/puts(ttt 3.取消预订);/*取消预订*/puts(ttt 4.查询等待信息”);/*查询等待信息*/puts(ttt 5.退出);/* 退出 */ printf(选择菜单号(1-5):);puts(tt*n);sca nf(%d,&n);if(n 5) w=1;getchar(); else w=0;while(w=1);switch( n)case。

3、 1:Situati on( );break;case 2:Book();break;case 3:Ca ncel();break;case 4:SearchWaiti ng();break;case 5:exit(0);break;getch();显示一泵列功能英单根1鼬的值谓 用各功能模 块函数4-|n5 根的 值调用各 功能模块2.机位查询:void Situati on()int time;printf(输在(8-20)范围内的时间:); sca nf(%d, &time);if(time20)printf(t时间输入错误!n);printf(输入在(8-20)范围内的时间:”); s。

4、ea nf(%d, &time);detail(time);/*函数调用 */getchar();Men u();3.机位预定:void Book()int time,i=0,x,y;FILE *fp;char c;printf(在(8-20)时间范围内输入你想要预定的时间:);sca nf(%d, &time);if(time20)printf(t时间输入错误!n”);printf(t在(8-20)时间范围内输入你想要预定的时间:);scan f(%d, &time);detail(time);/*函数调用 */if(sumT0)if(fp=fope n( waitlist.txt,a)=N。

5、ULL)printf(n无法打开文件!n);exit(0);!:n);printf(nt请输入你想要预定的机号,并且留下你的电话号码sea nf(%s %s,waiti. nu mber,waiti.telepho nenu mber); for(i=0;i0) prin tf(tThe latest free time is %d,%dn,2*i+8,2*i+10);break;printf(t 你想要预定吗?:y/n?);scan f(%s, &c);getchar();if(c=Y|c=y)if(fp=fope n( waitlist.txt,r)=NULL)printf(n无法打开文件。

6、!n);exit(0);elseprintf(waitlist : numbertelephonenumbern);for(i=0;!feof(fp);i+)fscan f(fp,%s %s,&waiti. nu mber,&waiti.teleph onenu mber); fclose(fp);for(i=0;i20)printf(t输入时间错误!n”);printf(t在(8-20)时间范围内输入你已经预定的时间:);scan f(%d, &time);elseprintf(t输入你预定的机号:);sca nf(%d,&nu mber);detail(time);/* sumT+;/ *。

7、预定后该时间段空机位数加1*/*computerT n umber=O;/ * 预定后该机状态变为0*/ printf(t 取消成功!n); getchar();Men u();5.查询等待信息:void SearchWait in g()int time,i;FILE *fp;printf(tln put time you want to search betwee n( 8-20):); sca nf(%d, &time);if(time20)prin tf(tWro ng time!n);prin tf(t In put time you want to search betwee n(。

8、 8-20):); scan f(%d, &time);elseif(fp=fope n( waitlist.txt,r)=NULL)prin tf(nCannot ope n file!n);exit(0);else printf(waitlist : numbertelephonenumbern);for(i=0;!feof(fp);i+)fscan f(fp,%s %s,&waiti. nu mber,&waiti.teleph onenu mber); fclose(fp);for(i=0;i6M:f 垃 Jf HKNKiMKiMKKKJfJf 梵絃址选嘩菜单号2.机位查询:WNMX壯。

9、房机位预约系统状.段 白r 间位倩 男工曙 询定消询岀 -!* 12 3 4 5 B LbN 8 i 、7IEE6 7 8 9 11 帼暮1:宣rrfl trf rrfl frfl irflG0空的的的的的的 垃】豊置11置詈 20目空空宪工空工-3.机位预定:沃态 单状 菜位间位信 时叮以88 询定消询出 查预曇I 二 二 丄 2 3 4 50 1 入脑;6i?:R:9:l:l晋香習千 R的脑脑眩脑脑肪 :ehmwww a国豊直置SZW 号时目ix.v空iv小工E工 sit jitt 0 茉-2 择.细节决定成败:在学习的过程中,要注意每一个细节,要知道一个分隔符或一个括 号都会使整个程序出。

10、现错误。.要熟练掌握一些经典的结构和方法,如选择排序,递归,递推等,在遇到问题是可直接应用,快速解决问题。.要熟悉一些标准数据库,对一些可直接利用的函数就直接利用,没必要重新定义。.在设计过程中最好使程序模块化,既便于阅读,也可增加其移植性。.熟能生巧。平时应该多加训练,要知道,即使我们能完全看懂一个程序,但要让你自己写出一个时仍是很困难的。它要求你对每一个语句,每一个变量,每一个函数,每一个 模块都充分的熟悉,要知道它们的作用,作用域等等。因此只有平时做的多了,至耐候才会 游刃有余。一个多礼拜中,我有过山穷水尽的困惑;有过柳暗花明的惊喜;一个多礼拜的时间我经 历了很多,也收获了很多。与其说它。

11、是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我学会了如何运用所学知识去解决实际问题.附录:#in clude#in clude#in clude#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,000,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。

12、,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 Men u();void Situati on();void Book();void Can cel();void SearchWaiti ng();void detail(i nt time);void prion e(i nt i);struct waitlist/*等待列表 */char nu mber3;char te。

13、leph onenu mber11; waitN;void printon e(i nt i);int mai n()Menu();/*当前状态函数*/void Menu()/*主界面*/int n,w;doputs(tt*机房机位预约系统);puts(tt*菜*puts(ttt 1.查询某时间段机位状态);/*查询某时间段机位状态*/puts(ttt 2.预定空机位”);/*预定空机位*/puts(ttt 3.取消预订);/*取消预订*/puts(ttt 4.查询等待信息”);/*查询等待信息*/puts(ttt 5.退出);/* 退出 */puts(tt*n);printf(选择菜单号(1。

14、-5):);sca nf(%d,&n); if(n 5)w=1;getchar(); elsew=0;while(w=1);switch( n)case 1:Situati on( );break;case 2:Book();break;case 3:Ca ncel();break;case 4:SearchWaiti ng();break;case 5:exit(0);break;getch();/*时间查询*/void Situati on()int time;printf(输在(8-20)范围内的时间:); sca nf(%d, &time);if(time20)printf(t时间输入。

15、错误!n);printf(输入在(8-20)范围内的时间:”); sea nf(%d, &time);detail(time);/*函数调用 */getchar();Me nu();/*预定函数*/void Book()int time,i=0,x,y;FILE *fp;char c;printf(在(8-20)时间范围内输入你想要预定的时间:);sca nf(%d, &time); if(time20)printf(t时间输入错误!n”);printf(t在(8-20)时间范围内输入你想要预定的时间:);scan f(%d, &time);detail(time);/*函数调用 */if(s。

16、umT0)if(fp=fope n( waitlist.txt,a)=NULL)printf(n无法打开文件!n); exit(0);!:n);printf(nt请输入你想要预定的机号,并且留下你的电话号码scanf(%s %s,waiti.number,waiti.telephonenumber); for(i=0;i0)printf(t 最近的空闲时间是d,%dn,2*i+8,2*i+10);break;printf(t 你想要预定吗?:y/n?);scan f(%s, &c);getchar();if(c=Y|c=y)if(fp=fope n( waitlist.txt,r)=NULL)。

17、printf(n无法打开文件!n);exit(0);else printf(waitlist :numbertelephonenumbern);for(i=0;!feof(fp);i+)fscan f(fp,%s %s,&waiti. nu mber,&waiti.teleph onenu mber); fclose(fp);for(i=0;i20)printf(t输入时间错误!n”);printf(t在(8-20)时间范围内输入你已经预定的时间:);scan f(%d, &time);elseprintf(t输入你预定的机号:);sca nf(%d,&nu mber);detail(time。

18、);/* sumT+;/ *预定后该时间段空机位数加1*/*computerT n umber=0;/ * 预定后该机状态变为0*/printf(t 取消成功!n”);getchar();Me nu();/*查看等待信息*/void SearchWait in g()int time,i;FILE *fp;printf(t在(8-20)之间输入您要搜索的时间:);sca nf(%d, &time);if(time20)printf(t时间输入错误!n);printf(t在(8-20)之间输入您要搜索的时间:);scan f(%d, &time);else5if(fp=fope n(waitli。

19、st.txt,r)=NULL)prin tf(nCannot ope n file!n);exit(0);elseprintf(waitlist : numbertelephonenumbern);for(i=0;!feof(fp);i+)fscan f(fp,%s %s,&waiti. nu mber,&waiti.teleph onenu mber);fclose(fp);for(i=0;i10;i+) prion e(i);Me nu();/*公共函数*/void detail(i nt time)/*此函数功能是实现查找每个时间段空机位总数和空机位号*/int i,j=O,k,s=O;in t v30;for(i=0;i20;i+)if(computerTi=0) s+;vj+=i;sumT=s;printf(t 目前空置的电脑:%dn,sumT);for(k=0;kj;k+)printf(t 空置的电脑是:%dn,vk);void prion e(i nt i)/*此函数功能是实现输出等待列表到屏幕*/prin tf(tt%s %sn ,waiti. nu mber,waiti.teleph onenu mber。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值