文档库 最新最全的文档下载
当前位置:文档库 › 机房机位预订系统

机房机位预订系统

机房机位预订系统
机房机位预订系统

一、课程设计的目的

1)学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题

的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。

2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成

有一定工作量的程序设计任务,同时强调好的程序设计风格。

3)掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。

4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的

能力,以及获得相关项目管理和团队合作等众多方面的具体经验。

二、课程设计任务和内容

按照如下要求,运用C++语言,编写一套可用的较为完善的机房机位预订系统软件(一人独自完成),要求系统所应具有的功能如下:

1)可以进行机位预订操作,每2小时1个时段,每次可预订一个时段,时间是从早

上8点到晚上8点,用户可自行输入要预订的时间,如果该时间已排满,则将该用户加入到等待队伍中。

2)可以进行机位退订操作,输入用户信息及预定的时段信息,取消该用户该时段的

预订。

3)可以进行查询操作,可以查询机位当前的使用情况,可以查询排在等待队伍中的

机位的等待信息。

三、系统设计方案

3.1系统详细描述

3.1.1系统设计背景

这个系统主要针对学校机房上机管理所用,学校机房人流量很大,而且上机时间密集,如果不妥善处理上机数据很可能造成上机时间混乱,甚至有可能导致数据丢失以至于整个机房瘫痪无法正常进行上机操作,因此,开发一个合理、安全的机房机位预订系统十分贴合学校内师生需要。本项目作为《c++课程设计》课程的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。所以开发一个符合自身宾馆实际情况的工作平台是十分必要的。

3.1.2系统设计详细信息

该系统是为学校机房所用,认定学校机房共有3层,这3层共有15个机房,分别是101-105,201-205,301-305,每个机房中有40台电脑,其中101-105和201-205这10个机房是专供教师上课所用,301-305是供学生自由上机所用。

可以进行预订操作,预订从早上8点到晚上8点,两小时一个时段,每次可预订一个时段,预订分为教师预订和自由预订,教师预订一次性预订一个机房的时间,自由预订学生可以任意选择想要的时间和又空位的机房号和机位号进行预订,如果预订的时间没有空闲的机位和机房,则会提示用户是否将其排入等待队伍中,用户可根据需要行选择。

可进行退订操作,退订分为自由退订和教师退订两个部分,其中自由退订要求学生输入自己的学号进行退订操作,而教师退订会要求输入教师预定的时间,系统会自动显示出该时间所有的预订信息,教师可以根据编号自己选择,进行相应的退订操作,在这两部分的退订操作过程中,都需要输入退订密码,这个退订密码在预订时根据用户需要自行输入。

可进行查询操作,在查询操作中,有机位信息查询和等待信息查询这两个部分组成,机位信息查询可根据用户输入几号机房几号机位来查看该机位当前的使用情况,而等待信息查询则是显示出当前排在等待队伍中的所有的等待信息,在这两部分的操作中,用户可直接跳转到退订系统中进行退订,方便用户在查询完相应的机位信息后进行退订操作。

此外,为了保证程序可以实时执行操作,调用了系统时间并对成员函数进行实时

的时间对比操作,以保证在程序运行期间相应的功能能够实现,防止出现与时间脱节的运行状态。

3.2功能模块划分

3.2.1功能模块描述

根据任务的要求,该系统为了实现上述的各种操作和功能,可大致分为四个部分,预订部分、退订部分、查询部分和退出部分。为了简化前台人员操作步骤并提高其工作效率,全局显示了系统当前时间,在相应的地方做了相应的提示操作,界面也做了相应的美化,以方便工作人员的操作。功能模块结构见图3.1。 将系统主要分为以下四大功能模块:

1) 预订系统:包括教师预订和自由预订两个部分,可进行机房或者机位的预订操作,

没有空闲机位的情况下会进行等待的提示。

2) 退订系统:包括教师退订和自由退订两个部分,可进行机房或者机位的退订操作。 3) 查询系统:可进行查询操作,包括机位查询和等待信息查询两个部分,可查询当

前几位状态和正在等待信息。 4) 退出系统:进行系统数据的存储操作。

图3.1功能模块结构图

退订系统

预订系统

查询系统

退出

机房机位预订系统

师预订

自由预订

教师退订

自由退订

机位查询

等待查询

3.2.2输入项

以下输入项均为键盘输入:

Ifanghao 用来存储机房号 int

jiweihao 用来存储机位号 int

shiyong[31][13] 用来记录特定时段是否正在使用 int整型数组yuding[31][13] 用来记录特定时段是否已被于东 int 整型数组waiting[31][13] 用来记录特定时段是否排入等待队伍 int 整型数组xuehao[31][13] 用来记录被预订的机位的学生的学号 int 整型数组mima[31][13] 用来记录特定时段预订的预订密码 int 整型数组name[31][13] 用来记录特定时段预订的教师的姓名 string

3.2.3输出项

机房号 int

机位号 int

使用情况 int 整型数组

预订情况 int 整型数组

等待情况 int 整型数组

预订学生学号 int 整型数组

退订密码 int(仅输出至文件)整型数组

预订教师姓名 string

四、系统实现与测试

4.1主菜单模块实现

4.1.1主菜单流程图

图4.1主菜单流程图

4.1.2主菜单代码

void menu() { shuaxin(); //进行机位刷新操作 system("cls"); //进行清屏操作 int i;

cout<<"**********机房机位预订**********"<

cout<

Y

Y

N

N 开始

输入i 进行操作

i==1

i==2

i==3

i==4 预订系统

退订系统 查询系统 退出系统

N Y

N

结束

<<"4.退出"<

<<"请输入编号进入:";

for(;;) //对输入的编号进行判断并循环输入

{

cin>>i;

if(i==1) yuding();

else if(i==2) tuiding();

else if(i==3) chaxun();

else if(i==4) chucun();

else cout<<"你的输入有误,请重新输入!"<

}

}

