-
宿舍信息管理系统数据库课程设计分析x_学生宿舍信息管理系统报告
2020-02-26 09:58:40数 据 库 课 程 设 计 题 班 目 级 宿舍信息管理系统 09 级计科 3 班 指导教师 李必云 2012 年 10 月 吉首大学信息科学与工程学院 项目分工 摘要 宿舍系统对于一个学校来说是必不可少的组成部分目前好多学校还停留在... -
数据库课程设计宿舍信息管理系统
2013-05-09 15:35:38数据库课程设计宿舍信息管理系统 -
数据库课程设计——学生宿舍信息管理系统
2018-09-17 23:33:00数据库课程设计——学生宿舍信息管理系统 目录 1.设计目的... 2 2、任务与要求... 2 3、学生宿舍管理系统课程设计... 2 3.1 引言... 2 3.2需求分析... 2 3.2.1....数据库课程设计——学生宿舍信息管理系统
目录
1.设计目的
《数据库系统原理》课程设计是软件工程和计算机科学与技术专业集中实践性环节之一,旨在让我们自身加深对数据库基础理论和基本知识的理解,掌握设计数据库管理系统的基本方法,锻炼运用知识解决实际问题的动手能力。
2、任务与要求
要求学生们从给定的设计题目中进行选择,进行需求分析,概念设计、逻辑设计,数据库的设计过程,表结构、表之间的关联,给出视图的定义、触发器的定义、索引,安全性的实现,用SQL语句等在SQL Server 2008系统中实现数据库的数据输入,查询,更新和输出;给出实现效果截图及部分测试结果。
3、学生宿舍管理系统课程设计
3.1 引言
随着社会的发展以及教育水平的提高,当今社会在校生的数量越来越庞大。与此同时,使用曾经的手工的方式对学生的信息进行管理效率非常低下。在互联网技术高度发达的今天 ,使用数据库技术队对学生的住信息进行管理能够使学校对学生信息的管理更加的高效,检索迅速,查找方便,可靠性高存储量大。使用数据库技术的这些优点可以使得学生信息出错的发生。同时使用数据库技术可以使学生住宿信息长时间稳定地保存,也不容易丢失。开发出这样的一个数据库迫在眉睫。
3.2需求分析
系统需求调查的方法为访谈法,通过对多个学校的宿舍管理人员进行交谈,从而得出系统的主要任务和特定的要求。系统的主要任务是能够对宿舍信息,学生信息,管理员信息,住宿信息进行登记,调整,并能进行各种查询以及信息的备份。
完整性要求:防止不符合语义的数据进入数据库。
安全性要求:需要防止客户对数据进行未经授权的访问。
性能要求:最好能够实现并发访问,允许多个用户同时对数据库中的数据进行访问。
一致性要求:防止数据库进入不一致状态。
数据库要求:各种各样的故障都可能发生,出现意外时,,尽可能的确保任何数据在任何情况下都不会丢失。
3.2.2
系统的业务流程:
学生入住和退宿时通过管理员进行登记;
住宿产生的各种费用以及使用的各项物品由管理员进行登记;
管理员将登记的各项信息上报给教务处;
教务处将各项住宿信息进行统一管理;
储存的所有数据供不同权限的客户进行访问;
数据字典:
学生基本信息
编号
属性名
类型
解释
备注
0001
学号
Varchar(15)
无
无
0002
姓名
Varchar(10)
无
无
0003
性别
Varchar(2)
无
男、女
0004
年龄
Int
无
0……100之间
0005
手机号
Varchar(15)
手机号码
无
0006
专业
Varchar(20)
无
无
住宿费用信息:
编号
属性名
类型
解释
备注
0008
表单编号
Varchar(15)
无
无
0009
学号
Varchar(15)
无
无
0010
宿舍号
Varchar(6)
不是门牌号
无
0011
水费
Double(6)
无
大于0
0012
电费
Double(6)
无
大于0
0013
维修费
Double(6)
无
大于0
0014
住宿费
Double(6)
无
大于0
0015
日期
Date(8)
无
无
0016
合计
Double(6)
无
大于0
物品管理信息:
编号
属性名
类型
解释
备注
0017
员工号
Varchar(15)
无
无
0018
宿舍号
Varchar(15)
无
无
0019
桌子
Int
无
大于0
0020
椅子
Int
无
大于0
0021
床
Int
无
大于0
0022
电扇
Int
无
大于0
0023
灯
Int
无
大于0
0024
窗户
Int
无
大于0
宿舍信息
编号
属性名
类型
解释
备注
0025
宿舍编号
Varchar(15)
无
无
0026
楼号
Varchar(15)
无
无
0027
区域
Varchar(15)
校园内
ABCDEFG
0028
人数
Int
无
0……8
0029
房间类型
Varchar(15)
按人数分
1(四人)2(六人)3(八人)
管理员信息
编号
属性名
类型
解释
备注
0030
员工号
Varchar(15)
无
无
0031
姓名
Varchar(10)
无
无
0032
性别
Varchar(2)
无
男,女
0033
年龄
Int
无
0……100
0034
手机号
Varchar(15)
无
11位
0035
楼号
int
无
无
0036
区域
int
无
ABCDEFG
0037
职位
Varchar(2)
无
1(高级员工)2(普通员工)
3.2.2 系统功能描述:
对学生的信息进行管理;
对宿舍信息进行管理;
对管理员信息进行管理;
对宿舍物品进行登记和管理;
对住宿产生的各项费用进行登记和管理;
对已经更改的学生和管理员信息进行保存
在这幅图中,其中各项从左往右前5部分功能都包括各自信息的增删改查,第六项功能为学生和教师信息的备份,也就是已修改信息储存。
3.3概念设计
(说明使用数据库概念设计的基本思想和原理方法,设计出系统E-R图)
基本思想:将需求分析得到的用户需求抽象为信息结构,分析数据字典中数据字典间内在语义关联,并将其抽象表示为数据的概念模式,从而能真实,充分地反应真实世界,包括事物和事物之间的联系,能满足用户对数据的处理需求,是现实世界的一个真实模型,易于理解,从而可以用它和不熟悉计算机的人交换意见,且易于更改。方法:首先分析整个系统中涉及到的实体,得到局部的ER图。然后分析这些实体之间的关系,进行连接从而得到
3.4逻辑设计
基本思想:首先整个系统一共可以划分出三个实体,分别是学生,管理员和宿舍,三者之间构成一个三角关系。同时,学生和宿舍之间的住宿关系衍生出一系列的住宿产生的费用,管理员和宿舍的管理关系衍生出一系列需要管理的物品,因此五张表相互关联生成完整的数据库系统。
数据库关系图:
学生的个人信息:学号,姓名,性别,年龄,手机号码,专业,管理员号
student(stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,manager_num)
宿舍费用信息:表单编号,水费,电费,维修费,住宿费,总费用,日期
live(list_num,stu_num,dor_num,water,electric,service,lodge,total,date)
宿舍物品信息:桌子,椅子,床,灯,
tool(mana_num,dor_num,table,chair,bed,light)
宿舍信息:宿舍编号,人数,房间类型,楼号,区域
dormitory(dor_num ,prople_total,size, build_num,zone)
宿舍管理人员信息:员工号,姓名,性别,年龄,手机号
manager(mana_num,mana_name,mana_gender,mana_age,mana_tele)
3.5物理结构设计
物理设计的基本思想:根据逻辑设计出的逻辑模式,DBMS及计算机系统所提供的手段和施加的限制,设计数据库的内模式,即文件结构,各种路径,控件分配,记录的存取方式等,为逻辑数据结构选取一个最合适的应用环境的物理结构。
学生基本信息表:
属性名
类型
长度
备注
Stu_num
varchar
15
无
Stu_name
varchar
10
无
Stu_gender
varchar
2
男、女
Stu_age
int
4
0……100之间
Stu_tele
varchar
15
无
Stu_spe
varchar
20
无
住宿费用信息表:
属性名
类型
长度
备注
List_num
Varchar
15
无
Stu_num
Varchar
15
无
Dor_num
Varchar
15
无
water
double
6
大于0
Elect
double
6
大于0
Repaire
double
6
大于0
live
double
6
大于0
date
date
8
指的是具体一年
物品管理信息表:
属性名
类型
长度
备注
Mana_num
Varchar
15
无
Dor_num
Varchar
15
无
Desk
Int
2
大于0
Chair
Int
2
大于0
Bed
Int
2
大于0
fan
Int
2
大于0
lighr
Int
2
大于0
window
Int
2
大于0
宿舍信息表:
属性名
类型
长度
备注
Dor_num
Varchar
15
无
Build_num
Varchar
2
无
Zone
Varchar
2
ABCDEFG
People_total
Int
2
0……8
size
varchar
2
1(四人)2(六人)3(八人)
管理员信息表:
属性名
类型
长度
备注
Mana_num
Varchar
15
无
Mana_name
Varchar
10
无
Mana_gender
Varchar
2
男,女
Mana_age
Int
4
0……100
Mana_tele
varchar
15
11位
Build_num
int
2
无
zone
varchar
2
ABCDEFG
3.6数据库实施
数据库的实施:数据库设计完成后,设计人员要用DBMS提供的数据定义语言和其他的使用程序将数据库逻辑结构设计和物理结构设计的结构用DDL严格描绘出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。最后将数据装入数据库。
3.6.1数据库表的定义
创建学生信息表:
Create table student
(stu_num varchar(15),
Stu_name varchar(10),
Stu_gender varchar(2) check(stu_gender=’男’ or stu_gender=’女’),
Stu_age int check(stu_age>0 and stu_age<100),
Stu_tele varchar(15),
Stu_spe varchar(20),
Primary key (stu_num),
);
创建费用信息表:
Create table live
( list_num varchar(15),
Stu_num varchar(15),
Dor_num varchar(15),
Water float check(water>=0),
Elect float check(elect>=0),
Repair float check(repair>=0),
Living float check(living>=0),
statu int default(1),
Date date,
Primary key(list_num),
Foreign key (stu_num ) references student(stu_num)
on update cascade,
Foreign key (dor_num ) references dormitory(dor_num)
on update cascade
);
创建物品信息管理表:
Create table tool
( mana_num varchar(15),
Dor_num varchar(15),
desk int check(desk>=0),
Chair int check(chair>=0),
Bed int check(bed>=0),
Light int check(light>=0),
Primary key (dor_num),
Foreign key (mana_num ) references manager(mana_num)
on update cascade on delete set null
);
创建宿舍信息管理表:
Create table dormitory
(dor_num varchar(15),
People_total int check(people_total>=0 and people_total<=8),
Size int check(size=1 or size=2 or size=3)
);
创建管理员信息表:
Create table manager
(mana_num varchar(15),
mana_name varchar(10),
mana_gender varchar(2) check(stu_gender='男' or stu_gender='女'),
mana_age int check(stu_age>0 and stu_age<100),
mana_tele varchar(15),
Primary key (mana_num)
);
3.6.2视图的定义:
所有的信息汇总在一起:
Create view allmass
(stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,stu_statu,list_num,dor_num,water,elect,repair,living,live_status,Date,people_total,size,dor_status,mana_num,desk,chair,bed,light,tool_statu,mana_name,mana_gender,mana_age,mana_tele,mana_statu)
as select student.stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,stu_statu,list_num,dormitory.dor_num,water,elect,repair,living,live_statu,Date,people_total,size,dor_statu,manager.mana_num,desk,chair,bed,light,tool_statu,mana_name,mana_gender,mana_age,mana_tele,mana_statu
from student,lives,dormitory,tool,manager
where student.stu_num=lives.stu_num
and lives.dor_num=dormitory.dor_num
and dormitory.dor_num=tool.dor_num
and tool.mana_num= manager.mana_num ;
学生信息视图:
Select stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,mana_name
from allmass
where stu_statu=1;
管理员信息:
create view manager_view
as
select manager.mana_num,mana_name,mana_age,mana_gender,mana_tele
from manager
where mana_statu=1;
宿舍信息:
create view dormitory_view
as
select tool.dor_num,build_num,zone,people_total,size
from tool,dormitory
where tool.dor_num=dormitory.dor_num and dor_statu=1;
物品信息:
create view tool_view
as
select dor_num,mana_num, desk,chair,bed,light
from tool
where tool_statu=1;
账单信息:
create view lives_view
as
select list_num,stu_name,dor_num,water,elect,date,repair,living
from lives,student
where live_statu=1 and lives.stu_num=student.stu_num;
3.6.3索引:
每一张表通过主键的列产生索引,从而加快查询时的进度。
拿学生信息表进行举例:
Create index stu_index on student(stu_num);
当然可以通过数据库自动生成。
3.6.4触发器的定义:
在学生表上建立触发器,记录被修改的信息。在原表中通过一个状态属性标示是否被删除,因此数据并不会真正被删除,只需要记录被修改的信息。
create trigger on_pre_stu
on student
for update
as
begin
declare @stu_num varchar(15)
declare @pre_stu_name varchar(10)
declare @pre_stu_gender varchar(2)
declare @pre_stu_age int
declare @pre_stu_tele varchar(15)
declare @pre_stu_spe varchar(20)
select @stu_num = stu_num from deleted
select @pre_stu_name =stu_name from deleted
select @pre_stu_gender =stu_gender from deleted
select @pre_stu_age = stu_age from deleted
select @pre_stu_tele =stu_tele from deleted
select @pre_stu_spe = stu_spe from deleted
insert into pre_stu(stu_num,pre_stu_name,pre_stu_gender,pre_stu_age,pre_stu_tele,pre_stu_spe )
values(@stu_num,@pre_stu_name,@pre_stu_gender,@pre_stu_age,@pre_stu_tele,@pre_stu_spe)
end
在管理员上建立触发器,记录被修改的信息。在原表中通过一个状态属性标示是否被删除,因此数据并不会真正被删除,只需要记录被修改的信息。
create trigger on_pre_mana
on manager
for update
as
begin
declare @mana_num varchar(15)
declare @pre_mana_name varchar(10)
declare @pre_mana_gender varchar(2)
declare @pre_mana_age int
declare @pre_mana_tele varchar(15)
select @mana_num = mana_num from deleted
select @pre_mana_name =mana_name from deleted
select @pre_mana_gender =mana_gender from deleted
select @pre_mana_age = mana_age from deleted
select @pre_mana_tele =mana_tele from deleted
insert
into pre_mana(mana_num,pre_mana_name,pre_mana_gender,pre_mana_age,pre_mana_tele)values(@mana_num,@pre_mana_name,@pre_mana_gender,@pre_mana_age,@pre_mana_tele)
end
3.6.5用户的定义:
create user dba for login dba with default_schema=dbo
exec sp_addrolemember 'db_owner' ,'dba'
3.6.6 对数据的管理:
对数据的管理主要是由增删改查组成,以学生信息的管理为例,
增加:
insert into
student(stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe,stu_statu)
values('201677H0555','刘飞达','男',19,14646646465,'软工',1);
删除:值得注意的是我删除信息用的是更新信息语句,只需要更改状态值即可标示数据是否被删除,数据不会真的被删除,做好了别分工作。
update student set stu_status=0 where stu_num=’201677H0522’;
修改:
update student set stu_name='刘豪' where stu_num='201677H0522';
查询:值得注意的是查询的条件是数据行的状态值是1,也就是被标示未被删除。
select stu_num,stu_name,stu_gender,stu_age,stu_tele,stu_spe from student where stu_statu=1;
分别查询每一个宿舍的总费用,并且按照宿舍号进行排序(使用的是分组求和的思想):
select dor_num , sum(w ater+elect + repair +living) from lives group by dor_num order by dor_num ;
在sql代码执行的过程中,会自动生成存储过程,将有价值的存储过程进行储存。
3.7系统调试和测试
在对数据库的备份功能进行测试的过程中,我在原表中对数据进行修改,从而触动触发器将被删除的信息储存在备份表中。执行语句update student set stu_name='刘豪' where stu_num='201677H0522'; 然后查看备份表中的信息,验证之后正确。
把数据库总所有的信息联合起来,形成一张非常大的表,生成一个视图,测试之后,可以成功生成,满足要求。
在安全性方面,我创建了用户并且进行了授权:
create login dba with password='123456', default_database=stu_dor_manage;
create user dba for login dba with default_schema=dbo
exec sp_addrolemember 'db_owner' ,'dba'
执行以后,成功生成了一个用户:测试成功!
4.系统评价
4.1我的系统特色:
A、数据结构化 ,数据之间具有联系,面向整个系统。
B、数据的共享性高,冗余度低,易扩充 。
C、数据独立性高 。
D、数据由DBMS统一管理和控制。4.2 系统不足及改进
在对数据库进行设计的过程中,结构比较简单,不能够应对是否能复杂的情况,只能对学生住宿的简单信息进行操作。另外,在安全性方面做得也不够完善,主要原因在于设计的重点是功能的正常执行,而不是在每一个细节做到完美。另外,执行虚度方面没有做出专门的优化。因此,这个数据库系统需要我在以后相信的去完成每一个细节。
5.设计心得
在设计数据库的过程中我遇到过非常多的问题:
首先,在设计阶段有非常多的数据项,当时觉得不好分类和处理,而且有很多的数据项和许多实体都有关系。最后通过查看课本例题,问同学等方式将各个数据项进行归类,对于和多个实体之间都有关系的数据项可以建立一个关系表,从而完成归类。
接着,在添加数据的过程中,我忽略掉了数据的参照完整性,导致许多数据不能够正常加入。后来经过同学的提示,我将数据进行了统一分析,保持所有的数据一致,最后数据可以正常输入。
最后,每个表中的数据更改完成之后,更改后的数据会丢失找不到了。对于这个问题就解决办法为加入触发器,记录表中信息的修改前的值,成功解决问题。
收获:对于一个系统,数据库的设计是非常重要的,数据库设计决定了以后数据好不好维护。后期需求好不好展。同时也决定了系统的性能。一个坏的数据库设计一个功能点的改动可能会设计多张表的改动。一不小心可能就会引起数据的不一致。为了解决这些问题。在数据库设计之初就要考虑这些问题。减少后期系统维护量。
-
Java web课程设计(宿舍管理系统)数据库SQL
2019-05-31 09:14:02数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系...Java web 课程设计(宿舍管理系统)数据库部分。 -
宿舍管理系统web课程设计(asp。net源程序加数据库).doc
2020-07-24 00:02:07动态网页制作技术课程设计 课程设计报告书 题 目 宿舍管理系统 专 业 信息管理 指导老师 同组成员 计算机与数据科学学院 目 录 TOC \ 1- \ \z \ HYPERLNK .1开发背景? PAGEF _oc47113 \h HPERLNK l _c413898 开发... -
数据库课程设计-班主任工作管理系统
2010-06-05 15:17:37第五章 数据库设计 10 5.1学生信息表 10 5.2家访记录表 10 5.3.班干部名单表 10 5.4.宿舍管理表 10 5.5奖惩记录表 10 5.6考勤管理表 11 5.7工作计划表 11 5.8主题班会表 11 5.9学生访谈记录表 11 第六章 个人总结 12 -
数据库课程设计mysql编程_数据库课程设计[完整版].doc
2021-01-27 10:03:04可编辑版Word完美格式HUNAN CITY UNIVERSITY数据库系统课程设计设计题目:宿舍管理信息系统姓 名:学 号:专 业:信息与计算科学指导教师:20年 12月1日目 录TOC \o "1-3" \h \z HYPERLINK \l "_Toc230687106" 引言 ...可编辑版
Word完美格式
HUNAN CITY UNIVERSITY
数据库系统课程设计
设计题目:
宿舍管理信息系统
姓 名:
学 号:
专 业:
信息与计算科学
指导教师:
20年 12月1日
目 录
TOC \o "1-3" \h \z HYPERLINK \l "_Toc230687106" 引言 3
一、人员分配 4
HYPERLINK \l "_Toc230687107" 二、课程设计目的和要求 4
HYPERLINK \l "_Toc230687109" 三、课程设计过程
HYPERLINK \l "_Toc230687110" 1.需求分析阶段
HYPERLINK \l "_Toc230687111" 1.1应用背景 5
HYPERLINK \l "_Toc230687111" 1.2需求分析目标 5
HYPERLINK \l "_Toc230687112" 1.3系统设计概要 5
HYPERLINK \l "_Toc230687113" 1.4软件处理对象 6
HYPERLINK \l "_Toc230687114" 1.5系统可行性分析 6
HYPERLINK \l "_Toc230687115" 1.6系统设计目标及意义 7
1.7系统业务流程及具体功能 7
1.8.1数据流程图 8
2.系统的数据字典 11
HYPERLINK \l "_Toc230687116" 3.概念结构设计阶段 13
HYPERLINK \l "_Toc230687117" 4.逻辑结构设计阶段 15
HYPERLINK \l "_Toc230687118" 5.物理结构设计阶段 18
HYPERLINK \l "_Toc230687119" 6.数据库实施 18
HYPERLINK \l "_Toc230687122" 7.数据库的运行和维护 18
HYPERLINK \l "_Toc230687121" 7.1 解决问题方法 19
HYPERLINK \l "_Toc230687121" 7.2 系统维护
-
数据库课程设计 在线等
2015-01-14 08:39:54宾馆客房信息管理系统 一. 系统需求分析 1.1 设计前调查 近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务... -
学生信息管理系统课程设计 java_java课程设计(学生信息管理系统)
2021-02-12 17:44:091.需求分析功能要求:1)需要管理的学生信息有:学号、姓名、性别、...3.总体设计(概要设计)本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号、姓名、性别、出生日期、政治面貌、...1.需求分析
功能要求:
1)需要管理的学生信息有:学号、姓名、性别、出生日期、政治面貌、家庭住址、电话、宿舍号。
2)实现查询、增、删、改等功能。
数据存储:数据库或文件。
2.本组课题及本人任务
本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面。
3.总体设计(概要设计)
本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号、姓名、性别、出生日期、政治面貌、家庭住址、电话、宿舍号。并且使用数据库来储存学生信息。
小组成员
翁华辉:负责完成学生信息管理系统的图形界面,
张雨阳:负责编写学生信息管理系统的增删改查。
运行界面:
具体代码:
登陆界面:
//给屏幕的宽度高度,程序窗口的宽度高度赋值
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
screenSizeWidth = (int) dimension.getWidth();
screenSizeHeight = (int) dimension.getHeight();
windowWidth = this.getWidth();
windowHeight = this.getHeight();
//设置程序窗口的位置为屏幕的正中央
this.setLocation(screenSizeWidth / 2 - windowWidth / 2, screenSizeHeight / 2 - windowHeight / 2);
// 声明姓名,密码的标签
JLabel username_label = new JLabel("User:");
JLabel password_label = new JLabel("Password: ");
JLabel administrator_label = new JLabel("管理员登陆");
// 声明姓名输入框和密码输入框
final JTextField user_field = new JTextField();
final JPasswordField password_field = new JPasswordField();
//声明登录按钮
JButton login_btn = new JButton("登录");
JButton exit_btn = new JButton("退出");
//设置各个标签和输入框的大小和位置
username_label.setBounds(110, 100, 150, 50);
password_label.setBounds(110, 200, 150, 50);
administrator_label.setBounds(280, 50, 100, 50); //280, 60, 100, 30
user_field.setBounds(180, 100, 300, 50);
password_field.setBounds(180, 200, 300, 50);
login_btn.setBounds(200, 300, 100, 50);
exit_btn.setBounds(350, 300, 100, 50);
//添加到面板
this.add(username_label);
this.add(password_label);
this.add(user_field);
this.add(password_field);
this.add(login_btn);
this.add(exit_btn);
this.add(administrator_label);
登陆密码服务:
//登录按钮的监听器
login_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
//如果用户名和密码都是123,那么弹出对话框显示登录成功,并且开启另一个主框架(主页)
if (user_field.getText().equals(userName)&& password_field.getText().equals(password))
{
JOptionPane.showMessageDialog(null, "登录成功", "Login",JOptionPane.INFORMATION_MESSAGE);
//声明主页
JFrame home_page = new JFrame("学生信息管理系统");
home_page.setResizable(false);
home_page.setSize(600, 600); //设置窗口的大小
home_page.setLayout(null); //设置程序默认布局格式为空,以便于后期自己简单的设置布局
home_page.setResizable(false); //设置不可缩放
//给主页设置位置
home_page.setLocation(screenSizeWidth / 2 - windowWidth / 2 + 50, screenSizeHeight / 2 - windowHeight / 2 + 50);
//给主页设置大小
home_page.setSize(windowWidth, windowHeight);
//设置主页能够关闭,并且登录成功后将登录页面隐藏
home_page.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
home_page.setVisible(true);
setVisible(false);//登录页面隐藏
//功能选择界面
JLabel Menu_label = new JLabel("欢迎来到学生信息管理系统!!!");
//声明登录按钮
JButton write_btn = new JButton("1.添加学生信息");
JButton delate_btn = new JButton("2.删除学生信息");
JButton read_btn = new JButton("3.修改学生信息");
JButton display_btn = new JButton("4.查看学生信息");
JButton exit1_btn = new JButton("5.退出系统 ");
//设置各个标签和输入框的大小和位置
Menu_label.setBounds(200, 15, 300, 200);
write_btn.setBounds(200, 150, 150, 50);
delate_btn.setBounds(200, 200, 150, 50);
read_btn.setBounds(200, 250, 150, 50);
display_btn.setBounds(200, 300, 150, 50);
exit1_btn.setBounds(200, 350, 150, 50);
//添加到面板上
home_page.add(Menu_label);
home_page.add(write_btn);
home_page.add(delate_btn);
home_page.add(read_btn);
home_page.add(display_btn);
home_page.add(exit1_btn);
添加学生:
//添加学生信息按钮的监听器
write_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
JFrame write_page = new JFrame("学生信息管理系统");
write_page.setResizable(false);
write_page.setSize(600, 600); //设置窗口的大小
write_page.setLayout(null); //设置程序默认布局格式为空,以便于后期自己简单的设置布局
write_page.setResizable(false); //设置不可缩放
//给主页设置位置
write_page.setLocation(screenSizeWidth/2- windowWidth/2+50, screenSizeHeight / 2 - windowHeight / 2 + 50);
//给主页设置大小
write_page.setSize(windowWidth, windowHeight);
//设置主页能够关闭,并且登录成功后将登录页面隐藏
write_page.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
write_page.setVisible(true);
setVisible(false);//登录页面隐藏
//声明标签,按钮,
JLabel Menu1_label = new JLabel("添加学生信息");
JLabel Id1_label = new JLabel("ID");
JLabel name1_label = new JLabel("name");
JLabel gender1_label = new JLabel("gender");
JLabel birthDate1_label = new JLabel("birthDate");
JLabel politicalOutlook1_label = new JLabel("politicalOutlook");
JLabel familyLocate1_label = new JLabel("familyLocate");
JLabel phone1_label = new JLabel("phone");
JLabel dormitoryNum1_label = new JLabel("dormitoryNum");
final JTextField ID1_field = new JTextField();
final JTextField name1_field = new JTextField();
final JTextField gender1_field = new JTextField();
final JTextField birthDate1_field = new JTextField();
final JTextField politicalOutlook1_field = new JTextField();
final JTextField familyLocate1_field = new JTextField();
final JTextField phone1_field = new JTextField();
final JTextField dormitoryNum1_field = new JTextField();
JButton return1_btn = new JButton("返回");
JButton sure1_btn = new JButton("确定");
JButton exit2_btn = new JButton("退出系统");
//设置各个标签和输入框的大小和位置
Menu1_label.setBounds(250, 75, 100, 100);
Id1_label.setBounds(200, 150, 100, 50);
name1_label.setBounds(200, 190, 100, 50);
gender1_label.setBounds(200, 230, 100, 50);
birthDate1_label.setBounds(200, 270, 100, 50);
politicalOutlook1_label.setBounds(200, 310, 100, 50);
familyLocate1_label.setBounds(200, 350, 100, 50);
phone1_label.setBounds(200, 390, 100, 50);
dormitoryNum1_label.setBounds(200, 430, 100, 50);
ID1_field.setBounds(300, 160, 80, 25);
name1_field.setBounds(300, 200, 80, 25);
gender1_field.setBounds(300, 240, 80, 25);
birthDate1_field.setBounds(300, 280, 80, 25);
politicalOutlook1_field.setBounds(300, 320, 80, 25);
familyLocate1_field.setBounds(300, 360, 80, 25);
phone1_field.setBounds(300, 400, 80, 25);
dormitoryNum1_field.setBounds(300, 440, 80, 25);
return1_btn.setBounds(120, 500, 100, 50);
sure1_btn.setBounds(250, 500, 100, 50);
exit2_btn.setBounds(380, 500, 100, 50);
//添加到面板
write_page.add(Menu1_label);
write_page.add(Id1_label);
write_page.add(name1_label);
write_page.add(gender1_label);
write_page.add(birthDate1_label);
write_page.add(politicalOutlook1_label);
write_page.add(familyLocate1_label);
write_page.add(phone1_label);
write_page.add(dormitoryNum1_label);
write_page.add(ID1_field);
write_page.add(name1_field);
write_page.add(gender1_field);
write_page.add(birthDate1_field);
write_page.add(politicalOutlook1_field);
write_page.add(familyLocate1_field);
write_page.add(phone1_field);
write_page.add(dormitoryNum1_field);
write_page.add(return1_btn);
write_page.add(sure1_btn);
write_page.add(exit2_btn);
删除学生:
//删除学生信息按钮的监听器
delate_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
JFrame delate_page = new JFrame("学生信息管理系统");
delate_page.setResizable(false);
delate_page.setSize(600, 600); //设置窗口的大小
delate_page.setLayout(null); //设置程序默认布局格式为空,以便于后期自己简单的设置布局
delate_page.setResizable(false); //设置不可缩放
//给主页设置位置
delate_page.setLocation(screenSizeWidth / 2 - windowWidth / 2 + 50, screenSizeHeight / 2 - windowHeight / 2 + 50);
//给主页设置大小
delate_page.setSize(windowWidth, windowHeight);
//设置主页能够关闭,并且登录成功后将登录页面隐藏
delate_page.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
delate_page.setVisible(true);
setVisible(false);//登录页面隐藏
//声明
JLabel Menu2_label = new JLabel("删除学生信息");
JLabel Id2_label = new JLabel("请输入ID");
final JTextField ID2_field = new JTextField();
JButton return2_btn = new JButton("返回");
JButton sure2_btn = new JButton("确定");
JButton exit3_btn = new JButton("退出系统");
//设置各个标签和输入框的大小和位置
Menu2_label.setBounds(250, 75, 100, 100);
Id2_label.setBounds(180, 200, 200, 50);
ID2_field.setBounds(300, 210, 80, 25);
return2_btn.setBounds(120, 400, 100, 50);
sure2_btn.setBounds(250, 400, 100, 50);
exit3_btn.setBounds(380, 400, 100, 50);
//添加到面板
delate_page.add(Menu2_label);
delate_page.add(Id2_label);
delate_page.add(ID2_field);
delate_page.add(return2_btn);
delate_page.add(sure2_btn);
delate_page.add(exit3_btn);
修改学生信息:
/修改学生信息按钮的监听器
read_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
JFrame read_page = new JFrame("学生信息管理系统");
read_page.setResizable(false);
read_page.setSize(600, 600); //设置窗口的大小
read_page.setLayout(null); //设置程序默认布局格式为空,以便于后期自己简单的设置布局
read_page.setResizable(false); //设置不可缩放
//给主页设置位置
read_page.setLocation(screenSizeWidth / 2 - windowWidth / 2 + 50, screenSizeHeight / 2 - windowHeight / 2 + 50);
//给主页设置大小
read_page.setSize(windowWidth, windowHeight);
//设置主页能够关闭,并且登录成功后将登录页面隐藏
read_page.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
read_page.setVisible(true);
setVisible(false);//登录页面隐藏
//声明标签,按钮,
JLabel Menu3_label = new JLabel("修改学生信息");
JLabel xiugaiID_label = new JLabel("请输入要修改学生的ID:");
JLabel Id3_label = new JLabel("ID");
JLabel name3_label = new JLabel("name");
JLabel gender3_label = new JLabel("gender");
JLabel birthDate3_label = new JLabel("birthDate");
JLabel politicalOutlook3_label = new JLabel("politicalOutlook");
JLabel familyLocate3_label = new JLabel("familyLocate");
JLabel phone3_label = new JLabel("phone");
JLabel dormitoryNum3_label = new JLabel("dormitoryNum");
final JTextField ID3_field = new JTextField();
final JTextField xiugaiID_field = new JTextField();
final JTextField name3_field = new JTextField();
final JTextField gender3_field = new JTextField();
final JTextField birthDate3_field = new JTextField();
final JTextField politicalOutlook3_field = new JTextField();
final JTextField familyLocate3_field = new JTextField();
final JTextField phone3_field = new JTextField();
final JTextField dormitoryNum3_field = new JTextField();
JButton return3_btn = new JButton("返回");
JButton sure3_btn = new JButton("确定");
JButton exit4_btn = new JButton("退出系统");
//设置各个标签和输入框的大小和位置
Menu3_label.setBounds(250, 50, 100, 100);
xiugaiID_label.setBounds(200, 75, 100, 100);
Id3_label.setBounds(200, 150, 200, 50);
name3_label.setBounds(200, 190, 100, 50);
gender3_label.setBounds(200, 230, 100, 50);
birthDate3_label.setBounds(200, 270, 100, 50);
politicalOutlook3_label.setBounds(200, 310, 100, 50);
familyLocate3_label.setBounds(200, 350, 100, 50);
phone3_label.setBounds(200, 390, 100, 50);
dormitoryNum3_label.setBounds(200, 430, 100, 50);
xiugaiID_field.setBounds(300, 120, 80, 25);
ID3_field.setBounds(300, 160, 80, 25);
name3_field.setBounds(300, 200, 80, 25);
gender3_field.setBounds(300, 240, 80, 25);
birthDate3_field.setBounds(300, 280, 80, 25);
politicalOutlook3_field.setBounds(300, 320, 80, 25);
familyLocate3_field.setBounds(300, 360, 80, 25);
phone3_field.setBounds(300, 400, 80, 25);
dormitoryNum3_field.setBounds(300, 440, 80, 25);
return3_btn.setBounds(120, 500, 100, 50);
sure3_btn.setBounds(250, 500, 100, 50);
exit4_btn.setBounds(380, 500, 100, 50);
//添加到面板
read_page.add(xiugaiID_label);
read_page.add(xiugaiID_field);
read_page.add(Menu3_label);
read_page.add(Id3_label);
read_page.add(name3_label);
read_page.add(gender3_label);
read_page.add(birthDate3_label);
read_page.add(politicalOutlook3_label);
read_page.add(familyLocate3_label);
read_page.add(phone3_label);
read_page.add(dormitoryNum3_label);
read_page.add(ID3_field);
read_page.add(name3_field);
read_page.add(gender3_field);
read_page.add(birthDate3_field);
read_page.add(politicalOutlook3_field);
read_page.add(familyLocate3_field);
read_page.add(phone3_field);
read_page.add(dormitoryNum3_field);
read_page.add(return3_btn);
read_page.add(sure3_btn);
read_page.add(exit4_btn);
查看学生信息:
//查看学生信息按钮的监听器
display_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
JFrame display_page = new JFrame("学生信息管理系统");
display_page.setResizable(false);
display_page.setSize(600, 600); //设置窗口的大小
display_page.setLayout(null); //设置程序默认布局格式为空,以便于后期自己简单的设置布局
display_page.setResizable(false); //设置不可缩放
//给主页设置位置
display_page.setLocation(screenSizeWidth / 2 - windowWidth / 2 + 50, screenSizeHeight / 2 - windowHeight / 2 + 50);
//给主页设置大小
display_page.setSize(windowWidth, windowHeight);
//设置主页能够关闭,并且登录成功后将登录页面隐藏
display_page.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
display_page.setVisible(true);
setVisible(false);//登录页面隐藏
JLabel Menu4_label = new JLabel("查看学生信息");
JLabel Id4_label = new JLabel("请输入ID");
final JTextField ID4_field = new JTextField();
JButton return4_btn = new JButton("返回");
JButton sure4_btn = new JButton("确定");
JButton exit5_btn = new JButton("退出系统");
//设置各个标签和输入框的大小和位置
Menu4_label.setBounds(250, 75, 100, 100);
Id4_label.setBounds(180, 200, 200, 50);
ID4_field.setBounds(300, 210, 80, 25);
return4_btn.setBounds(120, 400, 100, 50);
sure4_btn.setBounds(250, 400, 100, 50);
exit5_btn.setBounds(380, 400, 100, 50);
//添加到面板
display_page.add(Menu4_label);
display_page.add(Id4_label);
display_page.add(ID4_field);
display_page.add(return4_btn);
display_page.add(sure4_btn);
display_page.add(exit5_btn);
退出系统:
//退出系统按钮的监听器
exit5_btn.addActionListener(new ActionListener()
{
@SuppressWarnings("deprecation")
@Override
//当按钮被单击时自动调动这个方法
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
构造函数:
switch(str){
case 1:
System.out.println("===显示所有学生信息");
sdm.diplayAllStudent();
break;
case 2:
System.out.println("===========写入学生信息========");
Students stu = new Students(sc.nextInt(),sc.next(),sc.next(),sc.next(),sc.next(),sc.next(),sc.nextInt(),sc.nextInt());
if(sdm.writeStudent(stu)){
System.out.println("添加成功");
}
break;
case 3:
System.out.println("===========删除学生信息========");
while(true){
String str2=sc.next();
boolean isNum = false;
for(int i=str2.length();--i>=0;){
int chr=str2.charAt(i);
if(chr<48 || chr>57)
isNum = true;
}
if(!isNum){
int id2 = Integer.parseInt(str2);
if(sdm.deleteStudent(id2)){
System.out.println("删除成功");
}
}
else{
if(str2.equals("exit"))
break;
else if(sdm.deleteStudent(str2)){
System.out.println("删除成功");
}
}
}
break;
case 4:
System.out.println("===========修改学生信息========");
break;
case 5:
System.out.println("===========查询学生信息========");
System.out.println("请输入姓名或学号");
while(true){
String str1=sc.nextLine();
Boolean bol = false;
for(int i=str1.length();--i>=0;){
int chr=str1.charAt(i);
if(chr<48 || chr>57)
bol = true;
}
if(bol){
int id1=Integer.parseInt(str1);
if(!sdm.readStudent(id1)){
System.out.println("查无此人");
}
}
if(!sdm.readStudent(str1)){
System.out.println("查无此人");
}
if(str1.equals("exit"))
break;
}
break;
case 6:
break;
}
}
}
public static boolean isNumeric(String str){//判断字符串是否为数字
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}
}
周次
总代码量
新增代码量
总文件数
新增文件数
1
44
44
2
2
2
213
213
10
5
3
417
204
10
5
5
676
259
17
7
6
1071
405
24
7
7
1780
709
30
6
8
1900
120
35
5
9
2335
435
41
6
10
2767
432
48
7
11
3321
595
57
9
12
3601
280
63
6
13
4131
531
67
4
14
4537
406
73
6
15
4957
440
44
4
20
8102
2145
65
21
-
Java源码演示第25期基础经典(课程设计)系统宿舍管理系统
2021-02-22 21:29:27Java源码演示第25期基础经典(课程设计)系统宿舍管理系统 一、项目简述 jsp校园宿舍管理系统源码,采用Servlet+JSP+MySQL。包含数据库文件,界面采用bootstrap,简洁大方。...Java源码演示第25期基础经典(课程设计)系统宿舍管理系统
一、项目简述
jsp校园宿舍管理系统源码,采用Servlet+JSP+MySQL。包含数据库文件,界面采用bootstrap,简洁大方。宿舍管理员,最高管理员,学生三个身份,包括学生管理,宿舍管理员管理,考勤管理,宿舍楼管理,缺勤记录管理,个人信息修改等等功能。
二、项目运行
1.运行环境
JDK1.8+Tomcat8.5+MYSQL+Eclispe(Eclispe,MyEclispe,Sts,IntelliJ IDEA都支持,小伙伴自行配置即可)
2.技术栈
JSP + Servlet + JDBC + Ajax + JavaScript + CSS + +DBUtil+Bootstrap 等等
#三、部分截图
提示**:以下截图仅为部分,有演示视频,如需要观看请在公众号内观看项目具体内容详情:
演示视频在这!!!
-
java课程设计(学生信息管理系统)
2018-01-26 11:57:00本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面。 3.总体设计(概要设计) 本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号、姓名、性别、出生... -
宿舍管理应用系统.zip
2020-07-08 17:06:57数据库课程设计中选题为宿舍管理系统,文件含有完整代码与sql文件、使用说明书。实现功能:包括系统管理、宿舍管理、外来人员管理、学生管理这四大模块 系统管理系统可实现添加用户、用户登录、用户信息汇总功能。 ... -
学生信息管理系统(毕业设计项目指导)
2019-11-14 21:18:33JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 java项目实战之电子... -
java项目之校园信息管理系统
2020-03-10 19:28:58JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 java项目实战之... -
基于指纹识别技术的学生考勤管理系统设计与实现
2018-12-29 08:50:57该子系统主要功能包括:学生信息管理、教室信息管理、课程信息管理、课程表信息管理、管理员信息管理等。通过本系统,实现了对高校学生日常考勤信息的全面准确的管理。 本系统采用目前比较流行、成熟的.Net企业级... -
java项目之oa办公管理系统(java毕业设计)
2019-03-31 11:37:08JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 ... -
asp.net,java,jsp,安卓Android,苹果ios,php,vb.net,c#免费毕业课程设计源码打包下载
2015-01-29 22:29:54| 双鱼林基于SSH2全国电厂信息管理系统毕业课程设计源码.rar 2.10 MB | 图书管理系统(vb+access实现).rar 361.65 KB | 网络物流仓储系统【jsp+mysql实现,适合毕业设计参考】.rar 1.31 MB |- QQ287307421 (0 folders... -
java美妆商城项目|在线购书系统(java毕业设计项目ssm版)
2019-04-19 20:19:47JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 ... -
java项目之hrm人事管理项目(java毕业设计)
2019-03-31 11:30:46JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 ... -
java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)
2019-08-21 16:29:38JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 ... -
基于java web新生入学报到系统
2020-10-26 17:45:30实现了宿舍楼管理,学籍建立,辅导员班级管理,宿舍安排,报到流程等模块,作为一款毕业设计,课程设计,二次开发的模板,是不可多得的. 本新生入学报到网站系统使用MyEclipse作为开发环境,用Java语言来完成系统的开发,JSP... -
java web jsp新生入学报到系统
2020-11-30 10:53:01实现了宿舍楼管理,学籍建立,辅导员班级管理,宿舍安排,报到流程等模块,作为一款毕业设计,课程设计,二次开发的模板,是不可多得的. 本新生入学报到网站系统使用MyEclipse作为开发环境,用Java语言来完成系统的开发,JSP... -
需求分析及总体设计文档.docx
2020-01-28 14:02:541开发系统的需求分析如下 1.1功能需求 1用户管理设置不同的管理权限分为学生用户和管理员 2数据库连接构造数据库基本表供系统管理调用 3实现学生信息记录查询修改功能 a学生信息包括学生的姓名年龄性别宿舍专业及... -
java项目实战之电子商城后台(java毕业设计SSM框架项目
2019-08-21 16:19:57JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码) https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台) https://edu.csdn.net/course/detail/20610 ... -
同学的打包代码
2012-06-22 13:48:26在这个课程设计中,你需要设计并实现如下场景:在那山的那边,湖的那边,有一所学校,学校里有一幢宿舍楼,宿舍楼有若干房间 ,一群学生快乐地生活在这里。他们每天可做的事情有:1.换宿舍,从一个房间搬到另一个... -
计算机实习日记
2011-11-26 12:22:41北京东方迪格软件有限公司是一家专业的高校实验室解决方案商,公司致力于我国高等院校实验室管理系统和实训方案的构建与实施,专注于高等院校实验室管理信息系统( MIS )方面的设计、开发、销售和技术服务等业务。...