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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序的设计报告课程设计.docx

1、C语言程序的设计报告课程设计分类号 编 号 华北水利水电大学 North China Institute of Water Conservancy and Hydroelectric Power 课 程 设 计课程名 高级语言程序设计 题 目 机房机位预定系统 院 系 信息工程学院 专 业 计算机科学与技术 姓 名 学 号 指 导 教 师 2015年 1 月 3 日一、基础题【题目3】任意输入一个偶数,验证其总能表示为两个素数之和。程序代码:#includeint main() int n; while(scanf(%d,&n),n) int i,j; for(j=2;j=n/2;j+) fo

2、r(i=2;ij-1) for(i=2;in-j-1)&n-j!=1)printf(%d=%d+%dn,n,j,n-j); return 0;运行结果:【题目4】某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。程序代码:#includeusing namespace std;void main() char num4,i; cinnum; for(i=0;i4;i+) numi-48=(numi-48-48+5)%10+48; i=num0; num0=num3;

3、 num3=i; i=num1; num1=num2; num2=i; coutnum; 运行结果:【题目6】编写一个将某个范围在032767之间的整数转换为R进制(R=2,8,16)的通用程序。程序代码:#include #include void trans(int n,int m) if(n) trans(n/m,m); if(n%m10) printf(%c,n%m+0); else printf(%c,n%m-10+A); void main() int n,m; printf(输入十进制数N和转化的进制数M:); scanf(%d%d,&n,&m); printf(十进制数%d转化

4、成%d进制后的结果为:,n,m); trans(n,m); printf(n); 运行结果:二、综合应用题【题目6】机房机位预定系统20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。1.题目分析:根据题目要求在程

5、序中需实现查询,预定,排队等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。因此,整个系统总体分为3个模块,分别是:查询模块、预定模块、取消模块。首先,主函数设计的一般比较简洁,只能提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。本模块通过do-while语句和switch语句实现主菜单的显示和对功能的选择。查询模块:本模块的功能是通过调用函数指向队列的指针查询用户输入的时间段的机位状态,如果有空机位就在屏幕上显示出来当前时刻的空机位的总数和所以的空机位的序号,如果没有空机位则在屏幕上显示有零台空机位。预定模块:在该模块的设

6、计中,要让预定者按预定的顺序存在结构体中,当预定者的总数小于最大值时,就要用到通过指针的移动来把预定者的信息按顺序存储起来,用两个不同的指针分别指向链表的开始,链表的结尾处。取消模块:要取消预定,有两种情况。第一是从有机位的人要取消预定,在该种情况下,排队的第一人的位置就插入到该取消者的位置。而指向等待队列首地址的指针就指向原来排队的第二人。第二种情况就是取消预定的人本来就在等待队列中,只需要直接删除该结点即可。2.程序代码:#include#include#include#include #define N 20#define T (time-8)/2int sum6=0;int compu

7、ter620=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 Situat

8、ion();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);void main()Menu(); /*当前状态函数*/void Menu()/*主界面*/int n,w;doputs(tt*机房机位预定系统*n);puts(tt*菜单*n);puts(ttt 1.查询某时间段机位状态);/*查询某时

9、间段机位状态*/puts(ttt 2.预定空机位);/*预定空机位*/puts(ttt 3.取消预订);/*取消预订*/puts(ttt 4.查询等待信息); /*查询等待信息*/puts(ttt 5.退出); /*退出*/puts(tt*n);printf(选择菜单号(1-5):);scanf(%d,&n); if(n5)w=1;getchar();elsew=0;while(w=1);switch(n)case 1:Situation();break;case 2:Book();break;case 3:Cancel();break;case 4:SearchWaiting();break

10、;case 5:exit(0);break;getch();/*时间查询*/void Situation()int time;printf(输在(8-20)范围内的时间:);scanf(%d,&time);if(time20)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(

11、%d,&time);if(time20)printf(t时间输入错误!n); printf(t在(8-20)时间范围内输入你想要预定的时间:);scanf(%d,&time); detail(time);/*函数调用*/if(sumT0)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;i1;i+)fwrite(&waiti,sizeof(str

12、uct 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;i0)printf(t最近的空闲时间是%d,%dn,2*i+8,2*i+10);break;printf(t你想要预定吗?:y/n?);scanf(%s,&c);ge

13、tchar();if(c=Y|c=y)if(fp=fopen(waitlist.txt,r)=NULL)printf(n无法打开文件!n);exit(0);elseprintf(waitlist number telephonenumbern);for(i=0;!feof(fp);i+)fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i10;i+) prione(i);printf(nt请输入您想预定的机号并留下您的联系方式!:n);if(fp=fopen(waitlist.txt,a)=NULL

14、)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);/*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf(再次输入电脑的序号!n);scanf(%d,&y);sumT-;computerTy=1;printf(t好了,请等待我们的电话!n);Menu();else Menu(); /*取消预订*/void Cancel()

15、int time,number;printf(在(8-20)时间范围内输入你已经预定的时间:); scanf(%d,&time);if(time20)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();/*查看等待信

16、息*/void SearchWaiting()int time,i;FILE *fp; printf(t在(8-20)之间输入您要搜索的时间:);scanf(%d,&time); if(time20)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);elseprintf(waitlist number telephonenumbern);for(i=0;!feof(fp);

17、i+) fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i10;i+) prione(i);Menu();/*公共函数*/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(t目前空置的电脑:%dn,sumT);for(k=0;kj;k+)printf(t空置的电脑是:%dn,vk); void

18、prione(int i)/*此函数功能是实现输出等待列表到屏幕*/printf(tt%s %sn,waiti.number,waiti.telephonenumber);3.运行结果:3、总结通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,两周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼。回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与

19、实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,一定把以前所学过的知识从新温故。做完这个课程设计,我的自信一下子提高了,我也会慢慢写程序了。这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题。另外,在做任何事倒要有耐心,不要一遇到困难就退缩。4、参考文献1谭浩强著.C程序设计(第三版).北京:清华大学出版社,20052谭浩强编著.C程序设计题解与上机指导(第三版).北京:清华大学出版社,20053黄明等编著C语言程序设计北京:电子工业出版社4郭翠英编著C语言课程设计案例精选北京:中国水利水电出版社

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

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