数据库实验报告_学生选课信息管理系统

本文由用户“zcs1841”分享发布 更新时间:2021-04-01 14:53:23 举报文档

以下为《数据库实验报告_学生选课信息管理系统》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

《数据库系统原理》课程设计报告

课程设计题目:学生选课信息管理系统

班 级: 14-科技2班

姓 名: 郑某某

学 号: ***1210

任课老师: 王某某老师

开始时间: 2016年10月2号

结束时间: 2016年12月20号

目录

第一 概述 3

1.1项目背景 3

1.2编写目的 3

1.3软件定义 3

1.4开发环境 3

第二 需求分析 4

2.1信息要求 4

2.1.1学生信息表(student) 4

2.1.2.课程信息表(course) 4

2.1.3.教师信息表(teacher) 4

2.1.4.院系信息表(department) 4

2.1.5.选课信息表(sct) 4

2.2处理要求 5

2.3安全性与完整性要求 7

2.3.1?安全性要求 7

2.3.2完整性要求 7

第三 概念结构设计 7

3.1生成基本E-R图 7

第四 逻辑结构设计 10

4.1把ER模型图转换为关系表,从而构成数据库 10

4.2数据库关系表 11

4.3数据库关系图 12

第五 主要模块的设计以及代码 13

5.1登陆模块 13

5.1.1登陆界面 13

5.2主界面 14

5.2.1信息查询 14

5.2.2信息录入 15

5.2.3信息修改 16

5.2.4删除信息 17

5.2.5数据报表 18

5.3关键代码 19

5.3.1 登录模块 19

5.3.2录入模块 21

5.3.3查询模块 25

5.3.4修改模块 29

5.3.5删除模块: 31

5.3.6数据报表模块: 33

第六 总结 35

6.1开发过程中遇到的问题以及解决方法 35

6.2体会 35

第七 参考文献 35

第一 概述

1.1项目背景

当今社会是一个信息时代,计算机技术发展迅速,同时信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用,让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。学生选课管理信息系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课管理信息系统应该能够为用户提供充足的信息和快捷的查询手段。但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差、时间长、将产生大量的文件和数据,这对于查找、更和.新维护都带来了不少的困难。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。如何更好的组织学生信息,更加快捷的管理学生信息显得尤为的重要。

1.2编写目的

通过课程设计,进一步提高学生的编程能力,提高学习数据库的兴趣,学会结合运用多种知识,通过一门编程语言和SQL结合应用,提高数据库应用与开发的能力。

1.3软件定义

学生选课管理信息系统,模拟学生选课的部分管理功能。实现了对信息数据的增添、查询、修改和删除等基本操作。该软件用Java编写,用SQLServer2008 R2数据库作为后台的数据库进行信息的存储,用JDBC实现前台java与后台SQL数据库的连接。

1.4开发环境

数据库管理系统选用Microsoft SQL Server 2008 R2,数据库访问方式选用数据源JDBC,系统开发的的软件开发工具是Eclipse。

第二 需求分析

2.1信息要求

通过本系统用户可以从数据库中获得相关的信息的内容与性质,主要包含以下数据表:

2.1.1学生信息表(student)

学号sno:char(9)

姓名sname:nvarchar(8)

性别ssex:nchar(2) 男 或 女

年龄sage:int(4) 14≤sage≤24

系别sdept:nvarchar(30)

2.1.2.课程信息表(course)

课程号cno:char(6)

课程名cname:nvarchar(50)

先行课编号cpno:char(6)

学分ccredit:smallint(2)

2.1.3.教师信息表(teacher)

教工号tno:char(8)

姓名tname:nvarchar(8)

性别tsex:nchar(2) 男 或 女

年龄tage:int(4) 24≤sage≤70

学历teb:nvarchar(10) 学士、硕士、博士

职称tpt:nvarchar(10) 助教、讲师、副教授、教授

主讲课程一cno1: char(6)

主讲课程二cno2: char(6)

主讲课程三cno3: char(6)

2.1.4.院系信息表(department)

系编号dno:char(3)

系名dname:varchar(30)

系主任dmanager:char(8)

2.1.5.选课信息表(sct)

学号sno:char(9)

课程号cno:char(6)

教工号tno:char(8)

成绩grade:int(4)

2.1.6.用户信息表(login)

