




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计实验 课程设计报告课程设计题目:C语言程序设计 学生姓名: 班 级:1121813 学 号:201120181327 学 院:软件工程指导教师: 2011年 12 月 14 日模块一:要求:1)根据实现的功能,分析出合理的解决问题的方法。 2)编程简练,程序功能齐全,能正确运行。 3)说明书(分析过程思路)、流程图要清楚,规范。 4)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。考查方式:课程设计作为特定专业技能训练的一个重要环节,应注重过程与结果的同步考核。1、平时课程设计考核30%考核学生课程设计日常考勤及课程设计的绩效考核,每天完成多少工作量2、课程设计成果 40%考核课程设计程序成果的正确性、完整性、编程的规范化等3、课程设计报告 30% 课程设计报告的完整性、规范化实验任务:完成以下程序的编写1、输入功能:输入30名学生的学号、班级、姓名、上机起始时间。2、计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)3、查询功能:按条件(班级、学号、姓名)显示学生的上机时间。4、机器使用情况的显示(显示方式不限但要一目了然)模块二:程序分析说明分析思路:概括:总体上应该非为六个大部分,包括上机登陆,信息查询,计费查询,机器使用情况,登陆下机,退出系统1.登陆上机:学生信息包括学号,班级,姓名,还有上机时间,机器编号,机器使用情况等,应该采用结构体来含括并引用这些信息如:Struct studentChar 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结束程序ch=1ch=2主函数流程图5.登陆下机,输入用户的信息即可6.退出系统:正在退出系统,感谢您的使用模块三:流程图如下:开始信息录入,登陆上机信息包括学号班级姓名上机时间按照学号姓名班级三种方式查询信息查询计费查询获取系统时间,按照每小时一元进行计费机器使用情况查询下机登陆,显示学生姓名班级学号,上机时间,下机时间,费用结束程序退出程序程序流程图YN开始i=1i30i=i+1mark=0quit=0用switch语句分情况调用主菜单中的函数退出程序结束YNChoice函数调用流程图N开始Int d;i=0i10d6退出程序结束重新输入YNY返回值为dManu()函数调用YN开始int fee; char find10; char times30; 生成系统时间输入学生学号判断该生是否存在按照每小时一元进行收费退出程序结束Out()函数流程图重新输入NYN开始int n,i,m=0;studenti.mark=0i30n=studenti.no;输出机号m+;i+退出程序结束YCxPc函数调用流程图SUM()函数流程图NYN开始用for循环统计可用机器数输入要上机的人数,并判断正误分别输入学生姓名,班级,学号,上机时间判断输入的信息正误信息录入成功退出程序结束YCxStudent()函数流程图NYN开始int i=0,b,c,d; int a30;studentm.mark=1ai=m;i+;x+; 按照学号,班级,姓名查询分别输入学号,班级,姓名判断信息是否输入正确输出学生上机信息退出系统结束重新输入Y计算机收费管理系统输入学生信息及机器情况学生信息查询学生上机计费查询查询机器使用情况学生下机退出系统请学生学号班级姓名等信息输入按照学生学好班级姓名进行查询按照学生学号下机显示机器使用情况按照学生学号下机登陆退出机房收费管理系统判断信息是否输入正确,并进行确认若该学生存在,则输出学生信息若学号输入正确,则上机成功输出未使用的机器编号及总数判断信息是否正确则输出上机信息退出完毕,感谢使用模块四:程序代码如下:#include#include#include#includestruct studentchar num15; char theClass8; char name20; char onTime8; int mark; int no; student30;void add()for(int m=0,x=0;m30;m+) if(studentm.mark=0)x+;printf(nt目前空闲可用的机器共有 %d 台,学生人数不能多于可用机器总数,x);int n,i; printf(n请输入要上机的学生的总数:);for(i=0;ix)printf( 空闲机器不够用,请重新输入总数:);continue;elsebreak;int a30;i=0;for(int f=0;f30;f+) if(studentf.mark=0)ai=f;i+;if(i=n) break;for(i=0;in;i+) printf(t请输入第%d个学生学号:,i+1); doscanf(%s,studentai.num); if(strlen(studentai.num)!=12)printf(输入学号出错,请重新输入:);m=31; elsefor(f=0;f30;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(%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,studentai.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.onTime03)printf(输入时间错误,请重新输入(如08:02):);m=31;continue;else if(studentai.onTime35)printf(输入时间错误,请重新输入(如08:02):);m=31;continue;elsem=32;else if(studentai.onTime03)printf(输入时间错误,请重新输入(如08:02):);m=31;continue;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;m30;m+)if(studentm.mark=1) ai=m;i+;x+; dochar find20;printf(n查询方式: 1.根据学号查询 2.根据班级查询 3.根据姓名查询n请选择:);doscanf(%d,&b);if(b3)printf(选择出错,请重新选择:);m=31;continue;elsem=32;while(m=31);switch(b)case 1:d=0;printf(t请输入学生的学号:);scanf(%s,find);for(i=0;ix;i+)if (strcmp(studentai.num,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);printf(nt1.继续查询nt0.返回主菜单);printf(nt 请输入您的选择:);doscanf(%d,&c);if(c1)printf(选择出错,请重新选择:);m=31;continue;elsem=32;while(m=31);break;case 2:d=0;printf(t请输入学生的班级:);scanf(%s,find);for(i=0;ix;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,studentai.onTime,studentai.no);d+;if(d=0) printf(n 提示:没有这个班的学生n);printf(nt1.继续查询nt2.返回主菜单);printf(nt 请输入您的选择:);doscanf(%d,&c);if(c2)printf(选择出错,请重新选择:);m=31;continue;elsem=32;while(m=31);break;case 3:d=0;printf(t请输入学生的姓名:);scanf(%s,find);for(i=0;ix;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);printf(nt1.继续查询nt2.返回主菜单);printf(nt 请输入您的选择:);doscanf(%d,&c);if(c2)printf(选择出错,请重新选择:);m=31;continue;elsem=32;while(m=31);break;default:printf( 提示:输入错误);while(c);/system(cls);void calculate()int fee; char times30; time_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;m30;m+)if(studentm.mark=1) ai=m;i+;x+; if(i=0)printf(当前没有学生在上机n);elseprintf(所有学生上机费用如下:n);for(i=0;i(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; if(fee0)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;i30;i+)if(studenti.mark=0)n=studenti.no; printf(%d号t,n);m+;printf(nt共 %d 台机器可用n,m);void Out() int fee; char find10; 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;m30;m+)if(studentm.mark=1) ai=m;i+;x+; for(i=0;i(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 %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|您的操作已成功,请继续选择,可供选择的操作有: |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;i10;i+)scanf(%d,&d);if(d6)printf(输入错误,请重新输入选择:);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;i30;i+)studenti.mark=0; studenti.no=i+1; while(!quit)switch(manu()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2030年新能源绿色金融政策与绿色能源发电研究报告
- 2025年新能源汽车电池管理系统智能化与车辆智能办公报告
- 2025年光储充一体化在电动汽车充电桩产业链的投资分析报告
- 农发行宜宾市珙县2025秋招笔试专业知识题专练及答案
- 音乐产业版权与音乐版权运营市场挑战2025年研究报告
- 新能源产业2025年抽水蓄能行业市场分析报告:技术创新与产业布局
- 农发行滁州市定远县2025秋招无领导小组面试案例库
- 2025年二建真题及答案
- 农发行四平市双辽市2025秋招笔试创新题型专练及答案
- 农发行成都市双流区2025秋招无领导小组面试案例库
- 《丹青意蕴》第三课《国色新尚》课件 2025-2026学年+人教版(2024)初中美术八年级上册
- 2024年国家公务员考试《申论》真题(副省级)及参考答案
- 抗菌药物敏感性试验(药敏试验)
- 听余映潮老师讲《咏雪》(课堂实录 )
- 华为TaiShan200-X6000服务器技术白皮书
- 地质勘查单位安全检查表-(修订本)
- 山东省装备制造业调整振兴规划在建重点项目表
- 中英-外研社五年级上册课文翻译(一年级起点)
- 氨基酸溶解性(共1页)
- GDX2包装机组工艺流程简介
- 张家口至涿州公路张家口段(含连接线)建设项目水资源论
评论
0/150
提交评论