4.1.3主菜单测试

主界面中显示机房机位预订系统功能模块如图4.2所示:

图4.2主菜单

4.2预订系统模块实现

4.2.1预订系统流程图

预订系统的流程图如下图所示:

输入i

开始

i==1

i==2i==3

N

N

Y N

调用教师预订函

调用自由预订函

调用主菜单函数

结束

输入要预订的时间、机房、姓名、退订密

输入要预订的时间、机房、机位、学号、退订密码

是否继续预订

N

Y

Y Y

图4.3 预订系统流程图

预订成功!

4.2.2预订系统代码

void yuding() //预订系统的总菜单

{

shuaxin(); //进行机位信息的刷新

system("cls"); //进行清屏操作

int i;

cout<<"**********预订**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

<<"2.自由预订"<

<<"3.返回主菜单"<

<<"请输入编号进入:";

for(;;)

{

cin>>i;

if(i==1)

system("cls"),jiaoshiyuding();

else

if(i==2)

system("cls"),ziyouyuding();

else

if(i==3)

system("cls"),menu();

else cout<<"你的输入有误,请重新输入!"<

}

}

void jiaoshiyuding() //教师预订

{

shuaxin(); //进行机位信息的刷新

L1: system("cls"); //进行清屏操作

int i=0,j=0,k=0,l=0,day,shijian,jifanghao,mima,xuanze;

string name;

cout<<"**********教师预订**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

<<"请输入要预定的时间(日,时间):";

cin>>day>>shijian;

day-=1;shijian-=8;

for(i=0;i<10;i++)

if(computer[i][1].yuding[day][shijian]==0&&computer[i][1].waiting[day][shijian]==0) cout<

if(l!=0)

{

cout<<"请输入要预定的机房号(返回主菜单请输入“1”):";

cin>>jifanghao;

if(jifanghao==1) menu();

else if(jifanghao>200) jifanghao=jifanghao-201;

else jifanghao=jifanghao-101;

cout<<"请输入姓名:";

cin>>name;

cout<<"请输入退订密码:";

cin>>mima;

for(j=0;j<40;j++)

{

for(l=0;l<2;l++)

{

computer[jifanghao][j].yuding[day][shijian+l]=1;

computer[jifanghao][j].name[day][shijian+l]=name;

computer[jifanghao][j].mima[day][shijian+l]=mima;

}

}

cout<

}

else

{

cout<<"当前输入的时间内没有空闲的机房!"<

<<"1.加入最近的等待队伍"<

<<"2.重新输入时间查看"<

<<"请输入编号进入";

for(;;)

{

cin>>xuanze;

if(xuanze==1) paidengdai(day,shijian,1);

else if(xuanze==2) goto L1;

}

}

cout<<"1.继续预订"<

<<"2.返回主菜单"<

<<"请输入编号进入"<

{

cin>>xuanze;

if(xuanze==1) goto L1;

else if(xuanze==2) menu();

else cout<<"您的输入有误,请重新输入:";

}

}

自由预订系统与教师预订类似,在此省略,完整代码见附录。4.2.3预订系统测试

在主菜单运行预订系统后,会显示出图4.4所示的界面。

图4.4预订系统总界面

输入1进入教师预订中,将会显示如图4.5所示的界面。

图4.5教师预订输入前界面

按要求输入所需的信息后,会提示预订成功的界面,如图4.6所示。

如果选择2

进入自由预订,将会显示如下图所示的界面:

在自由预订中输入所需要的信息后,会提示预订成功,如图4.8所示。

4.3退订系统模块实现

4.3.1退订系统流程图

输入i

开始

i==1

i==2i==3

N

N

Y N

调用教师退订函

调用自由退订函

调用主菜单函数

结束

输入要退订的时间、编号、退订密码

输入要退订的学生的学号、退订密码

是否继续退订

N

Y

Y Y

图4.9 退订系统流程图

退订成功!

4.3.2退订系统代码

void tuiding() //退订总菜单

{

shuaxin(); //对当前机位信息进行刷新

system("cls"); //进行清屏操作

int i;

cout<<"**********退订**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

<<"2.自由退订"<

<<"3.返回主菜单"<

<<"请输入编号进入:";

for(;;)

{

cin>>i;

if(i==1)

system("cls"),jiaoshituiding();

else

if(i==2)

system("cls"),ziyoutuiding();

else

if(i==3)

system("cls"),menu();

else cout<<"你的输入有误,请重新输入!"<

}

}

void jiaoshituiding() //教师退订

