机房管理系统

机房管理系统
机房管理系统

课程设计说明书

课程名称:高级语言程序设计

设计题目:机房管理系统

院部:计算机科学与信息工程学院

学生:

学号:

专业班级:物联网工程

指导教师:周晏

2015年6月

课程设计任务书

目录

一前言 (1)

二需求分析 (1)

三概要设计 (2)

四详细设计 (3)

五改进或增加功能模块说明 (7)

六程序测试 (8)

七课程设计总结 (14)

八致 (15)

九参考文献 (15)

十源程序 (15)

机房管理系统

一前言

设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。每个模块由组员相应完成。另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋予上机者相关信息,避免管理员一个一个的给机子输入信息。

二需求分析

1 要求

(1)用C语言实现程序设计;

(2)定义各个函数分别完成不同功能,如背景设计,判断等;

(3)画出查询空机号模块的流程图;

(4)系统的各个功能用函数调用的形式实现;

(5)界面友好(良好的人机互交),程序要有注释。

2 任务

(1)定义各类头文件,变量及宏定义;

(2)写出详细设计过程;

(3)改进或增加模块;

(4)各个模块运行情况;

(5)编写代码;

(6)程序分析与调试。

3 运行环境

(1)WINDOWS2000/XP系统

(2)TurboC2.0编译环境

(3)WINDOWS8/8.1系统

4 开发工具

C语言

三概要设计

1 模块组成图。

主要包括8个模块,分别是学生信息输入模块,空机号查询模块,查询上机情况模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块,上课模式模块。如图3-1所示。

图3-1 功能模块图

2 空机号查询函数流程图。

空机号检索是本程序的核心,本程序的其它几个模块皆是通过先对空机号的判断然后进行下去的(及先对StudentList[time]的值进行0或1的判断)。例如“显示所有上机信息模块”,我们小组通过一个for循环语句,从机号0—79号逐一判断,符合条件则将其输出。而判断的标准就是if(StudentList[i].time!=0)。如图3-2所示。

图3-2 空机号查询流程图

四详细设计

在主函数之前,我们首先定义了一个结构体,同时进行了相关函数的声明。其中,结构体包括:[name],机号[seat],学号[stu_num],上机时间[time]四个成员。在主函数中,我们定义了一个变量j,通过一个for循环语句,从j=0到j=80,分别给所有机子编号,同时给所有机子的上机时间赋以初值0,从而为空机号的检索以及下面各个模块顺利的连接编译做下铺垫。为美化菜单,我们加上相应的头文件#include,再加上相应的颜色函数:system( "color 3A "),从而成功使系统界面背景颜色与字体分别变成紫色与绿色。代码如下。

#include

#include

#include

#define MaxSize 80

struct student_info

{

char name[10]; //

int seat; //机号

long stu_num; //学号

int time; //上机时间

}StudentList[MaxSize];

void Insert();

void Empty();

void Search();

void Update();

void Delete();

void Dispallmoney();

void Show();

void Class();

int main()

