《机房收费管理》系统设计说明书
- 格式:doc
- 大小:2.20 MB
- 文档页数:14
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;。
课程设计报告课程设计题目:机房收费管理系统学号:姓名:刘名专业:信息与计算科学班级:信息131指导教师:孙雪莲2015年3月18日1.实验题目:《机房收费管理系统》设计任务(1)输入功能:输入30名学生的学号、班级、姓名、上机起止时间。
(2)计算功能:计算每个学生的上机费用。
(上机费用=上机时间*1.0/h,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名、上机时间)显示学生信息。
2.实验时间,地点实验时间:15周实验地点:软件楼2083.实验目的:通过对基本数据类型、语句、数组、函数、结构、指针以及文件等的操作,使学生全面掌握结构化程序设计的基本方法。
4.实验要求:从课程设计的目的出发,通过课程设计的各个环节,达到以下教学要求:(1)进一步掌握C语言程序设计的基本思想和方法;(2)掌握结构化程序设计的基本原理及应用;5.实验思路:需求分析:根据机房收费管理设计的要求,需要设计三个功能,分别是输入功能,计算功能和查询功能。
在输入功能方面,需要把学号、班级、姓名、上机时间等输入进系统中。
在计算功能方面,需要计算出每个学生的上机所用的费用。
在查询功能方面,要能够按照查询条件,查询出相应的班级、学号、姓名、上机时间等学生信息。
在设计工程中,把每个功能使用自定义函数的方式书写,并最后用switch语句在主函数中调用,使用模块化设计的总体思路。
流程图为:6.#include<string.h>/*字符串函数*/#include<stdlib.h>/*标准库函数*/structtime/*定义时间结构*/{inthour;/*时*/intminute;/*分*/};typedefstructSTUDENT/*定义学生信息结构*/ {intno;/*学号*/charcla[10];/*班级*/charname[10];/*姓名*/inttime_hour;/*上机时间*/inttime_minute;structtimebegin,end;/*嵌套时间结构*/};structSTUDENTstudent[30];staticinti=0;/*全局静态变量*/voidinsert();/*输入功能函数*/voidend_money();/*结账功能函数*/voidselect_no();/*学号查询功能函数*/voidselect_name();/*姓名查询功能函数*/voidselect_cla();/*班级查询功能函数*/intmain()/*主函数*/{inti;for(;;)/*主菜单*/{printf("\t\t*********************************\n");printf("\t\t*********机房收费管理系统********\n");printf("\t\t*********************************\n");printf("1.---------------输入学生信息:\n");printf("2.---------------结账:\n");printf("3.---------------按学号查询:\n");printf("4.---------------按班级查询:\n");printf("5.---------------按姓名查询:\n");printf("6.---------------退出系统:\n");printf("\n\n^^^^^^^^^^^^^^^^^^^^^^^编程人员:刘忠杨^^^张鼎^^^^^^^^^^^^^^^^^^^^^^^^^^^^");printf("\n\n请选择功能:"); scanf("%d",&i);switch(i)/*选择分支结构*/ {case1:{system("cls");insert();}break;case2:{system("cls");end_money();}break;case3:{system("cls");select_no();}break;case4:{system("cls");select_cla();}break;case5:{system("cls");select_name();}break;case6:{return0;}}}system("pause");return0;}voidinsert()/*输入功能*/{printf("请输入学号:");scanf("%d",&student[i].no);printf("请输入姓名:");scanf("%s",&student[i].name);printf("请输入班级:");scanf("%s",&student[i].cla);printf("请输入上机时间:");scanf("%d:%d",&student[i].begin.hour,&student[i].begin.minute);i=i+1;system("pause");system("cls");}voidend_money()/*计算功能*/{intm,minute,hour;/*保存时间*/intno;printf("请输入学号:");scanf("%d",&no);for(m=0;m<i;m++){if(no==student[m].no){printf("请输入%d的下机时间:",no);scanf("%d:%d",&student[m].end.hour,&student[m].end.minute);if(student[m].end.minute<student[m].begin.minute){minute=student[m].end.minute+60-student[m].begin.minute;hour=student[m].end.hour-1-student[m].begin.hour;student[m].time_hour=hour;student[m].time_minute=minute;}else{minute=student[m].end.minute-student[m].begin.minute;hour=student[m].end.hour-student[m].begin.hour;student[m].time_hour=hour;student[m].time_minute=minute;}if(minute>0){hour=hour+1;printf("上机时间为:%d:%d费用为:%d",student[m].time_hour,student[m].time_minute,hour);}else{printf("上机时间为:%d:%d费用为:%d",student[m].time_hour,student[m].time_minute,hour);}}}system("pause");system("cls");/*清屏*/}Voidselect_no()/*按学号查询功能*/{intno;intm;printf("请输入学号:");scanf("%d",&no);for(m=0;m<i;m++){if(no==student[m].no){printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n\t",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}voidselect_cla()/*按班级查询功能*/{charcla[10];intm;printf("请输入班级:");scanf("%s",cla);for(m=0;m<i;m++){if(!strcmp(cla,student[m].cla)){printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}voidselect_name()/*按姓名查询功能*/{charname[10];intm;printf("请输入姓名:");scanf("%s",name);for(m=0;m<i;m++){if(!strcmp(name,student[m].name))/*字符串的比较非0为真执行*/ {printf("学号为%d\t",student[m].no);printf("班级为%s\t",student[m].cla);printf("姓名为%s\t",&student[m].name);printf("上机开始时间为%d:%d\t",student[m].begin.hour,student[m].begin.minute);printf("上机结束时间为%d:%d\t",student[m].end.hour,student[m].end.minute);printf("上机时间为:%d:%d\n",student[m].time_hour,student[m].time_minute);}elseif(m==i){printf("没有该记录:\n");}}system("pause");system("cls");/*清屏*/}7.实验总结:根据机房收费管理系统的需求分析和设计要求,这次通过C语言程序设计,实现了本系统的基本功能,分别是信息的输入,查询和计算。
机房收费管理系统河北工业大学计算机软件技术基础(VC)2012年课程设计报告学院-------班级 ---------姓名--------学号--------成绩____ 一、题目:设计一个机房收费管理系统二、设计思路1、总体设计1)分析程序的功能能录入学生的相关信息(姓名,班级,学号等);录入学生上机情况(上机起始时间);进行学生下机操作,录入学生下机时间,计算出学生所用时长以及所需费用;查询功能:查找特定的学生上机情况;显示机房机器使用情况。
2)系统总体结构:系统功能总共六个步骤:定义结构体struct time,struct student,struct computer2.各模块功能,函数说明1)input模块该函数返回输入功能,所以返回值为整数类型。
输入功能采用do…while语句,通过输入“y”“n”来判断是否继续输入学生信息。
通过提示信息,分别输入学生信息。
代码参见input函数。
2)online模块该函数没有返回值。
先定义一个上机学生,用do…while语句选择用姓名还是学号上机,用for语句通过姓名或学号信息判断该生是否与所存信息是否相符,若相符跳出操作,如果电脑未存在全部占用状态则进行录入上机起始时间的操作并将学生信息赋给该电脑所使用者的信息,标记电脑使用状态1;若不符,则显示没有该学生;若学生标记为上机状态1,则显示该生正在上机。
代码参见online函数。
3)calculate模块该函数为无返回值的函数。
先定义一个时间间隔变量timel,用if语句判断起止时间的关系计算出上机所用的时间和所用的费用。
代码参见calculate函数。
4)offline模块该函数是无返回值的函数。
步骤及方法与online函数相似,所以在此不再介绍。
在该函数的末尾输入学生下机时间,调用calculate函数,计算所用时间和所用费用,并输出。
代码参见offline函数。
5)search模块该函数通过do...while实现让学生使用姓名或学号查找信息。
一、题目:设计一个机房收费管理系统二、设计思路1、总体设计1)分析程序的功能:设计一个机房收费系统,实现对学生上机收费的管理,从而方便学校机房的管理。
2)系统总体结构:每一次运行的过程可以由这几部分完成:输入:输入学生的上机学号,班级、XX上级起始时间;计算:计算每个学生的上机费用;查询:查找学生上机信息并显示(班级、学号、XX);显示:显示机器使用情况信息总共四个步骤:对于每一次运行,关注的数据有三个:(1)学生的信息(2)计算机时费用(3)学生上机情况;对于统计信息需要三个:(1)学生上机信息并显示(班级、学号、XX)(2)显示机器使用情况信息(3)上机学生的学号、班级、XX、上机起始时间;这几组数据部联系很大,所以考虑把他们封装为结构体变量。
机器使用信息需要记录两个:(1)机器使用的标记(2)使用机器的学生。
根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。
机房收费系统可利用菜单(界面制作switch语句)使用户选择各个功能模块,而后可根据不同的选项进入到不同的功能模块进行执行。
结束程序,选择y之外的任何字母或数字,如果想让程序循环执行,则选择y。
以上功能模块分别用函数来实现,然后由主函数main来调用。
2、各功能模块的设计:说明各功能模块的实现方法1)Input模块该函数为输入学生信息:学号,XX,班级,上机起始时间,并对学生是否上机做标记(flag为1,f为1为上机),人数与上机数一致。
2)Findstunum模块查询功能:当输入的学号与学生信息中的学号相同时,则输出该生学号,班级,XX 和上下时间,若该生未下机,则下机时间显示0。
下机功能:询问是否下机,用switch语句控制,若下机则要求输入下机时间,不下机则退出。
3)Calculate(计算)模块该模块中,由于时、分、秒三个时间单位不统一,首先要统一单位,均用秒做单位(1h=3600s 1min=60s),然后判断上机时间是否满一小时,不满一小时按一小时收费,超过一小时再进行计算。
目录第一章课程设计任务内容 0第二章详细课程设计 0系统总体模块图 0系统的功能模块划分 (1)主要函数介绍 (1)系统程序代码及注释 (2)第三章软件使用说明 (6)录入系统 (6)计算功能 (6)查询功能 (6)机器使用情况 (6)第四章课程设计心得与体会 (6)附录一: 程序清单 (7)第一章课程设计任务内容题目:机房收费管理系统目前,在部分高校中,计算机机房的上机收费仍然采用传统的人工计时方式,即学生凭有效证件前来上机,由机房管理人员手工登记开始时间和结束时间,然后按实际机时进行计算并收取相应费用。
人工计时计费方式不但效率低,而且容易出错,也不利于定期的统计工作。
随着高校学生人数的不断增加,这些工作的难度和强度也不断加大,给机房管理部门带来了很大的压力。
本课程设计要求实现机房收费管理系统,具体任务如下:( 1 )输入功能:输入30 名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时 1 元。
(上机费用=上机时间* h ,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)。
第二章详细课程设计系统总体模块图系统的整体模块描述如图所示图3-1系统总体模块图系统的功能模块划分每一条记录包含一个学生学号、学生班级、学生姓名、上机起始时间,同时包含:完成对学 生上机时间的录入;按条件(班级、学号、姓名) 显示学生的上机时间,计算每个下机学生的上机费用,并能根据学生的上机时间进行计算上机费用,而且还能显示机器使用情况。
主要函数介绍Main-menu 函数:输岀机房管理系统菜单In put 函数:输入若干学生的学号、班级和姓名及上机时间 On li ne 函数:学生上机,输入上机学生学号或姓名及时间 Calculator 函数:计算上机费用并输岀计算机使用情况显示用户上下机管理用户充值用户查找用户添加用户删除用户修改计算机添加计算机删除计算机维护Offline 函数:学生下机时间,调用calculator 函数得到上机费用Search 函数:查找学生上机信息Display 函数:显示全部机器的使用信息Main 函数:函数调用以及结束程序系统程序代码及注释输入功能:输入30名学生的学号、班级、姓名、上机起始时间#include <>#include <>#include <>#include <>#define N 20#define M 100struct student{ char id[N];char theclass[N];char name[N];char ontime[N];}student[M];int n;void addition(){ int i;printf( "\n 请输入录入学生信息的总数:" ); scanf( "%d",&n);for (i=1;i<=n;i++){ printf( "\n\t请输入第%c个学生学号(20s):" ,i);scanf( "%s",student[i-1].id);printf( "\n\t 请输入第%(个学生班级(20s):" ,i);scanf( "%s",student[i-1].theclass);printf( "\n\t 请输入第%(个学生姓名(20s):" ,i);scanf( "%s",student[i-1].name);printf( "\n\t请输入第%(个学生上机时间(20s)(例:02):",i);scanf( "%s" ,student[i-1].ontime);printf( "\n\t提示:您已成功录入第%(条信息\n" ,i);}}计算功能:计算每个下机学生的上机费用,每小时 1 元。
java机房收费管理系统课程设计一、课程目标知识目标:1. 让学生掌握Java语言中面向对象编程的基本原理,包括类的定义、对象的使用、继承与多态;2. 使学生了解并应用Java集合框架,如List、Map等,用于存储和管理数据;3. 帮助学生掌握Java异常处理机制,提高程序的稳定性和可靠性;4. 引导学生掌握基本的数据库操作,如连接数据库、执行SQL语句、处理查询结果。
技能目标:1. 培养学生运用Java语言设计并实现一个机房收费管理系统的能力;2. 培养学生分析实际问题的能力,将实际问题转化为计算机程序;3. 培养学生团队协作能力,分工合作完成项目开发。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们探索计算机科学领域的热情;2. 培养学生严谨、细心的编程态度,养成良好的编程习惯;3. 培养学生面对问题时的积极心态,勇于克服困难,善于沟通交流。
课程性质:本课程为实践性较强的课程,以项目驱动的方式进行教学,让学生在实际项目中掌握Java编程知识。
学生特点:学生已具备一定的Java基础,具有一定的编程能力,但实际项目经验不足。
教学要求:注重理论与实践相结合,强调动手实践,提高学生的实际编程能力。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能在课程中取得进步。
通过课程学习,使学生能够独立完成机房收费管理系统的设计与实现,为今后的实际工作打下坚实基础。
二、教学内容1. 面向对象编程基础:- 类与对象的概念- 封装、继承与多态- 抽象类与接口2. Java集合框架:- List接口及其实现类- Map接口及其实现类- 集合框架的使用场景3. Java异常处理:- 异常的概念与分类- try-catch-finally结构- 自定义异常4. 数据库操作:- JDBC简介- 数据库连接与操作- SQL语句执行5. 机房收费管理系统项目实战:- 需求分析- 系统设计- 编码实现- 测试与优化教学内容安排与进度:第一周:面向对象编程基础第二周:Java集合框架第三周:Java异常处理第四周:数据库操作第五周:机房收费管理系统项目实战(一)第六周:机房收费管理系统项目实战(二)第七周:课程总结与复习教材章节关联:1. 面向对象编程基础:《Java编程思想》第1-4章2. Java集合框架:《Java核心技术》第6章3. Java异常处理:《Java核心技术》第7章4. 数据库操作:《Java数据库编程》第1-3章5. 机房收费管理系统项目实战:结合教材内容,自行设计实践项目教学内容确保科学性和系统性,以教材为基础,结合实际案例,让学生在掌握理论知识的同时,提高实际编程能力。
机房收费系统概要设计目录一、引言 (2)1、编写目的 (2)2、背景 (2)3、定义 (3)4、参考资料 (3)二、总体设计 (3)1、需求规定 (3)2、结构 (3)3、数据结构与程序的关系(功能模块与相应数据表之间的关系 ) (4)4、架构设计(包图) (6)5、用例设计 (6)6、界面设计 (7)7、行环境 (16)8、本设计概念和处理流程 (17)三、接口设计 (17)1、用户接口 (17)2、外部接口 (17)3、内部接口 (18)四、系统出错处理设计 (18)一、引言1、编写目的本阶段在系统的需求分析的基础上,对机房收费系统做概要设计。
主要解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机房收费系统所做的模块结构设计的基础上,对系统进行详细设计。
在一个的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,火灾修改时找出在本阶段设计的不足或错误。
本文档的读者是项目设计和项目编码实现人员。
2、背景本项目作为机房上机收费项目提出,将学生上机、教师值班、管理员结账等一系列事项进行管理,大大提高了机房的管理效率。
本项目名称:机房收费系统本项目提出者:机房管理人员本项目开发者:提高班七期成员:姚**,臧**,要**本项目用户:值班教师,操作员,管理员运行该软件的计算站:廊坊师范学院数信学院机房3、定义LineSystem:机房收费系统4、参考资料《大话设计模式》二、总体设计1、需求规定2、结构3、数据结构与程序的关系(功能模块与相应数据表之间的关系 )机房收费系统共建了9个表,下面是9个表中的具体静态数据。
1)用户信息表(UserInfo)4、架构设计(包图)5、用例设计6、界面设计7、运行环境(1)设备硬件最低要求:CPU PⅡ以上PC服务器,内存512MB以上,硬盘10G以上。
北京迪科远望科技有限公司AMS机房计费管理系统用户手册4.5.6操作前请仔细阅读该手册欢迎使用在第一次安装和使用本产品之前,请您务必仔细阅读本手册,这会有助于您更好地使用本产品。
如果您未按本手册的说明及要求操作本产品,或因错误理解等原因误操作本产品,北京迪科远望科技有限公司将不对由此而导致的任何损失承担责任,但迪科专业维修人员错误安装操作过程中引起的损失除外。
北京迪科远望科技有限公司已经对本手册进行了严格仔细的校勘和核对,但我们不能保证本手册完全没有任何错误和疏漏。
北京迪科远望科技有限公司致力于不断改进产品功能、提高服务质量,因此保留对本手册中所描述的任何产品和软件程序以及本手册的内容进行更改而不预先另行通知的权利。
本手册内容受著作权法律法规保护,未经北京迪科远望科技有限公司事先书面授权,您不得以任何方式复制、抄录本手册,或将本手册以任何形式在任何有线或无线网络中进行传输,或将本手册翻译成任何文字。
如果您在使用过程中发现本产品的实际情况与本手册有不一致之处,或您想得到最新的信息,或您有任何问题或想法,请垂询或登陆:客户服务中心:4006999185北京迪科网址:本手册对一些标识做了约定,您可以参阅以下约定,方便您对本手册更好的理解。
内容标记说明图标含义正确的操作选择性操作或问题操作时需要注意的内容错误或者被禁止的操作【】表示界面上的按钮“”引用系统界面上的文字,标题或标签企业信息:北京迪科远望科技有限公司地址:北京市海淀区苏州街18号长远天地大厦B2座1007室(100080)电话:010 - 82608266传真:(8610)82609565网址:如何获得技术支持:致电客户服务中心:4006999185发送邮件至以下地址:tech@公司简介北京迪科远望科技有限公司(Beijing DataLook Technology Co., Ltd)是北京市高新技术产业开发实验区认定的股份制高新技术企业,注册资金1000万,是国内校园一卡通系统的主导型企业之一。
机房收费管理系统设计说明书
选题名称:机房收费管理系统
任课教师:刘福明
小组长姓名(学号):刘远伟(200806084142)
小组成员姓名(学号):黄和权(200806084126)
王雷(200806084123)
重庆三峡学院数学与计算机科学学院
2010年12月
一、问题描述 (3)
二、系统设计 (3)
1、软件总体结构 (3)
2、界面设计 (4)
3、重要数据的数据结构设计 (10)
4、函数设计 (10)
三、难点及关键技术分析 (11)
四、初步测试计划 (11)
1、背景 (11)
2、测试目标 (12)
3、测试依据 (12)
4、术语定义 (12)
5、集成测试 (13)
五、初步分工安排 (14)
六、分工 (14)
一、问题描述
我们小组选择的题目为“机房收费管理系统”,其具体要求如下:
(1)输入功能:输入30名学生的学号、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间* 1.0/h ,执行先扣费后上网的原则,每隔半小时收费一次)
(3)查询功能:按学生用户名显示上机时间,按学号和姓名查询用户的余额。
(4)机器使用情况的显示(显示方式不限但要一目了然)
二、系统设计
1、软件总体结构
2、界面设计(1)管理员登录界面
(2)主界面
(3)机房状态(用户上下机)
(4)用户中心界面(包括用户添加、修改、查找)
(5)计算机管理界面
(6)用户网页登录界面
(7)用户网页主界面
(8)用户消费显示界面
(9)用户密码修改界面
3、重要数据的数据结构设计
User包含一个用户的所有信息:
姓名、账号、密码、性别、年龄、余额等Pc包含一个计算机的所有信息:
编号、状态、信息等
4、函数设计
在设计该系统的过程中,构造了如下一些函数:
add_dec_price_history:该函数将用户的消费记录到history表中,参数为user_id。
该函数使用到SQL语句中的select…into…语句。
dec_price:该函数实现用户的扣费功能,参数为user_id。
fund:添加用户的充值记录到history表中,参数为user_id、money、user_name、current_time。
该函数使用到SQL语句。
get_online_time:获得用户的在线时长。
get_pcid_of_user:通过用户ID获得在线用户正在使用的计算机标号,参数为user_id。
该函数使用到SQL语句。
get_user_name:通过用户ID获得在线用户的用户名,参数为user_id。
该函数使用到SQL语句。
initpaths:初始化程序当前的工作路径。
多次使用if…else…判断语句。
is_online:判断用户是否在线,参数为user_id。
该函数使用
if…else…判断语句。
user_logout:当用户下线后,设置该用户使用的计算机状态为空闲,参数为user_id。
该函数使用到SQL语句和if…else…判断语句。
三、难点及关键技术分析
四、初步测试计划
1、背景
本测试方案所从属的软件系统的名称为《机房消费系统》。
该项目的任务提出者和开发者分别为中软和IT_MOB项目组。
此文档的读者为测试人员、测试管理人员及相关项目管理人员。
本文档为测试工作提供了具体的指导。
开始执行本计划之前应确保本计划已经评审,并经过开发人员详细完整的单元测试,保证测试工作能够顺利进行。
2、测试目标
该计划是对《机房消费系统》进行系统测试的整体规划,确保测试人员对该系统进行详尽、完整的测试,使系统达到预定的质量目标。
本文主要从下列几个方面进行描述:
测试设计:针对经验库进行功能测试设计和其他各类测试设计。
测试的时间进度与资源安排。
测试的项目管理:测试的操作规程与组织管理。
通过执行测试,应最终确保本系统能够满足具体功能需求,流程完整可靠,并保证一定的性能(如:系统响应时间,大数据量处理,多用户并行访问等。
)
此项目结束时,应确保所有的问题已更改,并经过测试人员确认。
3、测试依据
《机房消费系统需求分析说明书》
4、术语定义
黑盒测试:黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。
在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试。
白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序。
单元测试:最小规模的测试,以测试某个功能或代码块。
由程序开发人员在编码阶段执行。
单元测试需要知道内部程序设计和编码的
细节知识。
集成测试:一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作,在协同工作时是否能够达到功能要求。
压力测试:也称负载测试,是指软件系统所能承受的压力的测试,一般包括服务器可处理的点击数、用户请求数、随着用户数量的增加应用的性能变化等方面。
测试范围设计:针对软件系统提供的功能特性,结合用户的需求,设计需要测试的功能要点和非功能性需求。
一般说来,测试范围设计应该与软件系统所提供的功能特性以及用户的需求保持相对的一致性。
构造:即“Build ”,程序的一次编译。
5、集成测试
(1)测试内容
软件模块之间的接口测试,验证软件模块是否与其他应用的软件模块存在正确的数据传递。
全局数据结构测试,边界测试。
(2)测试要求
采用非渐增式测试方法进行集成测试。
确认软件模块无错误连接,模块之间以及模块与平台之间可以无障碍交互。
测试由测试组承担,开发组提供相关资源。
(3)进入准则
软件进入集成测试阶段的准则:软件按照功能设计实现完毕并通过单元测试。
(4)退出准则
软件退出集成测试阶段的准则:
软件单元无错误的连接。
满足各种功能需求、性能要求。
能够对错误输入具有妥善的处理能力。
在集成测试中发现的错误已经得到修改并通过测试。
完成软件集成测试报告。
五、初步分工安排
王雷负责web的用户模块,黄河权负责系统管理员的客户端模块,刘远伟负责系统美化和测试。
六、分工
王雷负责web用户模块(包括用户登录、密码修改、个人信息查询等),要完成该模块的详细设计、实现和单元测试以及需求分析和系统说明书的书写。
黄和权负责管理员模块(包括电脑信息管理,用户管理,消费信息查询等)要完成该模块的详细设计、实现和单元测试以及B/S的数据库连接。
刘远伟负责各个模块的概要设计、各个模块的功能测试、模块的外观美化和综合报告的书写。