c语言机房收费管理系统课程设计
- 格式:docx
- 大小:16.08 KB
- 文档页数:13
机房收费管理系统c语言机房收费管理系统是一种用于管理机房收费的软件系统,主要用于对机房的学生进行收费管理。
该系统采用C语言进行开发,具有操作简单、功能齐全、界面友好等特点。
一、系统功能1. 学生信息管理:包括学生基本信息的录入、修改和删除等功能。
2. 收费管理:包括学生缴纳费用的记录、查询和统计等功能。
3. 机房设备管理:包括机房设备的添加、修改和删除等功能。
4. 系统设置:包括管理员账号密码的设置和修改等功能。
二、系统设计1. 数据库设计该系统采用MySQL数据库进行数据存储,数据库中包含以下数据表:(1)学生信息表:存储学生基本信息,包括学号、姓名、性别、年龄等字段。
(2)缴费记录表:存储学生缴纳费用的记录,包括学号、姓名、缴纳金额等字段。
(3)机房设备表:存储机房设备信息,包括设备名称、数量等字段。
(4)管理员账号表:存储管理员账号密码信息,包括管理员账号和密码字段。
2. 界面设计该系统采用图形界面进行交互设计,主要界面如下:(1)登录界面:管理员输入用户名和密码登录系统。
(2)主界面:包括学生信息管理、收费管理、机房设备管理和系统设置等功能按钮。
(3)学生信息管理界面:包括学生基本信息的录入、修改和删除等功能按钮。
(4)收费管理界面:包括学生缴纳费用的记录、查询和统计等功能按钮。
(5)机房设备管理界面:包括机房设备的添加、修改和删除等功能按钮。
3. 系统实现该系统采用C语言进行开发,主要实现技术如下:(1)MySQL数据库连接库:使用MySQL C API库连接数据库进行数据存储操作。
(2)GTK+图形库:使用GTK+图形库进行图形界面设计和交互操作。
(3)C语言编程技术:使用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<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>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]; ---------int k;---- /*30 台机器*/int main_menu()------ /* 主菜单*/ {char c; do{{system("cls");printf("\t\t\t 请选择菜单 (0-5):");c=getchar();}while(c<'0'||c>'5'); ----------------------------------------------return(c-'0');}int input(Student stu[],int n) -------------------------------------/* 输入学生信息 */ {int i=0; char sign='0';while(sign!='n'&&sign!='N') ------------------------------------------------------ /* 判断是否继续输入学生信息 */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 学号 :");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继续输入,是请按丫,否请按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; dogetchar();/* 上机*/printf("\t\t 使用姓名按1,使用学号按2:");scanf("%d",&s);}while(s!=1&&s!=2);getchar();if(s==1){printf("\t\t 请输入姓名:");gets(name_t);for(i=0;i<n;i++) -------------------------------------------------------------- /* 查找信息库中是否有该学生*/if(strcmp(stu[i].name,name_t)==0)break;}else{printf("\t\t 请输入学号:");gets(num_t);for(i=0;i<n;i++){if(strcmp(stu[i].num,num_t)==0)break;}}if(i==n){prin tf("\t\t 信息库中暂无该生,请输入该生信息再上机〜\n");return;}else if(stu[i].flag==1){printf("\t\t 该生正在上机〜\n");return;}else{for(k=0;k<30;k++)if(com[k].f==0){com[k].f=1; ------------------------------------------------------------- /* 该台机器标记为使用*/printf("\t\t 请输入上机时间(当前时间):");scanf("%d:%d:%d",&stu[i].start.hour,&stu[i].start.minute,&stu[i].sta rt.second);stu[i].flag=1; -------------------------------------------------------------------- /* 该生标记为上机*/com[k].stut=stu[i]; -------------------------------------------/*录使用该台机器的学生信息*/break;}if(k==30)prin tf("\t\t 机器全部使用中,请稍后再上机〜\n");}}void calculate(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.finish.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("\t\t 该生上机用时%d小时,费用为%d%\n",t,t); }void offline(Student stu[],int n) --------------------------------------------------------------------------------------- /*下机*/ {char num_t[20],name_t[20];int i,s;do{printf("\t\t 使用姓名按1,使用学号按2:");scanf("%d",&s);}while(s!=1&&s!=2);getchar();if(s==1){printf("\t\t 请输入姓名:");gets(name_t);for(i=0;i<n;i++){if(strcmp(stu[i].name,name_t)==0) break; }}else{printf("\t\t 请输入学号:");gets(num_t);for(i=0;i<n;i++){if(strcmp(stu[i].num,num_t)==0) break;}}if(i==n){printf("\t\t 没有这个学生〜\n");return;}else if(stu[i].flag==0){printf("\t\t 该生未上机或已下机〜\n");return;}else{printf("\t\t 请输入下机时间(当前时间):");scanf("%d:%d:%d",&stu[i].finish.hour,&stu[i].finish.minute,&stu[i].f inish.second);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("\t\t 使用姓名按1,使用学号按2:");scanf("%d",&s);}while(s!=1&&s!=2);getchar();if(s==1){printf("\t\t 请输入姓名:");gets(name_t);for(i=0;i<n;i++){if(strcmp(stu[i].name,name_t)==0)break;else{printf("\t\t 请输入学号:");gets(num_t);}for(i=0;i<n;i++){if(strcmp(stu[i].num,num_t)==0)break;}}if(i==n){printf("\t\t 查无此生〜\n");return;}else if(stu[i].flag==1)printf("\t\t 该生正在上机,上机起始时间为%d:%d:%d\n",stu[i].start.hour,stu[i].start.minute,stu[i].start.second);elseprintf("\t\t 该生未上机或已下机〜\n");void display() ------------------------------------------------------------------------------------ /* 全部机器使用情况显示*/{printf("\t 机器号是否使用使用者学号班级上机时间\n");--/* 显示格式,表头*/printf("\t ---------------------------------------------------------\n");for(k=0;k<30;k++){}if(com[k].f==0)printf("\t%02d 否-- -- -- --:--:--\n",k+1);elseprintf("\t%02d 是%-10s %-10s %2d %02d:%02d:%02d\n",k+1,com[k],com[k].stut.num,com[k].stut.banji,com[k].stut.start .hour,com[k].stut.start.minute,com[k].stut.start.second);}printf("\t");system("pause"); --------------------------- /* 使刚显示的内容在屏幕上停留一段时间,直到继续操作为止*/}int main() ----------------------------------------------------------主函数*//*{int n=0;for(k=0;k<30;k++) -------------------------------------------------- --------------------- /* 全部机器标记为未使用*/com[k].f=0;for(;;){switch(main_menu()){case 1:system("cls");printf("\t\t\t 输入学生信息:\n");n=input(stu,n);break;case 2:system("cls");printf("\t\t\t 学生上机\n");online(stu,n);printf("\t\t");system("pause");break;case 3:system("cls");printf("\t\t\t 学生下机\n");offline(stu,n);printf("\t\t");system("pause");break;case 4:system("cls");printf("\t\t\t 上机时间查询\n");search(stu,n);printf("\t\t");system("pause");break;case 5:system("cls");printf("\t\t\t 机器使用情况显示\n\n");display();break;case 0:system("cls");prin tf("\n\n\t\t 感谢使用机房收费管理系统,欢迎下次使用,再见〜\n\n"); printf("\t\t");system("pause");exit(0);}}return 0;。
目录一、概述 (1)1.1 研究的背景与意义 (1)1.2 设计的任务与需要的知识点 (1)1.3 具体完成的设计内容 (1)二、程序设计与介绍 (2)2.1设计思路 (2)2.2功能要求 (2)2.2.1登录模块 (4)2.2.2查询模块 (4)2.2.3结账模块 (4)2.3系统模块关系图 (4)2.4程序代码 (5)2.5 运行结果 (9)三、总结与体会 (11)四、参考文献 (13)五、评分标准 (14)一、概述1.1研究的背景与意义随着科技的飞速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学校、单位等的各项事务进行科学化的管理有着无法比拟的优点。
例如:查找方便、迅速、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校、单位等的工作效率,也是未来发展的管理科学化、正规化并与世界接轨的重要条件。
计算机程序设计语言是人与计算机交流的工具,可以说没有程序设计语言和程序设计,计算机就是一台废物。
也就是说,程序(软件)是计算机的必要组成部分。
计算机首先是要求人们不间断地在程序设计上付出大量的创造性劳动,然后才能享受到它的服务。
进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对C++语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。
要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。
1.2设计的任务与需要的知识点我们利用这个小程序来进行对学生上网的计费,达到智能化操作节省人力的使用。
用C++语言进行编程设计一个程序使达到我们的目的。
我们需要熟悉C++语言的各种头文件和各种符号、语句代表的含义作用,这样我们才能够运用C++语言进行编程。
C语言课程设计报告设计名称C语言课程设计专业班级姓名学号指导教师实习时间成绩目录一、设计目的 (2)二、设计内容 (3)三、详细设计说明 (4)四、软件使用说明 (6)五、设计总结(课程设计心得与体会) (9)六、附录1:参考文献 (10)七、附录2:部分程序清单(带有较详细的注释) (11)八、教师评语 (19)一、设计目的为XX酒店设计一个房间登记与计费管理系统。
该系统中应包括所有房间的信息(房号、房型、基本描述、挂牌房价、入住状态)等,客人入住后应产生一条入住记录(基本信息包括:房号、客人姓名、客人证件类别、客人证件号、入住日期、押金情况),客人退房后要修正房间的入住状态并产生相应的账单。
二、设计内容(1)屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
(2)对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
(3)在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
要求用C语言的文件操作语句将以上所有结果分别保存在文件中。
(4)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;(5)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三、详细设计说明登记入住系统登记并记录顾客姓名登记并记录顾客的证件类型及号码显示现有空置房间选择所需要的房间并更改房间状态信息计算并记录住房费及押金由于本软件针对操作员设计,所以界面应尽可能简单明了。
住房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。
用文件记录相关数据。
客房状态查询分别显示已入住客房与空置客房读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。
住户信息查询查询顾客所租房房号查询顾客住房费用顾客可以通过输入自己的姓名来查询个人的住房信息。
收费管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在收费管理系统中的应用,掌握基本的数据结构(如数组、结构体)和文件操作相关知识。
2. 学会使用C语言编写程序,实现收费管理系统的基本功能,如用户注册、登录、费用查询、费用缴纳等。
3. 了解收费管理系统的设计思路和模块划分,掌握模块化编程的方法。
技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程实践技能。
2. 学会使用调试工具,能够自主调试程序,找出并修复错误。
3. 提高团队协作能力,学会与他人共同分析问题、设计解决方案。
情感态度价值观目标:1. 培养学生积极探究、勇于实践的精神,增强学习编程的兴趣。
2. 培养良好的编程习惯,注重代码规范和程序优化。
3. 增强学生的网络安全意识,认识到收费管理系统在实际应用中的重要性。
课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,运用所学知识进行实际编程。
学生特点:学生已经具备一定的C语言基础,但实际编程经验不足,对收费管理系统这一实际应用场景较为陌生。
教学要求:注重理论与实践相结合,通过讲解、示范、练习、讨论等多种教学方式,引导学生掌握收费管理系统的设计与实现方法。
同时,关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 数据结构与文件操作:回顾C语言中的数组、结构体等基本数据结构,介绍文件操作相关知识,为编写收费管理系统打下基础。
- 数组的使用与操作- 结构体的定义与使用- 文件读写操作2. 收费管理系统功能模块设计:- 用户注册模块:实现用户注册功能,包括用户名、密码等信息的存储- 用户登录模块:实现用户登录功能,验证用户名和密码的正确性- 费用查询模块:实现用户费用查询功能,展示用户消费记录- 费用缴纳模块:实现用户费用缴纳功能,包括充值、支付等操作3. 编程实践与模块化设计:- 编程规范与代码优化- 模块化编程方法与实践- 调试工具的使用与程序调试技巧4. 团队协作与项目实践:- 分析与讨论:分组讨论,共同分析收费管理系统的需求与设计- 项目实践:小组成员分工合作,共同完成收费管理系统的设计与实现5. 教学进度安排:- 第一周:数据结构与文件操作知识回顾- 第二周:收费管理系统功能模块设计- 第三周:编程实践与模块化设计- 第四周:团队协作与项目实践,完成收费管理系统设计与实现教学内容与教材关联性:本课程教学内容与教材相关章节紧密相关,如数据结构与文件操作、模块化编程、调试技巧等,确保学生能够将所学知识应用于实际项目中。
c 课程设计机房收费管理系统一、教学目标本课程旨在通过学习机房收费管理系统的课程设计,使学生掌握计算机程序设计的基本原理和方法,培养学生的实际编程能力和问题解决能力。
在知识目标上,学生应掌握Java语言的基本语法、面向对象编程思想以及常用的数据结构;在技能目标上,学生应能够独立完成机房收费管理系统的需求分析、系统设计、编码实现和测试工作;在情感态度价值观目标上,学生应培养团队合作意识、创新精神和职业道德。
二、教学内容本课程的教学内容主要包括四个部分:Java语言基础、面向对象编程、机房收费管理系统设计和实践。
其中,Java语言基础部分包括Java语法、数据类型、运算符、控制结构等;面向对象编程部分包括类、对象、继承、多态等;机房收费管理系统设计部分包括需求分析、系统设计、模块划分等;实践部分包括编码实现、测试和调试。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
主要包括:讲授法、案例分析法、实验法和讨论法。
讲授法用于讲解基本概念和原理,案例分析法用于分析实际问题和解决方案,实验法用于实践操作和验证,讨论法用于促进学生之间的交流和思考。
四、教学资源本课程的教学资源包括教材、多媒体资料、实验设备和网络资源。
教材选用《Java程序设计》作为主教材,辅助以《机房收费管理系统设计与实践》等相关参考书。
多媒体资料包括教学PPT、视频讲座等,实验设备包括计算机、网络设备等,网络资源包括在线编程平台、技术论坛等。
教学资源的选择和准备将充分支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。
平时表现主要评估学生的课堂参与度、提问回答、小组讨论等;作业主要评估学生的编程实践能力和理论知识掌握情况;考试则主要评估学生的知识掌握和应用能力。
评估结果将通过评分、评语等方式反馈给学生,以促进学生的学习进步。
c语言课程设计缴费系统一、教学目标本课程的目标是让学生掌握C语言的基本语法,能够运用C语言设计一个简单的缴费系统。
通过本课程的学习,学生应能够理解C语言的基本数据类型、运算符、控制结构、函数等概念,并能够运用这些知识设计、编写并调试C语言程序。
同时,通过课程的学习,培养学生的逻辑思维能力、问题解决能力和团队合作能力。
二、教学内容教学内容主要包括C语言的基本语法和编程技巧。
具体包括以下内容:1.C语言的基本数据类型和运算符2.控制结构:条件语句、循环语句3.函数:定义、调用、返回值4.数组和字符串5.结构体和文件操作6.编程技巧:代码规范、调试方法、算法设计三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本概念和语法规则。
2.案例分析法:通过分析实际案例,让学生掌握编程技巧和解决问题的方法。
3.实验法:通过上机实验,让学生动手实践,加深对C语言的理解和运用能力。
四、教学资源教学资源包括教材、实验设备和相关多媒体资料。
1.教材:《C语言程序设计》2.实验设备:计算机、网络设备3.多媒体资料:教学PPT、视频教程、在线编程练习平台五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和理解能力。
2.作业:布置课后编程作业,评估学生的编程能力和解决问题的能力。
3.考试:定期进行理论考试和上机考试,评估学生对C语言知识的掌握程度。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有充分的时间进行讲解和实践。
2.教学时间:每周安排2个课时,其中1个课时用于讲授,1个课时用于实验和实践。
3.教学地点:教室和计算机实验室交替使用,以便学生能够及时进行实践操作。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程将采取以下差异化教学措施:1.学习风格:提供多种学习资源,如视频教程、PPT讲解等,以满足不同学习风格的学生的需求。
课程设计报告课程设计题目:机房收费管理系统学号:姓名:刘名专业:信息与计算科学班级:信息131指导教师:孙雪莲2015年3月18日1.实验题目:《机房收费管理系统》设计任务(1)输入功能:输入30名学生的学号、班级、姓名、上机起止时间。
(2)计算功能:计算每个学生的上机费用。
(上机费用=上机时间*1.0/h,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名、上机时间)显示学生信息。
2.实验时间,地点实验时间:15周实验地点:软件楼2083.实验目的:通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。
4.实验要求:从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:(1)进一步掌握C语言程序设计的基本思想和方法;(2)掌握结构化程序设计的基本原理及应用;5.实验思路:需求分析:根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。
在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。
在计算功能方面,需要计算出每个学生的上机所用的费用。
在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。
在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。
流程图为:6.#include<string.h>/*字符串函数*/#include<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");printf("\t\t*********机房收费管理系统********\n");printf("\t\t*********************************\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",&i);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:{return0;}}}system("pause");return0;}voidinsert()/*输入功能*/{printf("请输入学号:");scanf("%d",&student[i].no);printf("请输入姓名:");scanf("%s",&student[i].name);printf("请输入班级:");scanf("%s",&student[i].cla);printf("请输入上机时间:");scanf("%d:%d",&student[i].begin.hour,&student[i].begin.minute);i=i+1;system("pause");system("cls");}voidend_money()/*计算功能*/{intm,minute,hour;/*保存时间*/intno;printf("请输入学号:");scanf("%d",&no);for(m=0;m<i;m++){if(no==student[m].no){printf("请输入%d的下机时间:",no);scanf("%d:%d",&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;student[m].time_hour=hour;student[m].time_minute=minute;}if(minute>0){hour=hour+1;printf("上机时间为:%d:%d费用为:%d",student[m].time_hour,student[m].time_minute,hour);}else{printf("上机时间为:%d:%d费用为:%d",student[m].time_hour,student[m].time_minute,hour);}}}system("pause");system("cls");/*清屏*/}Voidselect_no()/*按学号查询功能*/{intno;intm;printf("请输入学号:");scanf("%d",&no);for(m=0;m<i;m++){if(no==student[m].no){printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n\t",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}voidselect_cla()/*按班级查询功能*/{charcla[10];intm;printf("请输入班级:");scanf("%s",cla);for(m=0;m<i;m++){if(!strcmp(cla,student[m].cla)){printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}voidselect_name()/*按姓名查询功能*/{charname[10];intm;printf("请输入姓名:");scanf("%s",name);for(m=0;m<i;m++){if(!strcmp(name,student[m].name))/*字符串的比较非0为真执行*/ {printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}7.实验总结:根据机房收费管理系统的需求分析和设计要求,这次通过C语言程序设计,实现了本系统的基本功能,分别是信息的输入,查询和计算。