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

合集下载

机房收费管理系统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语言机房收费管理系统
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课程设计机房收费管理系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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-------------------------------------------------------------------------------------------------------------------/*时间*/ 第 - 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(程序运行结果:由于该改程序运行结果较复杂,输出信息较多,故此不再给出,可参照上机运行结果。

C语言程序设计教程ppt课件完整版pptx

C语言程序设计教程ppt课件完整版pptx
C语言的应用领域
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。

机房收费管理系统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语言程序设计 机房管理系统

#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);}。

C++机房计费管理系统

C++机房计费管理系统

目录一、需求分析 (25)二、概要设计 (25)4.电脑库类的定义: (27)三、详细设计 (27)1.学生类成员函数的定义: (27)Student::Student() //构造函数 (27){} (27)void Student::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (27){ (27)strcpy(name,Name); (27)tag=1; (27)cla=Cla; (27)stunum=Stunum; (27)comnum=Comnum; (27)stime=gettime(); (27)} (27)int Student::downcom() //下机 (27){ (27)//otime=gettime(); (28)setotime(); (28)delstu(); (28)disp(); (28)return comnum; (28)} (28)void Student::delstu() //更改上机标记 (28){ (28)tag=0; (28)} (28)void Student::setotime() //获取下机时间 (28){ (28)otime=gettime(); (28)} (28)time_t Student::gettime() //获取当前时间 (28){ (28)return time(NULL); (28)} (28)char* Student::getname() //获取姓名 (28){ (28)return name; (28)} (28)int Student::getcla() //获取班级 (28){ (28)return cla; (29)} (29)int Student::gettag() //获取上机标记 (29){ (29)return tag; (29)} (29)int Student::getstunum() //获取学号 (29){ (29)return stunum; (29)} (29)int Student::getcomnum() //获取上机号 (29){ (29)return comnum; (29)} (29)double Student::countht() //计算总上机时间 (29){ (29)return difftime(otime,stime); (29)} (29)int Student::countm() //计算上机费用 (29){ (29)if(((int)countht())%3600==0) (29)return ((int)countht())/3600; (29)return ((int)countht()/3600)+1; (29)} (29)void Student::disp() //显示 (30){ (30)cout<<"姓名:"<<name<<" "<<"班级:"<<cla<<" "<<"学号:"<<stunum<<" "<<"上机号"<<comnum<<endl; (30)cout<<"开始上机时间:"<<asctime(localtime(&stime))<<" "<<"上机总时间:"<<countht()/3600.00<<"小时"<<" "<<"上机费用:"<<countm()<<"元"<<endl; (30)void Student::disp2() //显示 (30){ (30)cout<<endl<<endl<<" -----上机成功-----"<<endl; (30)cout<<"姓名:"<<name<<endl<<"班级:"<<cla<<endl<<"学号:"<<stunum<<endl<<"开始上机时间:"<<asctime(localtime(&stime))<<"上机号:"<<comnum<<endl; (30)//cout<<"开始上机时间:"<<stime<<" "<<"上机总时间:"<<countht()<<" "<<"上机费用:"<<countm()<<endl; (30)} (30)2.学生库类成员函数定义: (30)StuData::StuData() //构造函数,将student.txt中的内容读到student[]中 (30){ (30)Student s; (30)ifstream fin("student.txt"); (30)while(1) (30){ (30)fin.read((char *)&s,sizeof(s)); (30)if(!fin) (31)break; (31)top++; (31)student[top]=s; (31)} (31)fin.close(); (31)} (31)Student* StuData::searchnum(int Stunum) //按学号搜索31 { (31)for(int i=0;i<=top;i++) (31)if(student[i].getstunum()==Stunum&&student[i].gettag()==1) (31){return &student[i];} (31)return NULL; (31)} (31)Student* StuData::searchcla(int Cla) //按班级搜索 (31){ (31)for(int i=0;i<=top;i++) (31)if(student[i].getcla()==Cla&&student[i].gettag()==1). 31 {return &student[i];} (31)return NULL; (31)} (31)void StuData::dispbycla(int Cla) //按班级显示 (31){ (31)for(int j=0;j<=top;j++) (31)if(student[j].getcla()==Cla&&student[j].gettag()==1). 32 { (32)student[j].disp(); (32)cout<<endl; (32)} (32)} (32)Student* StuData::searchname(char *Name) //按姓名搜索32 { (32)for(int i=0;i<=top;i++) (32)if(!strcmp(student[i].getname(),Name)&&student[i].gettag()== 1) (32){return &student[i];} (32)return NULL; (32)} (32)void StuData::dispall() //显示所有学生 (32){ (32)for(int i=0;i<=top;i++) (32)if(student[i].gettag()==1) (32){ (32)student[i].setotime(); (32)student[i].disp(); (32)cout<<endl; (32)} (32)} (32)void StuData::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (32){ (33)top++; (33)student[top].upcom(Name,Cla,Stunum,Comnum); (33)} (33)void StuData::downcom(int Stunum) //下机 (33){ (33)Student *p; (33)p=searchnum(Stunum); (33)p->downcom(); (33)} (33)int StuData::search() //机房学生查询 (33){ (33)char choice; (33)char name[20]; (33)int stunum; (33)int cla; (33)Student *s; (33)while(choice!='0') (33){ (33)cout<<endl<<endl<<"--------机房学生查询--------"<<endl<<endl; (33)cout<<"------1 按姓名查询 ------"<<endl; (33)cout<<"------2 按学号查询 ------"<<endl; (33)cout<<"------3 按班级查询 ------"<<endl; (33)cout<<"------4 全部学生信息 ------"<<endl; (33)cout<<"------0 返回主菜单 ------"<<endl; (34)cin>>choice; (34)switch(choice) (34){ (34)case '1': (34)system("cls"); (34)cout<<"请输入学生姓名:"<<endl; (34)cin>>name; (34)s=searchname(name); (34){ (34)cout<<"机房没有此人"<<endl; (34)break; (34)} (34)s->disp(); (34)break; (34)case '2': (34)system("cls"); (34)cout<<"请输入学生学号:"<<endl; (34)cin>>stunum; (34)s=searchnum(stunum); (34)if(s==NULL) (34){ (34)cout<<"机房没有此人"<<endl; (34)} (35)s->disp(); (35)break; (35)case '3': (35)system("cls"); (35)cout<<"请输入班级号:"<<endl; (35)cin>>cla; (35)s=searchcla(cla); (35)if(s==NULL) (35){ (35)cout<<"机房没有该班级的人!"<<endl; (35)break; (35)} (35)dispbycla(cla); (35)case '4': (35)system("cls"); (35)cout<<endl<<endl<<" ------机房所有上机学生信息如下------"<<endl<<endl; (35)dispall(); (35)break; (35)case '0': (35)return 0; (35)default: (36)cout<<"输入有误,请重新输入:"<<endl; (36)} (36)cout<<"按任意键返回"<<endl; (36)getch(); (36)system("cls"); (36)} (36)StuData::~StuData() //析构函数,将student[]中数据写到srudent.txt中 (36){ (36)ofstream fout("student.txt"); (36)for(int i=0;i<=top;i++) (36)if(student[i].gettag()==1) (36)fout.write((char*)&student[i],sizeof(student[i])); (36)fout.close(); (36)} (36)3.电脑类成员函数定义: (36)Computer::Computer() //构造函数 (36){ (36)tag=0; (36)void Computer::setcomnum(int Comnum) //设置电脑号 (36){ (36)comnum=Comnum; (37)} (37)int Computer::getcomnum() //获取电脑号 (37){ (37)return comnum; (37)} (37)void Computer::upcom() //上机 (37){ (37)tag=1; (37)} (37)void Computer::downcom() //下机 (37){ (37)} (37)int Computer::gettag() //获取上机标记 (37){ (37)return tag; (37)} (37)4.电脑库类成员函数定义: (37)ComData::ComData() //构造函数 (37){ (37)Computer c; (37)ifstream fin("computer.txt"); (37)for(int j=0;j<MAXC;j++) (38){ (38)fin.read((char*)&c,sizeof(c)); (38)computer[j]=c; (38)fin.close(); (38)for(int i=0;i<MAXC;i++) (38){computer[i].setcomnum(i+1);} (38)} (38)Computer* ComData::searchcom() //搜索空闲电脑 (38){ (38)for(int i=0;i<MAXC;i++) (38)if(computer[i].gettag()==0) (38)return &computer[i]; (38)return NULL; (38)} (38)Computer* ComData::searchnum(int Comnum) //按电脑号搜索电脑 (38){ (38)for(int i=0;i<MAXC;i++) (38)if(computer[i].getcomnum()==Comnum) (38)return &computer[i]; (38)return NULL; (38)} (38)int ComData::upcom() //上机 (38){ (39)Computer *p=searchcom(); (39)if(p==NULL) (39){ (39)cout<<"机房已满,不能上机"<<endl; (39)return 0; (39)} (39)p->upcom(); (39)return p->getcomnum(); (39)} (39)void ComData::disp() //显示 (39){ (39)cout<<endl<<endl<<"电脑使用情况如下,'1'为被使用中,'0'为空闲中!"<<endl<<endl; (39)for(int i=0;i<MAXC;i++) (39){ (39)//cout<<computer[i].getcomnum(); (39)printf("%4d",computer[i].gettag()); (39)if((i+1)%6==0) (39)cout<<endl; (39)} (39)} (39)ComData::~ComData() //析构函数 (39){ (39)ofstream fout("computer.txt"); (40)for(int i=0;i<MAXC;i++) (40)//if(computer[i].gettag()==1) (40)fout.write((char*)&computer[i],sizeof(computer[i]));. 40 fout.close(); (40)} (40)四、调试分析 (40)五、用户手册 (40)六、测试数据 (41)主界面:上机操作: (41) (41)下机操作: (41) (41)查询界面: (42) (42)按姓名查询: (42) (42)按学号查询: (42) (42)按班级查询: (42) (43)电脑呗使用情况: (43) (43)七、附录 (43)一、需求分析1.输入功能:输入30名学生的学号、班级、姓名、上机起始时间。

C++机房计费管理系统

C++机房计费管理系统

目录一、需求分析 (25)二、概要设计 (25)4.电脑库类的定义: (27)三、详细设计 (27)1.学生类成员函数的定义: (27)Student::Student() //构造函数 (27){} (27)void Student::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (27){ (27)strcpy(name,Name); (27)tag=1; (27)cla=Cla; (27)stunum=Stunum; (27)comnum=Comnum; (27)stime=gettime(); (27)} (27)int Student::downcom() //下机 (27){ (27)//otime=gettime(); (28)setotime(); (28)delstu(); (28)disp(); (28)return comnum; (28)} (28)void Student::delstu() //更改上机标记 (28){ (28)tag=0; (28)} (28)void Student::setotime() //获取下机时间 (28){ (28)otime=gettime(); (28)} (28)time_t Student::gettime() //获取当前时间 (28){ (28)return time(NULL); (28)} (28)char* Student::getname() //获取姓名 (28){ (28)return name; (28)} (28)int Student::getcla() //获取班级 (28){ (28)return cla; (29)} (29)int Student::gettag() //获取上机标记 (29){ (29)return tag; (29)} (29)int Student::getstunum() //获取学号 (29){ (29)return stunum; (29)} (29)int Student::getcomnum() //获取上机号 (29){ (29)return comnum; (29)} (29)double Student::countht() //计算总上机时间 (29){ (29)return difftime(otime,stime); (29)} (29)int Student::countm() //计算上机费用 (29){ (29)if(((int)countht())%3600==0) (29)return ((int)countht())/3600; (29)return ((int)countht()/3600)+1; (29)} (29)void Student::disp() //显示 (30){ (30)cout<<"姓名:"<<name<<" "<<"班级:"<<cla<<" "<<"学号:"<<stunum<<" "<<"上机号"<<comnum<<endl; (30)cout<<"开始上机时间:"<<asctime(localtime(&stime))<<" "<<"上机总时间:"<<countht()/3600.00<<"小时"<<" "<<"上机费用:"<<countm()<<"元"<<endl; (30)void Student::disp2() //显示 (30){ (30)cout<<endl<<endl<<" -----上机成功-----"<<endl; (30)cout<<"姓名:"<<name<<endl<<"班级:"<<cla<<endl<<"学号:"<<stunum<<endl<<"开始上机时间:"<<asctime(localtime(&stime))<<"上机号:"<<comnum<<endl; (30)//cout<<"开始上机时间:"<<stime<<" "<<"上机总时间:"<<countht()<<" "<<"上机费用:"<<countm()<<endl; (30)} (30)2.学生库类成员函数定义: (30)StuData::StuData() //构造函数,将student.txt中的内容读到student[]中 (30){ (30)Student s; (30)ifstream fin("student.txt"); (30)while(1) (30){ (30)fin.read((char *)&s,sizeof(s)); (30)if(!fin) (31)break; (31)top++; (31)student[top]=s; (31)} (31)fin.close(); (31)} (31)Student* StuData::searchnum(int Stunum) //按学号搜索31 { (31)for(int i=0;i<=top;i++) (31)if(student[i].getstunum()==Stunum&&student[i].gettag()==1) (31){return &student[i];} (31)return NULL; (31)} (31)Student* StuData::searchcla(int Cla) //按班级搜索 (31){ (31)for(int i=0;i<=top;i++) (31)if(student[i].getcla()==Cla&&student[i].gettag()==1). 31 {return &student[i];} (31)return NULL; (31)} (31)void StuData::dispbycla(int Cla) //按班级显示 (31){ (31)for(int j=0;j<=top;j++) (31)if(student[j].getcla()==Cla&&student[j].gettag()==1). 32 { (32)student[j].disp(); (32)cout<<endl; (32)} (32)} (32)Student* StuData::searchname(char *Name) //按姓名搜索32 { (32)for(int i=0;i<=top;i++) (32)if(!strcmp(student[i].getname(),Name)&&student[i].gettag()== 1) (32){return &student[i];} (32)return NULL; (32)} (32)void StuData::dispall() //显示所有学生 (32){ (32)for(int i=0;i<=top;i++) (32)if(student[i].gettag()==1) (32){ (32)student[i].setotime(); (32)student[i].disp(); (32)cout<<endl; (32)} (32)} (32)void StuData::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (32){ (33)top++; (33)student[top].upcom(Name,Cla,Stunum,Comnum); (33)} (33)void StuData::downcom(int Stunum) //下机 (33){ (33)Student *p; (33)p=searchnum(Stunum); (33)p->downcom(); (33)} (33)int StuData::search() //机房学生查询 (33){ (33)char choice; (33)char name[20]; (33)int stunum; (33)int cla; (33)Student *s; (33)while(choice!='0') (33){ (33)cout<<endl<<endl<<"--------机房学生查询--------"<<endl<<endl; (33)cout<<"------1 按姓名查询 ------"<<endl; (33)cout<<"------2 按学号查询 ------"<<endl; (33)cout<<"------3 按班级查询 ------"<<endl; (33)cout<<"------4 全部学生信息 ------"<<endl; (33)cout<<"------0 返回主菜单 ------"<<endl; (34)cin>>choice; (34)switch(choice) (34){ (34)case '1': (34)system("cls"); (34)cout<<"请输入学生姓名:"<<endl; (34)cin>>name; (34)s=searchname(name); (34){ (34)cout<<"机房没有此人"<<endl; (34)break; (34)} (34)s->disp(); (34)break; (34)case '2': (34)system("cls"); (34)cout<<"请输入学生学号:"<<endl; (34)cin>>stunum; (34)s=searchnum(stunum); (34)if(s==NULL) (34){ (34)cout<<"机房没有此人"<<endl; (34)} (35)s->disp(); (35)break; (35)case '3': (35)system("cls"); (35)cout<<"请输入班级号:"<<endl; (35)cin>>cla; (35)s=searchcla(cla); (35)if(s==NULL) (35){ (35)cout<<"机房没有该班级的人!"<<endl; (35)break; (35)} (35)dispbycla(cla); (35)case '4': (35)system("cls"); (35)cout<<endl<<endl<<" ------机房所有上机学生信息如下------"<<endl<<endl; (35)dispall(); (35)break; (35)case '0': (35)return 0; (35)default: (36)cout<<"输入有误,请重新输入:"<<endl; (36)} (36)cout<<"按任意键返回"<<endl; (36)getch(); (36)system("cls"); (36)} (36)StuData::~StuData() //析构函数,将student[]中数据写到srudent.txt中 (36){ (36)ofstream fout("student.txt"); (36)for(int i=0;i<=top;i++) (36)if(student[i].gettag()==1) (36)fout.write((char*)&student[i],sizeof(student[i])); (36)fout.close(); (36)} (36)3.电脑类成员函数定义: (36)Computer::Computer() //构造函数 (36){ (36)tag=0; (36)void Computer::setcomnum(int Comnum) //设置电脑号 (36){ (36)comnum=Comnum; (37)} (37)int Computer::getcomnum() //获取电脑号 (37){ (37)return comnum; (37)} (37)void Computer::upcom() //上机 (37){ (37)tag=1; (37)} (37)void Computer::downcom() //下机 (37){ (37)} (37)int Computer::gettag() //获取上机标记 (37){ (37)return tag; (37)} (37)4.电脑库类成员函数定义: (37)ComData::ComData() //构造函数 (37){ (37)Computer c; (37)ifstream fin("computer.txt"); (37)for(int j=0;j<MAXC;j++) (38){ (38)fin.read((char*)&c,sizeof(c)); (38)computer[j]=c; (38)fin.close(); (38)for(int i=0;i<MAXC;i++) (38){computer[i].setcomnum(i+1);} (38)} (38)Computer* ComData::searchcom() //搜索空闲电脑 (38){ (38)for(int i=0;i<MAXC;i++) (38)if(computer[i].gettag()==0) (38)return &computer[i]; (38)return NULL; (38)} (38)Computer* ComData::searchnum(int Comnum) //按电脑号搜索电脑 (38){ (38)for(int i=0;i<MAXC;i++) (38)if(computer[i].getcomnum()==Comnum) (38)return &computer[i]; (38)return NULL; (38)} (38)int ComData::upcom() //上机 (38){ (39)Computer *p=searchcom(); (39)if(p==NULL) (39){ (39)cout<<"机房已满,不能上机"<<endl; (39)return 0; (39)} (39)p->upcom(); (39)return p->getcomnum(); (39)} (39)void ComData::disp() //显示 (39){ (39)cout<<endl<<endl<<"电脑使用情况如下,'1'为被使用中,'0'为空闲中!"<<endl<<endl; (39)for(int i=0;i<MAXC;i++) (39){ (39)//cout<<computer[i].getcomnum(); (39)printf("%4d",computer[i].gettag()); (39)if((i+1)%6==0) (39)cout<<endl; (39)} (39)} (39)ComData::~ComData() //析构函数 (39){ (39)ofstream fout("computer.txt"); (40)for(int i=0;i<MAXC;i++) (40)//if(computer[i].gettag()==1) (40)fout.write((char*)&computer[i],sizeof(computer[i]));. 40 fout.close(); (40)} (40)四、调试分析 (40)五、用户手册 (40)六、测试数据 (41)主界面:上机操作: (41) (41)下机操作: (41) (41)查询界面: (42) (42)按姓名查询: (42) (42)按学号查询: (42) (42)按班级查询: (42) (43)电脑呗使用情况: (43) (43)七、附录 (43)一、需求分析1.输入功能:输入30名学生的学号、班级、姓名、上机起始时间。

C++机房计费管理系统

C++机房计费管理系统

目录一、需求分析 (26)二、概要设计 (26)4.电脑库类的定义: (27)三、详细设计 (28)1.学生类成员函数的定义: (28)Student::Student() //构造函数 (28){} (28)void Student::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (28){ (28)strcpy(name,Name); (28)tag=1; (28)cla=Cla; (28)stunum=Stunum; (28)comnum=Comnum; (28)stime=gettime(); (28)} (28)int Student::downcom() //下机 (28)//otime=gettime(); (28)setotime(); (28)delstu(); (28)disp(); (29)return comnum; (29)} (29)void Student::delstu() //更改上机标记 (29){ (29)tag=0; (29)} (29)void Student::setotime() //获取下机时间 (29){ (29)otime=gettime(); (29)} (29)time_t Student::gettime() //获取当前时间 (29){ (29)return time(NULL); (29)} (29)char* Student::getname() //获取姓名 (29){ (29)return name; (29)int Student::getcla() //获取班级 (29){ (29)return cla; (29)} (29)int Student::gettag() //获取上机标记 (29){ (30)return tag; (30)} (30)int Student::getstunum() //获取学号 (30){ (30)return stunum; (30)} (30)int Student::getcomnum() //获取上机号 (30){ (30)return comnum; (30)} (30)double Student::countht() //计算总上机时间 (30){ (30)return difftime(otime,stime); (30)} (30)int Student::countm() //计算上机费用 (30)if(((int)countht())%3600==0) (30)return ((int)countht())/3600; (30)return ((int)countht()/3600)+1; (30)} (30)void Student::disp() //显示 (30){ (30)cout<<"姓名:"<<name<<" "<<"班级:"<<cla<<" "<<"学号:"<<stunum<<" "<<"上机号"<<comnum<<endl; (31)cout<<"开始上机时间:"<<asctime(localtime(&stime))<<" "<<"上机总时间:"<<countht()/3600.00<<"小时"<<" "<<"上机费用:"<<countm()<<"元"<<endl; (31)} (31)void Student::disp2() //显示 (31){ (31)cout<<endl<<endl<<" -----上机成功-----"<<endl; (31)cout<<"姓名:"<<name<<endl<<"班级:"<<cla<<endl<<"学号:"<<stunum<<endl<<"开始上机时间:"<<asctime(localtime(&stime))<<"上机号:"<<comnum<<endl; (31)//cout<<"开始上机时间:"<<stime<<" "<<"上机总时间:"<<countht()<<" "<<"上机费用:"<<countm()<<endl; (31)} (31)2.学生库类成员函数定义: (31)StuData::StuData() //构造函数,将student.txt中的内容读到student[]中 (31){ (31)Student s; (31)top=-1; (31)ifstream fin("student.txt"); (31)while(1) (31){ (31)fin.read((char *)&s,sizeof(s)); (31)if(!fin) (31)break; (31)top++; (32)student[top]=s; (32)} (32)fin.close(); (32)} (32)Student* StuData::searchnum(int Stunum) //按学号搜索 (32){ (32)for(int i=0;i<=top;i++) (32)if(student[i].getstunum()==Stunum&&student[i].gettag()==1) (32){return &student[i];} (32)} (32)Student* StuData::searchcla(int Cla) //按班级搜索 (32){ (32)for(int i=0;i<=top;i++) (32)if(student[i].getcla()==Cla&&student[i].gettag()==1) (32){return &student[i];} (32)return NULL; (32)} (32)void StuData::dispbycla(int Cla) //按班级显示 (32){ (32)for(int j=0;j<=top;j++) (32)if(student[j].getcla()==Cla&&student[j].gettag()==1) (32){ (32)student[j].disp(); (33)cout<<endl; (33)} (33)} (33)Student* StuData::searchname(char *Name) //按姓名搜索 (33){ (33)for(int i=0;i<=top;i++) (33)if(!strcmp(student[i].getname(),Name)&&student[i].gettag()==1) .. 33return NULL; (33)} (33)void StuData::dispall() //显示所有学生 (33){ (33)for(int i=0;i<=top;i++) (33)if(student[i].gettag()==1) (33){ (33)student[i].setotime(); (33)student[i].disp(); (33)cout<<endl; (33)} (33)} (33)void StuData::upcom(char Name[20],int Cla,int Stunum,int Comnum) //上机 (33){ (33)top++; (33)student[top].upcom(Name,Cla,Stunum,Comnum); (34)} (34)void StuData::downcom(int Stunum) //下机 (34){ (34)Student *p; (34)p=searchnum(Stunum); (34)p->downcom(); (34)} (34)int StuData::search() //机房学生查询 (34){ (34)char choice; (34)char name[20]; (34)int stunum; (34)int cla; (34)Student *s; (34)while(choice!='0') (34){ (34)cout<<endl<<endl<<"--------机房学生查询--------"<<endl<<endl; (34)cout<<"------1 按姓名查询------"<<endl; (34)cout<<"------2 按学号查询------"<<endl; (34)cout<<"------3 按班级查询------"<<endl; (34)cout<<"------4 全部学生信息------"<<endl; (34)cout<<"------0 返回主菜单------"<<endl; (34)cin>>choice; (34)switch(choice) (35){ (35)case '1': (35)cout<<"请输入学生姓名:"<<endl; (35)cin>>name; (35)s=searchname(name); (35)if(s==NULL) (35){ (35)cout<<"机房没有此人"<<endl; (35)break; (35)} (35)s->disp(); (35)break; (35)case '2': (35)system("cls"); (35)cout<<"请输入学生学号:"<<endl; (35)cin>>stunum; (35)s=searchnum(stunum); (35)if(s==NULL) (35){ (35)cout<<"机房没有此人"<<endl; (35)break; (35)} (35)s->disp(); (36)case '3': (36)system("cls"); (36)cout<<"请输入班级号:"<<endl; (36)cin>>cla; (36)s=searchcla(cla); (36)if(s==NULL) (36){ (36)cout<<"机房没有该班级的人!"<<endl; (36)break; (36)} (36)dispbycla(cla); (36)break; (36)case '4': (36)system("cls"); (36)cout<<endl<<endl<<" ------机房所有上机学生信息如下------"<<endl<<endl; (36)dispall(); (36)break; (36)case '0': (36)return 0; (36)default: (36)cout<<"输入有误,请重新输入:"<<endl; (36)} (37)cout<<"按任意键返回"<<endl; (37)getch(); (37)system("cls"); (37)} (37)} (37)StuData::~StuData() //析构函数,将student[]中数据写到srudent.txt中 (37){ (37)ofstream fout("student.txt"); (37)for(int i=0;i<=top;i++) (37)if(student[i].gettag()==1) (37)fout.write((char*)&student[i],sizeof(student[i])); (37)fout.close(); (37)} (37)3.电脑类成员函数定义: (37)Computer::Computer() //构造函数 (37){ (37)tag=0; (37)} (37)void Computer::setcomnum(int Comnum) //设置电脑号 (37)comnum=Comnum; (37)} (37)int Computer::getcomnum() //获取电脑号 (38){ (38)return comnum; (38)} (38)void Computer::upcom() //上机 (38){ (38)tag=1; (38)} (38)void Computer::downcom() //下机 (38){ (38)tag=0; (38)} (38)int Computer::gettag() //获取上机标记 (38){ (38)return tag; (38)} (38)4.电脑库类成员函数定义: (38)ComData::ComData() //构造函数 (38){ (38)ifstream fin("computer.txt"); (38)for(int j=0;j<MAXC;j++) (38){ (38)fin.read((char*)&c,sizeof(c)); (39)computer[j]=c; (39)} (39)fin.close(); (39)for(int i=0;i<MAXC;i++) (39){computer[i].setcomnum(i+1);} (39)} (39)Computer* ComData::searchcom() //搜索空闲电脑 (39){ (39)for(int i=0;i<MAXC;i++) (39)if(computer[i].gettag()==0) (39)return &computer[i]; (39)return NULL; (39)} (39)Computer* ComData::searchnum(int Comnum) //按电脑号搜索电脑 (39){ (39)for(int i=0;i<MAXC;i++) (39)if(computer[i].getcomnum()==Comnum) (39)return &computer[i]; (39)return NULL; (39)} (39)int ComData::upcom() //上机 (39){ (39)Computer *p=searchcom(); (39)if(p==NULL) (40){ (40)cout<<"机房已满,不能上机"<<endl; (40)return 0; (40)} (40)p->upcom(); (40)return p->getcomnum(); (40)} (40)void ComData::disp() //显示 (40){ (40)cout<<endl<<endl<<"电脑使用情况如下,'1'为被使用中,'0'为空闲中!"<<endl<<endl; (40)for(int i=0;i<MAXC;i++) (40){ (40)//cout<<computer[i].getcomnum(); (40)printf("%4d",computer[i].gettag()); (40)if((i+1)%6==0) (40)cout<<endl; (40)} (40)} (40)ComData::~ComData() //析构函数 (40){ (40)ofstream fout("computer.txt"); (40)for(int i=0;i<MAXC;i++) (40)//if(computer[i].gettag()==1) (41)fout.write((char*)&computer[i],sizeof(computer[i])); (41)fout.close(); (41)} (41)四、调试分析 (41)五、用户手册 (41)六、测试数据 (42)主界面:上机操作: (42) (42)下机操作: (42) (42)查询界面: (42) (43)按姓名查询: (43) (43)按学号查询: (43) (43)按班级查询: (43) (44)电脑呗使用情况: (44) (44)七、附录 (44)一、需求分析1.输入功能:输入30名学生的学号、班级、姓名、上机起始时间。

C#课件:机房管理系统

C#课件:机房管理系统

账号管理
参数设置
课程表管理
人数统计条形图
人数统计饼形图
在线用户管理
广播消息
总结
❖ 大学四年接近尾声了,历时半年的毕业论文也即将完成,在论文的最后,我 要由衷地 向一些曾经帮助过我,给予我支持的人表示感谢。
❖ 首先,我要感谢我的导师。在论文的选题及研究过程中老师始 终给了我极大的学术自 由,让我可以尽情享受研究自己喜爱的课题的乐趣。他在 学习与研究中给了我悉心的 指导,尤其是老师严谨求实的治学态度和精益求精
❖ 的工作精神更使我受益非浅。老师知道我这学期要去公司里面实习,时间比较 ❖ 紧,所以老师尽可能的给予我帮助,帮我找资料,还特意带我去我们学校的机 房,去
调研我们学校的机房管理系统的运行情况。在此,我要真诚的对王老师说 声谢谢。 ❖ 我要感谢我的辅导员。在四年中,老师一直无微不至 地关心着我们的学习与生活,为
❖ 4. 当学生机突然关机或客户端程序突然关闭时,能够发送消息给服务器,使服 务 器能够进行相应的处理。
管理员机器功能简介
❖ 1. 管理员通过正确的账号登录到 Server 端; ❖ 2. 管理机通过 TCP 与学生机连接通信,通过是否监听学生机的连接请求来控 ❖ 制学生机是否能够登陆,当不监听时,任何用户都不能登录(后门密码除外)。 ❖ 3. 能够对管理员的账号(增加、删除、修改)、临时上机的通用账号、后门密 码
我们排忧解难,为我们能够顺利地进入论文阶段 ❖ 提供了许多物质上的保证。他平易近人的和蔼作风也给我留下了深刻的印象。 我要感
谢大学四年所有教过我的都让我受益匪浅,为我走向社会、正式工作打下了坚实的基础, ❖ 并且教育了我许多学习的方法,这是一辈子的财富。 我还要感谢我的同学们,特别是
❖ 该系统开发应用到的知识有:C#软件开发技术,数据库的 设计与开发,软件 工程,计算机网络通信,多线程并发 处理等。运用软件工程的思想控制整个开发 过程有条不 紊的进行,以 Windows C#为开发平台,在 C/S 模式下 以 SQL Server 2005 作为数据的处理工具;多线程技术 为较大规模的并发处理提供了技术支持;TCP/UDP 实现局 域网内的信息交换与通信。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{ 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 计 维 指导教师: 袁 雪 梦
2 0 1 4 年 7 月 17 日
- 1-
学 海 无涯


课程设计报告封面………………………………………1
\n " );
printf("\t\t**************************************** ******\n");printf("
- 5-
学海无 涯
1 .---------------
输 入 学 生 信 息 :\n");printf("
2 .---------------
六. 程序实现过程………………………………………………5-10 七. 实验结果……………………………………………………10-12
- 2-
学海无 涯
机房收费系统课程设计报告
一. 实验题目:
《机房收费管理系统》设计任务
1 输入功能:
输入 15 名学生的学号、班级、姓名、上机起始时间,下机时间。
2 计算功能:
通过这几周的课程设计,也认识到自己对于 C 语言知识的一些不足之处,在对 书本的知识点还有些掌握的不够透彻,在一些编程的地方可以更加优化代码,以 最少的代码实现最强大的功能。在指针和链表方面,以后也还需要和老师同学探 讨,让以后的 C 语言编程中能够合理的运用这些 C 语言里的精华内容。
六. 程序实现过程:
- 3-
学海无涯
在 设 计 工 程 中 , 把 每 个 功 能 使 用 自 定 义 函 数 的 方 式 书 写 ,并 最 后 用 switch 语句在主函数中调用,使用模块化设计的总体思路。
四. 程序实现流程图为:
学 号 班 级 姓 名 上机时间
上 机 费用
查询
计算
主菜单
输入
学号
班级
姓名
上机时间
五. 课程设计与心得体会:
- 7-
学海无 涯
}
if(minute > 0)
{
h ou r = h ou r + 1;
printf(" 上





%d:%d
费用
为:%d",Student[m].time_hour,Student[m].time_mi nute,ho
u r );
}else {
printf(" 上





%d: % d




:\n");printf("
3 .---------------

学号查
询 :\n");printf("
4 .---------------





:\n");printf("
5 .---------------

姓名查
询 :\n");printf("
6 .--- --- --- --- - - -
目录………………………………………………………2
一. 实验题目…………………………………………………3
二. 实验目的…………………………………………………3
三. 实验设计说明与要求………………………………………3-4
四. 程序实现流程图为…………………………………………4
五. 课程设计与心得体会………………………………………4-5
{system("cls");
select_xuehao(); }break;
c as e 4 :
{system("cls");
select_banji(); }break; c as e 5 :
{system("cls"); s elect_name();
}break; c as e 6 :
{
ret u r n 0 ;
arname[10]; int t
ime_hour;
int time_minute;
struct time begin,end; structStudentStudent[30]; st a t i
c int i =0;
void void void
insert(); end_money(); select_xuehao(); s
日 \n");printf("\n\n

选择功能:" ) ;
scanf("%d",&i);
switch(i)
{
c as e 1 : {system("cls"); i nsert();
}break; c as e 2 :
{system("cls"); e n d_money();
}break;
c as e 3 :
hour=Student[m].end.hour-1 S t
-
udent[m].begin.hour;
S t u d e n t [ m ] . t i m e _ h o u r = hour ;
S t u d e n t [ m ] . t i m e _ m i n u t e = minute ;
计算每个学生的上机费用。 (上机费用=上机时间* 1.0/h ,注:不足一小时按一小时计算)
3 查询功能:
按条件查询显示学生上机信息。如:(查询班级、学号、姓名、上 机时间)等。
二. 实验目的:
通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作, 使学生全面掌握结构化程序设计的基本方法。让我们进一步了解和熟悉 C 语言 的理论基础,能熟练地运用 C 语言进行编程,相关运用程序的完善与维护,及 相关的设计。从而在今后的发展中有一定的学习基础便于实用。
班级:");
scanf("%s",&Student[i].banji);printf(" 请 输 入 上 机 时 间 : " ); scanf("%d:%d",&Student[i].begin.hour,&Student[i] .begin.minute);
i = i + 1; system("pause"); system("cls"); v oi d e n d _ m o n e y ( )


为:%d",Student[m].time_hour,Student[m].time_mi nute,ho
u r );
}}
}
system("pause");
system("cls");
}
v oi d s e l e c t _ x u e h a o ( )
{
i n t xuehao;
intm ; printf("请输入学号:"); scan
}
else
{
minute=Student[m].end.minute S t u
-
dent[m].begin.minute;
hour=Student[m].end.hour S t
-
udent[m].begin.hour;
S t u d e n t [ m ] . t i m e _ h o u r = hour ; S t u d e n t [ m ] . t i m e _ m i n u t e = minute ;
在实现功能的过程中,并没有用到指针和链表等高级 C 语言编程方式,这也 是这次编程需要改进的地方。
- 4-
学海无涯
通过对机房收费管理系统的编写,更加掌握了 C 语言的基本语法,巩固了 C 语 言知识。同时在 C 的设计过程中,对 C 语言运用循环,自定义函数等方面的思想 有了更加深刻的认识,体会到了编程的难度之大,对以后编写程序有了很好的初 步认识。
相关文档
最新文档