{

int i,j;

system("color 3A"); //字体和背景颜色

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

{

StudentList[j].time=0; //给所有机子上机时间赋值为0,代表空机

StudentList[j].seat=j; //给所有机子编号

}

printf("\t\t\t*****************************\n\n");//显示一个简易菜单

printf("\t\t\t 欢迎使用机房管理系统\n\n");

printf("\t\t\t*****************************\n\n");

do

{printf("\n");

printf("\t\t\t1------输入学生信息(Insert)\n");

printf("\t\t\t2------查询空机位(Empty)\n");

printf("\t\t\t3------查询上机情况(Search)\n");

printf("\t\t\t4------修改上机信息(Update)\n");

printf("\t\t\t5------删除上机信息(Delete)\n");

printf("\t\t\t6------显示学生上机费用(Dispallmoney)\n");

printf("\t\t\t7------显示所有上机信息(Show)\n");

printf("\t\t\t8------上课模式(Class)\n");

printf("\t\t\t9------退出(Exit)\n");

学生信息输入模块和空机号查询模块

学生信息输入模块是本系统的第一个模块,亦是本系统尤为关键的一个模块。下面的模块能够正常运行,皆离不开这一模块。

结合主函数,我们在输入上机者信息时,我们通过对StudentList[i].time进行0

或1的判断,对整个机房进行一个空机号的检索,检查是否有空机号,有则执行输入功能,无则输出“机房已满”信息。代码如下。

{

int i,k=0;

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

{

if(StudentList[i].time==0) //检测机房是否有空机位

k=1;

}

if(k==0)

{printf("机房已满!");return;}

printf("请输入机号:");

scanf("%d",&i);

if(i>=80)

{printf("请输入小于80的整数");return;}

if(StudentList[i].time!=0)

{printf("已经有人正在操作此机:");return;}

printf("请输入上机者:");

scanf("%s",StudentList[i].name);

printf("请输入上机者学号:");

scanf("%ld",&StudentList[i].stu_num);

printf("请输入上机时间:");

scanf("%d",&StudentList[i].time);

}

查询、修改、删除、显示上机信息模块

这四个模块采用的设计思路基本一致,皆通过对StudentList[i].time的值进行0或1的判断,达到功能的实现。例如:查询上机信息模块。在此模块中,设计者通过一个if的判断语句(即:if(StudentList[i].time!=0) ),对管理员所输入机号进行一个是否为空机号的判断,若检测到所输机号是空机号(即:StudentList[i].time=0)时,则不输出相关信息,反之,输出相关上机者信息。代码如下。

void Empty()

{

int i,k=0;

printf("空机号为:\n");

for(i=0;i<80;i++) //检测空机号并将其输出

{

if(StudentList[i].time==0)

{printf("%d\t",i);

k=1;

}

}

if(k==0)

{printf("无空机位!");return;}

}

void Search()

{int i;

printf("请输入要查询的机号:");

scanf("%d",&i);

if(StudentList[i].time!=0) //判断标准,检索到则输出{printf(":%s\t",StudentList[i].name);

printf("学号:%ld\t",StudentList[i].stu_num);

printf("上机时间:%d\t",StudentList[i].time);

}

else

printf("没有查询到!");

}

void Update()

{int i;

printf("请输入要修改数据的机号:");

scanf("%d",&i);

if(StudentList[i].time!=0) //判断标准,检索到则输出{

printf("请输入:");

scanf("%s",StudentList[i].name);

printf("请输入学号:");

scanf("%ld",&StudentList[i].stu_num);

printf("请输入上机时间:");

scanf("%d",&StudentList[i].time);

}

else

printf("没有查询到可以修改的数据!");

}

void Delete()

{int i;

printf("请输入要删除信息的机号:");

scanf("%d",&i);

if(StudentList[i].time==0)

printf("无需修改!");

StudentList[i].time=0;

strcpy(StudentList[i].name,"");

}

显示上机费用模块

此模块采用的是时间乘上每单位时间的费用的计费方式来进行计费的。在本系统中,我们规定每小时上机费用是2元,通过调用在“学生信息输入模块”中所输入的上机时间(即:StudentList[i].time)乘上此费用,从而得到上机者上机费用。代码如下。

void Dispallmoney()

{int i,money;

printf("请输入结账机号:");

scanf("%d",&i);

money=2*StudentList[i].time;//计费采用公式:时间*每次的费用,简单计算

printf("您的上机费用为:%d",money);

}

五改进或增加功能模块说明

上课模式模块

此模块为本系统新增模块,是根据机房某些时候的特殊需要设计的,旨在能够方便管理员一次性输入数据。而为达到这一功能,我们采用了一个for循环语句,从0号机一直到79号机统一赋上相同的上机时间,学号。代码如下。

void Class()

{

int i,n;

printf("请输入上课时间:\n");

scanf("%d",&n);

for(i=0;i<80;i++) //给所有机子上机时间统一赋值,所有机子开启

{

StudentList[i].time=n;

StudentList[i].stu_num=0;

strcpy(StudentList[i].name,"");

}

}

六程序测试

1 测试系统能否正确显示菜单界面

执行程序后,显示本系统的界面,进行模块选择,如图3-3所示。

图3-3 模式选择界面

2 测试输入信息模块能否正确输入信息

该模块能正常输入信息,如图3-4所示。

图3-4 信息输入

3 测试查询空机位模块是否正常

