机房收费管理系统C程序设计报告

合集下载

机房收费管理系统c语言

机房收费管理系统c语言

机房收费管理系统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语言机房收费管理系统[整理]

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;。

C语言机房收费管理系统

C语言机房收费管理系统
3.程序模块
机房收费管理系统
输入学生信息
将学生的学号、 班级、姓名输 入信息库
输入学生信息, 并确定是否继 续输入
4பைடு நூலகம்程序代码
#include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h>
学生上机
按学号或 者姓名上 机
若该生未 在信息库 中,则先 输入学生 信息
学生下机
按学号或 者姓名下 机
需判断是 否有该学 生并且该 生是否正 在上机
第 -1- 页 共 9 页
深的入精贯习神彻中部和落纪选。要实委拔深锋求中机任入队,为央关用学员”特的和、工习装的别情省组中作《、标本是形、织央坚条中统准质“和市原组守例源国一和九处委则织为、》,共思条使个分关、部人遵等标 弘产想件命严规于优《做守法准 扬党行章;,禁定从良关事党规和 党地动党学进止。严作于的章制条 的方个,规习一、治风加基县、度件 优委全认。党步九党动,强准处维,。 良员面真着规明个的实牢换和级护学认 传会”学,眼确一重效记届底以党习教真 统工战习充明要“律大;入风线上章市育学 和作略习中分确掌四”决要党气。党,委、习 作条布近、展基握个纪策在充誓监员坚加全理《 风例局平五示本廉服律部学分词督领定强体论中 ;》、总中共标洁从要,署,发的导理领党武国 深《贯全全产准自”求做。关挥牢通(干想导员装共 刻中彻市会党、律的,合键机记知川部(区信班学。,产 汲国落X精人树准要重格在关党》委要二X域念子习根进党 取共实年神的立则求点党系做党的和办学)中;思党据一廉 违产五在,优行规掌员统。组宗中〔深学心认想章省步洁 纪党大全进良为定掌握”先要织旨央2一系全 关”真政,委坚自 违党0发体一风规的握“学深战,、1层列体 于提学治要办定律 法组6展党步貌范“四习〕入斗深省,讲党 在供习建深公理准 反工理题员巩和,四的个教1学堡入委系话员 全坚党设入4厅想则 面作念学中固时组个领廉育号习垒领、统。讲 体强的领个印信》 典条,习开拓代织必导洁实)贯作会市学着定党保历实会专。发念《 型例实讨展精和须干”施和彻用党委习眼理课 员证史施党题的,中(现一”论“党神引部方《习和员有领加想, 中。意的组《提国 的试X、学 制,的;导“必四案中近党条关悟强X信支 开学见性织关高共 教行二总习 度按党群要广四须个〉共事平员件严党理念部 展习等质讨于党产 训)、体讨 要照章众带大个具自的X业总先和肃章论,书 “革制、论照在性党 ,》主X要论 求“党路着坚备觉通“书锋义换,武学明记命度市宗,入全觉纪 自《要求” ,四规线问员持的知十记模务届深习确给 党先文委旨每党省悟律 觉内。 党个、教题逐”六,》三头开系范、纪刻教政支 章辈件办、个志党;处 讲政容,以 小讲学育条项(五落展列作权律把育治部 党和,公指专愿员要分 政领带党 组(系实,逐掌基X”于实“重用利握动方党 规先学室导题谈中坚条 治导X头组 每课一列践针句握本发“全两要,“委员向、进关思集理开持例 、干观严中 月”)讲活对通各条展七面学讲领明两办部”讲 学典于想中想展学》 讲,守心 底要学话动问读类件良定个从一话导确个〔署、党 系型印学、“用等 规温在政组求党,和题违好共有严做,带先2,“课 列发奋习谈学结党 矩入推0关治形 织,做“改章纪开产之治”全头合1以坚,用〈斗讨信党合内 、讲动6键纪式 一开合三,行局党”学面、格〕华党持邀好关目论念章、法 守话志改时律, 次展格严进明和人“责习贯以党2民支根请红于标不,党创规 纪愿革8刻和定 党三一确“性理五任教彻上号族部本党色在、得对规先, 律做和发保站政期 员组实步做决锻想个。育落率)优为宗校教全少照、争尊 ,合入展持得治组 集班”坚合胜,炼信必实下,三秀单旨教育市于入学优崇格党稳公出规织 中子学专持格全向和念须基党,结、,传位师资党1党系,誓定仆,矩集 学成习题问党天面党道,”础的为合主站统开敢、员讲誓列进章员词实情危,中 习员教题。小的德牢等十协我要稳美展于专中规词讲一”,践怀险带学 。到育导的康理修固重八调”局(措政德一担家开矩找话步学交中精,时头习 支联(成向、论养树要大推中实三施治,次当学展、标,强习流建神牢候, 部系以果建和,立论进奋际)全立筑主作者“有(准做化教思功,记豁固每区下;注成路心党述十“发,开面场牢题为给学国纪一、合宗育想立推共得树次 季县简要重线存的,八四有现展从,拒党”特律)找格旨实体业动产出立确 度X称突活方敬意认届为制“严把腐日、员章X色,开差党观施会。X党,和定 召“出述针畏识真三、定四局治理防活“干党X社讲展距员念方。《员在贯1开两正县,政、践中加建如个带个党想变动坚部规会道“。”案党永X彻一学面(处领策手党行、快功下讲头专等信的,守讲、X主德两党学干委远落次党一二级会看握员“四发立实党事讲题方念防组纪党学义、重支习部会是实全中做)以贯齐戒意三展业施课党开新面时线织律课系道有温部教要读的劳五体央”开上穿,尺识严、。方”“课展要的时;党底,列路品两书育讲本工动大党决学展其认,三科案。十,交中求深处始员线鼓讲全、行对记方话)作人发员定习“中真廉强实学习党三局流国,刻处终重励话体“,照作案精》方民展会,教三领的贯洁化”发系支五党研特坚内体保温树普党建五讲”学》神为法的理议2育个导马彻从党要展列部”组讨0理 情色持涵现入立通员位奉主习。基1》普念,)干克省政的求、讲要规书6。念 怀社以和为干党清要与一献题动本纳通,分县部思委、宗和话结划记按怎 、会知要行事志风员坚全体、党员教入一带别处要主、从旨好谐,合开给照么 务主促求动创愿正、持面”有日,材学员头围级义市严意干发要专局“办 实义行。的业、气学建总作活领,习,攻绕以做立委治识部展重起三、 思要力重”做成体为动导深内密坚“上结场决家,标。点步会新 想“知着量开温3结小的布。干入容切克坚党合观策,积准学、一战 作四行重;拓入(合康要局合4部学。联难员,月点部带极,习“课略 风个合学坚进党三,社求、格带习深系、干对底方署头践带《决怎 。全一习定取誓)坚会和“党头《入群敢部照前法,弘行头习胜么 要面,领正的词做相内四员重习领众于要习,做扬社坚近全干 深”做会确精,合适容个。近会,担以近结领政社会定平面” 入战讲习的气对格应;全引平关全当《平合会治主理总小学 领略政近神党、重面导总于心,习总贯上主义想书康习 会布治平,员有点”党书改全带近书穿的义核信记、研 我局、总方平。效学战员记革意平记其明核心念系建讨 国、有书向常着服习略强系发为谈关中白心价列成; 发五信记,时眼务习布化列展人治的人价值重区注 展大念来经候党国近局政重稳民国坚;值要域重 战发,川常看和家平、治要定服理定践体讲中同 略展视主得国治总五意讲、务政信行系话心X机理察动出家书大识话内;》X仰党和读遇念重向,事和记发,读工政加《追的中本、要党业“对展保本作外强习求宗(中社讲的五四理持(“交党近、旨2会话央新位川念政02存国平历,10主和看发一工、治61凭防总年史6义系齐展体年作全本、、书版担核列对”版的面色留治记)当心重党建)系深史党重》意价要员设》列化、治要,识值指的,改资国讲重、观示X要革政治话点真X和将、、事军文领挚全毛育业的章会为面泽人发重选理民从东”展要编想严同的体论(信治志作系领念党用。导、等结中全方合国体面起梦党来、员,学加快

c语言编程机房收费管理系统.pptx

c语言编程机房收费管理系统.pptx

{ i n t m,minute,hour; i nt xuehao; printf("请输入学号:"); scan f("%d",&xuehao); for( m = 0;m < i;m++)
{if(xuehao == Student[m].xuehao) {printf("请 输 入 %d 的 下 机 时 间 :",xuehao);
f("%d",&xuehao); for( m =
0;m < i;m++)
{
i f( xueh a o = = S t u d e n t [ m ] . x u e h a o )
{printf("学 号 : %d\t",Student[m].xuehao);
p r i n t f ( " 班 级 : % s \ t " , S t u d e n t [ m ] . b a n j i ) ; p r i n t f (“ 姓名
\n");printf("\t\t*************贵 州 大 学 人 民 武 装 学 院
*************\n");printf("\t\t
\n");printf("\t\t*************** 机 房 收 费 管 理 系 统
***************\n");printf("\t\t
学海无 涯
课程设计报 告
题 目: 微机机房收费管理系统 学 号: 1220070334 姓 名: 王 玮 专 业: 计 算 机 系 统 维 护 班 级: 12 计 维 指导教师: 袁 雪 梦

机房收费c课程设计

机房收费c课程设计

目录一、概述 (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语言课程设计

收费管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在收费管理系统中的应用,掌握基本的数据结构(如数组、结构体)和文件操作相关知识。

2. 学会使用C语言编写程序,实现收费管理系统的基本功能,如用户注册、登录、费用查询、费用缴纳等。

3. 了解收费管理系统的设计思路和模块划分,掌握模块化编程的方法。

技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程实践技能。

2. 学会使用调试工具,能够自主调试程序,找出并修复错误。

3. 提高团队协作能力,学会与他人共同分析问题、设计解决方案。

情感态度价值观目标:1. 培养学生积极探究、勇于实践的精神,增强学习编程的兴趣。

2. 培养良好的编程习惯,注重代码规范和程序优化。

3. 增强学生的网络安全意识,认识到收费管理系统在实际应用中的重要性。

课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,运用所学知识进行实际编程。

学生特点:学生已经具备一定的C语言基础,但实际编程经验不足,对收费管理系统这一实际应用场景较为陌生。

教学要求:注重理论与实践相结合,通过讲解、示范、练习、讨论等多种教学方式,引导学生掌握收费管理系统的设计与实现方法。

同时,关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 数据结构与文件操作:回顾C语言中的数组、结构体等基本数据结构,介绍文件操作相关知识,为编写收费管理系统打下基础。

- 数组的使用与操作- 结构体的定义与使用- 文件读写操作2. 收费管理系统功能模块设计:- 用户注册模块:实现用户注册功能,包括用户名、密码等信息的存储- 用户登录模块:实现用户登录功能,验证用户名和密码的正确性- 费用查询模块:实现用户费用查询功能,展示用户消费记录- 费用缴纳模块:实现用户费用缴纳功能,包括充值、支付等操作3. 编程实践与模块化设计:- 编程规范与代码优化- 模块化编程方法与实践- 调试工具的使用与程序调试技巧4. 团队协作与项目实践:- 分析与讨论:分组讨论,共同分析收费管理系统的需求与设计- 项目实践:小组成员分工合作,共同完成收费管理系统的设计与实现5. 教学进度安排:- 第一周:数据结构与文件操作知识回顾- 第二周:收费管理系统功能模块设计- 第三周:编程实践与模块化设计- 第四周:团队协作与项目实践,完成收费管理系统设计与实现教学内容与教材关联性:本课程教学内容与教材相关章节紧密相关,如数据结构与文件操作、模块化编程、调试技巧等,确保学生能够将所学知识应用于实际项目中。

c课程设计机房收费管理系统

c课程设计机房收费管理系统

c 课程设计机房收费管理系统一、教学目标本课程旨在通过学习机房收费管理系统的课程设计,使学生掌握计算机程序设计的基本原理和方法,培养学生的实际编程能力和问题解决能力。

在知识目标上,学生应掌握Java语言的基本语法、面向对象编程思想以及常用的数据结构;在技能目标上,学生应能够独立完成机房收费管理系统的需求分析、系统设计、编码实现和测试工作;在情感态度价值观目标上,学生应培养团队合作意识、创新精神和职业道德。

二、教学内容本课程的教学内容主要包括四个部分:Java语言基础、面向对象编程、机房收费管理系统设计和实践。

其中,Java语言基础部分包括Java语法、数据类型、运算符、控制结构等;面向对象编程部分包括类、对象、继承、多态等;机房收费管理系统设计部分包括需求分析、系统设计、模块划分等;实践部分包括编码实现、测试和调试。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

主要包括:讲授法、案例分析法、实验法和讨论法。

讲授法用于讲解基本概念和原理,案例分析法用于分析实际问题和解决方案,实验法用于实践操作和验证,讨论法用于促进学生之间的交流和思考。

四、教学资源本课程的教学资源包括教材、多媒体资料、实验设备和网络资源。

教材选用《Java程序设计》作为主教材,辅助以《机房收费管理系统设计与实践》等相关参考书。

多媒体资料包括教学PPT、视频讲座等,实验设备包括计算机、网络设备等,网络资源包括在线编程平台、技术论坛等。

教学资源的选择和准备将充分支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。

平时表现主要评估学生的课堂参与度、提问回答、小组讨论等;作业主要评估学生的编程实践能力和理论知识掌握情况;考试则主要评估学生的知识掌握和应用能力。

评估结果将通过评分、评语等方式反馈给学生,以促进学生的学习进步。

c++课程设计机房管理收费系统

c++课程设计机房管理收费系统

c++课程设计机房管理收费系统#include#include#include#include#define MAX 100struct student{int num; /*学号*/char name[20]; /*姓名*/int banji; /*班级*/char flag[100];/*上机标志,标记学生是否上机*/int sh,sm,fh,fm,h;/*上机起止时间*/} stu[50];void Input()/*输入*/{FILE *fp,*fq;int n,m;fp=fopen("data","wb");for(n=0;n<max;n++)< bdsfid="85" p=""></max;n++)<> {printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++); scanf("%d",&n);if(n==-1){fclose(fp);return;}else{printf("请输入学号姓名班级电脑状态时分\n");printf("学号\n");scanf("%d",&stu[n].num);printf("姓名\n");scanf("%s",&stu[n].name);printf("班级\n");scanf("%d",&stu[n].banji);strcpy(stu[n].flag,"关");stu[n].sh=0;stu[n].sm=0;stu[n].fh=0;stu[n].fm=0;stu[n].h=0;fwrite(&stu[n],sizeof(struct student),1,fp);}}}void Output()/*输出*/{FILE *fp,*fq;int i,j;fp=fopen("data","rb");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf(" 学生信息\n");printf("-----------------------------------------------------------\n");printf(" 学号姓名班级是否开机开机时:分关机时:分上机时长(小时) \n");printf("-----------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++){printf("%6d %8s %6d %8s %11d:%2d %8d:%2d %8d\n",stu[i ].num,stu[i].name,stu[i].banji,stu[i].flag,stu[i].sh,stu[i].sm,stu[i].fh,stu[i].fm,stu[i].h);}fclose(fp);printf("按任意键返回主菜单\n");getch();}void jishi(){FILE *fp;int i,num,n,flag;int ch,cm;printf("上机请按1\n下机请按2\n");scanf("%d",&n);if(n==1){printf("请输入学号");scanf("%d",&num);fp=fopen("data","rb");for(i=0;i<=MAX;i++)if(stu[i].num==num){printf(" 学号姓名班级电脑状态开机时:分\n");printf("%6d %8s %6d %8s %11d:%2d\n",stu[i].num,stu[i].na me,stu[i].banji,stu[i].flag,stu[i].sh,s tu[i].sm);n=i;flag=1;fclose(fp);break;}printf("\n\n");fp=fopen("data","rb+");fseek(fp,n*sizeof(struct student),0); printf("\n\n");strcpy(stu[n].flag,"开");printf("请输入开机时间\n");printf("★★★★时:");scanf("%d",&stu[n].sh);printf("★★★★分:");scanf("%d",&stu[n].sm);stu[n].fh=0;stu[n].fm=0;stu[n].h=0;fwrite(&stu[i],sizeof(struct student),1,fp); fclose(fp);fp=fopen("data","rb");printf("电脑已打开,可以上机。

机房收费管理系统c语言

机房收费管理系统c语言

机房收费管理系统1. 引言在现代社会,机房成为了信息技术的重要组成部分,承担着信息存储、数据处理等关键任务。

机房的使用费用需要进行管理和收费,以维持机房的正常运转和持续发展。

因此,开发一套机房收费管理系统具有重要意义。

本文将通过C语言编写一个机房收费管理系统,并探讨其设计与实现。

2. 系统功能设计2.1 用户管理模块用户管理模块是机房收费管理系统的核心模块之一,用于管理用户的基本信息和账户余额。

具体功能需求如下:•用户注册:用户可以通过系统进行注册,输入基本信息并生成唯一的用户ID。

•用户登录:已注册的用户可以通过输入用户名和密码进行登录操作。

•用户查询:用户可以通过系统查询自己的账户余额和消费记录。

2.2 机房使用管理模块机房使用管理模块主要用于管理机房的使用情况和收费标准。

具体功能需求如下:•机房预约:用户可以通过系统预约机房使用时间,系统根据预约时间自动计算费用。

•机房取消预约:用户可以在预约时间之前取消机房的使用,系统将相应地进行费用计算和余额调整。

•机房使用记录查询:用户可以查询自己的机房使用记录和相关费用信息。

2.3 费用计算与管理模块费用计算与管理模块是机房收费管理系统的重要组成部分,用于计算和管理机房使用费用。

具体功能需求如下:•费用计算:系统根据机房使用时间和收费标准自动计算费用。

•费用管理:系统根据机房使用记录和费用计算结果进行费用管理和账户余额调整。

3. 系统设计与实现3.1 数据结构设计机房收费管理系统需要设计相应的数据结构来存储用户信息、机房使用记录和费用管理等数据。

可以使用结构体或链表等数据结构来实现。

3.2 用户管理模块实现用户管理模块可以通过调用C语言提供的文件操作函数来实现用户信息的读取、存储和更新。

可以使用文件来存储用户信息和账户余额等数据。

3.3 机房使用管理模块实现机房使用管理模块需要设计相应的数据结构来存储机房预约信息和使用记录。

可以使用链表或数组等数据结构来实现。

C语言课程设计报告——机房管理系统

C语言课程设计报告——机房管理系统

目录一.设计内容二.设计要求(1)题目要求(2)输入/输出要求三.整体设计思路四.流程图(1)层次模块图(2)空机号查询N—S图五.主函数及功能菜单说明六.各模块简要说明七.心得体会附录一.源程序代码二.各模块运行结果截图一:设计内容题目:机房管理系统设计机房管理系统,要求由菜单进行管理。

(1)上机前先检查是否有空机位,有则将其显示出,无则提示无空位。

(2)还有空位置时,运行进入,并记录下位置号以及序号,与上机时间。

(3)可对上机者上机信息进行查询,修改与删除。

(4)设计相关模块,显示上机者的上机费用。

(5)显示所有上机者的上机信息。

二:设计要求题目要求:(1)为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。

(2)要求以上功能分别用函数实现。

输入/输出要求:(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。

进入每个操作后,根据程序的提示输入相应的信息。

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

三:整体设计思路在设计该程序时,要将系统的不同功能分成各个模块。

每个模块由一个函数定义,整个程序由函数调用来实现。

每个模块是一个子函数,由一个主函数调用各个子函数。

在定义子函数时,根据不同的功能选择不同的语句,如需要使用循环时可以用“do……while”来实现;需要使用选择时可以用“switch”或“if”语句来实现等。

设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。

每个模块由组员相应完成。

另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋上上机者相关信息,避免管理员一个一个的给机子输入信息。

本系统程序关键在于一个空机位的检索,亦是本程序核心之所在。

c语言课程设计机房收费管理系统

c语言课程设计机房收费管理系统

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++机房收费系统文档

C++机房收费系统文档

辽宁工程技术大学《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.在调试过程中发现自己犯了很多细节性的错误,比如标点符号的错误,然后一个一个发现,修正,过程很冗杂,都要怪自己在编写的时候不细心,挺后悔的,以后在做一件事的时候就要认真,以避免不必要的麻烦。

c语言编程机房收费管理系统

c语言编程机房收费管理系统

课程设计报告题目:微机机房收费管理系统学号: ***********名:**专业:计算机系统维护班级: 12 计维指导教师:***2 0 1 4年 7 月17日目录课程设计报告封面 (1)目录 (2)一.实验题目 (3)二.实验目的 (3)三.实验设计说明与要求.............................................3-4四.程序实现流程图为 (4)五.课程设计与心得体会………………………………………4-5六.程序实现过程………………………………………………5-10七.实验结果……………………………………………………10-12机房收费系统课程设计报告一.实验题目:《机房收费管理系统》设计任务(1)输入功能:输入15名学生的学号、班级、姓名、上机起始时间,下机时间。

(2)计算功能:计算每个学生的上机费用。

(上机费用=上机时间* 1.0/h ,注:不足一小时按一小时计算)(3)查询功能:按条件查询显示学生上机信息。

如:(查询班级、学号、姓名、上机时间)等。

二.实验目的:通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。

让我们进一步了解和熟悉C语言的理论基础,能熟练地运用C语言进行编程,相关运用程序的完善与维护,及相关的设计。

从而在今后的发展中有一定的学习基础便于实用。

三.实验设计说明与要求:从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:1. 编写一个菜单驱动的学生机房上机收费管理系统程序(要求使用VC++6.0),实现相关功能。

备注:记录以下信息:学号,姓名,班级,上机时间,上机费用。

2. 进一步掌握C语言程序设计的基本思想和方法;3. 掌握结构化程序设计的基本原理及应用;4. 要求通过数字键或者字母键的选择来对信息进行相应的操作。

需求分析:根据机房收费管理设计的要求,需要设计三个功能:分别是输入学生上机信息功能,计算上机所花费的时间和费用功能和用学号,姓名,班级能查询到学生的信息功能等1. 在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。

实训报告机房收费管理系统.doc

实训报告机房收费管理系统.doc

北京联合大学课程设计报告课程名称: C语言程序设计课设项目名称:机房收费管理系统学院:自动化学院专业:建筑电气与智能化姓名:学号:指导教师:*绩:2010年6月18日目录第1部分课程设计题目与要求 (1)1.问题描述 (1)2.功能要求 (1)3.任务分工 (2)第2部分《》的设计与功能实现 (2)1.总体设计 (2)2.数据结构 (4)3.算法设计 (5)4.程序代码设计 (11)5.测试与调试 (18)第3部分课程设计总结 (20)1.个人总结 (20)2.结束语 (24)附录Ⅰ程序清单 (25)附录Ⅱ用户使用说明书 (45)参考文献 (46)第1部分课程设计题目与要求1.问题描述为了便于管理,需要对机房的上机收费进行计算机管理,所需要的功能为:建立学生的上级档案、对于毕业的学生能够删除其档案、根据上机和下机时间计算出本次所需费用、能够续钱。

2.功能要求循环显示如图12.17所示的主菜单。

在主菜单中选择1:建立名为duli16_3.dat的文件,并在其中添加若干学生的上机档案,信息包括学号、姓名、金额,要求学号是唯一的。

在主菜单中选择2:要求用户输入学号,然后系统显示该学生档案,并自动开始计时,如果原来金额不足12.176元,则不能上机,而且显示“余额不足,请续钱!”。

在主菜单中选择3:停住对该学生记时,同时根据用户输入的学号,计算该学生上机时间,并按1小时2元收费(30分钟以内均按半小时处理,60分钟以内按1小时处理),然后显示上机前后的金额。

在主菜单中选择4:添加新档案,这时要求新学号和已有的学号不能重号。

在主菜单中选择5:注销旧档案。

在主菜单中选择6:要求用户输入学号和续钱额,续钱完成后分别显示续钱前后的金额。

在主菜单中选择7:此项功能学生自由发挥,根据本组爱好增加与本题目相关的新功能。

在主菜单中选择0:显示结束信息,按任意键后,退出本系统。

13.任务分工主要负责编写:下机函数mylikai()、注销函数myzhuxiao()。

C++机房计费管理系统

C++机房计费管理系统

目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (17)五、用户手册 (17)六、测试数据 (18)七、附录 (20)一、需求分析1.输入功能:输入 30 名学生的学号、班级、姓名、上机起始时间。

2.计算功能:计算每个下机学生的上机费用,每小时 1 元。

(上机费用=上机时间*1.0/h ,不足一小时按一小时计算)3.查询功能:按条件(班级、学号、姓名)显示学生的上机时间。

4.机器使用情况的显示(显示方式不限但要一目了然)5.要求:1)源文件采用多文件的工程结构;2)数据存储采用文件形式;3)采用面向对象方法设计;4)功能完善,适当的注释;5)关于文件的内容需要自学;二、概要设计1.学生类的定义:Student(学生类 )int getcla();获取班级号int tag;//删除标记int gettag();获取标记char name[20]; 学生姓名int getstunum(); 获取学号int cla;班级int getcomnum(); 获取上机号int stunum; 学号double countht(); 计算上机时间int comnum; 上机号int countm(); 计算上机费用time_t stime; 开始上机时间void disp();显示time_t otime; 下机时间void disp2();显示 2double htime; 上机总时间int money; 上机费用Student(); 构造函数Void upcom(char Name[20],intCla,int Stunum,int Comnum);上机操作int downcom();下机操作void delstu();删除操作void setotime();设置下机时间time_t gettime();获取当前时间char* getname(); 获取姓名2.学生库类定义:StuData(学生库类 )int top;学生记录指针Student student[MAXS] ;学生记录StuData(); 构造函数Student* searchnum(int Stunum);按学号搜索学生Student* searchcla(int Cla); 按班级搜索学生void dispbycla(int Cla);按班级显示学生Student*searchname(char *Name);按姓名显示学生void dispall(); 显示所有学生信息void upcom(char Name[20],intCla,int Stunum,int Comnum); 上机操作void downcom(int Stunum);下机操作int search(); 搜索操作~StuData(); 析构函数3.电脑类的定义:Computer( 电脑类 )int tag;删除标记int comnum;电脑号Computer(); 构造函数void setcomnum(int Comnum);设置电脑号int getcomnum();获取电脑号void upcom();上机操作void downcom(); 下机操作int gettag();获取标记4.电脑库类的定义:ComData( 电脑库类 )int upcom();上机操作Computer computer[30];记录电void disp();显示脑~ComData(); 析构函数ComData(); 构造函数Computer* searchcom();搜索空闲电脑Computer* searchnum(intComnum);按电脑号搜索三、详细设计1.学生类成员函数的定义:Student::Student() //构造函数{}void Student::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机{strcpy(name,Name);tag=1;cla=Cla;stunum=Stunum;comnum=Comnum;stime=gettime();}int Student::downcom() //下机{//otime=gettime();setotime();delstu();disp();return comnum;}void Student::delstu() //更改上机标记{tag=0;}void Student::setotime() //获取下机时间{otime=gettime();}time_t Student::gettime() //获取当前时间{return time(NULL);}char* Student::getname() //获取姓名{return name;}int Student::getcla() //获取班级{return cla;}int Student::gettag() //获取上机标记{return tag;}int Student::getstunum() //获取学号{return stunum;}int Student::getcomnum() //获取上机号{return comnum;}double Student::countht() //计算总上机时间{return difftime(otime,stime);}int Student::countm() //计算上机费用{if(((int)countht())%3600==0)return ((int)countht())/3600;return ((int)countht()/3600)+1;}void Student::disp() //显示{cout<<" 姓名: "<<name<<" "<<" 班级: "<<cla<<" "<<" 学号: "<<stunum<<" "<<" 上机号 "<<comnum<<endl;cout<<" 开始上机时间: "<<asctime(localtime(&stime))<<" "<<"上机总时间: "<<countht()/3600.00<<"小时"<<" "<<"上机费用:"<<countm()<<"元"<<endl;}void Student::disp2() //显示{cout<<endl<<endl<<" -----上机成功-----"<<endl;cout<<" 姓名: "<<name<<endl<<"班级: "<<cla<<endl<<" 学号:"<<stunum<<endl<<" 开始上机时间: "<<asctime(localtime(&stime))<<"上机号:"<<comnum<<endl;//cout<<"开始上机时间:"<<stime<<" "<<"上机总时间:"<<countht()<<" "<<" 上机费用: "<<countm()<<endl;}2.学生库类成员函数定义:StuData::StuData()//构造函数,将student.txt中的内容读到student[]中{Student s;top=-1;ifstream fin("student.txt");while(1){fin.read((char *)&s,sizeof(s));if(!fin)break;top++;student[top]=s;}fin.close();}Student* StuData::searchnum(int Stunum) //按学号搜索{for(int i=0;i<=top;i++)if(student[i].getstunum()==Stunum&&student[i].gettag()==1){return &student[i];}return NULL;}Student* StuData::searchcla(int Cla) //按班级搜索{for(int i=0;i<=top;i++)if(student[i].getcla()==Cla&&student[i].gettag()==1){return &student[i];}return NULL;}void StuData::dispbycla(int Cla) //按班级显示{for(int j=0;j<=top;j++)if(student[j].getcla()==Cla&&student[j].gettag()==1){student[j].disp();cout<<endl;}}Student* StuData::searchname(char *Name) //按姓名搜索{for(int i=0;i<=top;i++)if(!strcmp(student[i].getname(),Name)&&student[i].gettag()==1){return &student[i];}return NULL;}void StuData::dispall() //显示所有学生{for(int i=0;i<=top;i++)if(student[i].gettag()==1){student[i].setotime();student[i].disp();cout<<endl;}}void StuData::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机{top++;student[top].upcom(Name,Cla,Stunum,Comnum);}void StuData::downcom(int Stunum) //下机{Student *p;p=searchnum(Stunum);p->downcom();}int StuData::search() //机房学生查询{char choice;char name[20];int stunum;int cla;Student *s;while(choice!='0'){cout<<endl<<endl<<"--------机房学生查询--------"<<endl<<endl;cout<<"------1按姓名查询------"<<endl;cout<<"------2按学号查询------"<<endl;cout<<"------3按班级查询------"<<endl;cout<<"------4全部学生信息------"<<endl;cout<<"------0返回主菜单------"<<endl; cin>>choice;switch(choice){case '1':system("cls");cout<<" 请输入学生姓名: "<<endl;cin>>name;s=searchname(name);if(s==NULL){cout<<" 机房没有此人 "<<endl;break;}s->disp();break;case '2':system("cls");cout<<" 请输入学生学号: "<<endl;cin>>stunum;s=searchnum(stunum);if(s==NULL){cout<<" 机房没有此人 "<<endl;break;}s->disp();break;case '3':system("cls");cout<<" 请输入班级号: "<<endl;cin>>cla;s=searchcla(cla);if(s==NULL){cout<<" 机房没有该班级的人! "<<endl;break;}dispbycla(cla);break;case '4':system("cls");cout<<endl<<endl<<" ------机房所有上机学生信息如下------"<<endl<<endl;dispall();break;case '0':return 0;default:cout<<" 输入有误,请重新输入:"<<endl;}cout<<" 按任意键返回 "<<endl;getch();system("cls");}}StuData::~StuData() //析构函数,将student[]中数据写到srudent.txt中{ofstream fout("student.txt");for(int i=0;i<=top;i++)if(student[i].gettag()==1)fout.write((char*)&student[i],sizeof(student[i]));fout.close();}3.电脑类成员函数定义:Computer::Computer() //构造函数{tag=0;}void Computer::setcomnum(int Comnum) //设置电脑号{comnum=Comnum;}int Computer::getcomnum() //获取电脑号{return comnum;}void Computer::upcom() //上机{tag=1;}void Computer::downcom() //下机{tag=0;}int Computer::gettag() //获取上机标记{return tag;}4.电脑库类成员函数定义:ComData::ComData() //构造函数{Computer c;ifstream fin("computer.txt");for(int j=0;j<MAXC;j++){fin.read((char*)&c,sizeof(c));computer[j]=c;}fin.close();for(int i=0;i<MAXC;i++){computer[i].setcomnum(i+1);}}Computer* ComData::searchcom() //搜索空闲电脑{for(int i=0;i<MAXC;i++)if(computer[i].gettag()==0)return &computer[i];return NULL;}Computer* ComData::searchnum(int Comnum) //按电脑号搜索电脑{for(int i=0;i<MAXC;i++)if(computer[i].getcomnum()==Comnum)return &computer[i];return NULL;}int ComData::upcom()//上机{Computer *p=searchcom();if(p==NULL){cout<<" 机房已满,不能上机 "<<endl;return 0;}p->upcom();return p->getcomnum();}void ComData::disp() //显示{cout<<endl<<endl<<" 电脑使用情况如下, '1' 为被使用中, '0' 为空闲中!"<<endl<<endl;for(int i=0;i<MAXC;i++){//cout<<computer[i].getcomnum();printf("%4d",computer[i].gettag());if((i+1)%6==0)cout<<endl;}}ComData::~ComData() //析构函数{ofstream fout("computer.txt");for(int i=0;i<MAXC;i++)//if(computer[i].gettag()==1)fout.write((char*)&computer[i],sizeof(computer[i]));fout.close();}四、调试分析1.调试前,界面有些凌乱,选择某项功能后,之前的菜单仍然在界面上;调试时,适当加入了清屏函数,使界面更加简洁清晰。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计设计报告题目:机房收费管理系统一、实验题目机房收费管理系统二、实验环境Visual C++ 6.0三、设计思想包括:函数分解过程、算法描述以及相应的数据流程图一、函数分解过程1、输入功能struct lbtime{ int lbhour;int lbminute;int lbsecond;};typedef struct{char lbnum[20];int lbbanji;int lbflag;char lbname[20];struct lbtime lbstart,lbfinish; }lbStudent;lbStudent lbstu[50];struct lbcomputer{ int lbf;lbStudent lbstut;}lbcom[30];int lbk;int lbmain_menu(){ char lbc;do{system("cls");cout<<"\t\t\t****机房收费管理系统****\n"<<"\t\t\t1.输入学生信息\n"<<"\t\t\t2.上机\n"<<"\t\t\t3.下机\n"<<"\t\t\t4.查询上机时间\n"<<"\t\t\t5.机器使用情况显示\n"<<"\t\t\t0.退出系统\n"<<"\t\t\t************************\n"<<"\t\t\t 请选择菜单(0-5):";lbc=getchar(); }while(lbc<'0'||lbc>'5');return(lbc-'0');}int lbinput(lbStudent lbstu[],int lbn){int lbi=0;char lbsign='0';while(lbsign!='lbn'&&lbsign!='lbN'){getchar();cout<<"\t\t 学号:";gets(lbstu[lbn+qhi].lbnum);cout<<"\t\t 班级:";cin>>lbstu[lbn+lbi].lbbanji;getchar();cout<<"\t\t 姓名:";gets(lbstu[lbn+lbi].lbname);cout<<"\t\t 继续输入?是请按Y,否请按N:"; cin>>lbsign;lbstu[lbn+qhi].lbflag=0;lbi++;}return(lbn+lbi);}void lbonline(lbStudent lbstu[],int lbn){char lbnum_t[20],lbname_t[20];int lbi,lbs;do{cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; }while(lbs!=1&&lbs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;lbi<lbn;lbi++)if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break;}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break;}}{cout<<"\t\t 信息库中暂无该生,请输入该生信息再上机!\n";return; }else if(lbstu[lbi].lbflag==1){cout<<"\t\t 该生正在上机!\n";return;}else{for(lbk=0;lbk<30;lbk++)if(lbcom[lbk].lbf==0){lbcom[lbk].lbf=1;cout<<"\t\t 请输入上机时间(当前时间):";cin>>lbstu[lbi].lbstart.lbhour>>lbstu[lbi].lbstart.lbminute>>lb stu[lbi].lbstart.lbsecond;lbstu[lbi].lbflag=1;lbcom[lbk].lbstut=lbstu[lbi]; break;}cout<<"\t\t 机器全部使用中,请稍后再上机!\n";}}2、计算功能void lbcalculate(lbStudent lbstu) {int lbt;struct lbtime lbtimet;if(lbstu.lbfinish.lbsecond<lbstu.lbstart.lbsecond){ if(lbstu.lbfinish.lbminute==0){ lbstu.lbfinish.lbhour-=1;lbstu.lbfinish.lbminute=59;}elselbstu.lbfinish.lbminute-=1;lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsec ond;}elselbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond ;if(lbstu.lbfinish.lbminute<lbstu.lbstart.lbminute){lbstu.lbfinish.lbhour-=1;lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute;}elselbtimet.lbminute=lbstu.lbfinish.lbminute-lbstu.lbstart.lbminute ;lbtimet.lbhour=lbstu.lbfinish.lbhour-lbstu.lbstart.lbhour;if(lbtimet.lbsecond==0&&lbtimet.lbminute==0)lbt=lbtimet.lbhour;elselbt=lbtimet.lbhour+1;cout<<"\t\t 该生上机用时%d 小时,费用为%d 元\n",lbt,lbt;}3、查询功能void lboffline(lbStudent lbstu[],int lbn){char lbnum_t[20],lbname_t[20];int lbi,lbs;do{cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs;}while(lbs!=1&&lbs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;qhi<lbn;lbi++){if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break;}}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)break;}}if(lbi==lbn){cout<<"\t\t 没有这个学生!\n";return;}else if(lbstu[lbi].lbflag==0){cout<<"\t\t 该生未上机或已下机!\n";return;}else{cout<<"\t\t 请输入下机时间(当前时间):";cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute> >lbstu[lbi].lbfinish.lbsecond;lbcalculate(lbstu[qhi]); lbstu[lbi].lbflag=0;for(lbk=0;lbk<3;lbk++)if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].bnum)==0){lbcom[lbk].lbf=0; break;}}}void lbsearch(lbStudent lbstu[],int lbn) {char lbnum_t[20],lbname_t[20];int lbi,lbs;do{cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs;}while(lbs!=1&&qhs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;qhi<lbn;lbi++){if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break;}}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;qhi<lbn;bi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)break;}}if(lbi==lbn){cout<<"\t\t 查无此生!\n";return;}else if(lbstu[lbi].lbflag==1)cout<<"\t\t 该生正在上机,上机起始时间为%d:%d:%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute, lbstu[lbi].lbstart.lbsecond;elsecout<<"\t\t 该生未上机或已下机!\n";}4、机器使用情况的显示void display(){cout<<"\t 机器号是否使用使用者学号班级上机时间\n";cout<<"\t----------------------------------------------------------\n";for(lbk=0;lbk<30;lbk++){if(lbcom[lbk].lbf==0)cout<<"\t%02d 否-----:--:--\n",qhk+1;elsecout<<"yes"<<endl;lbcom[lbk].lbstut.lbname,lbcom[lbk].lbstut.lbnum,lbcom[lbk]. lbstut.lbbanji,lbcom[lbk].lbstut.lbstart.lbhour,lbcom[lbk].lbstut.lbstart.lbminute,lbcom[lbk].lbstut.lbstart.lbs econd;}cout<<"\t";system("pause");}1总体结构图2主函数程序流程图3子函数程序流程图1输入学生信息2学生上机3学生下机4上机时间查询5机器使用情况四、源程序清单包括调试过程(碰到的错误、如何错误排除)#include "stdafx.h"#include<iostream>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>using namespace std;struct qhtime{ int qhhour;int lbminute;int lbsecond;};typedef struct{char lbnum[20];int lbbanji;int lbflag;char lbname[20];struct lbtime lbstart,lbfinish; }lbStudent lbstu[50];struct lbcomputer{ int lbf;lbStudent lbstut;}lbcom[30];int lbk;int lbmain_menu(){ char qhc;do{system("cls");cout<<"\t\t\t****机房收费管理系统****\n"<<"\t\t\t1.输入学生信息\n"<<"\t\t\t2.上机\n"<<"\t\t\t3.下机\n"<<"\t\t\t4.查询上机时间\n"<<"\t\t\t5.机器使用情况显示\n"<<"\t\t\t0.退出系统\n"<<"\t\t\t************************\n"<<"\t\t\t 请选择菜单(0-5):";lbc=getchar(); }while(lbc<'0'||qhc>'5');return(lbc-'0');}int lbinput(lbStudent lbstu[],int lbn){int lbi=0;char lbsign='0';while(lbsign!='lbn'&&lbsign!='lbN'){getchar();cout<<"\t\t 学号:";gets(lbstu[lbn+lbi].lbnum);cout<<"\t\t 班级:";cin>>lbstu[lbn+lbi].lbbanji;getchar();cout<<"\t\t 姓名:";gets(lbstu[lbn+lbi].lbname);cout<<"\t\t 继续输入?是请按Y,否请按N:";cin>>lbsign;lbstu[lbn+lbi].lbflag=0;lbi++;}return(lbn+lbi);}void lbonline(lbStudent lbstu[],int lbn){char lbnum_t[20],lbname_t[20];do{cout<<"\t\t 使用姓名按1,使用学号按2:";cin>>lbs; }while(lbs!=1&&lbs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;lbi<lbn;lbi++)if(strcmp(lbstu[lbi].lbname,lbname_t)==0)break;}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)break;}}if(lbi==lbn){cout<<"\t\t 信息库中暂无该生,请输入该生信息再上机!\n";return; }else if(lbstu[lbi].lbflag==1){cout<<"\t\t 该生正在上机!\n";return;}else{for(lbk=0;lbk<30;lbk++)if(lbcom[lbk].lbf==0){lbcom[lbk].lbf=1;cout<<"\t\t 请输入上机时间(当前时间):";cin>>lbstu[lbi].lbstart.lbhour>>lbstu[lbi].lbstart.lbminute>>lbstu[lbi].lbst art.lbsecond;lbstu[lbi].lbflag=1;lbcom[lbk].lbstut=lbstu[lbi]; break;}if(lbk==30)cout<<"\t\t 机器全部使用中,请稍后再上机!\n";}}void lbcalculate(lbStudent lbstu) {int lbt;struct lbtime lbtimet;if(lbstu.lbfinish.lbsecond<lbstu.lbstart.lbsecond){ if(lbstu.lbfinish.lbminute==0){ lbstu.lbfinish.lbhour-=1;lbstu.lbfinish.lbminute=59;}elselbstu.lbfinish.lbminute-=1;lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond; }elselbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond;if(lbstu.lbfinish.lbminute<lbstu.lbstart.lbminute){lbstu.lbfinish.lbhour-=1;lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute; }elselbtimet.lbminute=lbstu.lbfinish.lbminute-lbstu.lbstart.lbminute; lbtimet.lbhour=lbstu.lbfinish.lbhour-lbstu.lbstart.lbhour;if(lbtimet.lbsecond==0&&lbtimet.lbminute==0)lbt=lbtimet.lbhour;elselbt=lbtimet.lbhour+1;cout<<"\t\t 该生上机用时%d 小时,费用为%d 元\n",lbt,lbt;}void lboffline(lbStudent lbstu[],int qhn){char lbnum_t[20],lbname_t[20];int lbi,lbs;do{cout<<"\t\t 使用姓名按1,使用学号按2:";cin>>lbs;}while(lbs!=1&&lbs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbname,lbname_t)==0)break;}}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)break;}}if(lbi==lbn){cout<<"\t\t 没有这个学生!\n";return;}else if(lbstu[lbi].lbflag==0){cout<<"\t\t 该生未上机或已下机!\n";return;}else{cout<<"\t\t 请输入下机时间(当前时间):";cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute>>lbstu[lbi].l bfinish.lbsecond;lbcalculate(lbstu[lbi]); lbstu[lbi].lbflag=0;for(lbk=0;lbk<3;lbk++)if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].lbnum)==0){lbcom[lbk].lbf=0; break;}}}void lbsearch(lbStudent lbstu[],int lbn) {char lbnum_t[20],lbname_t[20];int lbi,lbs;do{cout<<"\t\t 使用姓名按1,使用学号按2:";cin>>lbs;}while(lbs!=1&&lbs!=2);getchar();if(lbs==1){cout<<"\t\t 请输入姓名:";gets(lbname_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbname,lbname_t)==0)break;}}else{cout<<"\t\t 请输入学号:";gets(lbnum_t);for(lbi=0;lbi<lbn;lbi++){if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0)break;}}if(lbi==lbn){cout<<"\t\t 查无此生!\n";return;}else if(lbstu[lbi].lbflag==1)cout<<"\t\t 该生正在上机,上机起始时间为%d:%d:%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute, lbstu[lbi].lbstart.lbsecond;elsecout<<"\t\t 该生未上机或已下机!\n";}void display(){cout<<"\t 机器号是否使用使用者学号班级上机时间\n";cout<<"\t----------------------------------------------------------\n";for(lbk=0;lbk<30;lbk++){if(lbcom[lbk].lbf==0)cout<<"\t%02d 否-----:--:--\n",lbk+1;elsecout<<"yes"<<endl;lbcom[lbk].lbstut.lbname,lbcom[lbk].lbstut.lbnum,lbcom[lbk].lbstut.lbban ji,lbcom[qhk].lbstut.lbstart.lbhour,lbcom[lbk].lbstut.lbstart.lbminute,lbcom[lbk].lbstut.lbstart.lbsecond;}cout<<"\t";system("pause");}int main() {int lbn=0;for(lbk=0;lbk<30;lbk++)lbcom[lbk].lbf=0;for(;;){switch(lbmain_menu()){case 1:system("cls");cout<<"\t\t\t 输入学生信息:\n";lbn=lbinput(lbstu,lbn); break;case 2:system("cls");cout<<"\t\t\t 学生上机\n";lbonline(lbstu,lbn);cout<<"\t\t";system("pause");break;case 3:system("cls");cout<<"\t\t\t 学生下机\n";lboffline(lbstu,lbn);cout<<"\t\t";system("pause");break;case 4:system("cls");cout<<"\t\t\t 上机时间查询\n";lbsearch(lbstu,lbn);cout<<"\t\t";system("pause");break;case 5:system("cls");cout<<"\t\t\t 机器使用情况显示\n\n";display();break;case 0:system("cls");cout<<"\n\n\t\t 感谢使用机房收费管理系统,欢迎下次使用,再见!\n\n";cout<<"\t\t";system("pause");exit(0);}}return 0;分析:多将中文输入法中的符号与英文中的混用,造成程序运行不畅。

相关文档
最新文档