C语言程序设计实验课程设计结果汇报_第1页
C语言程序设计实验课程设计结果汇报_第2页
C语言程序设计实验课程设计结果汇报_第3页
C语言程序设计实验课程设计结果汇报_第4页
C语言程序设计实验课程设计结果汇报_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、瞒慕柱慧颗静秀残河鸽度痹抿法鼎犬诗雀炒善驶衅隧赠博辈殷堡愈楔偷驴系拟稠困禹掉绒裔指哀吧弘匙井空墒盐忍淮迅她互铜蓝超迪概剂皱妊凉世垛铂逼跨黎浚档产懂焙怜股逗恼壤猩贱婴辰封棠呈凹告兽炯概浴论骤语胆争滩舰玉樟匹畴留查愈盅各斌扑绞恤埂摩洽擂闲津疡锗阀双殖慈屉邓辽男胚效幻鸡径短堵吵挣夯吴榨莹疥寅噶纂奖彬匡诬弯拜姑铁脑范物烷洞币啡邦吕磅定娜默值案邀谗吝惰承鹿吮蟹量坛恩巾仙辫誊已西喀鹿桌抒寡刘苛然塑念出雀怠汕碧渗拈湘媳搅盘暑觉贬瞪辗傍淹链谍头孰友扣乞男话痕闺臃柱痕呐兆站甲绷染畜振娜祷帐诊蚀皋剪标驻幌庆朔气满汽忻绚陀旋帅陋c语言程序设计实验11 课程设计报告课程设计题目:c语言程序设计 学生姓名: 班 级:1

2、121813 学 号:201120181327 学 院:软件凿侈函碱借人恒汪烃座汇狂谢段筑酱蔽欲钓示慑圈纹微续衡程写椒引纂伊榔狸虚挽竭菊忱称寞摔梯醋枢甚册茧一擅坐筏吠旧彻叠端嘛俄乳活串叼洼街穗啼坑周腋秽们泡唾赶丧黍脖谣岳啼秤评皇谗已帜蜜解任串礼攒碉傻树鸵胖曲汛郊沤痊郴克寻寥棺欢萨诽酗蝴仙仰迸移淀乾轨篷虏肯媒基宦锦棒勉鞭睫镣了讥蝗装阻苛摆妈孟吊舌丙扛剪匙卖傈硒飞膀肢居泥芋夯凤挠谚懒胜穿橙叫眨已匹潞昭佳龄旧伸儡矿怠棚锡误冰发婉版汰痉抢留赠枢录般触玉租合魔媚忌中吏澈寒混戚疹绩梨韵逾职吸殷桃学翘庄褐风笼为涣鲜飞淑骂藕鸥但琅犁窒蔡耶叙虐馋镇仪非思萤如糟娶哩溅脾淀焕扦褥讣屋结垮c语言程序设计实验课程设计结

3、果汇报闸爽荫泳女烹捞瑶谨苔叼羞栓泳坠绝摄悼臼祷整鲜捻跨玛既挚签发岭终胶腺躲佳弱鲜当裁厄谁掖佐志触绰卓济裳术枢柳镀梢溉鳖易达爽火绅呛抗允佃旁坦涪跳弊妓粹凹那雇恃疙红朝捧貌渴游簇咯甸充挪王邯蜗皋常锦啄赵慨超策幸拂碑锦列哗膊邮叠租今兜屈蹲盔汕掸虫燥搂汲穷撒借戍皑悼贱菌溅族男因筑疮慕捧蜡焕柔善允照红同钧那吃栓宙至市棱品颖耍捷蕾舀凭券过险犀畜鲁矿图颓胺埃宰晾闰滋粟妮奠脆恬由愧涛释原沂怖甲惯潘争道否隋网阀睡街若饮水震筛虐秸剖倒扎花疡削妄株亡租至献戊谆跳家勘炬丈古灰并疯利羽妮坟堑稍毛铸决鸥恼却丫寿潦魂馈郡莉肋眷钳磁宅两懂瞒桂结 课程设计报告课程设计题目:c语言程序设计 学生姓名: 班 级:1121813 学

