课程设计题目:机房收费管理系统
学号: 姓名:刘名
专业:信息与计算科学 班级:信息131 指导教师:孙雪莲
2015年3月18日
1. 实验题目:
《机房收费管理系统》设计任务
(1)输入功能:输入30名学生的学号、班级、姓名、上机起止时间。
(2)计算功能:计算每个学生的上机费用。
(上机费用=上机时间*1.0/h,不足一小时按一小时计算) (3)查询功能:按条件(班级、学号、姓名、上机时间)显示学生信息。
2. 实验时间,地点
实验时间:15周 实验地点:软件楼208
3. 实验目的:
通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。
4. 实验要求:
从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:
(1)进一步掌握C语言程序设计的基本思想和方法; (2)掌握结构化程序设计的基本原理及应用;
5. 实验思路:
需求分析:根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。
在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。
在计算功能方面,需要计算出每个学生的上机所用的费用。 在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。
在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。 流程图为: 学号 班级 姓名 上机时间 上机费用 查询 主菜单 计算
学号 输入 上机时间 班级 姓名 6. 实现过程: #include inthour;/*时*/ intminute;/*分*/ }; typedefstructSTUDENT/*定义学生信息结构*/ { intno;/*学号*/ charcla[10];/*班级*/ charname[10];/*姓名*/ inttime_hour;/*上机时间*/ inttime_minute; structtimebegin,end;/*嵌套时间结构*/ }; structSTUDENTstudent[30]; staticinti=0;/*全局静态变量*/ voidinsert();/*输入功能函数*/ voidend_money();/*结账功能函数*/ voidselect_no();/*学号查询功能函数*/ voidselect_name();/*姓名查询功能函数*/ voidselect_cla();/*班级查询功能函数*/ intmain()/*主函数*/ { inti; for(;;)/*主菜单*/ { printf(\"\\*********************************\\n\"); printf(\"\\*********机房收费管理系统********\\n\"); printf(\"\\*********************************\\n\"); printf(\"1.---------------输入学生信息:\\n\"); printf(\"2.---------------结账:\\n\"); printf(\"3.---------------按学号查询:\\n\"); printf(\"4.---------------按班级查询:\\n\"); printf(\"5.---------------按姓名查询:\\n\"); printf(\"6.---------------退出系统:\\n\"); printf(\"\\n\\n^^^^^^^^^^^^^^^^^^^^^^^编程人员:刘忠杨^^^张鼎^^^^^^^^^^^^^^^^^^^^^^^^^^^^\"); printf(\"\\n\\n请选择功能:\"); scanf(\"%d\ switch(i)/*选择分支结构*/ { case1: { system(\"cls\"); insert(); }break; case2: { system(\"cls\"); end_money(); }break; case3: { system(\"cls\"); select_no(); }break; case4: { system(\"cls\"); select_cla(); }break; case5: { system(\"cls\"); select_name(); }break; case6: } } system(\"pause\"); return0; } voidinsert()/*输入功能*/ { printf(\"请输入学号:\"); scanf(\"%d\printf(\"请输入姓名:\"); scanf(\"%s\{ } return0; } printf(\"请输入班级:\"); scanf(\"%s\printf(\"请输入上机时间:\"); scanf(\"%d:%d\i=i+1; system(\"pause\"); system(\"cls\"); voidend_money()/*计算功能*/ { intm,minute,hour;/*保存时间*/ intno; printf(\"请输入学号:\"); scanf(\"%d\ for(m=0;mif(no==student[m].no) { printf(\"请输入%d的下机时间:\ scanf(\"%d:%d\if(student[m].end.minute } else { minute=student[m].end.minute-student[m].begin.minute; hour=student[m].end.hour-student[m].begin.hour; student[m].time_hour=hour; student[m].time_minute=minute; } if(minute>0) { hour=hour+1; printf(\" 上 机 时 间 为 : %d:%d 为:%d\ } else { printf(\" 上 机 时 间 为 : %d:%d 为:%d\ 费 用 用 费 } } } system(\"pause\"); system(\"cls\");/*清屏*/ } Voidselect_no()/*按学号查询功能*/ { intno; intm; printf(\"请输入学号:\"); scanf(\"%d\ for(m=0;mprintf(\" 上 机 开 始 为%d:%d\\ printf(\" 上 机 结 束 间 间 时 时 为%d:%d\\ printf(\" 上 机 时 间 为:%d:%d\\n\\ } system(\"pause\"); system(\"cls\");/*清屏*/ } voidselect_cla()/*按班级查询功能*/ { charcla[10]; intm; printf(\"请输入班级:\"); scanf(\"%s\ for(m=0;mif(!strcmp(cla,student[m].cla)) { } elseif(m==i) { } printf(\"没有该记录:\\n\"); printf(\"学号为%d\\ printf(\"班级为%s\\ printf(\"姓名为%s\\ printf(\" 上 机 开 始 时 为%d:%d\\ printf(\" 上 机 结 束 时 为%d:%d\\ printf(\" 上 机 时 为:%d:%d\\n\ } elseif(m==i) { printf(\"没有该记录:\\n\"); } } system(\"pause\"); system(\"cls\");/*清屏*/ } voidselect_name()/*按姓名查询功能*/ { charname[10]; intm; 间 间 间 printf(\"请输入姓名:\"); scanf(\"%s\ for(m=0;mif(!strcmp(name,student[m].name))/*字符串的比较非0为真执行*/ { printf(\"学号为%d\\printf(\"班级为%s\\printf(\"姓名为%s\\printf(\" 上 机 开 始 时 间 为%d:%d\\ printf(\" 上 机 结 束 时 间 为%d:%d\\ printf(\" 上 机 时 间 为:%d:%d\\n\ } system(\"pause\"); } elseif(m==i) { } printf(\"没有该记录:\\n\"); system(\"cls\");/*清屏*/ } 7.实验总结: 根据机房收费管理系统的需求分析和设计要求,这次通过C语言程序设计,实现了本系统的基本功能,分别是信息的输入,查询和计算。 虽然实现了这三大基本功能,但是这次的程序设计也还是存在着一些不足之处,由于是新接触编程设计,自身对于学习的知识点也存在着一些模糊的概念。所以,在对于程序的模块化设计方面,认识也有待加强,代码变量使用过多,占用内存大,有很大的优化方向。 在实现功能的过程中,并没有用到指针和链表等高级C语言编程方式,这也是这次编程需要改进的地方。 8.心得体会 通过对机房收费管理系统的编写,更加掌握了C语言的基本语法,巩固了本学期所学的C语言知识。同时在C的设计过程中,对C语言运用循环,自定义函数等方面的思想有了更加深刻的认识,体会到了高级编程的强大,对以后编写程序有了很好的初步认识。 通过这周的课程设计,也认识到自己对于C语言的一些不足之处,在对书本的知识点还有些掌握的不够透彻,在一些编程的地方可以更加优化代码,以最少的代码实现最强大的功能。在指针和链表方面,以后也还需要和老师同学探讨,让以后的C语言编程中能够合理的运用这些C语言里的精华内容。 因篇幅问题不能全部显示,请点此查看更多更全内容