c语言编程机房收费管理系统.pptx
- 格式:pptx
- 大小:224.97 KB
- 文档页数:12
机房收费管理系统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 课程设计机房收费管理系统一、教学目标本课程旨在通过学习机房收费管理系统的课程设计,使学生掌握计算机程序设计的基本原理和方法,培养学生的实际编程能力和问题解决能力。
在知识目标上,学生应掌握Java语言的基本语法、面向对象编程思想以及常用的数据结构;在技能目标上,学生应能够独立完成机房收费管理系统的需求分析、系统设计、编码实现和测试工作;在情感态度价值观目标上,学生应培养团队合作意识、创新精神和职业道德。
二、教学内容本课程的教学内容主要包括四个部分:Java语言基础、面向对象编程、机房收费管理系统设计和实践。
其中,Java语言基础部分包括Java语法、数据类型、运算符、控制结构等;面向对象编程部分包括类、对象、继承、多态等;机房收费管理系统设计部分包括需求分析、系统设计、模块划分等;实践部分包括编码实现、测试和调试。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
主要包括:讲授法、案例分析法、实验法和讨论法。
讲授法用于讲解基本概念和原理,案例分析法用于分析实际问题和解决方案,实验法用于实践操作和验证,讨论法用于促进学生之间的交流和思考。
四、教学资源本课程的教学资源包括教材、多媒体资料、实验设备和网络资源。
教材选用《Java程序设计》作为主教材,辅助以《机房收费管理系统设计与实践》等相关参考书。
多媒体资料包括教学PPT、视频讲座等,实验设备包括计算机、网络设备等,网络资源包括在线编程平台、技术论坛等。
教学资源的选择和准备将充分支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。
平时表现主要评估学生的课堂参与度、提问回答、小组讨论等;作业主要评估学生的编程实践能力和理论知识掌握情况;考试则主要评估学生的知识掌握和应用能力。
评估结果将通过评分、评语等方式反馈给学生,以促进学生的学习进步。
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-------------------------------------------------------------------------------------------------------------------/*时间*/ 第 - 1 - 页共 16 页C语言实践报告——机房收费管理系统{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<'0'||c>'5');-------------------------------------------------------------------------------/*判断输入是否合法*/return(c-'0');}int input(Student stu[],int n)----------------------------------------------------------------------------------/*输入学生信息*/ { int i=0;char sign='0';while(sign!='n'&&sign!='N')--------------------------------------------------------/*判断是否继续输入学生信息*/第 - 2 - 页共 16 页C语言实践报告——机房收费管理系统{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("\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;}}第 - 3 - 页共 16 页C语言实践报告——机房收费管理系统if(i==n){printf("\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)printf("\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)第 - 4 - 页共 16 页C语言实践报告——机房收费管理系统{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)第 - 5 - 页共 16 页C语言实践报告——机房收费管理系统{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第 - 6 - 页共 16 页C语言实践报告——机房收费管理系统{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())第 - 7 - 页共 16 页C语言实践报告——机房收费管理系统{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");printf("\n\n\t\t感谢使用机房收费管理系统,欢迎下次使用,再见~\n\n"); printf("\t\t");system("pause");exit(0);}}return 0;}5(程序运行结果:由于该改程序运行结果较复杂,输出信息较多,故此不再给出,可参照上机运行结果。
机房收费管理系统1. 引言在现代社会,机房成为了信息技术的重要组成部分,承担着信息存储、数据处理等关键任务。
机房的使用费用需要进行管理和收费,以维持机房的正常运转和持续发展。
因此,开发一套机房收费管理系统具有重要意义。
本文将通过C语言编写一个机房收费管理系统,并探讨其设计与实现。
2. 系统功能设计2.1 用户管理模块用户管理模块是机房收费管理系统的核心模块之一,用于管理用户的基本信息和账户余额。
具体功能需求如下:•用户注册:用户可以通过系统进行注册,输入基本信息并生成唯一的用户ID。
•用户登录:已注册的用户可以通过输入用户名和密码进行登录操作。
•用户查询:用户可以通过系统查询自己的账户余额和消费记录。
2.2 机房使用管理模块机房使用管理模块主要用于管理机房的使用情况和收费标准。
具体功能需求如下:•机房预约:用户可以通过系统预约机房使用时间,系统根据预约时间自动计算费用。
•机房取消预约:用户可以在预约时间之前取消机房的使用,系统将相应地进行费用计算和余额调整。
•机房使用记录查询:用户可以查询自己的机房使用记录和相关费用信息。
2.3 费用计算与管理模块费用计算与管理模块是机房收费管理系统的重要组成部分,用于计算和管理机房使用费用。
具体功能需求如下:•费用计算:系统根据机房使用时间和收费标准自动计算费用。
•费用管理:系统根据机房使用记录和费用计算结果进行费用管理和账户余额调整。
3. 系统设计与实现3.1 数据结构设计机房收费管理系统需要设计相应的数据结构来存储用户信息、机房使用记录和费用管理等数据。
可以使用结构体或链表等数据结构来实现。
3.2 用户管理模块实现用户管理模块可以通过调用C语言提供的文件操作函数来实现用户信息的读取、存储和更新。
可以使用文件来存储用户信息和账户余额等数据。
3.3 机房使用管理模块实现机房使用管理模块需要设计相应的数据结构来存储机房预约信息和使用记录。
可以使用链表或数组等数据结构来实现。
目录一.设计内容二.设计要求(1)题目要求(2)输入/输出要求三.整体设计思路四.流程图(1)层次模块图(2)空机号查询N—S图五.主函数及功能菜单说明六.各模块简要说明七.心得体会附录一.源程序代码二.各模块运行结果截图一:设计内容题目:机房管理系统设计机房管理系统,要求由菜单进行管理。
(1)上机前先检查是否有空机位,有则将其显示出,无则提示无空位。
(2)还有空位置时,运行进入,并记录下位置号以及序号,与上机时间。
(3)可对上机者上机信息进行查询,修改与删除。
(4)设计相关模块,显示上机者的上机费用。
(5)显示所有上机者的上机信息。
二:设计要求题目要求:(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
(2)要求以上功能分别用函数实现。
输入/输出要求:(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息。
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三:整体设计思路在设计该程序时,要将系统的不同功能分成各个模块。
每个模块由一个函数定义,整个程序由函数调用来实现。
每个模块是一个子函数,由一个主函数调用各个子函数。
在定义子函数时,根据不同的功能选择不同的语句,如需要使用循环时可以用“do……while”来实现;需要使用选择时可以用“switch”或“if”语句来实现等。
设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。
每个模块由组员相应完成。
另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋上上机者相关信息,避免管理员一个一个的给机子输入信息。
本系统程序关键在于一个空机位的检索,亦是本程序核心之所在。
c语言课程设计机房收费管理系统一、教学目标本课程的教学目标是使学生掌握机房收费管理系统的开发过程,培养学生运用C语言进行实际项目开发的能力。
具体目标如下:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和编程思想,理解面向对象编程的基本概念。
2.技能目标:培养学生具备使用C语言进行程序设计的能力,能够独立完成简单的项目开发。
3.情感态度价值观目标:培养学生具有良好的团队合作精神,提高学生的问题解决能力和创新意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和面向对象编程。
具体安排如下:1.C语言的基本语法:介绍C语言的基本数据类型、运算符、控制结构等。
2.数据结构:讲解常用的数据结构如数组、链表、栈和队列等。
3.算法:介绍常见的排序算法和查找算法,培养学生分析问题和解决问题的能力。
4.面向对象编程:讲解类和对象的概念,培养学生运用面向对象思想进行程序设计的能力。
5.机房收费管理系统:以实际项目为背景,引导学生运用所学知识进行项目开发,提高学生的实际编程能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、算法和面向对象编程等知识,使学生掌握课程的基本概念。
2.案例分析法:通过分析实际项目案例,使学生了解机房收费管理系统的开发过程,提高学生的实际编程能力。
3.实验法:安排上机实验,使学生在实践中掌握C语言的编程技巧,培养学生的实际动手能力。
4.小组讨论法:学生进行小组讨论,培养学生的团队合作精神和问题解决能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT课件,提高课堂教学质量。
4.实验设备:保证学生有足够的上机实践机会,提高学生的实际编程能力。
辽宁工程技术大学《C语言课程设计》报告题目:专业年级:学号:姓名:指导教师:20 15 年 7 月[问题定义]选定的题目内容:选题十二:机房收费管理系统(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。
(2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位))(3)修改功能:修改学生上机的个人档案(如:增添)(4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。
实际完成的软件功能:(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。
(2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位))(3)修改功能:修改学生上机的个人档案(如:增添)(4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案(5)显示功能:显示全部机器的使用信息[开发工具][数据结构]//(1)输入功能:输入若干名学生的学号、班级、姓名、开始上机时间和结束上机时间。
//(2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位))//(3)修改功能:修改学生上机的个人档案(如:增添)//(4)查询功能:按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。
#include <>#include <>#include <>#include <>struct time------------------------------------/*时间*/{int hour;int minute;int second;};typedef struct-----------------------------/*学生信息*/{char num[20];-------------------------------/*学号*/char banji; -------------------------------/*班级*/int flag; --------------------/*用来标注学生是否上机*/char name[20]; -------------------------------/*姓名*/struct time kaishi,jiesu;-------------/*上机起始时间*/}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╭━━━机房收费管理系统━━━╮\n");printf("\t┃ 1.输入学生信息┃\n");printf("\t┃ 2.上机时间┃\n");printf("\t┃ 3.下机时间┃\n");printf("\t┃ 4.查询上机时间及费用┃\n");printf("\t┃ 5.电脑使用情况显示┃\n");printf("\t┃ 0.退出系统┃\n");printf("\t╰━━━━━━━━━━━━━━╯\n");printf("\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') -----/*判断是否继续输入学生信息*/{getchar();-----------------------/*吃掉回车*/ printf("\n\t\t 学号:");gets(stu[n+i].num);printf("\t\t 班级:");scanf("%s",&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 shangji(Student stu[],int n) -------------/*上机*/ {char num_t[20],name_t[20];int i,s;do{printf("\n\t\t 使用姓名输入1\n\t\t 使用学号输入2\n\t\t 请输入序号:");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 该生正在上机!\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].kaishi.hour,&stu[i].kaishi.min ute,&stu[i].kaishi.second);stu[i].flag=1; ---------/*该生标记为上机*/com[k].stut=stu[i]; ---------/*记录使用这台机器的学生信息*/break;}}if(k==30)printf("\t\t 机器全部使用中,请稍后再上机!\n");}}void calculate(Student stu) ------/*上机时间及费用计算*/ {int t;struct time timet;if(<){if(==0){-=1;=59;}else-=1;=stu.jiesu.second+60-stu.kaishi.second;}else=;if(<){-=1;=stu.jiesu.minute+60-stu.kaishi.minute;}else=;=;if(==0&&==0)t=;elset=timet.hour+1; ---------/*不满一小时按一小时算*/ printf("\t\t 该生上机用时%d小时,费用为%d元\n",t,t);}void xiaji(Student stu[],int n) -------------/*下机*/ {char num_t[20],name_t[20];int i,s;do{printf("\n\t\t 使用姓名输入1\n\t\t 使用学号输入2\n\t\t 请输入序号:");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].jiesu.hour,&stu[i].jiesu.minu te,&stu[i].jiesu.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 chaxun(Student stu[],int n) -------/*上机时间查询*/ {char num_t[20],name_t[20];int i,s;do{printf("\n\t\t 使用姓名输入1\n\t\t 使用学号输入2\n\t\t 请输入序号:");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].kaishi.hour,stu[i].kaishi.minute,st u[i].kaishi.second);}elseprintf("\t\t 该生未上机或下机!\n");void qingkuang()--------------/*全部机器使用情况显示*/ { 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 %2s %02d:%02d:%02d\n",k+1,com[k],com[k].stut.num, com[k].stut.banji,com[k].stut.kaishi.hour,com[k].stut.kai shi.minute,com[k].stut.kaishi.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("********************输入学生信息***********************\n");n=input(stu,n);break;case 2:system("cls");printf("**********************学生上机*************************\n");shangji(stu,n);printf("\t\t");system("pause");break;case 3:system("cls");printf("**********************学生下机*************************\n");xiaji(stu,n);printf("\t\t");system("pause");break;case 4:system("cls");printf("*******************查询上机时间及费用*******************");chaxun(stu,n);printf("\t\t");system("pause");break;case 5:system("cls");printf("********************电脑使用情况显示********************\n");qingkuang();break;case 0:system("cls");printf("********************感谢使用机房收费管理系统,欢迎下次使用!********************");printf("\t\t");system("pause");exit(0);}}return 0;}[算法描述][程序调试情况]1.在调试过程中发现自己犯了很多细节性的错误,比如标点符号的错误,然后一个一个发现,修正,过程很冗杂,都要怪自己在编写的时候不细心,挺后悔的,以后在做一件事的时候就要认真,以避免不必要的麻烦。
#include<stdio.h>#include<string.h>#define Size 100struct machine{int bianhao;char zhuban[10];char yingpan[10];char neicun[10];char zhupin[10];char xianka[10];char fangjian[10];char shiyong[10];}Com[Size];void menu();void password();void insert(int *);void search1(int);//void search2(int);void update(int);void Delete(int *);void show(int);void save();void read();int count=0;int main(){int i;char name[20];char ad[20]={"zyc"};password();{read ();do{menu();scanf("%d",&i);switch(i){case 1:insert(&count);break;case 2:search1(count);break;case 3:update(count);break;case 4:Delete(&count);break;case 5:show(count);break;case 6:save();break;default:printf("errow!");break;}}while(i!=6);}if(strcmp(ad,name)!=0)// printf("You are wrong!\n");return 0;}void password(){int i;char name[20];char ad[20]={"zyc"};printf("请输入验证信息:");scanf("%s",name);if(strcmp(ad,name)==0);}void menu(){printf("\n");printf("---------------北软机房管理系统---------------\n");printf("---1.插入---\n");printf("---2.按编号查找---\n");//printf("---3.按机房查找---\n");printf("---3.修改---\n");printf("---4.删除---\n");printf("---5.显示---\n");printf("---6.退出---\n");}void insert(int *count){int i,number;if(*count==Size){printf("full!");return;}printf("请输入编号:");scanf("%d",&number);for(i=0;i<*count;i++)if(Com[i].bianhao==number){printf("已经有相同的编号:");return;}Com[i].bianhao=number;printf("请输入主板型号:");scanf("%s",Com[i].zhuban);printf("请输入硬盘容量:");scanf("%s",Com[i].yingpan);printf("请输入内存容量:");scanf("%s",Com[i].neicun);printf("请输入cpu主频:");scanf("%s",Com[i].zhupin);printf("请输入显卡型号:");scanf("%s",Com[i].xianka);printf("请输入机器所属机房:");scanf("%s",Com[i].fangjian);printf("请输入机器使用情况:");scanf("%s",Com[i].shiyong);(*count)++;}void search1(int count){int i,number,flag=0;printf("请输入要查询的编号:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].bianhao==number){printf("机器编号: %d\n",Com[i].bianhao);printf("主板型号: %s\n",Com[i].zhuban);printf("硬盘容量: %s\n",Com[i].yingpan);printf("内存容量: %s\n",Com[i].neicun);printf("机器主频: %s\n",Com[i].zhupin);printf("显卡型号: %s\n",Com[i].xianka);printf("所属机房: %s\n",Com[i].fangjian);printf("使用情况: %s\n",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到!");}/*void search2(int count){int i,flag=0;int number;printf("请输入要查询的主板:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].fangjian==number){printf("机器编号: %d\n",Com[i].bianhao);printf("主板型号: %s\n",Com[i].zhuban);printf("硬盘容量: %s\n",Com[i].yingpan);printf("内存容量: %s\n",Com[i].neicun);printf("机器主频: %s\n",Com[i].zhupin);printf("显卡型号: %s\n",Com[i].xianka);printf("所属机房: %d\n",Com[i].fangjian);printf("使用情况: %s\n",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到!");}*/void update(int count){int i,number,flag=0;printf("请输入要修改的编号:");scanf("%d",&number);for(i=0;i<count;i++)if(Com[i].bianhao==number){printf("请输入主板型号:");scanf("%s",Com[i].zhuban);printf("请输入硬盘容量:");scanf("%s",Com[i].yingpan);printf("请输入内存容量:");scanf("%s",Com[i].neicun);printf("请输入cpu主频:");scanf("%s",Com[i].zhupin);printf("请输入显卡型号:");scanf("%s",Com[i].xianka);printf("请输入机器所属机房:");scanf("%s",Com[i].fangjian);printf("请输入机器使用情况:");scanf("%s",Com[i].shiyong);flag=1;}if(flag==0)printf("没有查到可以修改的数据!");}void Delete(int *count){int i,j,number,flag=0;printf("请输入要删除的编号:");scanf("%d",&number);for(i=0;i<*count;i++){if(Com[i].bianhao==number){for(j=i;j<*count-1;j++)Com[j]=Com[j+1];(*count)--;flag=1;}}if(flag==0)printf("没有查询到可删除的数据:");}void show(int count){ int i;printf("\n");printf(" 编号主板硬盘内存主频显卡机房使用\n"); for(i=0;i<count;i++){printf("%8d",Com[i].bianhao);printf("%8s",Com[i].zhuban);printf("%8s",Com[i].yingpan);printf("%8s",Com[i].neicun);printf("%8s",Com[i].zhupin);printf("%8s",Com[i].xianka);printf("%8s",Com[i].fangjian);printf("%8s",Com[i].shiyong);printf("\n");}printf("机器总数量:%d",i);}void save(){FILE *fp;int i;if((fp=fopen("D:\\jiqi.txt","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<count;i++)if(fwrite(&Com[i],sizeof(struct machine),1,fp)!=1) printf("file write error!");fclose(fp);}void read(){FILE *fp;int i=0;if((fp=fopen("D:\\jiqi.txt","rb"))==NULL){return;}while(!feof(fp))if(fread(&Com[i],sizeof(struct machine),1,fp)==1) {count++;i++;}fclose(fp);}。