查询空机位模块正常,如图3-5所示。

图3-5 空机位查询4 测试查询上机情况模块是否正常

上机情况模块正常,如图3-6所示。

图3-6 上机情况5 测试修改上机信息模块是否正常

修改上机信息模块正常,如图3-7所示。

图3-7 修改信息6 测试删除信息模块是否正常

删除信息模块正常,如图3-8所示。

图3-8 删除信息7 测试显示学生上机费用模块是否正常

学生上机费用模块正常,如图3-9所示。

图3-9 上机费用

8 测试显示所有上机信息模块是否正常

显示所有上机信息模块正常,如图3-10,3-11,3-12,3-13所示。

图3-10 上机信息

图3-11 上机信息

图3-12 上机信息

图3-13 上机信息

8 测试上课模块是否正常

上课模块正常,如图3-14,3-15,3-16,3-17,3-18所示。

图3-14 上课模块

图3-15 上课模块

图3-16 上课模块

图3-17 上课模块

图3-18 上课模块

9 测试退出模块是否正常

退出模块正常,如图3-19所示。

图3-19 退出模块

七课程设计总结

C语言程序这门课,虽然到现在已经告一段落,不过现在回想,觉得经过两个学期的学习,自己的确学到了不少东西,不过依然只是个入门者,以后还得靠自己继续学习,加强。

这次C语言课程设计,困难之处就是如何利用“结构体”。说句实话,在我开始着手准备之时连结构体都弄不清楚,因为压根就没学会此部分。但在自己查阅相关书籍以及上网搜索后,我终于在最后用结构体完成了此次课程设计。

此次的课程设计所编写的程序的核心就是空机号的判断,及上文所提到的StudentList[j].time值的判断。(Student[i].time==0表示空机号,等于1则表示非空极号,有人正在操作此机)。重要之处还有“显示所有上机信息模块”,就是通过一个for循环语句,通过逐一检查,遇到符合条件的则将其输出。而判断标准就是Student[i].time 的值为零则不输出,不为零则将其输出。

