ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:156.05KB ,
资源ID:5062778      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5062778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言课程设计机房机位预定系统绝对正确附源代码解析.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言课程设计机房机位预定系统绝对正确附源代码解析.docx

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

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

3、;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();显示一系列功能菜单根据n的值调 用各功能模 块画数*44卜疋 1|n5根据H的 值调用各 功能模块函数2.机位查询:void Situati on()int time;printf(输在(8-20)范围内的时间:); sca nf(%d, &time);if(time20)printf(t时间输入

4、错误!n);printf(输入在(8-20)范围内的时间:”); sea 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

5、(sumT0) if(fp=fope n( waitlist.txt,a)=NULL)printf(n无法打开文件!n);exit(0);!:n);printf(nt请输入你想要预定的机号,并且留下你的电话号码sea nf(%s %s,waiti. nu mber,waiti.telepho nenu mber); for(i=0;i1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元 */printf(t再次输入你想要预定的时间 !n);sca nf(%d, &x);/*sumT-; / *

6、预定后该时间段空机位数减 1*/*computerTx=1; / *预定后该机状态变为 1*/printf(t 预订成功!n”);getchar();Me nu();elseprintf(这是在这个时间段内未预定的电脑 !n);for(i=T+1;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无法打开文件!n);

7、exit(0);else printf(waitlist : number telephonenumbern);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);printf(nt请输入你想要预定的机号,并且留下你的电话号码 !:n); if(fp=fope n( waitlist.txt,a)=NULL) printf(n无法打开文件!n); exit(0); scanf(%s %s,waiti.numb

8、er,waiti.telephonenumber);for(i=0;i1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式 */printf(”再次输入电脑的序号!n);scan f(%d, &y);sumT_;computerTy=1;printf(t好了,请等待我们的电话!n);Me nu();else Me nu();4.取消预定:void Can cel()int time ,nu mber;printf(在(8-20)时间范围内输入你已经预

9、定的时间 :);sca nf(%d, &time);if(time20)printf(t输入时间错误!n”);printf(t在(8-20)时间范围内输入你已经预定的时间 :);scan f(%d, &time);elseprintf(t输入你预定的机号 :);sca nf(%d,&nu mber);detail(time);/* sumT+; / *预定后该时间段空机位数加 1*/*computerT n umber=O; / * 预定后该机状态变为 0*/ printf(t 取消成功!n); getchar();Men u();5.查询等待信息:void SearchWait in g()

10、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-20):); scan f(%d, &time);elseif(fp=fope n( waitlist.txt,r)=NULL)prin tf(nCannot ope n file!n);exit(0);else printf(wai

11、tlist : number telephonenumbern);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();输入姓名通过涟表指向等待信息输岀等待信息5程序运行数据及其结果1.主菜单:选搽菜单号l-5:2.机位查询:3.机位预定:ICXMiiHMEMnMXXiMJifJiltfit 耳*木f| 】相 /方刊页色勺 系纟充“嚥肚 M: H UK K JOCK UK K:M X Mi UKK

12、MLKitJCJOCJtJIKNXJCIitJI 柔 单:七占去*3补114*:9aME 植耳就算耳N梵翼拭算址其耳甲 拭算箕拉算植光尊拉耳輒其耳拭算就拭耳植廉就算耳植梵覺拭位机段 息 间位亠耳 眄机雷 某空耙寺 询定鞘询出12 3 4 5你恕蓼预定的时间汐:7:10:11習習習疋 2内的曆脑脑脑脑 -7nl-rTTJTT-JfrrnrTT-JTT-JTT a 置貫置ww 号周目空空V空空空请输入你想要预定的机号,并且留下你的电话号码F : 12345&7再次输入你想要预定的时间?4.查询等待信息:选择菜单号1-5:4Input t ine ijou uant to search betwee

13、n t8-20i :9 waitlist : nunber telephonenunbei*6 12345fi10 12345676课程设计心得课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程 .随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握一些基本的软件开发技术是十分重要和必要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里, 可以学到很多很多的的东西, 同时不仅可以巩固了以前所学过的知

