您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页C语言机房收费管理系统

C语言机房收费管理系统

来源:爱问旅游网
C语言实践——机房收费管理系统

机房收费管理系统

2011-5-22

1. 设计目的

(1) 通过对机房收费管理程序的编写加深对C语言的掌握。加深掌握条件语句,循环语

句,函数调用,结构体等。

(2) 通过对机房收费管理系统程序的编写,提高自己,对C语言有了更深一步的认识。 2. 函数调用关系

main-menu函数:输出机房管理系统菜单

input函数:输入若干个学生的学号、班级和姓名

online函数:学生上机,输入上机学生学号或姓名及时间 calculate函数:计算上机费用并输出

offline函数:学生下机,输入下机时间,调用calculate函数得到上机费用 search函数:查找学生上机信息

display函数:显示全部机器的使用信息 main函数:函数调用以及结束程序 3.程序模块

机房收费管理系统 输入学生信息 学生上机 学生下机 查询上机时间 机器使用情况 退出系统 将学生的学号、班级、姓名输入信息库 按学号或者姓名上机 按学号或者姓名下机 按学号或者姓名查询学生上机时间 显示全部机器使用情况 退出机房收费管理系统 输入学生信息,并确定是否继续输入 若该生未在信息库中,则先输入学生信息 需判断是否有该学生并且该生是否正在上机 需判断是否有该学生并且该生是否正在上机 显示机器是否被使用以及使用该机器的学生信息 系统使用完毕,退出 4.程序代码

#include #include #include #include

struct time-------------------------------------------------------------------------------------------------------------------/*时间*/

第 - 1 - 页 共 8 页

{ };

int hour; int minute; int second;

C语言实践报告——机房收费管理系统

typedef struct---------------------------------------------------------------------------------------------------------/*学生信息*/ {

char num[20];-------------------------------------------------------------------------------------------------------/*学号*/ int banji;--------------------------------------------------------------------------------------------------------------/*班级*/ int flag;---------------------------------------------------------------------------------------/*用来标记学生是否上机*/ char name[20];------------------------------------------------------------------------------------------------------/*姓名*/ struct time start,finish;---------------------------------------------------------------------------------/*上机起止时间*/

}Student;

