机房管理收费系统报告
更新时间:2024-03-26 22:47:01 阅读量: 综合文库 文档下载
课 程 设 计 报 告
学院、系: 吉林大学珠海学院计算机科学与技术系 专业名称: 课程设计科目 学生姓名: 指导教师: 完成时间:
网络工程 C语言程序课程设计
张军 王老师 2010年3月-5月
题目: 机房收费管理系统
(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)
(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)
一、设计任务与目标:
1. 学会分析题目、设计算法,尽量做到精简高效。 2. 学会运用结构体,时间函数等一些常用函数。 3. 学会实现函数的定义、调用。
4. 实现动手能力的基本训练,提高发现、提出、分析和解决实际问题的能力。
二、方案设计与论证:
1. 2. 3. 4. 5. 6. 7.
首先用一个结构体来定义学生的学号、班级、姓名、上机起始时间。 编写一个输入函数,用于输入学生的信息。 编写一个时间函数,用于计算上机费用。
编写一个查询函数,用于按条件查询上机学生的信息。 编写一个菜单函数,用于在窗口显示功能菜单。 编写一个机器使用情况的函数,显示机器的使用情况。 编写一个主函数,用来调用前面的函数。
三、程序框图或流程图,程序清单与调用关系:
开始 a=4 输入a a=2 输入信息查询 输入信息 输出费用 输出学生信息 a=0 a=3 a=1 机器情况 c=1 输入c 输入c 输入c c=1 输入c C=0 C=0 结束 C=0
四、全部源程序清单:
#include
char id[20]; char Class[20]; char name[20]; char ontime[20];
char num[30]; //机器数量 }student[100];
int n; //录入学生人数
void addition() //录入函数,用于录入学生信息 { int i;
printf(\请输入录入学生信息的总数:\ scanf(\ for(i=1;i<=n;i++) {
printf(\请输入第%d个学生机号:\ scanf(\
printf(\请输入第%d个学生学号:\ scanf(\
printf(\请输入第%d个学生班级:\ scanf(\ printf(\请输入第%d个学生姓名:\ scanf(\
printf(\请输入第%d个学生上机时间:\ scanf(\
printf(\提示:您已成功录入第%d条信息\\n\ } }
void machine() //显示机器使用情况的函数 {
int i,m; //m为没有使用的机器数
printf(\printf(\机号 学号 班级 姓名 上机起始时间\\n\printf(\for(i=0;i { printf(\ ent[i].Class,student[i].name,student[i].ontime); //输出学号、班级、姓名、上机起始时间 } m=30-n; printf(\ 还 有 %d 台 空 机 器 \ printf(\} void calculate() //计算函数,用于计算上机费用 { int hours; char times[30]; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo)); //下机时的系统时间赋给times printf(\所有学生上机费用如下:\\n\ for(int i=1;i<=n;i++) { printf(\学生%d费用:\ if((student[i-1].ontime[3]-48)*10+student[i-1].ontime[4]>(times[14]-48)*10+times[15]) //上机时间跟下机时间的分钟数相比较 hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-stud ent[i-1].ontime[1]; //下机时间的小时数减去上机时间的小时数 else hours=(times[11]-48)*10+times[12]-(student[i-1].ontime[0]-48)*10-student[i-1].ontime[1]+1; //下机时间的小时数减去上机时间的小时数再加1 printf(\输出上机小时数,即上机费用 } } void search() //查询函数,用于按条件查询上机学生的信息 { int i,b,c; do { char putin[20]; printf(\请选择查询方式:1.根据学号查询;2.根据班级查询;3.根据姓名查询;4.根据上机时间查询5.根据机号查询:\ scanf(\ switch(b) { case 1: printf(\请输入学生的学号:\ scanf(\ for(i=0;i { if(strcmp(student[i].id,putin)==0) //输入的学号与原来录入的学号比较看是否有相同 { printf(\机号\\t学生学号\\t学生班级\\t学生姓名\\t上机时间\\n\ printf(\lass,student[i].name,student[i].ontime);} while(i>n) printf(\提示:该生不存在\ } goto A; case 2: printf(\请输入学生的班级:\ scanf(\ for(i=0;i { if (strcmp(student[i].Class,putin)==0) //输入的班级与原来录入的班级比较看是有否相同 { printf(\机号\\t学生学号\\t学生班级\\t学生姓名\\t上机时间\\n\ printf(\lass, student[i].name,student[i].ontime);} while(i>n) printf(\提示:该生不存在\ } goto A; case 3: printf(\请输入学生的姓名:\ scanf(\ for(i=0;i { if (strcmp(student[i].name,putin)==0) //输入的姓名与原来录入的姓名比较看是否有相同 { printf(\机号\\t学生学号\\t学生班级\\t学生姓名\\t上机时间\\n\ printf(\lass, student[i].name,student[i].ontime);} while(i>n) printf(\提示:该生不存在\ } goto A; case 4: printf(\请输入学生的上机时间:\ scanf(\ for(i=0;i { if (strcmp(student[i].ontime,putin)==0) //输入的时间与原来录入的时间比较看是否有相同 { printf(\机号\\t学生学号\\t学生班级\\t学生姓名\\t上机时间\\n\ printf(\lass, student[i].name,student[i].ontime);} while(i>n) printf(\提示:该生不存在\ } goto A; case 5: printf(\请输入学生机号:\ scanf(\ for(i=0;i { if (strcmp(student[i].num,putin)==0) //输入的时间与原来录入的时间比较看是否有相同 { printf(\机号\\t学生学号\\t学生班级\\t学生姓名\\t上机时间\\n\ printf(\lass, student[i].name,student[i].ontime);} while(i>n) printf(\提示:该生不存在\ } goto A; default:printf(\提示:输入错误\ } A:printf(\继续\\n\\t**0.返回主菜单\ //输入1就继续查询,输入0就返回主菜单 printf(\请输入您的选择:\ scanf(\ }while(c); } void menu() //窗口主菜单函数 { printf(\欢迎进入机房收费管理********************\\n\printf(\录入功能 2.计算功能 *\\n\printf(\查询功能 4.机器使用情况 0.-*EXIT*- *\\n\printf(\printf(\请输入您的选择:\} void main() { system(\窗口颜色 int a; C:menu(); //菜单功能 scanf(\ switch(a) { case 0:printf(\正在退出**谢谢使用本系统,再见\ case 1:addition();goto C; /*录入功能*/ case 2:calculate();goto C; /*计算功能*/ case 3:search();goto C; /*查询功能*/ case 4:machine();goto C; /*机器使用情况*/ } } 五、程序运行的测试与分析: 运行,出现主菜单,当输入0或1或2或3或4时,成功进入相应 功能:①输入1,进入录入功能,需要输入学生的信息,输完后会提示:已经成功输入多少条信息,然后自动回到主菜单,可以继续选择其它功能。②输入2,显示出每个学生的上机费用,然后自动跳回主菜单。 ③输入3,查询功能,出现5个条件供选择,有按学号查询,按姓名查询,按班级查询,按上机时间查询,按机号查询,输入相应的数字,再按所需条件,就会出现学生信息,然后按0则继续查询,按1则返回主菜单。④输入4,机器使用情况,会在窗口出现每个学生的机器号数和学生信息,还有剩余几台机器没有人在使用。⑤输入0,则退出系统。 六、结论与心得: 刚看到这题目时,感觉有点难上手,后来静下心来仔细分析,感觉 没想象中的难,只是对这个时间函数还不是很了解,然后在网上查找了时间函数的用法,把整个程序的结构连接起来就好了。在调试时,出现了不少错误,然后一个一个的找出来改正,直到调试成功。这次实践课让我学到了很多,学会了时间函数的一些用法,把字符型数字转换成整型数字等方很多法,让我知道要多动手自己去做去实践,只看课本是不能学到多少的,还有要增广自己的知识面,多学多问,不断吸收才能使自己进步。 七、参考资料: 在网上百度了时间函数的用法。 八、致谢: 感谢学校、老师为我们开展了这次C语言专业实践课,为我们提供 了这么好的一个自我实践机会,让我们提高了自己的动手实践能力,让我们对C语言有了更深入的了解和兴趣。还要感谢指导老师对我们辛勤的教导,认真的为我们答疑,严格的要求我们,谢谢!
正在阅读:
机房管理收费系统报告03-26
《中学生心理健康及对策》结题报告03-10
乡镇干部个人学习讨论落实活动反思剖改报告06-09
2016年最详细的CPA考试《审计》复习笔记第07章0203-14
强奸案侦破纪实四川南充特大抢劫强奸杀人团伙案侦破纪实03-28
HSCSA-Security认证培训网络课程--数据通信网络技术概述v1.005-18
半导体集成电路生产制造项目商业计划书05-07
浦东新王牌张U老师高三语法资料02-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 收费系统
- 机房
- 报告
- 管理