




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计报告题目: 机房收费管理系统 专业年级: 通信三班 学号: 姓名: 指导教师: 张采芳 20 12 年 6 月 问题定义选定的题目内容:选题十二:机房收费管理系统(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。 (2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位) (3)修改功能:修改学生上机的个人档案(如:增添) (4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。 实际完成的软件功能:(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。 (2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位) (3)修改功能:修改学生上机的个人档案(如:增添) (4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案(5)显示功能:显示全部机器的使用信息开发工具 Visual C+ 6.0数据结构 见代码注释 /(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。 /(2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位) /(3)修改功能:修改学生上机的个人档案(如:增添)/(4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。#include #include #include #include struct time-/*时间*/int hour;int minute;int second;typedef struct-/*学生信息*/char num20;-/*学号*/char banji; -/*班级*/int flag; -/*用来标注学生是否上机*/char name20; -/*姓名*/struct time kaishi,jiesu;-/*上机起始时间*/Student;Student stu50; -/*信息库*/struct computer-/*机器信息*/int f; -/*用来标注这台机器是否使用*/Student stut; -/*使用这台机器的学生*/com30; -/*30台机器*/int k;int main_menu()-/*主菜单*/char c;dosystem(cls);-/*清屏*/printf(t机房收费管理系统n);printf(t 1.输入学生信息 n);printf(t 2.上机时间 n);printf(t 3.下机时间 n); printf(t 4.查询上机时间及费用 n);printf(t 5.电脑使用情况显示 n);printf(t 0.退出系统 n);printf(tn);printf(t请选择菜单序号(0-5): );c=getchar();while(c5); -/*判断输入是否合法*/return(c-0);int input(Student stu,int n) -/*输入学生信息*/int i=0;char sign=0;while(sign!=n&sign!=N) -/*判断是否继续输入学生信息*/getchar();-/*吃掉回车*/printf(ntt 学号:);gets(stun+i.num);printf(tt 班级:);scanf(%s,&stun+i.banji);getchar();printf(tt 姓名:);gets(stun+);printf(tt 继续输入? 是请按Y,否请按N:);scanf(%c,&sign);stun+i.flag=0; -/*初始化为未上机*/i+;return(n+i);void shangji(Student stu,int n) -/*上机*/char num_t20,name_t20;int i,s;doprintf(ntt 使用姓名输入1ntt 使用学号输入2ntt 请输入序号:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:);gets(name_t);for(i=0;in;i+)-/*查找信息库中是否有该学生信息*/if(strcmp(,name_t)=0)break;elseprintf(tt 请输入学号:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 无该生记录!请输入该生信息后再上机!n);return;else if(stui.flag=1)printf(tt 该生正在上机!n);return;elsefor(k=0;k30;k+)if(comk.f=0)comk.f=1; -/*该台机器标记为使用*/printf(tt请输入上机时间(当前时间):);scanf(%d:%d:%d,&stui.kaishi.hour,&stui.kaishi.minute,&stui.kaishi.second);stui.flag=1; -/*该生标记为上机*/comk.stut=stui; -/*记录使用这台机器的学生信息*/break;if(k=30)printf(tt 机器全部使用中,请稍后再上机!n);void calculate(Student stu) -/*上机时间及费用计算*/int t;struct time timet;if(stu.jiesu.secondstu.kaishi.second)if(stu.jiesu.minute=0)stu.jiesu.hour-=1;stu.jiesu.minute=59;elsestu.jiesu.minute-=1;timet.second=stu.jiesu.second+60-stu.kaishi.second;elsetimet.second=stu.jiesu.second-stu.kaishi.second;if(stu.jiesu.minutestu.kaishi.minute)stu.jiesu.hour-=1;timet.minute=stu.jiesu.minute+60-stu.kaishi.minute;elsetimet.minute=stu.jiesu.minute-stu.kaishi.minute;timet.hour=stu.jiesu.hour-stu.kaishi.hour;if(timet.second=0&timet.minute=0)t=timet.hour;elset=timet.hour+1; -/*不满一小时按一小时算*/printf(tt 该生上机用时%d小时,费用为%d元n,t,t);void xiaji(Student stu,int n) -/*下机*/char num_t20,name_t20;int i,s;doprintf(ntt 使用姓名输入1ntt 使用学号输入2ntt 请输入序号:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:);gets(name_t);for(i=0;in;i+)if(strcmp(,name_t)=0)break;elseprintf(tt 请输入学号:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 没有这个学生!n);return;else if(stui.flag=0)printf(tt 该生未上机或已下机!n);return;elseprintf(tt 请输入下机时间(当前时间):);scanf(%d:%d:%d,&stui.jiesu.hour,&stui.jiesu.minute,&stui.jiesu.second);calculate(stui); -/*计算并输出上机费用*/stui.flag=0; -/*该生标记为未上机*/for(k=0;k3;k+)-/*将刚下机同学使用的机器标记为未使用*/if(strcmp(comk.stut.num,stui.num)=0)comk.f=0; -/*该机器标记为未使用*/break;void chaxun(Student stu,int n) -/*上机时间查询*/char num_t20,name_t20;int i,s;doprintf(ntt 使用姓名输入1ntt 使用学号输入2ntt 请输入序号:);scanf(%d,&s);while(s!=1&s!=2);getchar();if(s=1)printf(tt 请输入姓名:);gets(name_t);for(i=0;in;i+)if(strcmp(,name_t)=0)break;elseprintf(tt 请输入学号:);gets(num_t);for(i=0;in;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)printf(tt 记录无此学生!n);return;else if(stui.flag=1)printf(tt 该生正在上机,上机起始时间为:%d:%d:%dn,stui.kaishi.hour,stui.kaishi.minute,stui.kaishi.second);elseprintf(tt 该生未上机或下机!n);void qingkuang()-/*全部机器使用情况显示*/printf(t 机器号 是否使用 使用者 学号 班级 上机时间n);printf(t-n);for(k=0;k30;k+)if(comk.f=0)printf(t%02d否-:-:-n,k+1);elseprintf(t%02d是%-10s%-10s%2s%02d:%02d:%02dn,k+1,,comk.stut.num,comk.stut.banji,comk.stut.kaishi.hour,comk.stut.kaishi.minute,comk.stut.kaishi.second);printf(t);system(pause);-/*屏幕显示内容停留一段时间,直到继续操作为止*/int main()-/*主函数*/int n=0;for(k=0;k30;k+)-/*全部机器标记为未使用*/comk.f=0;for(;)switch(main_menu()case 1:system(cls);printf(*输入学生信息*n);n=input(stu,n);break;case 2:system(cls);printf(*学生上机*n);shangji(stu,n);printf(tt);system(pause);break;case 3:system(cls);printf(*学生下机*n);xiaji(stu,n);printf(tt);system(pause);break;case 4:system(cls);printf(*查询上机时间及费用*);chaxun(stu,n);printf(tt);system(pause);break;case 5:system(cls);printf(*电脑使用情况显示*n);qingkuang();break;case 0:system(cls);printf(*感谢使用机房收费管理系统,欢迎下次使用!*);printf(tt);system(pause);exit(0);return 0;算法描述 程序调试情况 1.在调试过程中发现自己犯了很多细节性的错误,比如标点符号的错误,然后一个一个发现,修正,过程很冗杂,都要怪自己在编写的时候不细心,挺后悔的,以后在做一件事的时候就要认真,以避免不必要的麻烦。 2此外,若只是最后对学生的信息进行系统的上机时间和下机时间的输入就使得学生在使用计算机时无法查询自己上机的相关信息。最后通过上机时学生信息的查找(增添)并输入该学生的上机时间(当前时间),下机时学生信息查找且输入下机时间(当前时间),使得学生能更好的查询自己使用计算机的情况。 3.考虑到现实因素,机房的计算机数目有限,不能不受限制的使用。因此,我对该题目所做的要求进行了拓展,即显示所有计算机的使用情况,这样能更直观的了解当前机房所有计算机的使用情况。 心得及体会 在做这次课程设计的过程中,我遇到了很多的困难;在发现解决这些问题的过程中,我收获了宝贵的经验:1) 在设计程序之前,要认真阅读题目及要求,对你所设计的题目和内容有一个系统的了解,知道所设计的题目和内容包含那些资源。2) 设计程序过程中,最重要的是要有一个清晰的思路和一个完整的软件流程图。所以,先把设计原理与整体思路弄清楚,再把流程图画出来,按照流程图一步步的编程,这样做起来井井有条,事半功倍。3) 在设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智慧校园安全系统设备采购及施工一体化服务合同
- 2025年环保型城市公交运输合同续签范本
- 2025年建筑工程施工安全员考试模拟题及答案公布
- 2025年智能化物业管理培训教程及实战模拟题集
- 2025年房地产评估市场分析与预测题
- 2025年心理学考研大纲解读与模拟题集答案解析
- 2025年企业党务统战干事招录模拟题及解析
- 2025年教育行业资深教研员招聘面试题集及备考策略探讨
- 2025年质量检验员专业面试模拟题及参考答案
- 2025年初级网络安全工程师认证考试题库及答案
- 行政法与行政诉讼法案例教程 课件全套 殷兴东 第1-8章 行政法的基本原理-行政赔偿
- 高中新班主任培训
- 新媒体运营与推广- 课程标准、授课计划
- 中式烹调技艺高职全套教学课件
- 陕西华山的险峻之旅
- 苏教版分式章起始课-展示课件
- 《茶文化与茶健康》第一讲
- OBE理念下的小学音乐教学设计反向思路初探
- GB 24541-2022手部防护机械危害防护手套
- 《PLC与变频器控制》课件 1.PLC概述
- 智慧产业园综合管理平台解决方案
评论
0/150
提交评论