欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言课程设计机房机位预定系统 绝对正确,附源代码(36页).doc

    • 资源ID:34800977       资源大小:107.50KB        全文页数:38页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计机房机位预定系统 绝对正确,附源代码(36页).doc

    -1 设计目的 机房机位预定系统2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。.3 模块划分机房机位预约系统查询机位预定机位退出预定查询等待信息4 主要函数说明及其N-S图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(n<1|n>5) 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(time<8|time>20)printf("t时间输入错误!n");printf("输入在 (8-20)范围内的时间:");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(time<8|time>20) printf("t时间输入错误!n"); printf("t在(8-20)时间范围内输入你想要预定的时间:"); scanf("%d",&time); detail(time); /*函数调用*/if(sumT>0) if(fp=fopen("waitlist.txt","a")=NULL) printf("n无法打开文件!n"); exit(0); printf("nt请输入你想要预定的机号,并且留下你的电话号码!:n"); scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文档添加一个结构体单元*/printf("t再次输入你想要预定的时间!n");scanf("%d",&x);/*sumT-; / *预定后该时间段空机位数减1*/*computerTx=1; / *预定后该机状态变为1*/printf("t预订成功!n");getchar();Menu();elseprintf("这是在这个时间段内未预定的电脑!n");for(i=T+1;i<6;i+) time=9+2*i;detail(time); /*函数调用*/if(sumT>0)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("waitlist.txt","r")=NULL) printf("n无法打开文件!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;i<10;i+) prione(i); printf("nt请输入你想要预定的机号,并且留下你的电话号码!:n"); if(fp=fopen("waitlist.txt","a")=NULL) printf("n无法打开文件!n"); exit(0); scanf("%s %s",waiti.number,waiti.telephonenumber); for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(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(time<8|time>20) printf("t输入时间错误!n"); printf("t在(8-20)时间范围内输入你已经预定的时间:"); scanf("%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(time<8|time>20) 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;i<10;i+) prione(i);Menu();5 程序运行数据及其结果1. 主菜单:2.机位查询:3.机位预定:4.查询等待信息:6 课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握一些基本的软件开发技术是十分重要和必要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力,这样才能真正为体会和认识它,才能写出一个完整的程序代码,才能使自己在过程中得到锻炼和提高。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体的建立,指针的应用等都不太熟练。通过这次课程设计,也使我对以前所学过的知识重新温故和加强。程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程算法;最后可得结论。通过这次课程设计,我深刻地体会到:<1>.细节决定成败:在学习的过程中,要注意每一个细节,要知道一个分隔符或一个括号都会使整个程序出现错误。<2>.要熟练掌握一些经典的结构和方法,如选择排序,递归,递推等,在遇到问题是可直接应用,快速解决问题。<3>.要熟悉一些标准数据库,对一些可直接利用的函数就直接利用,没必要重新定义。<4>.在设计过程中最好使程序模块化,既便于阅读,也可增加其移植性。<5>.熟能生巧。平时应该多加训练,要知道,即使我们能完全看懂一个程序,但要让你自己写出一个时仍是很困难的。它要求你对每一个语句,每一个变量,每一个函数,每一个模块都充分的熟悉,要知道它们的作用,作用域等等。因此只有平时做的多了,到时候才会游刃有余。一个多礼拜中,我有过山穷水尽的困惑;有过柳暗花明的惊喜;一个多礼拜的时间我经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我学会了如何运用所学知识去解决实际问题.附录:#include<stdio.h>#include<stdlib.h>#include<string.h>#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 detail(int time);void prione(int i);struct waitlist /*等待列表*/ char number3; char telephonenumber11; waitN;void printone(int i);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(n<1|n>5) 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();/*时间查询*/void Situation()int time;printf("输在 (8-20)范围内的时间:");scanf("%d",&time);if(time<8|time>20)printf("t时间输入错误!n");printf("输入在 (8-20)范围内的时间:");scanf("%d",&time); detail(time); /*函数调用*/getchar();Menu();/*预定函数*/void Book()int time,i=0,x,y;FILE *fp; char c; printf("在(8-20)时间范围内输入你想要预定的时间:"); scanf("%d",&time); if(time<8|time>20) printf("t时间输入错误!n"); printf("t在(8-20)时间范围内输入你想要预定的时间:"); scanf("%d",&time); detail(time); /*函数调用*/if(sumT>0) if(fp=fopen("waitlist.txt","a")=NULL) printf("n无法打开文件!n"); exit(0); printf("nt请输入你想要预定的机号,并且留下你的电话号码!:n"); scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文档添加一个结构体单元*/printf("t再次输入你想要预定的时间!n");scanf("%d",&x);/*sumT-; / *预定后该时间段空机位数减1*/*computerTx=1; / *预定后该机状态变为1*/printf("t预订成功!n");getchar();Menu();elseprintf("这是在这个时间段内未预定的电脑!n");for(i=T+1;i<6;i+) time=9+2*i;detail(time); /*函数调用*/if(sumT>0)printf("t最近的空闲时间是 %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("waitlist.txt","r")=NULL) printf("n无法打开文件!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;i<10;i+) prione(i); printf("nt请输入您想预定的机号并留下您的联系方式!:n"); if(fp=fopen("waitlist.txt","a")=NULL) printf("n无法打开文件!n"); exit(0); scanf("%s %s",waiti.number,waiti.telephonenumber); for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf("再次输入电脑的序号!n");scanf("%d",&y);sumT-; computerTy=1; printf("t好了,请等待我们的电话!n"); Menu(); else Menu();/*取消预订*/void Cancel()int time,number;printf("在(8-20)时间范围内输入你已经预定的时间:");scanf("%d",&time); if(time<8|time>20) printf("t输入时间错误!n"); printf("t在(8-20)时间范围内输入你已经预定的时间:"); scanf("%d",&time); elseprintf("t输入你预定的机号 :");scanf("%d",&number);detail(time); /* sumT+; / *预定后该时间段空机位数加1*/*computerTnumber=0; / *预定后该机状态变为0*/printf("t取消成功!n");getchar();Menu();/*查看等待信息*/void SearchWaiting()int time,i; FILE *fp;printf("t在(8-20)之间输入您要搜索的时间:");scanf("%d",&time);if(time<8|time>20) printf("t时间输入错误!n"); printf("t在(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;i<10;i+) prione(i);Menu();/*公共函数*/ void detail(int time) /*此函数功能是实现查找每个时间段空机位总数和空机位号*/ int i,j=0,k,s=0;int v30; for(i=0;i<20;i+) if(computerTi=0) s+; vj+=i;sumT=s;printf("t目前空置的电脑:%dn",sumT);for(k=0;k<j;k+)printf("t空置的电脑是:%dn",vk);void prione(int i) /*此函数功能是实现输出等待列表到屏幕*/printf("tt%s %s n",waiti.number,waiti.telephonenumber);第 37 页-

    注意事项

    本文(c语言课程设计机房机位预定系统 绝对正确,附源代码(36页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开