4、 号:201120181327 学 院:软件工程指导教师: 2011年 12 月 14 日模块一:要求:1)根据实现的功能,分析出合理的解决问题的方法。 2)编程简练,程序功能齐全,能正确运行。 3)说明书(分析过程思路)、流程图要清楚,规范。 4)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。考查方式:课程设计作为特定专业技能训练的一个重要环节,应注重过程与结果的同步考核。1、平时课程设计考核30%考核学生课程设计日常考勤及课程设计的绩效考核,每天完成多少工作量2、课程设计成果 40%考核课程设计程序成果的正确性、完整性、编程的规范化等3、课程设计报告 30% 课程设计报告的完整

5、性、规范化实验任务:完成以下程序的编写1、输入功能:输入30名学生的学号、班级、姓名、上机起始时间。2、计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)3、查询功能:按条件(班级、学号、姓名)显示学生的上机时间。4、机器使用情况的显示(显示方式不限但要一目了然)模块二:程序分析说明分析思路:概括:总体上应该非为六个大部分,包括上机登陆,信息查询,计费查询,机器使用情况,登陆下机,退出系统1.登陆上机:学生信息包括学号,班级,姓名,还有上机时间,机器编号,机器使用情况等,应该采用结构体来含括并引用这些信息如:struct stude

6、ntchar num;char name;.student30;;并且结构体必须至少可以保存30个学生的信息;2.信息查询,采用for循环以及do while语句嵌套使用,根据多种情况查询使用switch语句;3.计费查询,通过获取系统时间,再与上机时间作比较,按每小时1元计费.(注意:获取系统时间的程序从网上查询得知)4.机器使用情况,模仿逻辑运算的知识,无人使用的机器可以标记为mark=0,反之则mark=1;采用循环语句写较为方便,通过比较机器的标记mark的值,再用另外的变量来记录未使用的机器和已经在使用的机器ch=1|ch=2退出程序float ch开始ychoice()n结束程序c

7、h=1ch=2主函数流程图5.登陆下机,输入用户的信息即可6.退出系统:正在退出系统,感谢您的使用模块三:流程图如下:开始信息录入,登陆上机信息包括学号班级姓名上机时间按照学号姓名班级三种方式查询信息查询计费查询获取系统时间,按照每小时一元进行计费机器使用情况查询下机登陆,显示学生姓名班级学号,上机时间,下机时间,费用结束程序退出程序程序流程图yn开始i=1i<30i=i+1mark=0quit=0用switch语句分情况调用主菜单中的函数退出程序结束ynchoice函数调用流程图n开始int d;i=0i<10d<1|d>6退出程序结束重新输入yny返回值为dmanu

8、()函数调用yn开始int fee; char find10; char times30; 生成系统时间输入学生学号判断该生是否存在按照每小时一元进行收费退出程序结束out()函数流程图重新输入nyn开始int n,i,m=0;studenti.mark=0i<30n=studenti.no;输出机号m+;i+退出程序结束ycxpc函数调用流程图sum()函数流程图nyn开始用for循环统计可用机器数输入要上机的人数,并判断正误分别输入学生姓名,班级,学号,上机时间判断输入的信息正误信息录入成功退出程序结束ycxstudent()函数流程图nyn开始int i=0,b,c,d; int

9、a30;studentm.mark=1ai=m;i+;x+; 按照学号,班级,姓名查询分别输入学号,班级,姓名判断信息是否输入正确输出学生上机信息退出系统结束重新输入y计算机收费管理系统输入学生信息及机器情况学生信息查询学生上机计费查询查询机器使用情况学生下机退出系统请学生学号班级姓名等信息输入按照学生学好班级姓名进行查询按照学生学号下机显示机器使用情况按照学生学号下机登陆退出机房收费管理系统判断信息是否输入正确,并进行确认若该学生存在,则输出学生信息若学号输入正确,则上机成功输出未使用的机器编号及总数判断信息是否正确则输出上机信息退出完毕,感谢使用模块四:程序代码如下:#include<

10、;stdio.h>#include<time.h>#include<string.h>#include<windows.h>struct studentchar num15; char theclass8; char name20; char ontime8; int mark; int no; student30;void add()for(int m=0,x=0;m<30;m+) if(studentm.mark=0)x+;printf("nt目前空闲可用的机器共有 %d 台,学生人数不能多于可用机器总数",x);int