用户名 userName: char(10)

***:char(10)

权限:id: int

2.2处理要求

本系统主要有八大功能模块:

(1)“信息查询”功能模块

1)查询学生信息

2)查询教师信息

3)查询课程信息

4)查询院系信息

5)查询选课信息

(2)“信息录入”功能模块

1)录入学生信息

2)录入教师信息

3)录入课程信息

4)录入院系信息

5)录入选课信息

(3)“信息删除”功能模块

1)删除学生信息

2)删除教师信息

3)删除课程信息

4)删除院系信息

5)删除选课信息

(4)“信息修改”功能模块

1)修改学生信息

2)修改教师信息

3)修改课程信息

4)修改院系信息

5)修改选课信息

(5)“信息浏览”功能模块

1)浏览学生信息

2)浏览教师信息

3)浏览课程信息

4)浏览院系信息

5)浏览选课信息

(6)“数据报表”功能模块

1)学生信息报表

2)教师信息报表

3)课程信息报表

4)院系信息报表

5)选课信息报表

(7)用户管理与用户登陆功能模块

系统可根据需要添加、删除用户,并可对已有的用户信息进行修改操作;在添加新用户时,可定义其操作权限(查询、更新、浏览、报表等权限);用户密码可进行随时修改;各种不同身份的用户登陆系统后,可享有不同的系统操作权限。

(8)系统帮助及使用说明功能模块

为用户提供必要的在线帮助功能和简要的操作使用说明。

2.3安全性与完整性要求

2.3.1?安全性要求??

系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性可以通过限制不同的用户访问系统的权限,这样可提供系统数据一定程度上的安全性,通过设置权限来区别对待不同操作者对数据库的操作,来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。?

2.3.2完整性要求?

系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束。通过主键和外键建立表与表之间的关系。

第三 概念结构设计

3.1生成基本E-R图

第四 逻辑结构设计

4.1把ER模型图转换为关系表,从而构成数据库

Student表

Course表

Teacher表

Sct表

Department表

Login表

4.2数据库关系表

4.3数据库关系图

第五 主要模块的设计以及代码

5.1登陆模块

5.1.1登陆界面

5.2主界面

5.2.1信息查询

对学生信息,教师,课程进行查询浏览

5.2.2信息录入

5.2.3信息修改

对教师信息进行修改、查询、浏览

5.2.4删除信息

5.2.5数据报表

5.3关键代码

5.3.1 登录模块

关键代码:

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button1)

{

String userName=textName.getText();

char []p=textPs.getPassword();

String passWord=String.valueOf(p);

System.out.println("user"+"1"+userName+"1");

System.out.println("password"+"1"+passWord+"1");

if(userName.length()==0||passWord.length()==0)

{ System.out.println("pas");

JOptionPane.showMessageDialog(con,"输入为空,请重新输入", "警告",JOptionPane.WARNING_MESSAGE);

}

else

if(id==-1){

JOptionPane.showMessageDialog(con, "请选择身份", "警告",JOptionPane.WARNING_MESSAGE);

}

else

{ CallableStatement cs = null; //定义CallableStatement对象

String message="登录失败";

try{ //连接数据库验证用户有效性

Connect c=new Connect();

Connection conn=c.getConnect();

String sql = "{call validateSelect('"+userName+"','"+passWord+"','"+id+"')}";

//定义调用存储过程语句

cs = conn.prepareCall(sql);

//调用存储过程

ResultSet rest = cs.executeQuery();

//获取结果集

while(rest.next()){

//循环遍历结果集对象

message = "登录成功"; }

//设置对象信息

conn.close();

}catch(Exception ie){ ie.printStackTrace();}

if(message.equals("登录成功"))

{

JOptionPane.showMessageDialog(con,"欢迎进入学生选课管理系统", message,JOptionPane.PLAIN_MESSAGE);

username=textName.getText();

new UI(id);

dispose();

}

else

{

JOptionPane.showMessageDialog(con, "账户,密码,或身份信息选择错误,请重新输入", message, JOptionPane.ERROR_MESSAGE);

}

}

}

}

5.3.2录入模块

关键代码:

