您的当前位置:首页正文

c语言机房收费管理系统课程设计

来源:一二三四网
课程设计报告

课程设计题目:机房收费管理系统

学号: 姓名:刘名

专业:信息与计算科学 班级:信息131 指导教师:孙雪莲

2015年3月18日

1. 实验题目:

 《机房收费管理系统》设计任务

(1)输入功能:输入30名学生的学号、班级、姓名、上机起止时间。

(2)计算功能:计算每个学生的上机费用。

(上机费用=上机时间*1.0/h,不足一小时按一小时计算) (3)查询功能:按条件(班级、学号、姓名、上机时间)显示学生信息。

2. 实验时间,地点

实验时间:15周 实验地点:软件楼208

3. 实验目的:

通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。

4. 实验要求:

从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:

(1)进一步掌握C语言程序设计的基本思想和方法; (2)掌握结构化程序设计的基本原理及应用;

5. 实验思路:

需求分析:根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。

在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。

在计算功能方面,需要计算出每个学生的上机所用的费用。 在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。

在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。 流程图为: 学号 班级 姓名 上机时间 上机费用 查询 主菜单 计算

学号 输入 上机时间 班级 姓名 6. 实现过程: #include/*I/O函数*/ #include/*字符串函数*/ #include/*标准库函数*/ structtime/*定义时间结构*/ {

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.minuteminute=student[m].end.minute+60-student[m].begin.minute; hour=student[m].end.hour-1-student[m].begin.hour; student[m].time_hour=hour; student[m].time_minute=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语言里的精华内容。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top