(C语言)机房收费管理系统课程设计(共18页).doc
精选优质文档-倾情为你奉上课程设计报告课程设计题目:机房收费管理系统 学 号:姓 名:刘名专 业:信息与计算科学班 级:信息131指导教师: 孙雪莲 2015年 3月18 日1 实验题目:Ø 机房收费管理系统设计任务(1)输入功能:输入30名学生的学号、班级、姓名、上机起止时间。(2)计算功能:计算每个学生的上机费用。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名、上机时间)显示学生信息。2 实验时间,地点实验时间:15周实验地点:软件楼 2083 实验目的:通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。4 实验要求: 从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:(1)进一步掌握C语言程序设计的基本思想和方法;(2)掌握结构化程序设计的基本原理及应用;5 实验思路:需求分析:根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。在计算功能方面,需要计算出每个学生的上机所用的费用。在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。上机费用班级流程图为:上机时间姓名学号计算查询主菜单输入上机时间姓名班级学号6 实现过程:#include<stdio.h> /*I/O函数*/#include<string.h> /*字符串函数*/#include<stdlib.h> /*标准库函数*/struct time /*定义时间结构*/int hour; /*时*/int minute; /*分*/;typedef struct STUDENT /*定义学生信息结构*/int no; /*学号*/char cla10; /*班级*/char name10; /*姓名*/int time_hour; /*上机时间*/int time_minute;struct time begin,end; /*嵌套时间结构*/;struct STUDENT student30;static int i =0; /*全局静态变量*/void insert(); /*输入功能函数*/void end_money(); /*结账功能函数*/void select_no(); /*学号查询功能函数*/void select_name(); /*姓名查询功能函数*/void select_cla(); /*班级查询功能函数*/int main() /*主函数*/int i;for(;) /*主菜单*/printf("tt*n");printf("tt*机房收费管理系统*n"); printf("tt*n");printf("1.-输入学生信息:n");printf("2.-结账:n");printf("3.-按学号查询:n");printf("4.-按班级查询:n");printf("5.-按姓名查询:n");printf("6.-退出系统:n");printf("nn编程人员:刘忠杨张鼎");printf("nn请选择功能:");scanf("%d",&i);switch(i)/*选择分支结构*/case 1: system("cls");insert();break;case 2:system("cls");end_money();break;case 3:system("cls");select_no();break;case 4:system("cls");select_cla();break;case 5: system("cls");select_name();break;case 6:return 0;system("pause"); return 0;void insert() /*输入功能*/ printf("请输入学号:");scanf("%d",&studenti.no);printf("请输入姓名:");scanf("%s",&studenti.name);printf("请输入班级:");scanf("%s",&studenti.cla);printf("请输入上机时间:");scanf("%d:%d",&studenti.begin.hour,&studenti.begin.minute);i = i + 1;system("pause");system("cls");void end_money() /*计算功能*/int m,minute,hour; /*保存时间*/int no;printf("请输入学号:");scanf("%d",&no);for(m = 0;m < i;m+)if(no = studentm.no)printf("请输入%d的下机时间:",no);scanf("%d:%d",&studentm.end.hour,&studentm.end.minute);if(studentm.end.minute <studentm.begin.minute)minute = studentm.end.minute +60 -studentm.begin.minute;hour = studentm.end.hour -1 - studentm.begin.hour;studentm.time_hour = hour;studentm.time_minute = minute;else minute = studentm.end.minute - studentm.begin.minute; hour = studentm.end.hour - studentm.begin.hour; studentm.time_hour = hour; studentm.time_minute = minute; if(minute > 0)hour = hour + 1;printf("上机时间为:%d:%d 费用为:%d",studentm.time_hour,studentm.time_minute,hour);else printf("上机时间为:%d:%d 费用为:%d",studentm.time_hour,studentm.time_minute,hour);system("pause");system("cls");/*清屏*/Void select_no() /*按学号查询功能*/ int no;int m;printf("请输入学号:");scanf("%d",&no);for(m = 0;m < i;m+)if(no = studentm.no) printf("学号为%dt",studentm.no); printf("班级为%st",studentm.cla); printf("姓名为%st",&studentm.name); printf("上机开始时间为%d:%dt",studentm.begin.hour,studentm.begin.minute); printf("上机结束时间为%d:%dt",studentm.end.hour,studentm.end.minute); printf("上机时间为:%d:%dnt",studentm.time_hour,studentm.time_minute);else if( m = i)printf("没有该记录:n");system("pause");system("cls");/*清屏*/ void select_cla() /*按班级查询功能*/ char cla10;int m;printf("请输入班级:");scanf("%s",cla);for(m = 0;m < i;m+)if(!strcmp(cla,studentm.cla) printf("学号为%dt",studentm.no); printf("班级为%st",studentm.cla); printf("姓名为%st",&studentm.name); printf("上机开始时间为%d:%dt",studentm.begin.hour,studentm.begin.minute); printf("上机结束时间为%d:%dt",studentm.end.hour,studentm.end.minute); printf("上机时间为:%d:%dn",studentm.time_hour,studentm.time_minute);else if( m = i)printf("没有该记录:n");system("pause");system("cls");/*清屏*/ void select_name()/*按姓名查询功能*/ char name10;int m;printf("请输入姓名:");scanf("%s",name);for(m = 0;m < i;m+)if(!strcmp(name,studentm.name)/*字符串的比较 非0为真执行*/ printf("学号为%dt",studentm.no); printf("班级为%st",studentm.cla); printf("姓名为%st",&studentm.name); printf("上机开始时间为%d:%dt",studentm.begin.hour,studentm.begin.minute); printf("上机结束时间为%d:%dt",studentm.end.hour,studentm.end.minute); printf("上机时间为:%d:%dn",studentm.time_hour,studentm.time_minute);else if( m = i)printf("没有该记录:n");system("pause");system("cls");/*清屏*/7.实验总结: 根据机房收费管理系统的需求分析和设计要求,这次通过C语言程序设计,实现了本系统的基本功能,分别是信息的输入,查询和计算。 虽然实现了这三大基本功能,但是这次的程序设计也还是存在着一些不足之处,由于是新接触编程设计,自身对于学习的知识点也存在着一些模糊的概念。所以,在对于程序的模块化设计方面,认识也有待加强,代码变量使用过多,占用内存大,有很大的优化方向。 在实现功能的过程中,并没有用到指针和链表等高级C语言编程方式,这也是这次编程需要改进的地方。8.心得体会通过对机房收费管理系统的编写,更加掌握了C语言的基本语法,巩固了本学期所学的C语言知识。同时在C的设计过程中,对C语言运用循环,自定义函数等方面的思想有了更加深刻的认识,体会到了高级编程的强大,对以后编写程序有了很好的初步认识。 通过这周的课程设计,也认识到自己对于C语言的一些不足之处,在对书本的知识点还有些掌握的不够透彻,在一些编程的地方可以更加优化代码,以最少的代码实现最强大的功能。在指针和链表方面,以后也还需要和老师同学探讨,让以后的C语言编程中能够合理的运用这些C语言里的精华内容。专心-专注-专业