public Entering(int id) {

this.id=id;

setBounds(0, 0, sc.width, sc.height);

bt[0]=new MyButton("返回");

bt[1]=new MyButton("录入学生信息");

bt[2]=new MyButton("录入课程信息");

bt[3]=new MyButton("录入教师信息");

bt[13]=new MyButton("注册新用户");

setTitle("学生选课管理系统");

Connect c=new Connect();

conn=c.getConnect();

con.setLayout(null) ;

setSize(sc.width,sc.height) ;

ImageIcon bgim = new ImageIcon("image/2.jpg") ;//背景图案

bg = new JLabel(bgim) ;

Container laycon = getLayeredPane();

bg.setSize(getSize().width,getSize().height) ;

bgim.setImage(bgim.getImage().getScaledInstance(bg.getSize().width,bg.getSize().height,Image.SCALE_DEFAULT));

laycon.add(bg,new Integer(Integer.MIN_VALUE));

username.setFont(font3);

IDnumber.setFont(font3);

sex.setFont(font3);

age.setFont(font3);

sdept.setFont(font3);

sex_item.addItem("");

sex_item.addItem("男");

sex_item.addItem("女");

sex_item.addItemListener(this);

teb_item.addItemListener(this);

sdept_item.addItemListener(this);

tpt_item.addItemListener(this);

String query="select distinct sdept from student";

try{

PreparedStatement sn=conn.prepareStatement(query);

ResultSet sr=sn.executeQuery();

int i=0;

sdept_item.add("");

while(sr.next())

{ String str;

item_sdept[i]=str= sr.getString(1);

sdept_item.add(str);

i++;

// System.out.println(str);

}

}

catch(SQLException ie){

ie.printStackTrace();

}

label.setSize(sc.width, sc.height/4);

label.setLocation(0, 0);

label.setFont(font3);

label.setForeground(Color.WHITE);

bt[0].setSize(sc.width/4, sc.height/3);

bt[0].setLocation(3*sc.width/4, 2*sc.height/3);

bt[0].setContentAreaFilled(false);//设置微透明

bt[0].setFont(font2);

bt[0].setBorderPainted(false);

bt[0].setflag(1);

bt[0].setForeground(Color.BLACK);

bt[0].addActionListener(this);

con.add(bt[0]);

bt[1].setSize(sc.width/4, sc.height/3);

bt[1].setLocation(sc.width/2, 2*sc.height/3);

bt[1].setContentAreaFilled(false);//设置微透明

bt[1].setBorderPainted(false);

bt[1].setflag(1);

bt[1].setFont(font2);

bt[1].setForeground(Color.BLACK);

bt[1].addActionListener(this);

con.add(bt[1]);

bt[2].setSize(sc.width/4, sc.height/3);

bt[2].setLocation(sc.width/4, 2*sc.height/3);

bt[2].setContentAreaFilled(false);//设置微透明

bt[2].setBorderPainted(false);

bt[2].setflag(1);

bt[2].setFont(font2);

bt[2].setForeground(Color.BLACK);

bt[2].addActionListener(this);

con.add(bt[2]);

bt[3].se 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 的性别,教师的性别,学历,职称设置了CHECK,要限制它们的输入内容,于是把编辑改为组合框,这样也能减少输入量,不需要用键盘,用鼠标选择即可。

6.2体会

数据库、表的建立,表与表之间的关系,约束的设置,以及代码的编写遇到了大大小小的困难,通过自己思考,请教同学,都一步步地解决了。当对一个问题纠结好久时,通过思考,图书馆找资料,最后解决了的时候,会很有成就感。这个过程也是不断学习知识,不断进步,提高编程能力的过程。

第七 参考文献

[1]胡某某,雷某某,侯小毛著,《Java程序设计实用教程》(第三版),清华大学出版社

[2]印e?《Java 语言与面向对象程序设计》 [M] XX: 清华大学出版社

[3] 姜某某,,张某某,张某某,苏某某,曹某某. SQL Server 2005 数据库应用与开发(第二版). 清华大学出版社

[4] 朱某某, 沈某某 《Java 程序设计实用教程》 [M] XX: 电子工业出版社

[5] 李某某, 杨某某 《Java 程序设计之网络编程》 [M] XX: 清华大学出版社

[6] 王某某,萨师煊. 数据库系统概论(第四版). 高等教育出版社

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《数据库实验报告_学生选课信息管理系统》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览