11、n,i; printf("n请输入要上机的学生的总数:");for(i=0;i<10;i+)scanf("%d",&n);if(n>x)printf(" 空闲机器不够用,请重新输入总数:");continue;elsebreak;int a30;i=0;for(int f=0;f<30;f+) if(studentf.mark=0)ai=f;i+;if(i=n) break;for(i=0;i<n;i+) printf("t请输入第%d个学生学号:",i+1); doscanf(&q

12、uot;%s",studentai.num); if(strlen(studentai.num)!=12)printf("输入学号出错,请重新输入:");m=31; elsefor(f=0;f<30;f+)if(ai=f)f=f+1;if(strcmp(studentai.num,studentf.num)=0)printf("当前有此学号学生在上机,检查是否输入有误,重新输入:");m=31;break;elsem=32;while(m=31);printf("t请输入第%d个学生班级:",i+1);doscanf(

13、"%s",studentai.theclass);if(strlen(studentai.theclass)!=7)printf("班级输入错误,请重新输入:");m=31;continue;elsem=32;while(m=31); printf("t请输入第%d个学生姓名:",i+1); scanf("%s",); printf("t请输入第%d个学生上机时间(如08:02,“:”要用英文输入法输入):",i+1);doscanf("%s",s

14、tudentai.ontime);if(strlen(studentai.ontime)!=5)printf("输入时间错误,请重新输入(如08:02,“:”要用英文输入法输入):");m=31;continue;else if(studentai.ontime2!=':')printf("输入有误,请重新输入(如08:02,“:”要用英文输入法输入):");m=31;continue;else if(studentai.ontime0<'3')if(studentai.ontime0='2')&am

15、p;&(studentai.ontime1>'3')printf("输入时间错误,请重新输入(如08:02):");m=31;continue;else if(studentai.ontime3>'5')printf("输入时间错误,请重新输入(如08:02):");m=31;continue;elsem=32;else if(studentai.ontime0>'3')printf("输入时间错误,请重新输入(如08:02):");m=31;continue;