14、识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论, 从而提高自己的实际动手能力和独立思考的能力, 这样才能真正为体会和认识它,才能写出一个完整的程序代码,才能使自己在过程中得到锻炼 和提高。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时 在设计的过程中发现了自己的不足之处, 对以前所学过的知识理解得不够深刻, 掌握得不够牢固,比如说结构体的建立 ,指针的应用等都不太熟练。通过这次课程设计,也使我对以前 所学过的知识重新温故和加强。程

15、序设计过程有如解决一实际问题, 从解决实际问题的角度, 我们可以这样来看: 首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么 ;其次,从问题的要害入手,从前到后的解决问题的每个方面, 即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程-算法; 最后可得结论。通过这次课程设计,我深刻地体会到:.细节决定成败:在学习的过程中,要注意每一个细节,要知道一个分隔符或一个括 号都会使整个程序出现错误。.要熟练掌握一些经典的结构和方法,如选择排序,递归,递推等,在遇到问题是可直接应用,快速解决问题。.要熟悉一些标准数据库,对一

16、些可直接利用的函数就直接利用,没必要重新定义。.在设计过程中最好使程序模块化,既便于阅读,也可增加其移植性。.熟能生巧。平时应该多加训练,要知道,即使我们能完全看懂一个程序,但要让你自己写出一个时仍是很困难的。它要求你对每一个语句,每一个变量,每一个函数,每一个 模块都充分的熟悉,要知道它们的作用,作用域等等。因此只有平时做的多了,至耐候才会 游刃有余。一个多礼拜中,我有过山穷水尽的困惑;有过柳暗花明的惊喜;一个多礼拜的时间我经 历了很多,也收获了很多。与其说它是体力与脑力的作业, 不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能 ,更重要的是我学会了如何运用所学知

17、识去解决实际问题.附录:#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,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,

18、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 teleph onenu mber11; waitN;void printon e(i nt i);int mai n()Menu

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

20、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时间输入错误!n);printf(输入在(8-20)范围内的时间:”); sea nf(%d, &time);detail(time); /*函数调用 */getch

21、ar();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(sumT0) if(fp=fope n( waitlist.txt,a)=NULL)printf(n无法打开文件!n); exit(0);!:n);pr

22、intf(nt请输入你想要预定的机号,并且留下你的电话号码scanf(%s %s,waiti.number,waiti.telephonenumber); for(i=0;i1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元 */printf(t再次输入你想要预定的时间 !n);sca nf(%d, &x);/*sumT-; / *预定后该时间段空机位数减 1*/*computerTx=1; / *预定后该机状态变为 1*/printf(t 预订成功!n”);getchar();Me nu()

23、;elseprintf(这是在这个时间段内未预定的电脑 !n);for(i=T+1;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)printf(n无法打开文件!n);exit(0);else printf(waitlist : number telephonenumbern);for(i=0;!feof(fp);i+)fscan f(fp,%s %s,&wait

24、i. nu mber,&waiti.teleph onenu mber); fclose(fp);for(i=0;i10;i+) prion e(i);printf(nt请输入您想预定的机号并留下您的联系方式 !:n);if(fp=fope n(waitlist.txt,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(fp); /*若等待,就用文件的方

25、式列出当时的等待列表并提示输入你的等待序号和联系方式 */printf(再次输入电脑的序号!n);scan f(%d, &y);sumT_;computerTy=1;printf(t好了,请等待我们的电话!n);Me nu();else Me nu();/*取消预订*/void Can cel()int time ,nu mber;printf(在(8-20)时间范围内输入你已经预定的时间 :);sca nf(%d, &time);if(time20)printf(t输入时间错误!n”);printf(t在(8-20)时间范围内输入你已经预定的时间 :);scan f(%d, &time);e

26、lseprintf(t输入你预定的机号 :);sca nf(%d,&nu mber);detail(time);/* 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); elseif(fp=fope n( waitlist.txt,r)=NULL)prin tf(nCannot ope n file!n);exit(0);else printf(waitlist : number telephonenumbern);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+)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1