由于在这次C语言课程设计中,我可谓经历了一次“自学大作战”,因此我也逐渐感受到了自学的妙处,我想这必将会对我今后的学习产生一定的积极影响。例如在我基本完成设计之后,我觉得主界面不够美观,是否可以改进一下呢?于是我通过上网查阅了相关的资料,发现我其实可以给主界面以及字体加点背景颜色,而这项工作也并不是很难,只需要调用库函数中的颜色函数。于是我在主函数中加上System("color

3A"),并加上相应的头文件#include。于是我就成功实现了这一功能,给该程序主界面赋上了湖蓝色背景,字体也变为了淡绿色。

在课程设计中,收获知识,提高能力的同时,我也学到了很多人生哲理,懂得怎样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中如何去克服心理上的不良情绪,因此在以后的生活和学习过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!

八致

经过两个多星期的努力,终于把本程序改写出来,在这期间要感各同学对我帮助和支持,同时也感程序老师对我的教导。

九参考文献

[1] 梁旭等C程序设计课程设计电子工业2011.

[2] 谭浩强C程序设计(第四版)清华大学2010.

[3] 福祥. C语言程序设计[M]. 大学,2008.1

[4] 福祥,王萌.C语言程序设计习题解答与实验实训[M].:大学,2008.

[5] 牛莉,远军等.计算机等级考试辅导教程[M].:中国铁道,2008.

十源程序

#include

#include

#include

#define MaxSize 80

struct student_info

{

char name[10]; //

int seat; //机号

long stu_num; //学号

int time; //上机时间

}StudentList[MaxSize];

void Insert();

void Empty();

void Search();

void Update();

void Delete();

void Dispallmoney();

void Show();

void Class();

int main()

{

int i,j;

system("color 3A"); //字体和背景颜色for(j=0;j<80;j++)

{

StudentList[j].time=0; //给所有机子上机时间赋值为0,代表空机

StudentList[j].seat=j; //给所有机子编号

}

printf("\t\t\t*****************************\n\n");//显示一个简易菜单printf("\t\t\t 欢迎使用机房管理系统\n\n");

printf("\t\t\t*****************************\n\n");

do

{printf("\n");

printf("\t\t\t1------输入学生信息(Insert)\n");

printf("\t\t\t2------查询空机位(Empty)\n");

printf("\t\t\t3------查询上机情况(Search)\n");

printf("\t\t\t4------修改上机信息(Update)\n");

printf("\t\t\t5------删除上机信息(Delete)\n");

printf("\t\t\t6------显示学生上机费用(Dispallmoney)\n");

printf("\t\t\t7------显示所有上机信息(Show)\n");

printf("\t\t\t8------上课模式(Class)\n");

printf("\t\t\t9------退出(Exit)\n");

scanf("%d",&i); //接受用户的选择switch(i)

{case 1:Insert(); //调用学生信息输入函数break;

case 2:Empty(); //调用空机号检索函数break;

case 3:Search(); //调用上机信息查询函数break ;

case 4:Update(); //调用上机信息修改函数break;

case 5:Delete();

break;

case 6:Dispallmoney(); //调用计费函数break;

case 7:Show(); //调用上机信息全显示函数break;

case 8:Class(); //调用机房上课模式函数break;

case 9:break;

default:printf("错误选择!请重选");break;

}

}while(i!=9);

return 0;

}

void Insert()

{

int i,k=0;

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

{

if(StudentList[i].time==0) //检测机房是否有空机位k=1;

}

if(k==0)

{printf("机房已满!");return;}

printf("请输入机号:");

scanf("%d",&i);

if(i>=80)

{printf("请输入小于80的整数");return;}

if(StudentList[i].time!=0)

{printf("已经有人正在操作此机:");return;}

printf("请输入上机者:");

scanf("%s",StudentList[i].name);

printf("请输入上机者学号:");

scanf("%ld",&StudentList[i].stu_num);

printf("请输入上机时间:");

scanf("%d",&StudentList[i].time);

}

void Empty()

{

int i,k=0;

printf("空机号为:\n");

for(i=0;i<80;i++) //检测空机号并将其输出{

if(StudentList[i].time==0)

{printf("%d\t",i);

k=1;

大型数据库课程设计报告——机房管理系统

大型数据库课程设计 设计报告 题目:机房管理系统 学号: 学生姓名: 指导教师: 提交时间:

目录 第1章需求分析 (1) 1.1 需求调查 (1) 1.2 系统功能分析 (2) 1.3 面对用户需求分析 (3) 第2章面向对象分析和设计 (4) 第3章逻辑结构设计 (6) 3.1 类和对象向关系模式转换 (8) 3.2 关系模式优化 (9) 第4章数据库物理结构设计 (9) 4.1 存取方法设计 (9) 4.2 存储结构设计 (9) 4.3 物理设计 (10) 第5章数据库完整性设计 (12) 5.1 主键及唯一性索引 (12) 5.2 参照完整性设计 (12) 5.3 Check约束 (12) 5.4 Default约束 (12) 5.5 触发器设计 (13) 第6章数据库视图设计 (15) 第7章数据库存储过程设计 (16) 第8章权限设计 (17) 总结 (18) 参考文献: (18)

机房管理系统后台数据库 第1章需求分析 1.1 需求调查 针对一般高校机房管理系统的需求分析,通过对各个用户的调查,该机房管理系统有如下需求: 1)机房管理:实现机房管理员对机房信息、计算机信息以及教学班上机相关 信息的管理。机房管理员可以对包括机房名称、该机房拥有的计算机数目、计算机编号、计算机上机费率在内的相关机房信息、计算机信息进行管理,也可以为教学班的课程分配上机时间和地点。 2)基本信息管理:实现对课程信息和教学班的基本信息的管理,包括课程的 教师、上机时间和上机地点等基本信息,以及教学班学生、课程和成绩等基本信息的管理。学生可以对自己的个人基本信息进行管理,机房管理员可以对上机时间和地点等进行管理,任课教师可以对教学班学生课程成绩进行修改。 3)查询:实现对机房信息、学生信息、课程信息和教学班信息的相关查询。 机房管理员可以对机房各项相关信息进行查询,学生可以对包括学号、姓名、民族、性别、出生日期、班级、系别、专业和卡号在内的学生个人基本信息,课程的教师、上机时间、上机地点和成绩在内的课程信息,以及包括上机收费和余额在内的充值卡信息进行查询,任课老师可以对教学班学生信息、课程信息、上机时间、上机地点以及成绩等基本信息进行相关查询。 4)充值管理:实现充值人员对学生充值信息的管理,包括卡号、充值时间、 充值金额以及余额等基本信息。学生通过充值人员为自己的卡充值,也可以了解自己的充值卡余额。 5)上机管理:实现对学生上机信息和机房收费信息的管理。下机后,系统将 自动修改该学生的充值卡账户余额;通过机房收费信息可以统计各机房上机的费用。