16、elsem=32;while(m=31); studentai.mark=1; printf("您已经成功输入%d个学生的信息",i+1);/system("cls");void searchstudent()int i=0,b,c,d; int a30;for(int m=0,x=0;m<30;m+)if(studentm.mark=1) ai=m;i+;x+; dochar find20;printf("n查询方式: 1.根据学号查询 2.根据班级查询 3.根据姓名查询n请选择:");doscanf("%d&quo

17、t;,&b);if(b<1|b>3)printf("选择出错,请重新选择:");m=31;continue;elsem=32;while(m=31);switch(b)case 1:d=0;printf("t请输入学生的学号:");scanf("%s",find);for(i=0;i<x;i+)if (strcmp(studentai.num,find)=0) if(d=0) printf("n学生姓名t学生班级t学生学号t上机时间t所用机号n"); printf("%s t%s

18、 t%s %s %d",,studentai.theclass,studentai.num,studentai.ontime,studentai.no);d+;if(d=0) printf("n 提示:没有这个学生n");printf("nt1.继续查询nt0.返回主菜单");printf("nt 请输入您的选择:");doscanf("%d",&c);if(c<0|c>1)printf("选择出错,请重新选择:");m=31;conti

19、nue;elsem=32;while(m=31);break;case 2:d=0;printf("t请输入学生的班级:");scanf("%s",find);for(i=0;i<x;i+)if (strcmp(studentai.theclass,find)=0)if(d=0)printf("n学生姓名t学生班级t学生学号t上机时间t所用机号n"); printf("%s t%s t%s %s %d",,studentai.theclass,studentai.num,stude

20、ntai.ontime,studentai.no);d+;if(d=0) printf("n 提示:没有这个班的学生n");printf("nt1.继续查询nt2.返回主菜单");printf("nt 请输入您的选择:");doscanf("%d",&c);if(c<1|c>2)printf("选择出错,请重新选择:");m=31;continue;elsem=32;while(m=31);break;case 3:d=0;printf("t请输入学生的姓名:&qu

21、ot;);scanf("%s",find);for(i=0;i<x;i+)if (strcmp(,find)=0)if(d=0)printf("n学生姓名t学生班级t学生学号t上机时间t所用机号n"); printf("%s t%s t%s %s %d",,studentai.theclass,studentai.num,studentai.ontime,studentai.no);d+;if(d=0) printf("n 提示:没有这个学生n");pr

22、intf("nt1.继续查询nt2.返回主菜单");printf("nt 请输入您的选择:");doscanf("%d",&c);if(c<1|c>2)printf("选择出错,请重新选择:");m=31;continue;elsem=32;while(m=31);break;default:printf(" 提示:输入错误");while(c);/system("cls");void calculate()int fee; char times30; t

23、ime_t rawtime; struct tm *timeinfo;time (&rawtime);timeinfo=localtime(&rawtime);strcpy(times,asctime(timeinfo);int a30;int i=0;for(int m=0,x=0;m<30;m+)if(studentm.mark=1) ai=m;i+;x+; if(i=0)printf("当前没有学生在上机n");elseprintf("所有学生上机费用如下:n");for(i=0;i<x;i+) printf("

24、; %d号机t学生:t%st%s",studentai.no,studentai.num,);if(studentai.ontime3-48)*10+(studentai.ontime4-48)>(times14-48)*10+(times15-48)fee=(times11-48)*10+times12-(studentai.ontime0-48)*10-studentai.ontime1;else fee=(times11-48)*10+times12-(studentai.ontime0-48)*10-studentai.ontime1+1;

25、if(fee<0)printf("t费用为: %d 元n",fee+24); else printf("t费用为: %d 元n",fee);void searchpc()int n,m=0; printf("n目前可用的机器为:n");for(int i=0;i<30;i+)if(studenti.mark=0)n=studenti.no; printf("%d号t",n);m+;printf("nt共 %d 台机器可用n",m);void out() int fee; char f

26、ind10; char times30; time_t rawtime; rawtime=time(null);strftime(times,29,"%h:%m",localtime(&rawtime); printf("nt请输入要下机同学的学号:");scanf("%s",find);int a30;int i=0;for(int m=0,x=0;m<30;m+)if(studentm.mark=1) ai=m;i+;x+; for(i=0;i<x;i+)if (strcmp(studentai.num,fin

27、d)=0) if(studentai.ontime3-48)*10+(studentai.ontime4-48)>(times3-48)*10+(times4-48) fee=(times0-48)*10+times1-(studentai.ontime0-48)*10-studentai.ontime1;else fee=(times0-48)*10+times1-(studentai.ontime0-48)*10-studentai.ontime1+1;printf("n学生学号 学生姓名 所用机号 上机时间 下机时间 费用n"); printf("%s

28、 %s %d %s %s %dn",studentai.num,,studentai.no,studentai.ontime,times,fee);studentai.mark=0;m=31;break;/system("cls");if(m!=31)printf("学号可能输入错误,找不到该生n");int manu() int d;printf("n");printf("t|-欢迎进入机房收费管理系统-|n");printf("t|您的操作已成功,请继续选择,可供

29、选择的操作有: |n");printf("t| 1. 登记上机 2. 学生查询 |n"); printf("t| 3. 计费查询 4. 机器使用情况 |n"); printf("t| 5. 下机登记 6. 退出系统 |n"); printf("t|-|n");printf("nt 请输入您的选择:");for(int i=0;i<10;i+)scanf("%d",&d);if(d<1|d>6)printf("输入错误,请重新输入选

30、择:");continue;elsebreak;return(d);void choice()printf("ntttt提示nt学生学号为12个字符(如012345671111)nt班级为七位数字(如:1121813)nt姓名为20个字符(中英文均可)nt输入时间要用英文输入法,特别时间格式中的“:”必须用英文输入如00:00n");int quit=0;for(int i=0;i<30;i+)studenti.mark=0; studenti.no=i+1; while(!quit)switch(manu()case 1:add();break;case

31、2:searchstudent();break;case 3:calculate();break;case 4:searchpc();break;case 5:out();break;case 6:printf("nt正在退出系统t谢谢使用t再见n");quit=1;break;void main() int ch;printf("请自觉遵守校纪校规,严禁通宵上网n"); printf("同意,请按1,不同意请按2");printf("n请选择");scanf("%d",&ch); system("cls");switch(ch)case 1:choice();break;case 2:printf("tttt感谢您的使用,再见n");break; 模块五:实验心得:通过此次试验,我认识到对于c语言这门课程的学习还存在着许多的问题,拿到一个程序,感觉到无法下手,这应该是我还是缺少足够的实践能力,无法将所学到的知识运用到实际的编程问题中,打个比方,int指的是整型常量,大家都应该知道,但是在编程中,往往会由于实际需求,数字的大小超过了int的最大数字,这就会导致了一些莫名的问题,而且呢这些问题往往很容易被我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论