C语言实践报告——机房收费管理系统
PAGE
第 2 - 页 共 NUMPAGES 8 页
C语言实践——机房收费管理系统
第 1 - 页 共 NUMPAGES 8 页
机房收费管理系统
2011-5-22
设计目的
通过对机房收费管理程序的编写加深对C语言的掌握。加深掌握条件语句,循环语句,函数调用,结构体等。
通过对机房收费管理系统程序的编写,提高自己,对C语言有了更深一步的认识。
2. 函数调用关系
main-menu函数:输出机房管理系统菜单
input函数:输入若干个学生的学号、班级和姓名
online函数:学生上机,输入上机学生学号或姓名及时间
calculate函数:计算上机费用并输出
offline函数:学生下机,输入下机时间,调用calculate函数得到上机费用
search函数:查找学生上机信息
display函数:显示全部机器的使用信息
main函数:函数调用以及结束程序
3.程序模块
机房收费管理系统
机房收费管理系统
学生上机
学生下机
输入学生信息
查询上机时间
机器使用情况
退出系统
将学生的学号、班级、姓名输入信息库
按学号或者姓名上机
按学号或者姓名下机
按学号或者姓名查询学生上机时间
显示全部机器使用情况
退出机房收费管理系统
若该生未在信息库中,则先输入学生信息
输入学生信息,并确定是否继续输入
需判断是否有该学生并且该生是否正在上机
需判断是否有该学生并且该生是否正在上机
显示机器是否被使用以及使用该机器的学生信息
系统使用完毕,退出
4.程序代码
#include
#include
#include
#include
struct time/*时间*/
{
int hour;
int minute;
int second;
};
typedef struct/*学生信息*/
{
char num[20];/*学号*/
int banji;/*班级*/
int flag;/*用来标记学生是否上机*/
char name[20];/*姓名*/
struct time start,finish;/*上机起止时间*/
}Student;
Student stu[50];/*信息库*/
struct computer/*机器信息*/
{
int f;/*用来标记机器是否使用*/
Student stut;/*使用这台机器的学生*/
}com[30];/*30台机器*/
int k;
int main_menu()/*主菜单*/
{
char c;
do
{
system("cls");/*清屏*/
printf("\t\t\t****机房收费管理系统****\n");
printf("\t\t\t1.输入学生信息\n");
printf("\t\t\t2.上机\n");
printf("\t\t\t3.下机\n");
printf("\t\t\t4.查询上机时间\n");
printf("\t\t\t5.机器使用情况显示\n");
printf("\t\t\t0.退出系统\n");
printf("\t\t\t************************\n");
printf("\t\t\t请选择菜单(0-5):");
c=getchar();
}while(c'5');/*判断输入是否合法*/
return(c-'0');
}
int input(Student stu[],int n)/*输入学生信息*/
{
int i=0;
char sign='0';
while(sign!='n'&&sign!='N')/*判断是否继续输入学生信息*/
{
getchar();/*吃掉回车*/
printf("\t\t学号:");
gets(stu[n+i].num);
printf("\t\t班级:");
scanf("%d",&stu[n+i].banji);
getchar();
printf("\t\t姓名:");
gets(stu[n+i].name);
printf("\t\t继续输入?是请按Y,否请按N:");
scanf("%c",&sign);
stu[n+i].flag=0;/*初始化为未上机*/
i++;
}
return(n+i);
}
void online(Student stu[],int n)/*上机*/
{
char num_t[20],name_t[20];
int i,s;
do
{
printf("