Student stu[50];---------------------------------------------------------------------------------------------------------/*信息库*/ struct computer-------------------------------------------------------------------------------------------------------/*机器信息*/ { int k;

int main_menu()--------------------------------------------------------------------------------------------------------/*主菜单*/ { }

int input(Student stu[],int n)----------------------------------------------------------------------------------/*输入学生信息*/ {

int i=0; char sign='0';

while(sign!='n'&&sign!='N')--------------------------------------------------------/*判断是否继续输入学生信息*/ char c; do {

system(\"cls\");------------------------------------------------------------------------------------------------/*清屏*/ printf(\"\\\****机房收费管理系统****\\n\"); printf(\"\\\1.输入学生信息\\n\"); printf(\"\\\2.上机\\n\"); printf(\"\\\3.下机\\n\"); printf(\"\\\4.查询上机时间\\n\"); printf(\"\\\5.机器使用情况显示\\n\"); printf(\"\\\0.退出系统\\n\");

printf(\"\\\************************\\n\"); printf(\"\\\请选择菜单(0-5):\"); c=getchar();

int f;-------------------------------------------------------------------------------------------/*用来标记机器是否使用*/ Student stut;------------------------------------------------------------------------------------/*使用这台机器的学生*/

}com[30];-------------------------------------------------------------------------------------------------------------/*30台机器*/

}while(c<'0'||c>'5');-------------------------------------------------------------------------------/*判断输入是否合法*/ return(c-'0');

共 8 页 第 - 2 - 页

}

{ }

return(n+i);

C语言实践报告——机房收费管理系统

getchar();------------------------------------------------------------------------------------------------/*吃掉回车*/ printf(\"\\学号:\"); gets(stu[n+i].num); printf(\"\\班级:\"); scanf(\"%d\getchar();

printf(\"\\姓名:\"); gets(stu[n+i].name);

printf(\"\\继续输入?是请按Y,否请按N:\"); scanf(\"%c\

stu[n+i].flag=0;-------------------------------------------------------------------------------/*初始化为未上机*/ i++;

void online(Student stu[],int n)------------------------------------------------------------------------------------------/*上机*/ {

char num_t[20],name_t[20]; int i,s; do {

printf(\"\\使用姓名按1,使用学号按2:\"); scanf(\"%d\

}while(s!=1&&s!=2); getchar(); if(s==1) { } else { }

printf(\"\\请输入学号:\"); gets(num_t); for(i=0;iif(strcmp(stu[i].num,num_t)==0)

break;

printf(\"\\请输入姓名:\"); gets(name_t);

for(i=0;iif(strcmp(stu[i].name,name_t)==0)

break;

共 8 页 第 - 3 - 页

}

if(i==n) { }

else if(stu[i].flag==1) { } else { }

for(k=0;k<30;k++)

if(com[k].f==0) { }

C语言实践报告——机房收费管理系统

printf(\"\\信息库中暂无该生,请输入该生信息再上机!\\n\"); return;

printf(\"\\该生正在上机!\\n\"); return;

com[k].f=1;----------------------------------------------------------------/*该台机器标记为使用*/ printf(\"\\请输入上机时间(当前时间):\");

scanf(\"%d:%d:%d\

stu[i].flag=1;---------------------------------------------------------------------/*该生标记为上机*/ com[k].stut=stu[i];--------------------------------------------/*记录使用该台机器的学生信息*/ break;

if(k==30)

printf(\"\\机器全部使用中,请稍后再上机!\\n\");

void calculate(Student stu)--------------------------------------------------------------------------/*上机时间及费用计算*/ {

int t;

struct time timet;

if(stu.finish.secondtimet.second=stu.finish.second-stu.start.second; if(stu.finish.minuteif(stu.finish.minute==0) { } else

stu.finish.minute-=1;

timet.second=stu.finish.second+60-stu.start.second;

stu.finish.hour-=1; stu.finish.minute=59;

共 8 页 第 - 4 - 页

}

{ } else

stu.finish.hour-=1;

C语言实践报告——机房收费管理系统

timet.minute=stu.finish.minute+60-stu.start.minute;

timet.minute=stu.finish.minute-stu.start.minute;

timet.hour=stu.finish.hour-stu.start.hour; if(timet.second==0&&timet.minute==0) else

t=timet.hour+1;----------------------------------------------------------------------/*不满一小时按一小时记*/ printf(\"\\该生上机用时%d小时,费用为%d元\\n\

t=timet.hour;

void offline(Student stu[],int n)------------------------------------------------------------------------------------------/*下机*/ {

char num_t[20],name_t[20]; int i,s; do {

printf(\"\\使用姓名按1,使用学号按2:\"); scanf(\"%d\

}while(s!=1&&s!=2); getchar(); if(s==1) { } else { } if(i==n)

printf(\"\\请输入学号:\"); gets(num_t); for(i=0;iif(strcmp(stu[i].num,num_t)==0)

break;

printf(\"\\请输入姓名:\"); gets(name_t); for(i=0;iif(strcmp(stu[i].name,name_t)==0)

break;

共 8 页 第 - 5 - 页

}

{ }

else if(stu[i].flag==0) { } else { }

C语言实践报告——机房收费管理系统

printf(\"\\没有这个学生!\\n\"); return;

printf(\"\\该生未上机或已下机!\\n\"); return;

printf(\"\\请输入下机时间(当前时间):\");

scanf(\"%d:%d:%d\

calculate(stu[i]);-------------------------------------------------------------------------/*计算并输出上机费用*/ stu[i].flag=0;--------------------------------------------------------------------------------/*该生标记为未上机*/ for(k=0;k<3;k++)-----------------------------------------------/*将刚下机学生使用的机器标记为未使用*/

if(strcmp(com[k].stut.num,stu[i].num)==0) { }

com[k].f=0;-------------------------------------------------------------/*该台机器标记为未使用*/ break;

void search(Student stu[],int n)------------------------------------------------------------------------------/*上机时间查询*/ {

char num_t[20],name_t[20]; int i,s; do {

printf(\"\\使用姓名按1,使用学号按2:\"); scanf(\"%d\

}while(s!=1&&s!=2); getchar(); if(s==1) { } else

printf(\"\\请输入姓名:\"); gets(name_t); for(i=0;iif(strcmp(stu[i].name,name_t)==0)

break;

共 8 页 第 - 6 - 页

}

{ } if(i==n) { }

else if(stu[i].flag==1) else

C语言实践报告——机房收费管理系统

printf(\"\\请输入学号:\"); gets(num_t); for(i=0;iif(strcmp(stu[i].num,num_t)==0)

break;

printf(\"\\查无此生!\\n\"); return;

printf(\"\\该生正在上机,上机起始时间为%d:%d:%d\\n\

stu[i].start.second);

printf(\"\\该生未上机或已下机!\\n\");

void display()---------------------------------------------------------------------------------------/*全部机器使用情况显示*/ {

printf(\"\机器号 是否使用 使用者 学号 班级 上机时间\\n\");--/*显示格式,表头*/ printf(\"\----------------------------------------------------------\\n\"); for(k=0;k<30;k++) {

if(com[k].f==0) else

printf(\"\%02d 是 %-10s %-10s %2d %02d:%02d:%02d\\n\

com[k].stut.name,com[k].stut.num,com[k].stut.banji,com[k].stut.start.hour, com[k].stut.start.minute,com[k].stut.start.second);

}

int main()----------------------------------------------------------------------------------------------------------------/*主函数*/ {

int n=0;

for(k=0;k<30;k++)-------------------------------------------------------------------------/*全部机器标记为未使用*/ {

switch(main_menu()) com[k].f=0; for(;;) }

printf(\"\\");

system(\"pause\");-----------------------------/*使刚显示的内容在屏幕上停留一段时间,直到继续操作为止*/

printf(\"\%02d 否 -- -- -- --:--:--\\n\

共 8 页 第 - 7 - 页

}

} return 0;

{ case 1: }

system(\"cls\");

C语言实践报告——机房收费管理系统

printf(\"\\\输入学生信息:\\n\"); n=input(stu,n); break; system(\"cls\");

printf(\"\\\学生上机\\n\"); online(stu,n); printf(\"\\\"); system(\"pause\"); break; system(\"cls\");

printf(\"\\\学生下机\\n\"); offline(stu,n); printf(\"\\\"); system(\"pause\"); break; system(\"cls\");

printf(\"\\\上机时间查询\\n\"); search(stu,n); printf(\"\\\"); system(\"pause\"); break; system(\"cls\");

printf(\"\\\机器使用情况显示\\n\\n\"); display(); break; system(\"cls\");

printf(\"\\n\\n\\感谢使用机房收费管理系统,欢迎下次使用,再见!\\n\\n\"); printf(\"\\\"); system(\"pause\"); exit(0);

case 2:

case 3:

case 4:

case 5:

case 0:

5.程序运行结果:由于该改程序运行结果较复杂,输出信息较多,故此不再给出,可参照上机运行结果。

共 8 页 第 - 8 - 页

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

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务