C语言机房收费管理系统整理_第1页
C语言机房收费管理系统整理_第2页
C语言机房收费管理系统整理_第3页
C语言机房收费管理系统整理_第4页
C语言机房收费管理系统整理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言机房收费管理系统整理机房收费管理系统2011-5-22 1. 设计目的(1) 通过对机房收费管理程序的编写加深对 C 语言的掌握。加深掌握条件语 句,循环语句,函数调用,结构体等。(2) 通过对机房收费管理系统程序的编写,提高自己,对 C 语言有了更深一步 的认识。2. 函数调用关系main-menu函数:输出机房管理系统菜单input 函数: 输入若干个学生的学号、班级和姓名online 函数: 学生上机,输入上机学生学号或姓名及时间calculate 函数: 计算上机费用并输出offline 函数: 学生下机,输入下机时间,调用 calculate 函数得到上机费用 search 函

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

3、ude<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>struct time/*时间*/int hour;int minute;int second;typedef struct/*学生信息 */char num20;/*学号*/int banji;/*班级*/int flag;/*用来标记学生是否上机*/char name20;-/*姓名*/struct time start,finish;Student;/*/上机起止时间Student stu50;-/*信息库 */

4、struct computer-/*机器信息 */int f;-/*用来标记机器是否使用 */Student stut;-/*使用这台机器的学生 */com30;int k;/*30台机器 */int main_menu()-/*主菜单 */char c; do清屏*/system("cls");printf("ttt*机房收费管理系统 *n");printf("ttt1.输入学生信息 n");printf("ttt2.上机n");printf("ttt3.下机n");printf("

5、ttt4.查询上机时间 n");printf("ttt5.机器使用情况显示 n");printf("ttt0.退出系统 n");/*printf("ttt*n");printf("ttt 请选择菜单 (0-5):");c=getchar();while(c<'0'|c>'5');/*判断输入是否合法 */return(c-'0');int input(Student stu,int n)/* 输入学生信息 */ int i=0;char sign

6、='0'while(sign!='n'&&sign!='N')/* 判断是否继续输入学生信息 */getchar();/*吃掉回车 */printf("tt学号 :");gets(stun+i.num);printf("tt班级 :");scanf("%d",&stun+i.banji);getchar();printf("tt姓名 :");gets(stun+);printf("tt继续输入,是请按丫,否请按N:&quo

7、t;);scanf("%c",&sign);stun+i.flag=0;/* 初始化为未上机 */ i+;return(n+i);void online(Student stu,int n)上机*/*char num_t20,name_t20;int i,s;doprintf("tt使用姓名按 1,使用学号按 2:");scanf("%d",&s);while(s!=1&&s!=2);getchar();if(s=1)printf("tt 请输入姓名 :");gets(name_t)

8、;for(i=0;i<n;i+)/* 查找信息库中是否有该学生 */if(strcmp(,name_t)=0)break;elseprintf("tt 请输入学号 :");gets(num_t);for(i=0;i<n;i+)if(strcmp(stui.num,num_t)=0)break;if(i=n)prin tf("tt信息库中暂无该生,请输入该生信息再上机n");return;else if(stui.flag=1)printf("tt 该生正在上机 n");return;elsefor(k=0

9、;k<30;k+)if(comk.f=0)comk.f=1;/* 该台机器标记为使用 */printf("tt 请输入上机时间 (当前时间 ):");scanf("%d:%d:%d",&stui.start.hour,&stui.start.minute,&stui.start.second);stui.flag=1;/*该生标记为上机*/comk.stut=stui;/*录使用该台机器的学生信息 */break;if(k=30)prin tf("tt机器全部使用中,请稍后再上机n");void calc

10、ulate(Student stu)/*上机时间及费用计算 */ int t;struct time timet;if(stu.finish.second<stu.start.second)if(stu.finish.minute=0)stu.finish.hour-=1;stu.finish.minute=59;elsestu.finish.minute-=1;timet.second=stu.finish.second+60-stu.start.second;elsetimet.second=stu.finish.second-stu.start.second;if(stu.fini

11、sh.minute<stu.start.minute)stu.finish.hour-=1;timet.minute=stu.finish.minute+60-stu.start.minute;elsetimet.minute=stu.finish.minute-stu.start.minute;timet.hour=stu.finish.hour-stu.start.hour;if(timet.second=0&&timet.minute=0)t=timet.hour;elset=timet.hour+1;/* 不满一小时按一小时记 */printf("tt该

12、生上机用时d小时,费用为%d%n",t,t); void offline(Student stu,int n)下机*/*char num_t20,name_t20;int i,s;doprintf("tt 使用姓名按 1,使用学号按 2:");scanf("%d",&s);while(s!=1&&s!=2);getchar();if(s=1)printf("tt 请输入姓名 :");gets(name_t);for(i=0;i<n;i+)if(strcmp(,name_t)=0

13、) break;elseprintf("tt 请输入学号 :");gets(num_t);for(i=0;i<n;i+)if(strcmp(stui.num,num_t)=0) break;if(i=n)printf("tt 没有这个学生n");return;else if(stui.flag=0)printf("tt该生未上机或已下机n");return;elseprintf("tt 请输入下机时间 (当前时间 ):");scanf("%d:%d:%d",&stui.finish

14、.hour,&stui.finish.minute,&stui.f inish.second);calculate(stui);/*计算并输出上机费用*/stui.flag=0;/*该生标记为未上机*/for(k=0;k<3;k+)/*将 刚下机学生使用的机器标记为未使用 */if(strcmp(comk.stut.num,stui.num)=0)comk.f=0;/* 该台机器标记为未使用 */break;void search(Student stu,int n)/* 上机时间查询 */char num_t20,name_t20;int i,s;doprintf(&q

15、uot;tt使用姓名按 1,使用学号按 2:");scanf("%d",&s);while(s!=1&&s!=2);getchar();if(s=1)printf("tt 请输入姓名 :");gets(name_t);for(i=0;i<n;i+)if(strcmp(,name_t)=0)break;elseprintf("tt 请输入学号 :");gets(num_t);for(i=0;i<n;i+)if(strcmp(stui.num,num_t)=0)break;i

16、f(i=n)printf("tt查无此生n");return;else if(stui.flag=1)printf("tt 该生正在上机,上机起始时间为%d:%d:%dn",stui.start.hour,stui.start.minute,stui.start.second);elseprintf("tt 该生未上机或已下机 n");void display()/* 全部机器使用情况显示 */printf("t 机器号 是否使用 使用者 学号 班级 上机时间 n");-/* 显示格 式,表头 */printf(&

17、quot;tn");for(k=0;k<30;k+)if(comk.f=0)printf("t%02d 否 - - - -:-:-n",k+1);elseprintf("t%02d 是 %-10s %-10s %2d %02d:%02d:%02dn",k+1, ,comk.stut.num,comk.stut.banji,comk.stut.start.hour,comk.stut.start.minute,comk.stut.start.second);printf("t");system

18、("pause");/* 使刚显示的内容在屏幕上停留一段时间,直到继续操作为止 */int main()/*主函数 */int n=0;for(k=0;k<30;k+)/* 全部机器标记为未使用 */comk.f=0;for(;)switch(main_menu()case 1:system("cls");printf("ttt 输入学生信息 :n");n=input(stu,n);break;case 2:system("cls");printf("ttt 学生上机 n");online(stu,n);printf("tt");system("pause");break;case 3:system("cls");printf("ttt 学生下机 n");offline(stu,n);printf("tt");system("pause");break;case 4:system("cls");printf("ttt 上机时间查询 n");se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论