精华内容
下载资源
问答
  • 数 据 库 课 程 设 计 题 班 目 级 宿舍信息管理系统 09 级计科 3 班 指导教师 李必云 2012 年 10 月 吉首大学信息科学与工程学院 项目分工 摘要 宿舍系统对于一个学校来说是必不可少的组成部分目前好多学校还停留在...
  • 自己做的数据库课程设计包括需求分析、逻辑结构设计、概念设计、物理结构设计、数据库实施和维护、sql语句增删查改、存储过程触发器都有、还有各种图也画了
  • 数据库课程设计大作业--宿舍管理数据库系统的设计与实现
  • 数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系...Java web 课程设计宿舍管理系统数据库部分。
  • 功能齐全,可以直接运行,实现学生离返校、住宿、报修等信息查询
  • 数据库课程设计 学生宿舍管理系统 包括前后台源程序 代码和一份完整文档
  • 大学生宿舍管理系统数据库课程设计,希望大家多多支持。用JavaBean做的。
  • 数据库课程设计——学生宿舍信息管理系统

    万次阅读 多人点赞 2018-09-17 23:33:00
    数据库课程设计——学生宿舍信息管理系统 目录  1.设计目的... 2 2、任务与要求... 2 3、学生宿舍管理系统课程设计... 2 3.1 引言... 2 3.2需求分析... 2 3.2.1....

    数据库课程设计——学生宿舍信息管理系统

    目录                                                                                             

    1.设计目的... 2

    2、任务与要求... 2

    3、学生宿舍管理系统课程设计... 2

    3.1 引言... 2

    3.2需求分析... 2

    3.2.1. 2

    3.2.2. 3

    3.3概念设计... 6

    3.4逻辑设计... 10

    3.5物理结构设计... 12

    3.6数据库实施... 14

    3.6.1数据库表的定义... 14

    3.6.2视图的定义:... 15

    3.6.3索引:... 16

    3.6.4触发器的定义:... 17

    3.6.5用户的定义:... 18

    3.6.6 对数据的管理:... 18

    3.7系统调试和测试... 19

    4.系统评价... 20

    4.1我的系统特色:... 20

    4.2 系统不足及改进... 21

    5.设计心得... 21

     

    1.设计目的

    《数据库系统原理》课程设计是软件工程和计算机科学与技术专业集中实践性环节之一,旨在让我们自身加深对数据库基础理论和基本知识的理解,掌握设计数据库管理系统的基本方法,锻炼运用知识解决实际问题的动手能力。

    2、任务与要求

    要求学生们从给定的设计题目中进行选择,进行需求分析,概念设计、逻辑设计,数据库的设计过程,表结构、表之间的关联,给出视图的定义、触发器的定义、索引,安全性的实现,用SQL语句等在SQL Server 2008系统中实现数据库的数据输入,查询,更新和输出;给出实现效果截图及部分测试结果。

     

    3、学生宿舍管理系统课程设计

    3.1 引言

     

    随着社会的发展以及教育水平的提高,当今社会在校生的数量越来越庞大。与此同时,使用曾经的手工的方式对学生的信息进行管理效率非常低下。在互联网技术高度发达的今天 ,使用数据库技术队对学生的住信息进行管理能够使学校对学生信息的管理更加的高效,检索迅速,查找方便,可靠性高存储量大。使用数据库技术的这些优点可以使得学生信息出错的发生。同时使用数据库技术可以使学生住宿信息长时间稳定地保存,也不容易丢失。开发出这样的一个数据库迫在眉睫。

    3.2需求分析

    3.2.1

     系统需求调查的方法为访谈法,通过对多个学校的宿舍管理人员进行交谈,从而得出系统的主要任务和特定的要求。系统的主要任务是能够对宿舍信息,学生信息,管理员信息,住宿信息进行登记,调整,并能进行各种查询以及信息的备份。

     

    完整性要求:防止不符合语义的数据进入数据库。

    安全性要求:需要防止客户对数据进行未经授权的访问。

    性能要求:最好能够实现并发访问,允许多个用户同时对数据库中的数据进行访问。

    一致性要求:防止数据库进入不一致状态。

    数据库要求:各种各样的故障都可能发生,出现意外时,,尽可能的确保任何数据在任何情况下都不会丢失。

    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.设计心得

    在设计数据库的过程中我遇到过非常多的问题:

    首先,在设计阶段有非常多的数据项,当时觉得不好分类和处理,而且有很多的数据项和许多实体都有关系。最后通过查看课本例题,问同学等方式将各个数据项进行归类,对于和多个实体之间都有关系的数据项可以建立一个关系表,从而完成归类。

    接着,在添加数据的过程中,我忽略掉了数据的参照完整性,导致许多数据不能够正常加入。后来经过同学的提示,我将数据进行了统一分析,保持所有的数据一致,最后数据可以正常输入。

    最后,每个表中的数据更改完成之后,更改后的数据会丢失找不到了。对于这个问题就解决办法为加入触发器,记录表中信息的修改前的值,成功解决问题。

    收获:对于一个系统,数据库的设计是非常重要的,数据库设计决定了以后数据好不好维护。后期需求好不好展。同时也决定了系统的性能。一个坏的数据库设计一个功能点的改动可能会设计多张表的改动。一不小心可能就会引起数据的不一致。为了解决这些问题。在数据库设计之初就要考虑这些问题。减少后期系统维护量。

     

     

     

     

    展开全文
  • 系统基于SQL SERVER 2014,基于Swing编程 本系统基于SQL SERVER 2014,基于Swing编程
  • 此作品仅仅适用于数据库期末答辩(包括:系统的需要,功能的分析,概念设计(E-R图),逻辑设计(表),具体功能设计等内容)以及计算机专业毕业论文参考!(注:论文仅供参考)如果毕业论文完全照搬照抄,查重100%...
  • 第四章 系统总体设计 8 4.1 系统功能图 8 4.2 系统流程图 8 第五章 系统详细设计 10 5.1 用户模块设计 10 5.2 数据库设计 11 5.2.1数据库设计的原则 11 5.2.2数据库表的设计 11 第六章 系统实现 14 6.1 系统功能实现...
  • 主要内容: (1)了解目前宿舍管理的现状以及SQL Server 2000的功能和特点。 (2)通过实地调查和问答-记录的方式了解宿舍管理的工作业务流程,并记录和处理相关的数据。
  • 本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能: 1.系统要求用户必须输入正确的用户名和密码才能进入系统。 2.系统应该提供学生住宿情况...
  • 此次课程设计的题目是学生宿舍管理系统 工具: 数据库用的是SQL server;IDE用的是eclipse 一、系统功能基本要求 为了便于对学生宿舍生活的管理,学生资料的管理,和快节奏、高效率的工作环境。我本次设计的课题是...

    题目:

    此次课程设计的题目是学生宿舍管理系统

    工具:

    数据库用的是SQL server;IDE用的是eclipse

    一、系统功能基本要求

    为了便于对学生宿舍生活的管理,学生资料的管理,和快节奏、高效率的工作环境。我本次设计的课题是学生宿舍管理系统。
    开发目的和意义:
    A.管理学生宿舍信息达到安全、高效、方便效果
    B.迅速查到所需学生、楼栋、宿舍、宿舍物品、宿舍维修等信息
    C.学生宿舍管理系统便于管理人员办事效率越来越高
    系统的作用:
    A.要求用户必须输入正确的用户名和密码才可以进入系统
    B.提供学生住宿情况、楼栋、宿舍、宿舍物品、宿舍维修的基本登记
    C.可对上述的宿舍相关信息进行增删查改并统计
    基本功能
    A.宿舍信息维护:对宿舍信息进行添加、修改、删除,具体宿舍信息包括:宿舍编号、宿舍电话、应住人数、录入日期等信息;
    B.宿舍信息查询:根据楼号、宿舍编号进行查询。具体包括:宿舍编号、应住人数、实住人数、空位数、宿舍电话、录入日期等信息;
    C.宿舍信息统计:对楼号、房间数、应住人数、实住人数、空位数等进行统计并输出。

    二、功能模块设计

    本宿舍管理系统通过管理员登录系统后,进行对学生信息、楼栋信息、宿舍信息、物品信息、维修信息,基本信息等进行管理(如图所示)
    在这里插入图片描述

    三、数据库概念结构设计

    (分析系统中有哪些实体,实体之间存在怎样的联系,用文字描述,并绘制实体图和整体E-R图)
    答:实体为楼栋、宿舍、学生、宿舍物品
    楼栋实体图
    (分析系统中有哪些实体,实体之间存在怎样的联系,用文字描述,并绘制实体图和整体E-R图)
    答:实体为楼栋、宿舍、学生、宿舍物品
    楼栋实体图
    在这里插入图片描述

    宿舍实体图
    在这里插入图片描述

    学生实体图
    在这里插入图片描述

    宿舍物品实体图
    在这里插入图片描述

    整体E-R图
    在这里插入图片描述

    四、数据库关系图

    在这里插入图片描述

    五、数据库及表结构的创建

    在这里插入图片描述
    dbo.LgTbl

    create table LgTbl
    (
    	usrName char(10),
    	usrPwd char(10) 
    )
    

    dbo.Build

    create table Build
    (
    	Bno char(4) primary key	not null,  --楼号-学3
    	Bfloors_sum char(4) , --楼层数-6层
    	Broom_sum char(4) , --宿舍数-30间
    	Build_men int , --总人数-1066人
    	build_sex char(6) ,	--男/女宿舍-男生宿舍
    	inputtime char(11)  --2021-02-01
    )
    

    dbo.Room

    create table Room
    (
    	Bno char(4)  not null, --楼号 -A
    	Rno char(6) not null , --宿舍号 -606
    	Rymen int ,  --宿舍几人间 -6人间
    	Rphone char(11),  --宿舍电话- 13672355529
    	inputtime char(11) , --2021-02-01
    	primary key(Rno,Bno),
    	foreign key(Bno) references Build(Bno),
    )
    

    dbo.Student

    create table Student 
    (
    	Sno char(12) primary key  not null,  --学号 -201955555500
    	Sname char(8) , --姓名-牛大春
    	Ssex char(2) , --性别 -男
    	Sdept char(10) , --专业 -自动化
    	Bno char(4) not null,  --楼号 -学3
    	Rno char(6) not null ,  --宿舍号 -608
    	inputtime char(11) ,  --2021-02-01
    	foreign key(Bno) references Build(Bno),
    )
    

    dbo.Goods

    create table Goods
    (
    	Pno char(3) primary key,  --物品号
    	Pname char(10)  --物品名称
    )
    

    dbo.Repair

    create table Repair
    (
    	Bno char(4) not null,  
    	Rno char(6) not null ,  
    	Pno char(3) not null,
    	Rsubmit char(10), --提交日期
    	Rsolove char(10),  --解决日期
    	Rreason char(20),   --维修原因
    	primary key(Bno,Rno,Pno),
    	foreign key(Bno) references Build(Bno),
    	foreign key(Pno) references Goods(Pno),	
    )
    

    六、系统主要功能界面

    • 主要功能界面

    • 管理员登录
      在这里插入图片描述

    • 查询所有学生的宿舍信息
      在这里插入图片描述

    • 查询所有楼栋信息
      在这里插入图片描述

    • 统计各楼栋宿舍的实住人数及应住人数
      在这里插入图片描述

    • 统计各楼栋的宿舍总数及实住宿舍及实住人数及应住人数
      在这里插入图片描述
      此处不再一一截出来了

    七、系统部分代码

    JDBCUnit.java

    package room_system;
    
    import java.security.PublicKey;
    import java.sql.*;
    
    public class JDBCUnit {
        /* 驱动,定义连接数据库类型:SQL SERVER2012*/
        private static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//驱动:com.microsoft.sqlserver.jdbc.SQLServerDriver
        public static String SerName;		//服务器名字:127.0.0.1
        public static String Dbname;		//数据库名:room_system
        public static String userName;		//用户名:sa
        public static String userPwd;	//密码:123456
    
        public static Connection getConnection(){
            String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=room_system";
            Connection conn = null;
            try {
                //1.注册驱动
                Class.forName(driverName);
                //2.建立连接
                conn = DriverManager.getConnection(dbURL, "sa", "123456");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
        /**
         * 使用statement对象执行DML语句
         */
        public static void stmt_DML(String sql) {
            Connection conn = null;
            Statement stmt = null;
            try {
                conn =  getConnection();
                //1.创建Statement对象
                stmt = conn.createStatement();
                //2.执行sql语句
                stmt.execute(sql);
                //3.关闭资源
                stmt.close();   //关闭数据执行结果集合
                conn.close();   //关闭数据库连接
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 使用PreparedStatement执行SQL语句
         */
        public static void ps_DML(String sql,ResultSet rs) {
    
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                //4.操作结果集
                rs=ps.executeQuery();
                //5.关闭资源
                ps.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 判断登录用户是否存在
         */
        public static boolean login_flag(String usrName,String usrPwd) {
            String sql= "select * from  LgTbl where usrName="+"'"+usrName+"'"+" and usrPwd= "+"'"+usrPwd+"'";
            boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
    
    
        /**
         * 判断查询输入学号Sno结果是否为空
         */
        public static boolean select_flag(String Sno) {
            String sql= "select Sno from  Student where Sno=ltrim(rtrim("+"'"+Sno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
        
        /**
         * 判断查询输入楼栋结果是否为空
         */
        public static boolean select_Bno(String Bno) {
            String sql= "select Bno from  Room where Bno=ltrim(rtrim("+"'"+Bno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
        
        
        /**
         * 判断查询输入宿舍结果是否为空
         */
        public static boolean select_Rno(String Rno) {
            String sql= "select Rno from  Room where Rno=ltrim(rtrim("+"'"+Rno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
        
        /**
         * 判断查询输入维修楼栋结果是否为空
         */
        public static boolean select_weixiuBno(String Bno) {
            String sql= "select Bno from  Repair where Bno=ltrim(rtrim("+"'"+Bno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
        
        
        /**
         * 判断查询输入维修宿舍结果是否为空
         */
        public static boolean select_weixiuRno(String Rno) {
            String sql= "select Rno from  Repair where Rno=ltrim(rtrim("+"'"+Rno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        } 
        /**
         * 判断查询输入物品编号结果是否为空
         */
        public static boolean select_Pno(String Pno) {
            String sql= "select Pno from  Goods where Pno=ltrim(rtrim("+"'"+Pno+"'))";
             boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }   
    }
    
    

    RoomDemo.java

    package room_system;
    
    import static room_system.JDBCUnit.*;
    
    import java.sql.Connection;
    import java.util.Scanner;
    
    
    public class RoomDemo {			
        public static void main(String[] args) {
        	String s1;
            String[] s2;
            /* 用户登录系统 */
            String usrName;//登录名
            String usrPwd;//登录密码
            System.out.println("请按登录名,登录密码的格式输入数据连接信息(用,分隔):");
            Scanner loginUsr = new Scanner(System.in);
            s1 = loginUsr.next();	//输入的值赋给s1
            s2= s1.split(",");	//以’,'作为分隔符
            usrName = s2[0];
            usrPwd = s2[1];
            if(login_flag(usrName,usrPwd))	//判断登录用户是否存在
            {
                System.out.println("   ");
                System.out.println("*********************************");
                System.out.println("*          用户登录成功!       		*");
                System.out.println("*    	欢迎使用学生信息管理系统!  	*");
                System.out.println("*********************************");
                System.out.println("   ");
            }
            else
            {
                System.out.println("********************************");
                System.out.println("*        用户名或密码不正确!      		*");
                System.out.println("********************************");
                return ;
            }
    
            /* 主菜单 */
            showMenu.show();  //调用showMenu的show方法,显示菜单
            Scanner sc = new Scanner(System.in);
            while(true) {
                System.out.print("请输入您要执行操作的序号:");
                int s ;
                while(true) {
                    try {
                        s = sc.nextInt();   //把输入的序号赋值给s
                        break;
                    } catch (Exception e) {
                        System.out.println("输入格式错误,请重新输入!");
                        sc.nextLine();
                    }
                }
                switch (s) {
                    case 1:
                        Student_OP.select_allstudent();    //1.调用Student_OP所有学生信息的方法select_all()
                        break;
                    case 2:
                        Student_OP.add_stu();	// //2.添加入住学生的宿舍信息的方法add_stu()
                        break;
                    case 3:
                        Student_OP.alter_stu();	//3.更新入住学生的宿舍信息的方法alter_stu()
                        break;
                    case 4:
                        Student_OP.delete_stu();	//4.删除学生信息的方法delete_stu()
                        break;
                    case 5:
                        Student_OP.select_stu();	//5.查询指定学生的宿舍信息的方法select_stu()
                        break;
                    case 6:
                    	Build_OP.select_allbuild();	//6.查询所有楼栋的信息的方法select_allbuild()
                    	break;
                    case 7:
                    	Build_OP.alter_build();	//7.更新指定楼栋的信息的方法alter_build()
                    	break;
                    case 8:
                    	Build_OP.select_build();		//8.查询指定楼栋的信息的方法select_build()
                    	break;
                    case 9:
                    	Room_OP.select_allroom();	//9.查询所有宿舍的信息的方法select_allroom()
                    	break;
                    case 10:
                    	Room_OP.alter_room();	//10.更改指定楼栋宿舍的信息的方法alter_room()
                    	break;
                    case 11:
                    	Room_OP.select_room() ;			//11.查询指定楼栋宿舍的信息的方法select_room() 
                    	break;
                    case 12:
                    	Room_OP.add_room();			//12.添加指定的楼栋宿舍信息的方法add_room()
                    	break;
                    case 13:
                    	Goods_OP.select_allgoods();		//13.查询所有的宿舍物品信息select_allgoods()
                    	break;
                    case 14:
                    	Goods_OP.add_good();			//14.添加宿舍物品信息的方法add_good()
                    	break;
                    case 15:
                    	Goods_OP.alter_good();		//15.更新指定的宿舍物品信息的方法alter_good()
                    	break;	
                    case 16:
                    	Repair_OP.select_allrepair();		//16.查询所有宿舍的维修信息的方法select_allrepair()
                    	break;
                    case 17:
                    	Repair_OP.alter_repair();		//17.更新指定宿舍的维修信息的方法alter_repair()
                    	break;
                    case 18:
                    	Repair_OP.add_repair();		//18.添加指定宿舍的维修信息的方法的add_repair()
                    	break;		
                    case 19:
                    	all_OP.select_all();	//19.统计各楼栋的实住人数及应住人数的方法select_all()
                    	break;
                    case 20:
                    	all_OP.select_all1();		//20.统计各楼栋宿舍的实住人数以及应住人数select_all1()
                    	break;
                    case 21:
                        System.out.println("是否要退出系统(Y/N)?");
                        String string = sc.next();
                        if(string.equals("Y")||string.equals("y")) {
                            System.out.println("已经成功退出系统!!!");
                            return;
                        }else if (string.equals("N")||string.equals("n")) {
                            System.out.println("已取消!");
                            break;
                        }else {
                            System.out.println("输入错误自动退回菜单!");
    
                            showMenu.show();
                            break;
                        }
                    case 22:
                        showMenu.show();
                        break;
                    default:
                        System.out.println("输入编号错误!");
                        break;
                }
            }
        }
    }
    
    
    
    

    Student_OP.java

    package room_system;
    
    import static room_system.JDBCUnit.*;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Scanner;
    
    
    
    public class Student_OP {
    
        //1.查询所有学生的宿舍信息的方法select_allstudent()
        public static void select_allstudent() {
            String sql = "select * from Student order by Sno";		//要执行的SQL语句
            ResultSet rs;  
            String Sno ;	
            String Sname ;
            String Ssex ;
            String Sdept;
            String Bno;
            String Rno;
            String inputtime;
            try{
                Connection conn = getConnection();
                Statement stmt =conn.createStatement();
                rs = stmt.executeQuery(sql);
                System.out.println("学号               "+","+"姓名       "+","+"性别"+","+"专业    "+","+"楼栋  "+","+"宿舍  "+","+"录入时间 ");
                System.out.println();
                while(rs.next()) {
                    Sno = rs.getString(1);	
                    Sname = rs.getString(2);
                    Ssex = rs.getString(3); 
                    Sdept = rs.getString(4);
                    Bno = rs.getString(5);
                    Rno =rs.getString(6);
                    inputtime =rs.getString(7);
                    System.out.println(Sno+","+Sname+","+ Ssex+","+Sdept+","+Bno+","+Rno+","+inputtime);
                }
                stmt.close();
                rs.close();
                conn.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
    
        }
        //2.添加入住学生的宿舍信息的方法add_stu()
        public static void add_stu() {
            String sql ;
            String s1;
            String[] s2;
            String Sno ;
            String Sname  ;
            String Ssex  ;
            String Sdept  ;
            String Bno;
            String Rno ;
            String inputtime;
            System.out.println("请按照Sno,Sname,Ssex,Sdept,Bno,Rno,inputtng的格式录入学生信息:");
            Scanner sc = new Scanner(System.in);
    
            s1 = sc.next();
            s2= s1.split(",");
            try
            {
                Sno = s2[0];
                Sname = s2[1];
                Ssex = s2[2];
                Sdept = s2[3];
                Bno = s2[4];
                Rno =s2[5];
                inputtime =s2[6];
                if(select_flag(Sno)==true) {		//判断Sno是否存在,true
                    System.out.println("录入失败:Sno已经存在!");
                }
                else {
                    String S_SQL = "insert into Student values(";
                    sql = S_SQL + "'" + Sno + "'" + "," + "'" + Sname + "'" + "," + "'" + Ssex + "'" + "," + "'"+ Sdept + "'"+ "," + "'" + Bno + "'"+","+"'" + Rno + "'"+","+"'"+inputtime+"'"+ ")";
                    stmt_DML(sql);		//执行SQL语句
                    System.out.println("成功录入Sno为 " + Sno + "的学生!");
                    System.out.println();
                }
    
            }
            catch (Exception e)
            {
                    System.out.println("输入格式错误请重新输入!");
            }
        }
        //3.更新入住学生的宿舍信息的方法alter_stu()
        public static void alter_stu(){
            String sql;
            System.out.println("请输入要更新信息的学生Sno");
            Scanner sc = new Scanner(System.in);
            String  Sno ;
            Sno=sc.next();
            while(true) {		//判断Sno是否存在
                if(select_flag(Sno)==false) {
                    System.out.println("您输入的Sno不存在,请重新输入");
                    while(true) {
                        try {
                            Sno=sc.next();//再输入
                            break;
                        } catch (Exception e) {
                            System.out.println("输入格式错误,请重新输入");
                            sc.nextLine();
                        }
                    }
                }else {
                    break;
                }
            }
            System.out.println("请输入要更改的信息格式为Sname,Rno,inputtime");
            String s1 = sc.next();					//String s1;String []s2;s1=s1 = sc.next();s2= s1.split(",");
            String[] s2 = s1.split(",");
            String Sname = s2[0];
            String Rno = s2[1];
            String inputtime =s2[2];
            sql = "update Student set Sname="+"'"+Sname+"'"+","+"Rno="+"'"+Rno+"'"+","+"inputtime="+"'"+inputtime+"'"+" where Sno="+"'"+Sno+"'";
            stmt_DML(sql);
            System.out.println("成功更新Sno为 "+Sno+"的学生信息!");
            System.out.println();
        }
    
        //4.删除学生信息的方法delete_stu()
        public static void delete_stu() {
            String Sno;
            System.out.println("请输入要删除信息的学生Sno");
            Scanner s1 = new Scanner(System.in);
            Sno = s1.next();
            if (select_flag(Sno) == false) {
                System.out.println("您输入的Sno不存在!");
            }
            else
            {
                String sql = "delete from Student where Sno =" + "'" + Sno + "'";
                stmt_DML(sql);
                System.out.println("成功删除Sno为 " + Sno + "的学生");
                System.out.println();
            }
        }
        //5.查询指定学生的宿舍信息的方法select_stu()
        public static void select_stu() {
            System.out.println("请输入要查询信息的学生Sno");
            Scanner sc = new Scanner(System.in);
            String Sno = sc.next();
            if (select_flag(Sno) == false) {		//false
                System.out.println("您输入的Sno不存在!");
            } else {
                String sql = "select * from Student where Sno = " + "'" + Sno + "'";
                ResultSet rs;
                try {
                    Connection conn = getConnection();
                    Statement stmt =conn.createStatement();
                    rs = stmt.executeQuery(sql);
                    System.out.println("学号               "+","+"姓名    "+","+"性别"+","+"专业    "+","+"楼栋  "+","+"宿舍  "+","+"录入时间 ");
                    while (rs.next()) {
                        Sno = rs.getString(1);
                        String Sname = rs.getString(2);
                        String Ssex = rs.getString(3);
                        String Sdept = rs.getString(4);
                        String Bno = rs.getString(5);
                        String 	Rno = rs.getString(6);
                        String inputtime = rs.getString(7);
                        System.out.println(Sno+","+Sname+","+ Ssex+","+Sdept+","+Bno+","+Rno+","+inputtime);
                        System.out.println();
                    }
                    System.out.println();
                    rs.close();
                    stmt.close();
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
      
    
    }
    

    后面的代码都是大同小异了,也不一一贴出来了,需要的后续可以发出来,这也算是比较基础的代码了。做得不好请大神指点一下,球球了

    资源在此
    点击下载

    展开全文
  • 数据库《学生信息管理系统课程设计【报告+源程序】 平台:VS2010(C#)+SQL2008 附件包含源程序和数据库MDF+LDF文件,欢迎下载,QQ联系:937925941
  • 学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立起数据一致性和完整性强、数据安全性好的库.而对于后者则要求应用程序功能完备,...
  • 本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能:  1.系统要求用户必须输入正确的用户名和密码才能进入系统。  2.系统应该提供学生...
  • 数据库课程设计.本寝室智能管理系统为寝室管理员实现电子化管理寝室的数据库系统,其具体涉及的内容包括: 1.寝室信息 2.学生信息管理 3.物品出入及外来人员信息 4.登记信息 5.水电费信息 6.清洁分信息 7.重要事务...
  • 数据库课程设计 学生宿舍管理系统数据库设计
  • 数据库课程设计宿舍信息管理系统,是通过Java进行数据连接的,界面也是通过Java编写!有一两个功能为实现,但都是很简单的!同时压缩包里附了完整的设计报告!谢谢下载~!
  • 基于学生信息管理系统数据库系统课程设计(MySQL)

    万次阅读 多人点赞 2020-03-22 17:32:40
    根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:  学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。  处罚记录:记录号、级别、处罚对象、记录时间、详细描述...

    题目:学生信息管理系统


    1 系统需求分析


    学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生
    的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。
    1.1 系统功能分析
    本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统
    的主要功能有:
     学生个人信息输入,包括:姓名、性别、院系、生日、籍贯、生源所在地等。
     学生流动情况的输入,包括:转系、休学、复学、退学、毕业。
     奖惩情况的输入。
     学生个人情况查询和修改,包括流动情况和奖罚情况。   

    1.2 系统功能模块设计(划分)
    根据系统功能要求可以将系统分解成几个模
    块来分别设计应用程序界面,如图 1 所示。

       

    1.3 与其它系统的关系
    学生信息管理系统是校园信息管理系统的一
    个组成部分。它为其它系统,如班级信息管理系统、
    教学管理系统、成绩单系统、宿舍分配系统等,提供学生的基本情况。同时需要其他系统提
    供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数
    据。

    2 数据库设计


    2.1 数据库需求分析
    根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:
     学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。
     处罚记录:记录号、级别、处罚对象、记录时间、详细描述、是否生效。
     奖励记录:记录号、级别、奖励对象、记录时间、详细描述。
     学籍变更记录:记录号、变更情况、记录对象、记录时间、详细描述。
    图 1、学生信息管理系统功能模块图
    所需的外部数据支持:
     班级:班级编号、班级名称、所属院系。
     院系:代码、名称。

    2.2 数据库概念结构设计
    图 3 是本系统所需数据的 E-R 模型图

         E-R图:

     

     

    2.3 数据库逻辑结构设计
    根据系统 E-R 图,需要设计 4 个数据表来存放学生的信息。为了系统的完整,系统中
    包括了应用程序设计中所需的 2 个外部数据表。为了优化数据表结构,部分字段采用代码形
    式,因此需要附加 3 个代码表。这 9 个数据表的结构如表 1 到表 9 所示。

     2.4 数据库的建立
    2.4.1 数据库的建立(请设计者完成)
    2.4.2 初始数据的输入
    数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提
    前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等。
    学籍变更代码和奖惩级别的主关键字 CODE 从 0 开始用阿拉伯数字依次编号,便于程
    序设计时,采用单选按钮来选择。
    本系统中所用到的学籍变更和奖惩级别代码如表 10 至表 12 所示(请设计者完成这些数
    据表的逻辑结构)。

    表10 学籍变更代码表
    代码                说明
    0                     转系
    1                     休学
    2                     复学
    3                     退学
    4                     毕业


    表11 奖励级别代码
    代码                说明
    0             校特等奖学金
    1             校一等奖学金
    2             校二等奖学金
    3             校三等奖学金
    4             系一等奖学金
    5             系二等奖学金
    6             系三等奖学金


    表12 处罚级别代码
    代码                说明
    0                     警告
    1                 严重警告
    2                     记过
    3                   记大过
    4                     开除

     

    3 各功能模块的设计与实现


    3.1 功能说明
    1、学生个人信息输入
    2、学籍变更情况的输入
    3、奖励情况的输入
    4、处罚情况的输入
    5、学生个人情况查询和修改


    3.2 用户界面设计
    完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。由于本
    系统管理内容比较简单,且为校园管理信息系统的一部分,因此使用一个窗体不同的标签页
    来完成系统要求的 5 项功能。
    我们把学生信息管理系统的窗体分成____个主要部分,如图____所示。
    1、应用程序主窗体的创建
    2、学生个人信息输入界面
    3、学籍变更情况输入界面
    4、奖励情况输入界面
    5、处罚情况输入界面
    6、学生个人情况查询和修改界面


    3.3 各功能模块的实现
    1、学生个人信息输入
    2、学籍变更情况输入
    3、奖励情况输入
    4、处罚情况输入
    5、学生个人情况查询和修改
     

    界面和核心代码分析 :

    本管理系统采用选项卡面板,将多个界面放在主窗体下,每个界面完成不同的功能,如信息输入奖励,处罚,学籍变更等。

     

     

     

     

     

     

     

    以下是MySQL的表单结构,一共有9个表

     

    数据表创建成功后,数据库中还没有实际的数据。为了保证外部键能使用,数据需要提

    前输入,如院系编号、班级编号、学籍变更代码和奖惩级别等等.

     

    以下是源代码(一共有两个文件): 

    第一个文件是:QUESTIONONE2.java

     

    package ZTY;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class QUESTIONONE2 extends JFrame{
    	JPanel jap =null;
    	
    	JPanel jap1=null;
    	JTextField JaTF1=null;JLabel jab1 = null;
    	
    	JPanel jap2=null;
    	JTextField JaTF2=null;JLabel jab2 = null;
    	
    	JPanel jap3=null;
    	JTextField JaTF3=null;JLabel jab3 = null;
    	
    	JPanel jap4=null;
    	JTextField JaTF4=null;JLabel jab4 = null;
    	
    	JPanel jap5=null;
    	JTextField JaTF5=null;JLabel jab5 = null;
    	
    	JPanel jap6=null;
    	JTextField JaTF6=null;JLabel jab6 = null;
    	
    	JPanel jap7=null;
    	JTextField JaTF7=null;JLabel jab7 =null;
    	
    	JPanel jap8=null;
    	JButton jab=null;
    	
    	
    	JPanel jap9=null;JLabel jab9=null;
    	
    	
    	JPanel jbp =null;
    	
    	JPanel jbp1=null;JTextField JbTF1=null;JLabel jbb1 = null;
    	JPanel jbp2=null;JTextField JbTF2=null;JLabel jbb2 = null;
    	JPanel jbp3=null;JTextField JbTF3=null;JLabel jbb3 = null;
    	JPanel jbp4=null;JTextField JbTF4=null;JLabel jbb4 = null;
    	JPanel jbp5=null;JTextField JbTF5=null;JLabel jbb5 = null;
    	JButton jbb=null;
    	
    	
    	JPanel jcp =null;
    	
    	JPanel jcp1=null;JTextField JcTF1=null;JLabel jcb1 = null;
    	JPanel jcp2=null;JTextField JcTF2=null;JLabel jcb2 = null;
    	JPanel jcp3=null;JTextField JcTF3=null;JLabel jcb3 = null;
    	JPanel jcp4=null;JTextField JcTF4=null;JLabel jcb4 = null;
    	JPanel jcp5=null;JTextField JcTF5=null;JLabel jcb5 = null;
    	JButton jcb=null;
    	
    	
    	JPanel jdp =null;
    	
    	JPanel jdp1=null;JTextField JdTF1=null;JLabel jdb1 = null;
    	JPanel jdp2=null;JTextField JdTF2=null;JLabel jdb2 = null;
    	JPanel jdp3=null;JTextField JdTF3=null;JLabel jdb3 = null;
    	JPanel jdp4=null;JTextField JdTF4=null;JLabel jdb4 = null;
    	JPanel jdp5=null;JTextField JdTF5=null;JLabel jdb5 = null;
    	JPanel jdp6=null;JTextField JdTF6=null;JLabel jdb6 = null;
    	JButton jdb=null;
    	
    	
    	JPanel jep =null;
    	
    	JPanel jep1=null;JTextField JeTF1=null;JLabel jeb1 = null;
    	JPanel jep2=null;JButton JeB1=null;
    	JPanel jep3=null;JButton JeB2=null;
    	JPanel jep4=null;JTextField JeTF4=null;JLabel jeb4 = null;
    	JPanel jep5=null;JTextField JeTF5=null;JLabel jeb5 = null;
    	JPanel jep6=null;JTextField JeTF6=null;JLabel jeb6 = null;
    	JPanel jep7=null;JTextField JeTF7=null;JLabel jeb7 = null;
    	JPanel jep8=null;JTextField JeTF8=null;JLabel jeb8 = null;
    	JPanel jep9=null;JTextField JeTF9=null;JLabel jeb9 = null;
    	JPanel jep10=null;JTextField JeTF10=null;JLabel jeb10 = null;
    	JPanel jep11=null;JTextField JeTF11=null;JLabel jeb11 = null;
    	JPanel jep12=null;JTextField JeTF12=null;JLabel jeb12 = null;
    	JPanel jep13=null;JTextField JeTF13=null;JLabel jeb13 = null;
    	JTabbedPane JTP =null;
    	
    	DbProcess2 dbprocess=new DbProcess2();
    	public QUESTIONONE2 (){  
    				jap=new JPanel();//return jap;
    					
    				jap1=new JPanel();
    				JaTF1=new JTextField(8);
    				jab1 = new JLabel("学号");
    				jab1.setFont(new Font(null,Font.PLAIN,20));
    				jap1.add(jab1);
    				jap1.add(JaTF1);
    				
    				jap2=new JPanel();
    				JaTF2=new JTextField(8);
    				jab2 = new JLabel("姓名");
    				jab2.setFont(new Font(null,Font.PLAIN,20));
    				jap2.add(jab2);
    				jap2.add(JaTF2);
    						
    				jap3=new JPanel();
    				JaTF3=new JTextField(8);
    				jab3 = new JLabel("性别");
    				jab3.setFont(new Font(null,Font.PLAIN,20));
    				jap3.add(jab3);
    				jap3.add(JaTF3);
    				
    				jap4=new JPanel();
    				JaTF4=new JTextField(8);
    				jab4 = new JLabel("生日");
    				jab4.setFont(new Font(null,Font.PLAIN,20));
    				jap4.add(jab4);
    				jap4.add(JaTF4);
    				
    				jap5=new JPanel();
    				JaTF5=new JTextField(8);
    				jab5 = new JLabel("籍贯");
    				jab5.setFont(new Font(null,Font.PLAIN,20));
    				jap5.add(jab5);
    				jap5.add(JaTF5);
    				
    				jap6=new JPanel();
    				JaTF6=new JTextField(8);
    				jab6 = new JLabel("院系");
    				jab6.setFont(new Font(null,Font.PLAIN,20));
    				jap6.add(jab6);
    				jap6.add(JaTF6);
    				
    				jap7=new JPanel();
    				JaTF7=new JTextField(8);
    				jab7 = new JLabel("班级");
    				jab7.setFont(new Font(null,Font.PLAIN,20));
    				jap7.add(jab7);
    				jap7.add(JaTF7);
    				
    				jap8=new JPanel();
    				jab=new JButton("输入");
    				jab.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("输入")
    								&&!JaTF1.getText().isEmpty()
    								&&!JaTF2.getText().isEmpty()
    								&&!JaTF3.getText().isEmpty()
    								&&!JaTF4.getText().isEmpty()
    								&&!JaTF5.getText().isEmpty()
    								&&!JaTF6.getText().isEmpty()
    								&&!JaTF7.getText().isEmpty())
    						{
    							System.out.println("actionPerformed(). 输入");
    							String sNo=JaTF1.getText().trim();
    							String sName=JaTF2.getText().trim();
    							String sSex=JaTF3.getText().trim();
    							String sBir=JaTF4.getText().trim();
    							String sHom=JaTF5.getText().trim();
    							String sDep=JaTF6.getText().trim();
    							String sCla=JaTF7.getText().trim();
    							String sql = "insert into student(STUDENTID,NAME,SEX,CLASS,DEPARTMENT,BIRTHDAY,NATIVE_PLACE) values(";
    							sql = sql + sNo + ",'"+ sName + "','" + sSex + "'," + sCla + "," + sDep + ",'" + sBir + "','" + sHom + "')";
    							System.out.println(sql);
    							new DbProcess2().executeUpdate(sql);	
    						}
    					}
    				});
    				Dimension preferredSize = new Dimension(150,20);
    				jab.setPreferredSize(preferredSize);
    				jap8.add(jab);
    				
    				jab9=new JLabel("<html>作者:ZTY</html>");
    				jap9=new JPanel(new FlowLayout());
    				jap9.add(jab9);
    				
    				jap.add(jap1);
    				jap.add(jap2);
    				jap.add(jap3);
    				jap.add(jap4);
    				jap.add(jap5);
    				jap.add(jap6);
    				jap.add(jap7);
    				jap.add(jap8);
    				jap.add(jap9);
    				
    
    				jbp=new JPanel();//return jbp;
    				jbp1=new JPanel();
    				jbp2=new JPanel();
    				jbp3=new JPanel();
    				jbp4=new JPanel();
    				jbp5=new JPanel();
    				
    				JbTF1=new JTextField(8);
    				jbb1=new JLabel("记录号");
    				jbb1.setFont(new Font(null,Font.PLAIN,20));
    				jbp1.add(jbb1);jbp1.add(JbTF1);
    			
    				JbTF2=new JTextField(8);
    				jbb2=new JLabel("学号");
    				jbb2.setFont(new Font(null,Font.PLAIN,20));
    				jbp2.add(jbb2);jbp2.add(JbTF2);
    				
    				JTextField JbTF3=new JTextField(4);
    				JLabel jbb3=new JLabel("变更代码");
    				jbb3.setFont(new Font(null,Font.PLAIN,20));
    				jbp3.add(jbb3);jbp3.add(JbTF3);
    				
    				JbTF4=new JTextField(6);
    				jbb4=new JLabel("记录时间");
    				jbb4.setFont(new Font(null,Font.PLAIN,20));
    				jbp4.add(jbb4);jbp4.add(JbTF4);
    				
    				JbTF5=new JTextField(11);
    				jbb5=new JLabel("描述");
    				jbb5.setFont(new Font(null,Font.PLAIN,20));
    				jbp5.add(jbb5);jbp5.add(JbTF5);
    				jbb=new JButton("输入");
    				Dimension preferredSize2 = new Dimension(136,20);
    				jbb.setPreferredSize(preferredSize2);
    				jbp5.add(jbb);
    				
    
    				jbp.add(jbp1);jbp.add(jbp2);jbp.add(jbp3);jbp.add(jbp4);jbp.add(jbp5);
    				jbb.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("输入")
    								&&!JbTF1.getText().isEmpty()
    								&&!JbTF2.getText().isEmpty()
    								&&!JbTF3.getText().isEmpty()
    								&&!JbTF4.getText().isEmpty()
    								&&!JbTF5.getText().isEmpty())
    						{
    							System.out.println("actionPerformed(). 输入");
    							String ID=JbTF1.getText().trim();
    							String SI=JbTF2.getText().trim();
    							String CE=JbTF3.getText().trim();
    							String R_T=JbTF4.getText().trim();
    							String DSRPIN=JbTF5.getText().trim();
    	
    						String sql = "insert into chang(ID,STUDENTID,CHAN,REC_TIME,DSRPIN) values(";
    						sql=sql +ID+','+SI+','+CE+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";
    						System.out.println(sql);
    						new DbProcess2().executeUpdate(sql);
    						}
    					}
    				});
    			
    				jcp=new JPanel();//return jcp;
    				jcp1=new JPanel();
    				jcp2=new JPanel();
    				jcp3=new JPanel();
    				jcp4=new JPanel();
    				jcp5=new JPanel();
    				
    				JcTF1=new JTextField(8);
    				jcb1=new JLabel("记录号");
    				jcb1.setFont(new Font(null,Font.PLAIN,20));
    				jcp1.add(jcb1);jcp1.add(JcTF1);
    				
    				JcTF2=new JTextField(8);
    				jcb2=new JLabel("学号");
    				jcb2.setFont(new Font(null,Font.PLAIN,20));
    				jcp2.add(jcb2);jcp2.add(JcTF2);
    				
    				JcTF3=new JTextField(4);
    				jcb3=new JLabel("级别代码");
    				jcb3.setFont(new Font(null,Font.PLAIN,20));
    				jcp3.add(jcb3);jcp3.add(JcTF3);
    				
    				JcTF4=new JTextField(6);
    				jcb4=new JLabel("记录时间");
    				jcb4.setFont(new Font(null,Font.PLAIN,20));
    				jcp4.add(jcb4);jcp4.add(JcTF4);
    				
    				JcTF5=new JTextField(11);
    				jcb5=new JLabel("描述");
    				jcb5.setFont(new Font(null,Font.PLAIN,20));
    				jcp5.add(jcb5);jcp5.add(JcTF5);
    				jcb=new JButton("输入");
    				Dimension preferredSize3 = new Dimension(136,20);
    				jcb.setPreferredSize(preferredSize3);
    				jcp5.add(jcb);
    				
    				jcp.add(jcp1);jcp.add(jcp2);jcp.add(jcp3);jcp.add(jcp4);jcp.add(jcp5);
    				jcb.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("输入")
    								&&!JcTF1.getText().isEmpty()
    								&&!JcTF2.getText().isEmpty()
    								&&!JcTF3.getText().isEmpty()
    								&&!JcTF4.getText().isEmpty()
    								&&!JcTF5.getText().isEmpty())
    						{
    							System.out.println("actionPerformed(). 输入");
    							String ID=JcTF1.getText().trim();
    							String SI=JcTF2.getText().trim();
    							String LEVELS=JcTF3.getText().trim();
    							String R_T=JcTF4.getText().trim();
    							String DSRPIN=JcTF5.getText().trim();
    				
    						String sql = "insert into reward(ID,STUDENTID,LEVELS,REC_TIME,DSRPIN) values(";
    						sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";
    						System.out.println(sql);
    						new DbProcess2().executeUpdate(sql);
    						}
    					}
    				});
    					
    				
    				jdp=new JPanel();//	return jdp;
    				jdp1=new JPanel();
    				jdp2=new JPanel();
    				jdp3=new JPanel();
    				jdp4=new JPanel();
    				jdp5=new JPanel();
    				jdp6=new JPanel();
    				
    				JdTF1=new JTextField(8);
    				jdb1=new JLabel("记录号");
    				jdb1.setFont(new Font(null,Font.PLAIN,20));
    				jdp1.add(jdb1);jdp1.add(JdTF1);
    				
    				JdTF2=new JTextField(8);
    				jdb2=new JLabel("学号");
    				jdb2.setFont(new Font(null,Font.PLAIN,20));
    				jdp2.add(jdb2);jdp2.add(JdTF2);
    				
    				JdTF3=new JTextField(5);
    				jdb3=new JLabel("级别代码");
    				jdb3.setFont(new Font(null,Font.PLAIN,20));
    				jdp3.add(jdb3);jdp3.add(JdTF3);
    				
    				JdTF4=new JTextField(6);
    				jdb4=new JLabel("记录时间");
    				jdb4.setFont(new Font(null,Font.PLAIN,20));
    				jdp4.add(jdb4);jdp4.add(JdTF4);
    				
    				JdTF5=new JTextField(10);
    				jdb5=new JLabel("描述");
    				jdb5.setFont(new Font(null,Font.PLAIN,20));
    				jdp5.add(jdb5);jdp5.add(JdTF5);
    				
    				JdTF6=new JTextField(4);
    				jdb6=new JLabel("是否生效");
    				jdb6.setFont(new Font(null,Font.PLAIN,20));
    				jdp6.add(jdb6);jdp6.add(JdTF6);
    				
    				jdb=new JButton("输入");
    				Dimension preferredSize4 = new Dimension(136,20);
    				jdb.setPreferredSize(preferredSize4);
    				
    				jdp.add(jdp1);jdp.add(jdp2);jdp.add(jdp3);jdp.add(jdp4);jdp.add(jdp5);jdp.add(jdp6);jdp.add(jdb);
    				jdb.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("输入")
    								&&!JdTF1.getText().isEmpty()
    								&&!JdTF2.getText().isEmpty()
    								&&!JdTF3.getText().isEmpty()
    								&&!JdTF4.getText().isEmpty()
    								&&!JdTF5.getText().isEmpty()
    								&&!JdTF6.getText().isEmpty())
    						{
    							System.out.println("actionPerformed(). 输入");
    							String ID=JdTF1.getText().trim();
    							String SI=JdTF2.getText().trim();
    							String LEVELS=JdTF3.getText().trim();
    							String R_T=JdTF4.getText().trim();
    							String DSRPIN=JdTF5.getText().trim();
    							String ENABLE=JdTF6.getText().trim();
    							
    						String sql = "insert into punishment(ID,STUDENTID,LEVELS,REC_TIME,ENABLE,DSRPIN) values(";
    						sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+ "'" + ENABLE + "',"+"'"+DSRPIN+"')";
    						System.out.println(sql);
    						new DbProcess2().executeUpdate(sql);
    						}//输入级别为0-4之间不能超过4
    					}
    				});
    						
    				
    				jep=new JPanel();//	return jep;
    				jep1=new JPanel();
    				jep2=new JPanel();
    				jep3=new JPanel();
    				jep4=new JPanel();
    				jep5=new JPanel();
    				jep6=new JPanel();
    				jep7=new JPanel();
    				jep8=new JPanel();
    				jep9=new JPanel();
    				jep10=new JPanel();
    				jep11=new JPanel();
    				jep12=new JPanel();
    				jep13=new JPanel();
    				
    				JeTF1=new JTextField(8);
    				jeb1=new JLabel("学号");
    				jeb1.setFont(new Font(null,Font.PLAIN,20));
    				jep1.add(jeb1);jep1.add(JeTF1);
    				
    				JeB1=new JButton("查询");
    				Dimension preferredSize5 = new Dimension(136,20);
    				JeB1.setPreferredSize(preferredSize5);
    				JeB1.addActionListener(new ActionListener()
    				{
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("查询")&&!JeTF1.getText().trim().isEmpty())
    						{
    							String sql=JeTF1.getText().trim();
    							queryall(sql);
    						}
    					}
    				});
    				jep2.add(JeB1);
    				
    				JeB2=new JButton("修改");
    				Dimension preferredSize6 = new Dimension(136,20);
    				JeB2.setPreferredSize(preferredSize6);
    				JeB2.addActionListener(new ActionListener()
    				{
    					public void actionPerformed(ActionEvent e)
    					{
    						if(e.getActionCommand().equals("修改")&&!JeTF1.getText().trim().isEmpty())
    						{
    							String sql=JeTF1.getText().trim();
    							changeall(sql);
    						}
    					}
    				});
    				
    				jep3.add(JeB2);
    				
    				JeTF4=new JTextField(8);
    				jeb4=new JLabel("学籍变动");
    				jeb4.setFont(new Font(null,Font.PLAIN,20));
    				jep4.add(jeb4);jep4.add(JeTF4);
    				
    				JeTF5=new JTextField(8);
    				jeb5=new JLabel("记录时间");
    				jeb5.setFont(new Font(null,Font.PLAIN,20));
    				jep5.add(jeb5);jep5.add(JeTF5);
    				
    				JeTF6=new JTextField(8);
    				jeb6=new JLabel("描述");
    				jeb6.setFont(new Font(null,Font.PLAIN,20));
    				jep6.add(jeb6);jep6.add(JeTF6);
    				
    				JeTF7=new JTextField(8);
    				jeb7=new JLabel("奖励");
    				jeb7.setFont(new Font(null,Font.PLAIN,20));
    				jep7.add(jeb7);jep7.add(JeTF7);
    				
    				JeTF8=new JTextField(8);
    				jeb8=new JLabel("记录时间");
    				jeb8.setFont(new Font(null,Font.PLAIN,20));
    				jep8.add(jeb8);jep8.add(JeTF8);
    				
    				JeTF9=new JTextField(8);
    				jeb9=new JLabel("描述");
    				jeb9.setFont(new Font(null,Font.PLAIN,20));
    				jep9.add(jeb9);jep9.add(JeTF9);
    				
    				JeTF10=new JTextField(4);
    				jeb10=new JLabel("处罚");
    				jeb10.setFont(new Font(null,Font.PLAIN,20));
    				jep10.add(jeb10);jep10.add(JeTF10);
    				
    				JeTF11=new JTextField(3);
    				jeb11=new JLabel("记录时间");
    				jeb11.setFont(new Font(null,Font.PLAIN,20));
    				jep11.add(jeb11);jep11.add(JeTF11);
    				
    				JeTF12=new JTextField(8);
    				jeb12=new JLabel("描述");
    				jeb12.setFont(new Font(null,Font.PLAIN,20));
    				jep12.add(jeb12);jep12.add(JeTF12);
    				
    				JeTF13=new JTextField(2);
    				jeb13=new JLabel("是否生效");
    				jeb13.setFont(new Font(null,Font.PLAIN,20));
    				jep13.add(jeb13);jep13.add(JeTF13);
    				
    				jep.add(jep1);jep.add(jep2);jep.add(jep3);
    				jep.add(jep4);jep.add(jep5);jep.add(jep6);
    				jep.add(jep7);jep.add(jep8);jep.add(jep9);
    				jep.add(jep10);jep.add(jep11);jep.add(jep12);jep.add(jep13);
    				
    				JTP=new JTabbedPane();
    				JTP.addTab("学生个人信息输入界面 ",jap);
    				JTP.addTab("学籍变更情况输入界面",jbp);
    				JTP.addTab("奖励信息输入界面",jcp);
    				JTP.addTab("处罚情况输入界面",jdp);
    				JTP.addTab("学生个人情况查询和修改界面",jep);	
    				JTP.addChangeListener(new ChangeListener() {
    			            @Override
    			            public void stateChanged(ChangeEvent e) {
    			                System.out.println("当前选中的选项卡: " + JTP.getSelectedIndex());
    			            }
    			        });
    			        // 设置默认选中的选项卡
    			        JTP.setSelectedIndex(0);
    			        this.add(JTP);
    			        this.setLayout(new GridLayout(2, 1));
    			        this.setContentPane(JTP);
    			        this.setSize(600,400);
    			        this.setLocation(400, 180);
    			        this.setTitle("学生信息管理系统");
    			    	this.setVisible(true);
    					this.setResizable(false);
    					this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    					
    }
        public static void main(String args[]){								
            // TODO Auto-generated method stub
    		QUESTIONONE2 hh= new  QUESTIONONE2();
        }
        
        public void queryall(String sql)
        {
        	String s1="select change_code.DSRPIN,chang.REC_TIME,chang.DSRPIN as REASON from chang join change_code on change_code.CODE = chang.CHAN";
        	s1=s1+" where STUDENTID = "+sql;
        	
        	String s2="select reward_levels.DSRPIN,reward.REC_TIME,reward.DSRPIN as REASON from reward join reward_levels on reward_levels.CODE=reward.LEVELS";
        	s2=s2+" where STUDENTID = "+sql;
      
        	String s3="select punish_levels.DSRPIN,punishment.REC_TIME,punishment.DSRPIN as REASON,punishment.ENABLE from punishment join punish_levels on punish_levels.CODE=punishment.LEVELS";
        	s3=s3+" where STUDENTID = "+sql;
        	try{
        		dbprocess.connect();
        		dbprocess.sta=dbprocess.con.createStatement();
        		ResultSet RS1=dbprocess.sta.executeQuery(s1);
        		while(RS1.next())
        		{
        		String P1=RS1.getString("DSRPIN");
        		String P2=RS1.getString("REC_TIME");
        		String P3=RS1.getString("REASON");
        		System.out.println(P1);System.out.println(P2);System.out.println(P3);
        		JeTF4.setText(P1);JeTF5.setText(P2);JeTF6.setText(P3);
        		}
        	}
        	catch(SQLException ex) { 
        			System.err.println(ex.getMessage());		
        		}
            	dbprocess.disconnect();
        	
            try {
            	dbprocess.connect();
        		dbprocess.sta=dbprocess.con.createStatement();
        		ResultSet RS1=dbprocess.sta.executeQuery(s2);
        		while(RS1.next())
        		{
        			String P4=RS1.getString("DSRPIN");
            		String P5=RS1.getString("REC_TIME");
            		String P6=RS1.getString("REASON");
            		System.out.println(P4);System.out.println(P5);System.out.println(P6);
            		JeTF7.setText(P4);JeTF8.setText(P5);JeTF9.setText(P6);
        		}
            	}
        	catch(SQLException ex) { 
        			System.err.println(ex.getMessage());		
        		}
            	dbprocess.disconnect();
        		
            try {
            	dbprocess.connect();
        		dbprocess.sta=dbprocess.con.createStatement();
        		ResultSet RS1=dbprocess.sta.executeQuery(s3);
        		while(RS1.next())
        		{
        			String P7=RS1.getString("DSRPIN");
            		String P8=RS1.getString("REC_TIME");
            		String P9=RS1.getString("REASON");
            		String P10=RS1.getString("ENABLE");
            		System.out.println(P7);System.out.println(P8);System.out.println(P9);
            		JeTF10.setText(P7);JeTF11.setText(P8);JeTF12.setText(P9);JeTF13.setText(P10);
        		}
        	}
        	catch(SQLException ex) { 
    			System.err.println(ex.getMessage());		
    		}
        	dbprocess.disconnect();
        }
     public void changeall(String sql)
     {
    	 String changchan=JeTF4.getText();
    	 String changtime=JeTF5.getText();
    	 String changedes=JeTF6.getText();
    	 String rew=JeTF7.getText();
    	 String rewtime=JeTF8.getText();
    	 String rewdesc=JeTF9.getText();
    	 String pun=JeTF10.getText();
    	 String puntime=JeTF11.getText();
    	 String pundesc=JeTF12.getText();
    	 String punfun=JeTF13.getText();
    
    	 
    	 String d1="delete from chang where STUDENTID = ";
    	 d1=d1+sql;;
    	 System.out.println(d1);
    	 
    	 String a1="insert into chang(STUDENTID,CHAN,REC_TIME,DSRPIN) values (" 
    	 + sql +","+ changchan +","+"'" +changtime+"','"+changedes+ "') ";
    	 System.out.println(a1);
    
    	 
    	 String d2="delete from reward where STUDENTID = ";
    	 d2=d2+sql;
    	 System.out.println(d2);
    	 
    	 String a2="insert into reward(STUDENTID,LEVELS,REC_TIME,DSRPIN) values("
    			 + sql + "," + rew + ",'" + rewtime + "','" + rewdesc + "')";
    	 System.out.println(a2);
    
    	 
    	 String d3="delete from punishment where STUDENTID = ";
    	 d3=d3+sql;
    	 System.out.println(d3);
    
    	 String a3="insert into punishment(STUDENTID,LEVELS,REC_TIME,ENABLE,DSRPIN) values("
    			 + sql + "," + pun + ",'" + puntime +"','" + punfun +"','" + pundesc + "')" ;      
    	 System.out.println(a3);
    	 
    
    	 try {
         		dbprocess.connect();
         		dbprocess.sta=dbprocess.con.createStatement();
         		dbprocess.sta.execute(d1);
         		dbprocess.sta.execute(a1);
         		JeTF4.setText("");JeTF5.setText("");JeTF6.setText("");
    	 	}
    	catch(SQLException ex) { 
    			System.err.println(ex.getMessage());
    	}
    		dbprocess.disconnect();
    		
    	 try {
    		 	dbprocess.connect();
    		 	dbprocess.sta=dbprocess.con.createStatement();
    		 	dbprocess.sta.execute(d2);
    		 	dbprocess.sta.execute(a2);
    		 	JeTF7.setText("");JeTF8.setText("");JeTF9.setText("");
    		}
    	catch(SQLException ex) { 
    			System.err.println(ex.getMessage());
    	}
    		dbprocess.disconnect();
    		
    	try {
    			 dbprocess.connect();
    			 dbprocess.sta=dbprocess.con.createStatement();
    			 dbprocess.sta.execute(d3);
    			 dbprocess.sta.execute(a3);
    			 JeTF10.setText("");JeTF11.setText("");JeTF12.setText("");JeTF13.setText("");
    			}
    		catch(SQLException ex) { 
    				System.err.println(ex.getMessage());
    		}
    			dbprocess.disconnect();	
     }
    }

    第二个文件:DbProcess2.java

    package ZTY;
    import java.sql.*;
    import ZTY.QUESTIONONE2;
    public class DbProcess2{
    	public Connection con = null;public Statement sta=null;
    	  static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
    //注意!:下行3306后面的q1为我建立的数据库名,要改成自己建立的数据库名!!!
    	   static final String DB_URL = "jdbc:mysql://localhost:3306/q1?useSSL=false&serverTimezone=UTC";
    //数据库账号密码,也要改为自己的
    	   static final String USER = "root";
    	    static final String PASS = "............";
    
    	    public DbProcess2(){
    			try {
    				//mysql数据库设置驱动程序类型
    				Class.forName(JDBC_DRIVER); 
    				System.out.println("连接数据库...");
    				System.out.println("mysql数据库驱动加载成功");
    
    			}
    			catch(java.lang.ClassNotFoundException e) 
    			{
    				e.printStackTrace();
    			}		
    }
    	    public void executeUpdate(String sql)
    	    {
    	    	connect();
    	    	try{
    	    		sta=con.createStatement();
    	    		sta.execute(sql);
    	    	}
    	    	catch(SQLException ex) { 
    				System.err.println(ex.getMessage());		
    			}
    	    	disconnect();
    	    }
    	    
    	    public void queryall(String sql)
    	    {
    	    	connect();
    	    	String s1="select change_code.DSRPIN,chang.REC_TIME,chang.DSRPIN as REASON from chang join change_code on change_code.CODE = chang.CHAN";
    	    	s1=s1+" where STUDENTID = "+sql;
    	    	System.out.println(s1);
    	    	
    	    	String s2="select reward_levels.DSRPIN,reward.REC_TIME,reward.DSRPIN as REASON from reward join reward_levels on reward_levels.CODE=reward.LEVELS";
    	    	s2=s2+" where STUDENTID = "+sql;
    	    	System.out.println(s2);
    	    	
    	    	String s3="select punish_levels.DSRPIN,punishment.REC_TIME,punishment.DSRPIN as REASON,punishment.ENABLE from punishment join punish_levels on punish_levels.CODE=punishment.LEVELS";
    	    	s3=s3+" where STUDENTID = "+sql;
    	    	System.out.println(s3);
    	    	
    	    	try{
    	    		sta=con.createStatement();
    	    		ResultSet RS1=sta.executeQuery(s1);
    	    		while(RS1.next())
    	    		{
    	    		String P1=RS1.getString("DSRPIN");
    	    		String P2=RS1.getString("REC_TIME");
    	    		String P3=RS1.getString("REASON");
    	    		System.out.println(P1);System.out.println(P2);System.out.println(P3);
    	    		}
    	    	}
    	    	catch(SQLException ex) { 
    				System.err.println(ex.getMessage());		
    			}
    	    	disconnect();
    	    }
    	    
    	    
    	    
    public void connect()
    {
    			try{
    				//mysql数据库
    				con = DriverManager.getConnection(DB_URL,USER,PASS);  
    				
    
    				if(con!=null){
    		            System.out.println("数据库连接成功");
    		        }
    			}
    			catch(Exception e){
    				e.printStackTrace();
    			}
    }	 
    
    
    public void disconnect(){
    	try{
    		if(con != null){
    			System.out.println("数据库断开成功");
    			con.close();
    			con = null;
    		}
    	}
    	catch(Exception e){
    		e.printStackTrace();
    	}
    }
    }
    

    ---------------2020/12/28更新原因:不少学弟学妹要源码包的,其实就差数据库的代码了..--------------------

    建立一个mysql库:q1

    一、建立所有表的代码:

    create table change_code
    (
        CODE   int         not null
            primary key,
        DSRPIN varchar(15) null
    );
    
    create table class
    (
        ID      int         not null    primary key,
        NAME    varchar(10) null,
        MONITOR int         null
    );
    
    create index ID_index   on class (ID);
    
    create table department
    (
        ID   int   not null   primary key,
        NAME varchar(10) null
    );
    
    create table punish_levels
    (
        CODE   int  not null  primary key,
        DSRPIN varchar(15) null
    );
    
    create table reward_levels
    (
        CODE   int   not null primary key,
        DSRPIN varchar(15) null
    );
    
    create table student
    (
        STUDENTID    int         not null    primary key,
        NAME         char(10)    not null,
        SEX          char(2)     not null,
        CLASS        int         not null,
        DEPARTMENT   int         null,
        BIRTHDAY     varchar(15) null,
        NATIVE_PLACE varchar(10) null,
        constraint SI_C
            foreign key (CLASS) references class (ID),
        constraint department_id
            foreign key (DEPARTMENT) references department (ID)
    );
    
    create table chang
    (
        ID        int auto_increment    primary key,
        STUDENTID int         null,
        CHAN      int         null,
        REC_TIME  varchar(15) null,
        DSRPIN    varchar(15) null,
        constraint SI_SI
            foreign key (STUDENTID) references student (STUDENTID),
        constraint chan_code
            foreign key (CHAN) references change_code (CODE)
    );
    
    alter table class
        add constraint MONITOR_SI
            foreign key (MONITOR) references student (STUDENTID);
    
    create table punishment
    (
        ID        int auto_increment   primary key,
        STUDENTID int         null,
        LEVELS    int         null,
        REC_TIME  varchar(15) null,
        ENABLE    varchar(4)  null,
        DSRPIN    varchar(15) null,
        constraint LEVELS_CODETWO
            foreign key (LEVELS) references punish_levels (CODE),
        constraint SI_SIthree
            foreign key (STUDENTID) references student (STUDENTID)
    );
    
    create table reward
    (
        ID        int auto_increment   primary key,
        STUDENTID int         null,
        LEVELS    int         null,
        REC_TIME  varchar(15) null,
        DSRPIN    varchar(15) null,
        constraint LEVELS_CODE
            foreign key (LEVELS) references reward_levels (CODE),
        constraint SI_SItwo
            foreign key (STUDENTID) references student (STUDENTID)
    );
    
    create index DSRPIN  on reward (DSRPIN);
    
    create index ID_index  on reward (ID);
    
    
    

    二、向表中插入字段的代码

    1、chang表

    INSERT INTO chang (ID, STUDENTID, CHAN, REC_TIME, DSRPIN) VALUES (6, 1805010401, 1, '2020/2/8', '转专业');
    INSERT INTO chang (ID, STUDENTID, CHAN, REC_TIME, DSRPIN) VALUES (7, 1805010402, 3, '2020/2/7', '旅游');

    2、 change_code表

    INSERT INTO change_code (CODE, DSRPIN) VALUES (0, '转系');
    INSERT INTO change_code (CODE, DSRPIN) VALUES (1, '休学');
    INSERT INTO change_code (CODE, DSRPIN) VALUES (2, '复学');
    INSERT INTO change_code (CODE, DSRPIN) VALUES (3, '退学');
    INSERT INTO change_code (CODE, DSRPIN) VALUES (4, '毕业');

    3、class表

    INSERT INTO class (ID, NAME, MONITOR) VALUES (1, '计算机科学与技术一班', null);
    INSERT INTO class (ID, NAME, MONITOR) VALUES (2, '计算机科学与技术二班', null);
    INSERT INTO class (ID, NAME, MONITOR) VALUES (3, '计算机科学与技术三班', null);
    INSERT INTO class (ID, NAME, MONITOR) VALUES (4, '计算机科学与技术四班', null);
    INSERT INTO class (ID, NAME, MONITOR) VALUES (5, '计算机科学与技术五班', null);
    INSERT INTO class (ID, NAME, MONITOR) VALUES (6, '计算机科学与技术六班', null);

    4、department表

    INSERT INTO department (ID, NAME) VALUES (1, '计算机科学与工程');
    INSERT INTO department (ID, NAME) VALUES (2, '土木');
    INSERT INTO department (ID, NAME) VALUES (3, '数学与计算科学');
    INSERT INTO department (ID, NAME) VALUES (4, '物理与电气工程');
    INSERT INTO department (ID, NAME) VALUES (5, '法学与公共管理');

    5、punish_levels表

    INSERT INTO punish_levels (CODE, DSRPIN) VALUES (0, '警告');
    INSERT INTO punish_levels (CODE, DSRPIN) VALUES (1, '严重警告');
    INSERT INTO punish_levels (CODE, DSRPIN) VALUES (2, '记过');
    INSERT INTO punish_levels (CODE, DSRPIN) VALUES (3, '记大过');
    INSERT INTO punish_levels (CODE, DSRPIN) VALUES (4, '开除');

    6、punishment表

    INSERT INTO punishment (ID, STUDENTID, LEVELS, REC_TIME, ENABLE, DSRPIN) VALUES (4, 1805010401, 1, '2020/2/8', '否', '打游戏');
    INSERT INTO punishment (ID, STUDENTID, LEVELS, REC_TIME, ENABLE, DSRPIN) VALUES (5, 1805010402, 2, '2020/2/7', '是', '逃课');

    7、reward表

    INSERT INTO reward (ID, STUDENTID, LEVELS, REC_TIME, DSRPIN) VALUES (7, 1805010401, 1, '2020/2/8', 'ACM拿奖');
    INSERT INTO reward (ID, STUDENTID, LEVELS, REC_TIME, DSRPIN) VALUES (8, 1805010402, 1, '2020/2/8', '三好学生');

    8、reward_levels表

    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (0, '校特等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (1, '校一等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (2, '校二等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (3, '校三等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (4, '系一等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (5, '系二等奖学金');
    INSERT INTO reward_levels (CODE, DSRPIN) VALUES (6, '系三等奖学金');

    9、student表

    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (180510403, '王XX', '男', 4, 1, '2000.1.1', '衡山');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010401, '郑X', '男', 4, 1, '2000.1.1', '温州');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010402, '刘XX', '男', 4, 1, '2000.1.1', '秦皇岛');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010410, 'xxx', 'x', 4, 1, 'xxxxx', 'xxx');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010413, '刘XX', '男', 4, 1, '2000.2.1', '永州');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010414, '统一', '男', 4, 1, '2000.8.18', '益阳');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010415, '秦', '男', 4, 1, '2000.3.1', '铁力');
    INSERT INTO student (STUDENTID, NAME, SEX, CLASS, DEPARTMENT, BIRTHDAY, NATIVE_PLACE) VALUES (1805010418, 'XXX', '男', 1, 1, '2010.1.8', '益阳');

    湖科大的可+Q:1119094861

    展开全文
  • 软件工程课程设计,数据库课程设计,数据库、源代码、详细报告文档含需求分析,概念模型设计等
  • 数据库课程设计--_宿舍管理信息系统.数据库课程设计--_宿舍管理信息系统.数据库课程设计--_宿舍管理信息系统.
  • 第5章 系统数据库设计 13 5.1 学生信息表 13 5.2 管理员表 13 5.3 报修表 14 5.4 夜归表 14 5.5 离校表 14 5.6 快件管理表 15 5.7 宿舍信息表 15 第6章 系统功能模块实现 16 6.1 系统登录模块 16 6.2 学生管理模块 ...
  • 数据库课程设计宿舍信息管理系统
  • 动态网页制作技术课程设计 课程设计报告书 题 目 宿舍管理系统 专 业 信息管理 指导老师 同组成员 计算机与数据科学学院 目 录 TOC \ 1- \ \z \ HYPERLNK .1开发背景? PAGEF _oc47113 \h HPERLNK l _c413898 开发...
  • 宿舍管理系统课程设计 本系统的最终用户为宿舍楼管理员,本宿舍楼的学生。根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户的下列实际要求:本宿舍楼的学生能查询...
  • 我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做得尽量人性化,使用者(即管理员)会感到操作方便,需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量比较大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,160
精华内容 864
关键字:

宿舍信息管理系统数据库课程设计