机房管理系统项目开发总结报告

机房管理系统 项目开发总结报告 目录 14.1 引言 (1) 14.1.1 编写目的 (1) 14.1.2 背景 (2) 14.1.3 定义 (2) 14.1.4 参考资料 (2) 14.2 实际开发结果 (3) 14.2.1 产品 (3) 14.2.2 主要功能和性能 (3) 14.2.3 基本流程 (3) 14.2.4 进度 (4)

14.2.5 费用 (4) 14.3 开发工作评价 (4) 14.3.1 对产品质量的评价 (4) 14.3.2 对技术方法的评价 (4) 14.3.3 出错原因的分析 (4) 14.1 引言 14.1.1 编写目的 为提高机房使用效率,净化上机环境,杜绝个别用户使用机房内电脑做违规的事情,为机房管理员提供一个好的机房监控系统是必要的。作者在对机房微机管理过程进行了详细调查后,参考了一些网吧的微机管理系统,获得了机房监控系统的设计思路。机房管理系统应当能使管理员极其方便的获取某台微机的屏幕视图,锁定某台电脑的键盘和鼠标输入,并能发送消息给指定的电脑用户。

14.1.2 背景 当今时代是一个信息种类多元化,信息量巨大化,传播速度急速化的时代。要积极面临这种现状,就要能快速的处理各种信息,从而引申出人们对信息处理工具的高度关注。而各种电子设备,尤其是电脑等硬件设备的出现,给人们的日常生活带来极大的变化。随着计算机网络的出现,更使得人们的信息处理方式发生了革命性的改变。毫无疑问,计算机以及由计算机组成的计算机网络已经成为当今时代最佳的信息处理工具。掌握这个工具对于科研和学习有着重要意义。 鉴于这种情况,现在许多学校都提供了微机室,让在校学生可以很好的学习计算机操作,并使用计算机辅助学习。对于同学们来说,这本来是个很好的机会,但有个别同学未能珍惜这个机会,他们没有好好利用这些微机进行学习和研究,而是在机房内打游戏或者闲聊等,甚至有人利用电脑进行违反法规的活动。这些同学不但浪费了自身的学习机会,同时也浪费了学校的宝贵资源,而且给周围的同学造成了很不好的影响。因此,如何对机房进行有效的管理成为了一个不容忽视的问题。 对于机房管理,一方面应该设立专门的管理员,拟定详细的机房使用规则;另一方面,也应该配备强大的管理软件,辅助管理员进行管理。因此,如何设计和实现机房监控系统成为了本次课题的研究问题。 14.1.3 定义 该系统在原有的机房管理系统上做了有益的改进,实现尽量考虑系统的可操作行,系统设计的合理性,使业务流程最短,界面友好。 系统是根据系统业务流程设计的。新系统的使用将有以下几个方面的优势,该系统包括帐户管理模块、计费设置模块,系统设置模块、以及远程监管模块等模块。其中帐户管理模块是整个机房管理系统的基础。为了能够使机房的管理工作有条不紊,实现计算机化、系统化、规范化操作,必须建立一个良好的机房管理系统。 14.1.4 参考资料 《软件开发这点儿事——软件开发工具手册》邵志东著 《程序员指南丛书https://www.360docs.net/doc/704053230.html,高级编程》但正刚著 《https://www.360docs.net/doc/704053230.html,网络应用系统开发与实例》吴明晖主编吴丹红编著 《软件工程--理论与实践》田淑梅廉龙颖高辉编著

浅谈学校计算机机房的日常维护及管理