{

shuaxin(); //刷新当前机位信息

system("cls"); //进行清屏操作

int a,b,day,mima,xuanze;

int x[12];

int i=0,j=0,k=0,n=0;

L6: cout<<"**********教师退订**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

L1: cin>>a;

if(a>=300) {cout<<"输入有误,请重新输入:";goto L1;}

cout<<"请输入日期(日期):";

L2: cin>>day;

day-=1;

if(day>31) {cout<<"输入有误,请重新输入:";goto L2;}

L4: for(i=0;i<10;i++)

if(computer[i][1].jifanghao==a)

{

for(j=0,k=0;j<13;j++)

if(computer[i][1].waiting[day][j]==1||computer[i][1].yuding[day][j]==1)

{

x[k]=j;

cout<

}

break;

}

if(n==0) {cout<<"该机房没有预订信息"<

for(;;)

{

cin>>b;

if(b>k) cout<<"您的输入有误,请重新输入:";

else

{

b-=1;

L3: cout<<"请输入退订密码:";

for(;;)

{

cin>>mima;

if(computer[i][j].mima[day][x[b]]==mima)

{

for(j=0;j<40;j++)

{

for(int l=0;l<2;l++)

{

computer[i][j].mima[day][x[b]+l]=0;

computer[i][j].name[day][x[b]+l]='\0';

computer[i][j].yuding[day][x[b]+l]=0;

computer[i][j].waiting[day][x[b]+l]=0;

}

}

cout<<"退订成功!"<

goto L5;

}

else

{

cout<<"您输入的密码有误!";

cout<<"1.重新输入"<

<<"2.重新选择"<

<<"3.返回主菜单"<

<<"请输入编号进入:";

for(;;)

{

cin>>xuanze;

if(xuanze==1) {system("cls");goto L3;}

else if(xuanze==2) {system("cls");goto L4;}

else if(xuanze==3) menu();

else cout<<"您的输入有误,请重新输入:";

}

}

}

}

}

L5: cout<<"1.继续退订"<

<<"2.返回主菜单"<

<<"请输入编号进入";

for(;;)

{

cin>>xuanze;

if(xuanze==1) {system("cls");goto L6;}

else if(xuanze==2) menu();

else cout<<"您的输入有误,请重新输入:";

}

}

自由退订代码与教师退订类似,在此省略,完整代码请见附录。

4.3.3退订系统测试

由主界面进入退订系统后,会显示下图所示的界面:

选择1进入教师退订后,会要求输入相应信息,图4.11所示。

输入信息并成功退订后,会提示成功,如图4.12

所示。

图4.10退订系统总菜单界面

图4.11教师退订输入前界面

图4.12教师退订输入后界面

如果选择2进入自由退订,会显示图4.13

所示的界面。

按要求输入信息并成功退订后,会提示退订成功,如图4.14所示。

4.4查询系统实现

4.4.1查询系统流程图

输入i

开始

i==1

i==2

i==3

N

N

Y N

调用机位信息查

询函数

调用等待信息查

询函数

调用主菜单函数

结束

输入要查询的机房号和机位

显示当前的等待信

是否显示等待信

Y

Y Y

图4.15 查询系统流程图

显示机位当前使用情况

N

是否继续查询

Y

N

4.4.2查询系统代码

void chaxun() //查询系统总菜单

{

shuaxin(); //刷新当前机位信息

system("cls"); //进行清屏操作

int i=0;

cout<<"**********查询**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

<<"2.查询等待信息"<

<<"3.返回主菜单"<

<<"请输入编号进入:";

for(;;)

{

cin>>i;

if(i==1)

system("cls"),jiweichaxun();

else

if(i==2)

system("cls"),dengdaichaxun();

else

if(i==3)

system("cls"),menu();

else cout<<"你的输入有误,请重新输入!"<

}

}

void jiweichaxun() //机位信息查询

{

shuaxin(); //刷新当前机位信息

system("cls"); //进行清屏操作

int a,b;

int i=0,j=0;

L1: cout<<"**********机位查询**********"<

time_t t=time(NULL);

tm *pt=localtime(&t);

showtime(pt);

cout<

L2: cin>>a>>b;

for(i=0;i<15;i++)

机房机位预约模拟1.

C语言课程设计 院系:资源学院 姓名: 学号: 班号: 指导教师: 日期:

机房机位预约模拟 一.题目要求 20台机器,从早八点到晚八点,每两个小时一个时间段. 需要实现的功能: (1)查询,根据输入的时间,输出机位信息. (2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则 提供最近空机时间段.另:若用户要求在非空时间上机,则将用户信息插入该时间段的等待列表. (3)退出预定,根据输入的时间,撤消该时间的饿预定. (4)查询是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息. 二.需求分析 根据题目要求,需要提供机位信息和预约信息,应该用链表来存储,应提供指针的操作:在程序中,需要查询是否有空机位和等待者和处理预约和取消预约问题,应提供查询,显示,预定,删除,修改等操作;另外还要提供键盘式选择菜单实现功能选择. 三.总体设计 现在分析整个一下整个系统,根据上面的需求分析,可以将这个系统的设计分为如下六大模块:查询我的预约状态,查询空位,预约,取消预约,排队,查询等待信息.

四.详细设计 1.宏定义 【分析】 由题可知,结构函数包含学生信息:机位,学号,还有下名学生信息;学生时间(LENGTH)段顺序:人数,第一名学生,排队的学生,最后一名学生。 需要建立能存储多种变量的结构体 #include #include 访问动态内存的头文件 #include 初始化头文件 #define LENGTH 6/*总时段数*/ #define MAX 2 #define S(r) (r-8)/2/*计算在哪个时段数*/ #define NULL 0 struct xinxi{ int jiwei; char xuehao[10];/*学号,假设为联系方式*/ struct xinxi *next; }; struct xinxi *head; struct cell{ int CNum;/*连接在该时段头结点的总机器数目*/ struct xinxi *first;/*指向整个队列的开头*/ struct xinxi *middle;/*指向等待预约队列*/ struct xinxi *last;/*指向整个队列的结尾*/ }TimeQueue[LENGTH]; 2.主函数 主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用.其中个功能模块用菜单方式选择。

电子信息系统机房设计规范 (GB50174-2008)

中华人民共和国住房和城乡建设部公告 第161号 关于发布国家标准《电子信息系统机房设计规范》的公告现批准《电子信息系统机房设计规范》为国家标准,编号为GB50174-2008, 自2009 年 6 月 1 日其实施。其中,第6.3.2、6.3.3、8.3.4、13.2.1、13.3.1条为强制性条文,必须严格执行。原《电子计算机机房设计规范》GB 50174-93 同时废止。本规范由我部标准定额研究所组织中国计划出版社出版发行。 中华人民共和国住房和城乡建设部 二〇〇八年十一月十二日 电子信息系统机房设计规范 Code for design of electronic information System Room 中华人民共和国国家标准GB50174 – 2008 2008–11–12 发布·2009–6–01 实施 中华人民共和国住房和城乡建设部 中华人民共和国国家质量监督检验疫总局 联合发布 前言 本规范是根据建设部《关于印发“2005 年工程建设标准规范制订、修订计划(第二批)”的通知》(建标函[2005]124 号)的要求,由中国电子工程设计院会同有关单位对原国家标准《电子计算机机房设计规范》GB 50174-93 进行修订的基础上完成的。本规范共分13 章和一个附录,主要内容有:总则、术语、机房分级与性能要求、机房位置与设备布置、环境要求、建筑与结构、空气调节、电气、电磁屏蔽、机房布线、机房监控与安全防范、给水排水、消防。 本规范修订的主要内容有:1. 根据各行业对电子信息系统机房的要求和规模差别较大的现状,本规范将电子信息系统机房分为A 、B 、C 三级,以满足不同的设计要求。2. 比原规范增加了术语、机房分级与性能要求、电磁屏蔽、机房布线、机房监控与安全防范等章节。本规范以黑体字标志的条文为强制性条文,必须严格执行。本规范由住房和城乡建设部负责管理和对强制性条文的解释,由工业和信息化部负责日常管理,由中国电子工程设计院负责具体技术内容的解释。本规范在执行过程中,请各单位结合工程实践,认真总结经验,如发现需要修改和补充之处,请将意见和建议寄至中国电子工程设计院《电子信息系统机房设计规范》管理组(地址:北京市海淀区万寿路27 号;邮政编码:100840 ;传真:010-6821 7842 ;E-mail:ceedi@https://www.wendangku.net/doc/8d19021465.html, ),供以后修订时参考。

机房租赁合同简易版

It Is Necessary To Clarify The Rights And Obligations Of The Parties, To Restrict Parties, And To Supervise Both Parties To Keep Their Promises And To Restrain The Act Of Reckless Repentance. 编订:XXXXXXXX 20XX年XX月XX日 机房租赁合同简易版

机房租赁合同简易版 温馨提示:本协议文件应用在明确协议各方的权利与义务、并具有约束力和可作为凭证,且对当事人双方或者多方都有约制性,能实现监督双方信守诺言、约束轻率反悔的行为。文档下载完成后可以直接编辑,请根据自己的需求进行套用。 甲方:联系人: 乙方:联系人: 双方经友好协商,就甲方在福州电信数据 中心租用乙方机柜并托管的事宜达成如下协 议: 第一条合同定义与合同项目 乙方是福州电信IDC高级业务合作伙伴, 上海电信IDC紧密业务合作伙伴,自从事互联 网业务以来拥有了丰富的行业合作经验和行业 解决方案,借助与各电信级机房的深层次合 作,拥有了充足的互联网带宽资源、IP资源和 机位资源。同时,公司还与服务器厂商合作,

开拓了品牌服务器的租用业务。此外,乙方还有短信、SP以及游戏资源合作与运营方面的业务。 甲方租用福州电信IDC机房内属于乙方管理的机柜,乙方为甲方提供将之接入到国际互联网(Internet)的线路。乙方负责为该机柜引入网络端口及其电源安全性,以及本合同所规定的其它服务。合同中"双方"仅指本合同的缔约方,即上述甲方和乙方。甲方要求、所选定服务配置以及相关设备情况以由甲方在合同附件的形式作为说明。 第二条双方的权利和义务 2.1 甲方的权利和义务 2.1.1 甲方申请本业务时,应提供申请表及身份证明文件,公司或国有企业应提供企业

机房管理系统数据库设计

5北华航天工业学院 课程设计报告(论文) 课程名称: 数据库原理与应用 报告题目: 机房管理系统数据库设计 作者所在系部: 计算机科学与工程 作者所在专业: 计算机科学与技术 作者所在班级: B11512 作者姓名: 刘智星 指导教师姓名: 贾振华、李建义 完成时间: 2013年6月28日 北华航天工业学院教务处制 课程设计任务书 课题名称 《数据库原理与应用》课程设计 完成时间 指导教师 贾振华 职称 副教授 学生姓名 刘智星 班级 总体设计要求 B11512 总体设计要求: 1、明确课设任务,复习与查阅相关资料。 2、根据老师给出的设计题目,在两周时间内完成其中某一个题目的从用户需求分析、数据 库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,库设计到上 机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。 3、独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;要求 写出一份详细的设计报告。 4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。 5、应用程序应具有一定的实用性和健壮性。 工作内容及时间进度安排 第一周、周1:设计动员,布置课程设计任务。 第一周、周2:查阅资料,制定方案,进行程序总体设计。 第一周、周3~第二周2:详细设计, 系统调试。 第二周、周3:整理,撰写设计报告。 第二周、周3-周5:验收,提交设计报告,评定成绩。 课程设计成果 1、课程设计报告书一份 2、源程序清单一份 3、成果使用说明书一份 摘 要 随着网络的飞速发展,机房的数量和功能不断增多,数据量也随之增加。同 样使用者也增多,管理难度不断加大。传统的方式显然浪费了许多的人力、物力, 以及资源甚至已经影响到机房的运营。 机房管理系统正是一套能够合理解决、代替传统人工管理方式的管理系统, 对机房、机器、使用者进行合理有效的管理及操作。本系统模拟了机房的收费、 登录、下机等等的管理,提高了工作效率,节约了管理成本。 关键词:机房管理 自动收费 提高效率 ABSTRACT With the rapid development of the network, the quantity and function room increases, the amount of data increases. As the user is also increasing, the management difficulty increasing. The traditional approach is clearly wasted a lot of manpower, material resources, and has even affected the operating room. Computer room management system is a set of reasonable solution, management system to replace the traditional manual management mode, management and operation is reasonable and effective to room, machine, user. The system simulates the room charge, login, etc. under the management, improve work efficiency, saving the cost of management. Keywords : improve the efficiency management of computer automatic toll collection 目录 《数据库课程设计》............................................................................................................... 1 一、系统需求分析............................................................................................................... 1 (1)信息要求:............................................................................................................. 1 (2)处理要求:............................................................................................................. 1 (3)安全性和完整性要求。......................................................................................... 1 二、概念结构设计............................................................................................................... 1 (1)E‐R 图....................................................................................................................... 1 (2)解决命名冲突以及结构冲突设计方法................................................................. 3 三、逻辑结构设计............................................................................................................... 3 四、数据库物理结构设计................................................................................................... 4 五、数据库实施................................................................................................................... 5 (1)使用 T‐SQL语句实现数据库表;.......................................................................... 5 (2)用 T‐SQL语句实现必要的存储过程及触发器。.. (6) 六、数据库应用系统的实施和维护................................................................................... 《数据库课程设计》 ——机房管理系统 一、系统需求分析 (1)信息要求: 指用户需要从数据库中获得信息的内容与性质。数据库中需要存储那 些数据。 实现机房、上机类型等基本信息的管理; 实现机器信息、管理人员信息、使用者信息的管理; 实现上机管理; 实现收费管理; (2)处理要求: 用户需要完成什么处理功能,对处理的响应时间有什么要求(给出功能模块图)。 1. 学生用户端完成登陆功能,完成登陆记录上机时间; 2. 管理员端完成各个信息的管理; 创建触发器,实现下机时自动计算此次上机的时间和费用; 创建存储过程统计各机房的上机时间和费用; 创建存储过程统计指定时间段内各管理人员的收费合计; (3)安全性和完整性要求。 建立数据库相关表之间的参照完整性约束。 二、概念结构设计 (1)E-R 图 密码 管理管理员姓名 管理人编号 管理员 primary key 合计收费 图 管理员 E-R 图 1机房名称 机房信息 上机总时间 机房号 primary key 上机总费用 每小时费用 管理人编号 图 机房信息 E-R 图 密码 ID 使用者姓名 Foreign key 使用者信息 总费用 图 E-R 图 机房号 Foreign key 机器号 总使用时间 机器信息 Primary key 图 机器信息 E-R 图 机房号 上机类型名称 上机类型_机房 primary key primary key 图 上机类型_机房 E-R 图 2费用 机器号 foreign key 上机时间 上机总费用 ID foreign key 下机时间 图 上机总费用 E-R 图 (2)解决命名冲突以及结构冲突设计方法 相关的列名使用相同的名字,加上完整性约束。 使用者信息 登录 上机总费用 机器信息 属于 管理员信息 管理 机房信息 三、逻辑结构设计 (1)给出由 E-R 得到的关系模型:并注明转换过程中应用的规则; (2)数据模型的优化; (3)分析这些模式对于应用环境是否合适,确定是否要对某些模式进行合并或分解; (4)用户模式设计; (5)在数据库中一般使用英文名字,在用户视图中则一般使用符合用户一贯的中文命 名法; 管理员信息(管理人编号,密码,管理员姓名,合计收费) 3机房信息(机房号,机房名称,每小时费用,上机总费用,上机总时间,管理人编号) 机器信息(机器号,机房号) 使用者信息(ID,密码,使用者姓名,总费用) 上机类型_机房(机房号,上机类型名称) 上机总费用(ID,机器号,上机时间,下机时间,费用) 四、数据库物理结构设计 管理员信息表(管理员信息) 字段名称 中文含义 数据类型 varchar varchar varchar int 长度 完整性约束 是否主键 字段说明 管理人编号 密码 管理人编号 管理人编号 20 20 20 primary key 是 否 否 否 密码 密码 无 无 无 管理员姓名 管理员姓名 管理员姓名 合计收费 合计收费 合计收费 机房信息表(机房信息) 字段名称 机房号 中文含义 机房号 数据类型 char 长度 完整性约束 是否主键 字段说明 机房号 20 20 primary key 是 否 否 否 否 否 机房名称 机房名称 char 无 机房名称 每小时费用 每小时费用 上机总时间 上机总时间 上机总费用 上机总费用 管理人编号 管理人编号 int 无 无 每小时费用 上机总时间 上机总费用 管理人编号 int int 无 Varchar 20 foreign key 使用者信息表(使用者信息) 字段名称 中文含义 数据类型 长度 完整性约束 是否主键 字段说明 ID ID char 20 Not null 否 ID Primary key 密码 密码 char char Int 20 20 无 无 无 否 否 否 密码 使用者姓名 总费用 使用者姓名 使用者姓名 总费用 总费用 机器信息表(机器信息) 字段名称 机器号 中文含义 机器号 数据类型 长度 完整性约束 是否主键 字段说明 机器号 char 20 primary key not null 是 机房号 机房号 char 20 foreign key 否 否 机房号 总使用时间 总使用时间 datetime 无 总使用时间 机房信息表(机房信息) 字段名称 机房号 中文含义 机房号 数据类型 char 长度 完整性约束 是否主键 字段说明 机房号 20 20 primary key primary key 是 否 机房名称 机房名称 char 机房名称 4机房信息表(机房信息) 字段名称 中文含义 数据类型 长度 完整性约束 是否主键 字段说明 使用者 ID ID char 20 foreign key 是 登录名 机器号 上机时间 下机时间 费用 机器号 上机时间 下机时间 费用 char datetime datetime int 20 foreign key 否 否 否 否 本次机器号 上机时间 下机时间 费用 无 无 无 五、数据库实施 (1)使用 T-SQL 语句实现数据库表; create table 管理员信息( 管理人编号 varchar(20) primary key, 密码 varchar(20), 管理员姓名 VARCHAR(20), 合计收费 INT ); create table 机房信息 ( 机房号 char(20) primary key, 机房名称 CHAR (20), 每小时费用 int(20), 上机总时间 int, 上机总费用 INT, 管理人编号 varchar(20), foreign key (管理人编号) references 管理员信息(管理人编号) ); create table 使用者信息 ( ID CHAR (20) not null, 密码 char(20),使用者姓名 char(20), 总费用 INT, primary key(ID) , foreign key (ID) references 使用者信息(ID) ); create table 机器信息 5( 机器号 char(20) not null, 机房号 char(20), 总使用时间 datetime, primary key (机器号), foreign key (机房号) references 机房信息(机房号) ); create table 上机类型_机房 ( 机房号 char(20), 上机类型名称 Char(20), primary key(机房号,上机类型名称), ); create table 上机总费用 ( ID CHAR(20), 机器号 Char(20), 上机时间 datetime, 下机时间 datetime, 费用 int, foreign key(ID) references 使用者信息(ID) on update cascade on delete no action, foreign key(机器号) references 机器信息(机器号) on update cascade on delete no action, ); (2)用 T-SQL 语句实现必要的存储过程及触发器。 create trigger t_上机总费用 --drop trigger t_上机总费用 on 上机总费用 after insert as begin update 管理员信息 set 合计收费=合计收费+(select 每小时费用 from 机房信息 where 机房号=(select 机房号 from 机器信息 6where 机器号 =(select 机器号 from 上机总费用 where 费用=0 ) ) )*(select DATEDIFF(HH,上机时间,下机时间) from 上 机总费用 where 费用=0) where 管理人编号=(select 管理人编号 from 机房信息 where 机房号=(select 机房号 from 机器信息 =0 ) ) ); update 机房信息 set 上机总时间=上机总时间+(select DATEDIFF(HH,上机时间,下机时间) from 上 机总费用 where 费用=0), 上机总费用=上机总费用+(select 每小时费用 from 机房信息 where 机房号=(select 机房号 from 机器信息 where 机 器 号 =(select 机 器 号 from 上机总费用 where 费用=0 ) ) )*(select DATEDIFF(HH,上机时间 ,下机时间 ) from 上机总费用 where 费用=0) where 机房号=(select 机房号 from 机器信息 where 机器号=(select 机器号 from 上机总费用 where 费用=0 ) ); update 使用者信息 set 总费用=总费用+(select 每小时费用 from 机房信息 where 机房号=(select 机房号 from 机器信息 where 机器号=(select 机器号 from 上机总费用 where 费用=0) ) )*(select DATEDIFF(HH,上机时间,下机时间) from 上机总费用 where 7费用=0) where ID=(select ID from 上机总费用 where 费用=0); --更新使用者信息表——共使用的费用 update 上机总费用 set 费用=(select 每小时费用 from 机房信息 where 机房号=(select 机房号 from 机器信息 where 机器号=(select 机器号 from 上机总费用 where 费用=0) ) )*DATEDIFF(HH,上机时间,下机时间) where 费用=0; end; create procedure 时间_费用 --drop procedure 时间_费用 As select 上机总时间,上机总费用 from 机房信息 EXEC 时间_费用 --触发存储过程 create procedure 管理人收费 --drop procedure 管理人收费 As select * from 管理员信息 EXEC 管理人收费 --触发存储过程 六、数据库应用系统的实施和维护 (1)实现数据库的 T-SQL 语句; 激发存储过程 EXEC 时间_费用 --触发存储过程 EXEC 管理人收费 --触发存储过程 激发触发器 insert into 上机总费用 (ID,机器号 ,上机时间 ,下机时间 ,费用 ) values('1 号床的下铺 ',101,'2013-11-10 12:00:','2013-11-10 13:00:',0); insert into 上机总费用 (ID,机器号 ,上机时间 ,下机时间 ,费用 ) values('望江明月 8',101,'2013-11-10 12:00:','2013-11-10 13:00:',0); 将存入所有的需要更新数据;以后需要查什么就可以直接查询表。 (2)写出载入初始数据的 T-SQL 语句; 插入管理员信息数据 insert into 管理员信息(管理人编号,密码,管理员姓名,合计收费) values('2011001','2011001','我 叫 2011001',0); insert into 管理员信息(管理人编号,密码,管理员姓名,合计收费) values('2011002','2011002','我 叫 2011002',0); insert into 管理员信息(管理人编号,密码,管理员姓名,合计收费) values('2011003','2011003','我 叫 2011003',0); insert into 管理员信息(管理人编号,密码,管理员姓名,合计收费) values('2011004','2011004','我 叫 2011004',0); 插入机房信息数据 insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('01','软件实验室 1','2',0,0,'2011001'); insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('02','软件实验室 2','2',0,0,'2011001'); insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('03','软件实验室 3','2',0,0,'2011002'); insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('04','嵌入式实验室','0',0,0,'2011003'); insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('05','网络实验室 1','3',0,0,'2011004'); insert into 机房信息 (机房号,机房名称 ,每小时费用 ,上机总费用 ,上机总时间 ,管理人编号 ) values('06','网络实验室 2','3',0,0,'2011004'); 插入机器信息数据 insert into 机器信息(机器号,机房号) values('101','01'); insert into 机器信息(机器号,机房号) values('102','01'); insert into 机器信息(机器号,机房号) values('201','02'); insert into 机器信息(机器号,机房号) values('202','02'); insert into 机器信息(机器号,机房号) values('203','02'); insert into 机器信息(机器号,机房号) values('204','02'); insert into 机器信息(机器号,机房号) values('301','03'); insert into 机器信息(机器号,机房号) values('302','03'); insert into 机器信息(机器号,机房号) values('303','03'); insert into 机器信息(机器号,机房号) values('304','03'); 9insert into 机器信息(机器号,机房号) values('401','04'); insert into 机器信息(机器号,机房号) values('402','04'); insert into 机器信息(机器号,机房号) values('403','04'); insert into 机器信息(机器号,机房号) values('404','04'); insert into 机器信息(机器号,机房号) values('501','05'); insert into 机器信息(机器号,机房号) values('502','05'); insert into 机器信息(机器号,机房号) values('503','05'); insert into 机器信息(机器号,机房号) values('504','05'); insert into 机器信息(机器号,机房号) values('505','05'); insert into 机器信息(机器号,机房号) values('601','06'); insert into 机器信息(机器号,机房号) values('602','06'); insert into 机器信息(机器号,机房号) values('603','06'); insert into 机器信息(机器号,机房号) values('604','06'); insert into 机器信息(机器号,机房号) values('605','06'); insert into 机器信息(机器号,机房号) values('607','06'); insert into 机器信息(机器号,机房号) values('608','06'); insert into 机器信息(机器号,机房号) values('609','06'); 插入使用者信息数据 insert into 使用者信息(ID,密码,使用者姓名,总费用) values('1 号床的下铺','025951','刘智星 ',0); insert into 使用者信息(ID,密码,使用者姓名,总费用) values('我的首级','025951','刘天啊',0); insert into 使用者信息(ID,密码,使用者姓名,总费用) values('望江明月','025951','刘星星',0); 插入上机类型_机房数据 insert into 上机类型_机房 values('01','C 语言程序设计'); insert into 上机类型_机房 values('01','C++程序设计'); insert into 上机类型_机房 values('01','C#高级编程'); insert into 上机类型_机房 values('01','数据库系统概论'); insert into 上机类型_机房 values('02','数据库系统概论'); insert into 上机类型_机房 values('02','交换机原理'); insert into 上机类型_机房 values('03','C++程序设计'); insert into 上机类型_机房 values('04','云计算服务'); insert into 上机类型_机房 values('05','网页设计'); insert into 上机类型_机房 values('05','软件开发'); insert into 上机类型_机房 values('06','计算机组成原理'); (3)简单阐述各模块的基本功能; 触发器作用:更新表:管理员信息(合计收费);机房信息(上机总时间,上机总费用);使 用者信息(总费用);上机总费用(费用) 以便后续查询。 10触发器实现两项数据的查询功能。 (4)给出该模块的设计思路,针对难点部分应该进行详细的阐述; 触发器中需要先更改管理员信息,机房信息,使用者信息;再更新上机总费用以免计费 重复。 (5)按模块分析所编写的应用程序所使用的 T-SQL 语句; 通过插入激发触发器完成更新其他表的操作。 七、界面实现 图 7-1运行后界面 图 7-2登录后 11图 7-3输入用户名密码后登录 图 7-4点击退出后 图 7-5点击注册 点击添加 12图 7-6管理员登录后 八、小结 工作内容:首先进行需求分析,之后实现数据库,在实现数据库中由于需求分析做得不 到位。导致多次更改表。工作量数据库的工作量较小,java 的工作量比较大。数据库和 java 界面连接出现问题通过询问同学解决了SQL Sever 2008配置问题。实现了数 据库和界面的连接。 系统的不足之处在于界面太过简单,应该美化一下。 界面简明以操作,不以出错。 九、致谢 通过本次课程设计,知道了 java 和数据库的连接方式方法。在此感谢老师的悉心讲解 和指导。我尝试如何设计数据库出现了不少错误多谢老师指证。 13十、参考文献 赵斯思编著.Visual Basic 数据库编程技术与实例.人民邮电出版社, 2004 杨志姝,李光海编著. SQL 应用与开发标准教程. 北京:清华大学出版社, 2006 李爱武编著. SQL Server2000 数据库系统实训教程. 北京:北京邮电大学出版 社,2004 冯凤娟编著. SQL 与PL/SQL 程序设计基础. 北京:清华大学出版社, 2002 王越, 刘加伶, 李粱编著. 大型数据库技术及应用. 重庆:重庆大学出版 社,2001 林桂花编著. 数据库应用技术. 大连:大连理工大学出版社,,2003 王珊, 萨诗煊. 数据库系统概论 [M]. 北京:高等教育出版社, 张化祥, 陆晶. Java 程序设计 [M]. 北京:清华大学出版社, 李兴华. Java 开发实战经典 [M]. 北京:清华大学出版社, 贾振华.Java 语言程序设计(第二版) 中国水利水电出版社 月 14十一、附录 Java 界面部分代码 连接数据库: import .*; public class Link_SQL { Connection conn; Statement stm; PreparedStatement pstm; ResultSet rs; public Link_SQL() throws Exception{ try { (""); conn=("jdbc:odbc:lzx","",""); } catch (ClassNotFoundException e) { ; import .*; public class G_mainFrame extends JFrame implements ActionListener{ JButton btnaddG=new JButton("添加管理员"); JButton updateG=new JButton("修改管理员信息"); JButton select_M_and_T=new JButton("查看机房收费和时长"); JButton how_maney=new JButton("查看各管理员收费"); JButton addJF=new JButton("添加机房信息"); JButton selectJF=new JButton("查看机房信息"); JButton updateJF=new JButton("更改机房信息"); JButton addJQ=new JButton("添加机器信息"); JButton selectJQ=new JButton("查看机器信息"); JButton updateJQ=new JButton("更改机器信息"); 15JButton addSJType=new JButton("添加上机类型信息"); JButton selectSJType=new JButton("查看上机类型信息"); JButton updateSJType=new JButton("更改上机类型信息"); JButton addSJType_JF=new JButton("添加上机类型_机房信息"); JButton selectSJType_JF=new JButton("查看上机类型_机房信息"); JButton updateSJType_JF=new JButton("更改上机类型_机房信息"); JButton index=new JButton("首页"); JButton btnexit=new JButton("退出"); JPanel p1=new JPanel(new FlowLayout); JPanel p2=new JPanel(new FlowLayout); JPanel p3=new JPanel(new FlowLayout); JPanel p4=new JPanel(new FlowLayout); JPanel p5=new JPanel(new FlowLayout); JPanel p6=new JPanel(new FlowLayout); JPanel p7=new JPanel(new FlowLayout); G_mainFrame(){ super ("管理员你好欢迎登陆计算机管理系统"); Container contentpane=getContentPane(); (new GridLayout(6,1)); (this );(this ); (btnaddG);(updateG); (p1); (this );(this ); (select_M_and_T);(how_maney); (p2); (this );(this );updateJF .addActionListener(this ); (addJF);(selectJF);(updateJF); (p3); (this );(this );updateJQ .addActionListener(this ); (addJQ);(selectJQ);(updateJQ); (p4); (this );(this ); (this ); (addSJType);(selectSJType);(updateSJType); (p5); 16(this );( this );(this ); (addSJType_JF);(selectSJType_JF);(updateSJType_JF); (p6); (this );(this ); (index);(btnexit); (p7); setDefaultCloseOperation; setSize(960,540);setVisible(true ); } public void actionPerformed(ActionEvent e) { String command=(); if ("添加管理员")){ Insert_G G=new Insert_G(); } if ("修改管理员信息")){ // 查看机房收费和时长")){ // } if ("查看各管理员收费")){ // } if ("添加机房信息")){ Insert_JF G=new Insert_JF(); } if ("查看机房信息")){ // } if ("更改机房信息")){ // } if ("添加机器信息")){ Insert_JQ s=new Insert_JQ(); } if ("查看机器信息")){ // } if ("更改机器信息")){ // } if ("添加上机类型信息")){ 17// } if ("查看上机类型信息")){ // } if ("更改上机类型信息")){ // } if ("添加上机类型_机房信息")){ Insert_JFType s=new Insert_JFType(); } if ("查看上机类型_机房信息")){ // } if ("更改上机类型_机房信息")){ // } if ("首页")){login_index s=new login_index(); } if ("退出")){(0); } } // // // } public static void main(String args[]){ G_mainFrame s=new G_mainFrame(); } 18北华航天工业学院课程报告 课 程 设 计 成 绩 姓 名 题 目 刘智星 班 级 B11512 指导教师 贾振华、李建义机房管理系统 指 导 教 师 评 语 评定成绩: 指导教师签字: 年 月 日 19

医院在线预约挂号系统设计

医院在线挂号预约系统 ——系统设计 1.功能结构图设计 本系统的设计目的是为了改善门诊高峰期挂号排队长、就诊长时间等待、环境拥挤混论的现状,特别是解决专家号难挂的问题,有效地减轻了门诊高峰的就诊压力,提高医院门诊的服务质量,保障医院良好的社会效益及经济效益。该系统不仅具有一般的门诊挂号功能,又可以通过分析病人的流量、各医生的就诊量,来合理地选择医生及预约的时间进行就诊等等功能,在方便患者的就诊的同时,又可以大大提高医院工作效率及资源的利用率。 系统简约结构图如图所示:

图1: 该系统网上在线挂号功能结构流程如下所示:

前台用户(患者)及后台用户(管理者)操作功能图分别如下所示:

3.数据库结构设计 在系统的设计的过程中,数据库分析和设计尤为关键。 在数据库设计中,主要的步骤如下: 第一步:分析阶段系统设计人员通过系统分析阶段的初步调查和详细调查掌握系统关于数据的需求。在数据库设计阶段确认用户有关数据、关系和数据库信息的要求。 第二步:概念结构设计。在分析的基础上,使用E-R 图工具描述出现实世界中实体和实体之间的关系。 1.根据需求确定关系模型 根据前面的需求分析,确定系统所涉及的实体和关系,然后应用E-R 图对信息进行组织和连接。 例如,患者挂号的实体包括:病人实体、医生实体、科室实体;关系包括:病人挂号、医生出诊,分配的科室等。 它们之间的关系如图所示。

2.确定数据库中的表 在完成系统的ER 图之后,需要将ER 模型转化为关系模型,也就是说,要设计出数据库所需要的表格。在这里,选用的是关系数据库。关系数据库使用表来存储信息,确定数据库中的表是数据库设计中比较难处理的一步。利用数据库的目的就是为了解决医院挂号信息的组织和管理问题。设计者从数据库所要解决的问题和收集的各种表格中,却不一定能够直接找出生成数据库表结构的线索。根据关系规范化的知识,将上面的E-R 图化解为几个规范的关系,每个关系可以在关系数据库中用表来存储。此外,为了能够更合理地确定数据库中应

电子信息系统机房设计规范完整版

电子信息系统机房设计 规范 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

《电子信息系统机房设计规范》(GB50174-2008)[1] 目录 4 机房位置及设备布置 电子信息系统机房位置选择 电子信息系统机房组成 设备布置 5 环境要求 温、湿度及空气含尘浓度 噪声、电磁千扰、振动及静电 6 建筑与结构 一般规定 人流及出入口 防火和疏散 室内装修 7 空气调节 一般规定 热负荷计算 气流组织

设备选择 8 电气技术 供配电 照明 静电防护 接地 9 电磁屏蔽 一般规定 结构形式 滤波器 截止波导通风窗 10 网络布线 一般规定 网络布线设计 11 机房监控与安全防范一般规定 环境监控系统 设备监控系统 安全防范系统 12 给水排水 一般规定

13 消防 一般规定 消防设施 安全措施 附录1 各级电子信息系统机房技术要求 1总则 为了在电子信息系统机房的工程设计中,贯彻国家的法律、法规和技术经济政策,确保电子信息系统设备安全、稳定、可靠地运行,保障机房内的工作人员身心健康,特制订本规范。 本规范适用于陆地上新建、改建和扩建的电子信息系统机房的工程设计。 电子信息系统机房的设计应遵循近期建设规模与远期发展规划协调一致的原则,以确保未来电子信息业务发展的需要。 电子信息系统机房设计除应符合本规范,尚应符合国家现行有关强制性标准和规范的规定。 2术语 电子信息系统机房electronic information system room 为电子信息设备提供运行环境的场所,可以是一幢建筑物或者建筑物的一部分,包括主机房、支持区和辅助房间等功能区。 主机房computer room 用于电子信息处理、存储、交换和传输设备的安装、运行和维护的建筑空间。包括服务器机房、网络机房、网络接入间、存储机房、测试区、监控中心、备件库、打印室等。 支持区support area

相关文档
相关文档 最新文档