C语言机房收费管理系统课程设计文档格式.docx
《C语言机房收费管理系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《C语言机房收费管理系统课程设计文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
(1)输入功能:
输入30名学生的学号、班级、姓名、上机起止时间。
(2)计算功能:
计算每个学生的上机费用。
(上机费用=上机时间*1.0/h,不足一小时按一小时计算)
(3)查询功能:
按条件(班级、学号、姓名、上机时间)显示学生信息。
2.实验时间,地点
实验时间:
15周
实验地点:
软件楼208
3.实验目的:
通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。
4.实验要求:
从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:
(1)进一步掌握C语言程序设计的基本思想和方法;
(2)掌握结构化程序设计的基本原理及应用;
5.实验思路:
需求分析:
根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。
在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。
在计算功能方面,需要计算出每个学生的上机所用的费用。
在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。
在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。
流程图为:
6.实现过程:
#include<
stdio.h>
/*I/O函数*/
string.h>
/*字符串函数*/
stdlib.h>
/*标准库函数*/
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("
\t\t*********************************\n"
);
\t\t*********机房收费管理系统********\n"
1.---------------输入学生信息:
\n"
2.---------------结账:
3.---------------按学号查询:
4.---------------按班级查询:
5.---------------按姓名查询:
6.---------------退出系统:
\n\n^^^^^^^^^^^^^^^^^^^^^^^编程人员:
刘忠杨^^^张鼎^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
\n\n请选择功能:
"
scanf("
%d"
&
i);
switch(i)/*选择分支结构*/
case1:
{
system("
cls"
insert();
}break;
case2:
end_money();
case3:
select_no();
case4:
select_cla();
case5:
select_name();
case6:
return0;
}
}
system("
pause"
return0;
}
voidinsert()/*输入功能*/
printf("
请输入学号:
scanf("
student[i].no);
请输入姓名:
%s"
student[i].name);
请输入班级:
student[i].cla);
请输入上机时间:
%d:
student[i].begin.hour,&
student[i].begin.minute);
i=i+1;
system("
voidend_money()/*计算功能*/
intm,minute,hour;
/*保存时间*/
no);
for(m=0;
m<
i;
m++)
if(no==student[m].no)
printf("
请输入%d的下机时间:
no);
scanf("
student[m].end.hour,&
student[m].end.minute);
if(student[m].end.minute<
student[m].begin.minute)
{
minute=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;
if(minute>
0)
hour=hour+1;
printf("
上机时间为:
%d费用为:
student[m].time_hour,student[m].time_minute,hour);
/*清屏*/
Voidselect_no()/*按学号查询功能*/
intm;
学号为%d\t"
student[m].no);
班级为%s\t"
student[m].cla);
姓名为%s\t"
student[m].name);
上机开始时间为%d:
%d\t"
student[m].begin.hour,student[m].begin.minute);
上机结束时间为%d:
student[m].end.hour,student[m].end.minute);
%d\n\t"
student[m].time_hour,student[m].time_minute);
elseif(m==i)
没有该记录:
}
voidselect_cla()/*按班级查询功能*/
cla);
if(!
strcmp(cla,student[m].cla))
%d\n"
voidselect_name()/*按姓名查询功能*/