农村学校计算机机房的日常管理与维护 摘要:随着近几年国家对学校信息化建设的投入,农村学校的信息化建设也得到了很大改善。很多学校机房已配置了大量的计算机, 信息技术课也步入正常化,所以对于对于怎样管理与维护好机房是一个很重要且现实的问题,科学有效地管理好机房不仅可以使现有的设备发挥最大功效, 还可以提高教学质量、保证良好的教学秩序,笔者作为长期从事农村学校信息化建设者,结合机房管理实践, 以适应教学需要为出发点,对现存的问题和建议等方面进行探究。 关键词:计算机机房维护管理, 0、引言 随着计算机的迅速普及和信息技术的不断发展,计算机机房的建设已成为各级各类学校现代化教学重要组成部分。机房的维护管理工作是信息技术教学的重要环节,但由于学校机房的服务对象主要是学生,他们好奇心强,动手能力强,因此破坏性也极强,经常会随意更改系统数据而出现系统设置的改变、文件的丢失、删除,非正常操作引起系统死机,从而使机器不能正常启动,系统界面被改得面目全非,甚至有的学生把带有病毒的活动硬盘或u盘带入机房,导致计算机系统全部崩溃,严重地影响了计算机实践课的教学效果。怎样才能做好机房管理,为教学提供一个好的环境,对提高课堂教学效果,减轻计算机教师的工作强度,都有着十分重要的意义。因此我提出了一套简便而又切实可行的网络机房的管理与维护方案。 1、计算机机房的维护 1、1系统恢复技术 (1)使用克隆(Ghost)技术备份和恢复系统 克隆技术是现代机房维护的得力工具,利用Ghost软件的数据备份及恢复功能,可以快速地恢复系统。先利用某一个标准配置的工作站(机房初建成且已装好所需的应用程序)的系统分区制作一个分区映像文件。操作步骤为:在执行Ghost软件后,依次执行local→partition→To Image,管理员将映像文件保存在网络中可靠的存储设备中,以备工作站系统区崩溃时进行恢复,如存储在E:\ghost\win xp.gho。以后万一系统受损,就可以很方便地利用Ghost软件将所做的备份还原出来。还原过程是在工作站上以DOS方式启动ghost后(若非DOS 时进行恢复,有时会出现异常,如蓝屏),再依次执行local→partition→From Image,选择备份所在的盘符、路径和文件名,再选择系统欲恢复的分区,然后一路“OK”就行了。Ghost软件在系统备份以后,如果机房的某一台计算机系统坏了,本身的Ghost备份又失效了,或者新换了一个硬盘,这时就可以利用Ghost 软件对两个硬盘进行对拷。具体操作为:运行Ghost软件,执行local→Disk→To Disk,然后选择源盘、目标盘,按照提示做一些选择后等待指示条完成就可以了。网络工作站在系统还原之后还需重新启动计算机,设置系统IP地址、计算机名称及相应的驱动程序。至此系统重新更新完毕。 (2)利用网络同传功能快速地安装应用软件和恢复计算机 每个老师都会根据教学计划和继续进度的安排在机房的计算机上安装部分软件,这其实是一件比较繁琐的事情,但我们可以在一台计算机上先行安装并测

机房管理系统数据库设计

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.1 编写目的 .............................................................. 错误!未定义书签。 1.2 参考资料 .............................................................. 错误!未定义书签。 1.3 术语和缩写词......................................................... 错误!未定义书签。 2 业务流程分析................................................................ 错误!未定义书签。 2.1 组织机构调查......................................................... 错误!未定义书签。 2.2 现行业务流程......................................................... 错误!未定义书签。 3 需求 .......................................................................... 错误!未定义书签。 3.1 功能需求 .............................................................. 错误!未定义书签。 3.2 数据需求 .............................................................. 错误!未定义书签。 3.3 性能需求 .............................................................. 错误!未定义书签。 3.4 非功能需求............................................................ 错误!未定义书签。 4 环境 .......................................................................... 错误!未定义书签。 4.1开发运行环境.......................................................... 错误!未定义书签。 1 概述 1.1 编写目的 本文档的编写目的是为机房管理系统项目的开发提供: a. 软件总体要求,作为用户和软件开发人员之间了解的基础;

相关文档
最新文档