数据库课程设计之学生信息管理系统_第1页
数据库课程设计之学生信息管理系统_第2页
数据库课程设计之学生信息管理系统_第3页
数据库课程设计之学生信息管理系统_第4页
数据库课程设计之学生信息管理系统_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理课程设计报告 题题 目目 学生信息管理系统学生信息管理系统 学生姓名 学生姓名 穆岭穆岭 徐清锋 冉丽华 学学 号 号 09080600700908060070 班班 级 级 计科计科092092 院院 系 系 计算机科学与信息学院计算机科学与信息学院 专业年级 专业年级 计算机科学与技术计算机科学与技术 20092009级级 20112011年年1212月月2222日日 一 需求分析一 需求分析 需包含内容为 1 问题描述 学生信息的管理是学校很重要的一项工作 而人工管理学 生信息的话 无疑是一个很费时费力的事情 而且效率不高 容易出错 往往 是学校进行学生工作的一个瓶颈问题 有一个学生信息管理的系统就能够帮助 学校更好完成学生信息管理的工作 降低管理成本 所以我们组编写了一个学 生信息管理系统 使其在学生管理工作中发挥更大的作用 2 系统功能描述 本系统是一个学生信息管理系统 主要管理学生的基本信息 课程信息 以及学生选课成绩信息等 登录的模块有两种登录类型 分别是管理员登录和 学生登录 如果是管理员登录的话 进入管理员界面 要求管理员界面中可以 信息的学生基本信息 课程基本信息和学生选课成绩信息的管理设置 还有信 息查询 在这块儿中可以进行学生基本信息的查询 课程信息的查询 以及选 课成绩信息的查询 除此之外 要求设一个用户维护模块 在这个模块中管理 员可以添加管理员用户或者是学生用户 可以修改密码 并且能够切换用户登 录 接着是帮助 帮助中显示系统的版本 最后要求有一个推出系统按钮 如 果是学生登录 那么学生可以进行学生信息的维护 可以进行登录密码的修改 基本信息的修改 以及切换用户登录 可以进行学生基本信息的查询 学生课 程学习的查询 学生选课成绩信息的查询 接着是帮助 帮助中显示系统的版 本 最后要求有一个推出系统按钮 其详细的操作框架流程在下面的图中可以 见到 操作流程框图 操作流程框图 存储的数据信息存储的数据信息 User 表 用户名 密码 用户类型标识 用于存储登录用户信息 Student 表 学号 姓名 性别 出生日期 电话 QQ 号 专业 班级 家庭地 址 用于存储学生基本信息 Course 表 课程号 课程名 先行课 学分 教师姓名 用于存储课程基本信 息 SC 表 学号 课程号 成绩 绩点 用于存储学生选课成绩信息 3 有何安全性与完整性方面的要求 安全性 安全性 如果是管理员登录系统 可以进行管理设置 包括 设置学生的 基本信息 设置课程信息 设置学生成绩信息 设置各种信息的时候有添加 删除和修改等相应功能 然后是信息查询 包括 查询学生基本信息 查询课 程信息 查询学生成绩信息 用户的维护 包括 添加用户 修改用户密码 切换用户登录 帮助 退出系统 如果是学生登录系统 可以修改自己的基本 信息 修改个人登录密码 切换用户登录 同样可进行信息查询 包括 查询 学生基本信息 查询课程信息 查询学生成绩信息 查看帮助 退出系统 完整性 完整性 主要是在删除学生信息和课程信息的时候如果在选课信息中存在 选课成绩信息的话 那么就不能直接进行相应信息的删除 在开发中要给出相 应的信息提示 在进行各种添加 和更新操作之前也有进行相应的判断 如果 原来的信息中已经有了所要添加的该条信息 怎不能添添加 并给出相应的提 示 如果不存在所要更新的信息的时候也不能进行更新 并给出相应的提示 具体的完整性约束在编程中具体给出 二 概念结构设计二 概念结构设计 画出系统整体的 E R 模型 并对模型中所出现的实体及属性等信息加以说 明 概念模型概念模型 物理模型物理模型 三 逻辑结构设计三 逻辑结构设计 1 模式设计 按系统整体 E R 模型 写出关系模式 并利用数据字典加 以描述 如每个关系模式有何属性 属性的类型 属性值的长度 是否可取空 值 是否为主码 有何约束条件等信息 本系统的设计中主要涉及到四个表 分别是 User 表 Student 表 Course 表 SC 表 在这四个表中 User 表用于存储用户信息 Student 表存储学生信 息表 Course 表存储课程信息 SC 表存储学生选课的成绩信息 这四个表的结 构如下 UserUser 表表 属性名属性名存储代码存储代码类型类型长度长度是否可为空是否可为空主键否主键否备注备注 用户名unameVARCHAR20否是用户登录名 密码upassVARCHAR30否用户登录密码 用户类型 标识 bsINT 否 用于标识是管理员 还是学生 StudentStudent 表表 属性名属性名存储代码存储代码类型类型长度长度是否可为空是否可为空主键否主键否备注备注 学号 snoVARCHAR20 否是学生学号 姓名 snameVARCHAR20 否学生姓名 性别 sexVARCHAR2 否性别 出生日期 birthDATE 出生日期 电话 telVARCHAR20 联系电话 QQ 号 qqVARCHAR20 QQ 号码 专业 sdeptVARCHAR20 否学生所在专业 班级 classVARCHAR20 否所在班级 家庭地址 address VARCHAR50 学生家庭地址 CourseCourse 表表 属性名属性名存储代码存储代码类型类型长度长度是否可为空是否可为空主键否主键否备注备注 课程号 cnoVARCHAR20 否是课程编号 课程名 cnameVARCHAR20 否课程名 先行课 cpnoVARCHAR20 先行课程 学分 creditFLOAT 否学分 教师姓名 tnameVARCHAR20 否教师姓名 SCSC 表表 属性名属性名存储代码存储代码类型类型长度长度是否可为空是否可为空主键否主键否备注备注 学号 snoVARCHAR20 否是学号 课程号 cnoVARCHAR20 否是课程编号 成绩 gradeFLOAT 课程成绩 绩点 pointFLOAT 课程绩点 2 子模式设计 即针对自己的设计模块的应用需定义什么样的视图表结 构 并利用数据字典加以描述 由于在查询学生成绩信息的时候要查询学生学号 姓名 课程号 课程名 学分 成绩 绩点 联系电话 这就需要涉及到三个表的连接 为了查询的方 便 所以在进行设计的时候创建了一个 Stu Cou SC 视图表 表结构为 Stu Cou SC 视图 学号 姓名 课程号 课程名 学分 成绩 绩点 联系电话 Stu Cou SCStu Cou SC 属性名属性名存储代码存储代码类型类型长度长度是否可为空是否可为空 主键否主键否备注备注 学号 snoVARCHAR20 否是学生学号 姓名 snameVARCHAR20 否学生姓名 课程号 cnoVARCHAR20 否是课程编号 课程名 cnameVARCHAR20 否课程名 学分 creditFLOAT 学分 成绩 gradeFLOAT 成绩 绩点 pointFLOAT 绩点 联系电话 telVARCHAR20 联系电话 3 画出系统功能模块图 并对各功能模块进行简单介绍 在登录模块中 设置了两种登录类型 一种是管理员登录 一种是学生登 录 这两种登录有着不同的使用权限 管理员登录系统可以进行管理设置 信 息查询和用户维护等操作 学生登录系统可以进行信息维护和信息查询等 在管理设置模块中 用户可以进行学生信息的设置 课程信息设置 选 课成绩信息的设置 在各个信息的设置中都可以进行添加 更新和删除操 作 在信息查询模块中 用户可以进行学生基本信息查询 课程信息查询以及学生选课成 绩信息的查询 在各个查询中又设置有精确查询和模糊查询 使其查询更智能化 在用户维护模块中 可以进行添加用户 修改用户登录密码 切换用户登录功能 在学生登录后的信息维护模块中 学生统一可以修改登录密码 修改个人 基本信息 和切换用户登录 四 数据库的物理设计四 数据库的物理设计 在本系统的数据库设计阶段 我们为其建立了下面的三个索引字段 分别 是基于Student表建立的Stusno以sno为升序索引 基于Course表建立的Coucno 以cno为升序索引 和基于SC表建立的SCno以sno为升序 以cno为降序的索引 对应的T SQLT SQL语句如下 语句如下 创建索引字段创建索引字段 DROP INDEX Student Stusno CREATE INDEX Stusno ON Student sno ASC DROP INDEX Course Coucno CREATE INDEX Coucno ON Course cno ASC DROP INDEX SC SCno CREATE INDEX SCno ON SC sno ASC cno DESC 五 数据库设计实现及运行五 数据库设计实现及运行 1 数据库的创建 T SQL 语句 语句 CREATE DATABASE SIMS 2 数据表的创建 T SQL 语句 语句 用户表用户表 DROP TABLE User CREATE TABLE User unameVARCHAR 20 NOT NULL upassVARCHAR 30 NOT NULL bsINT NOT NULL 学生表学生表 DROP TABLE Student CREATE TABLE Student sno VARCHAR 20 PRIMARY KEY sname VARCHAR 20 NOT NULL sex VARCHAR 2 NOT NULL birth DATE tel VARCHAR 20 qq VARCHAR 20 sdept VARCHAR 20 NOT NULL class VARCHAR 20 NOT NULL address VARCHAR 50 课程表课程表 DROP TABLE Course CREATE TABLE Course cnoVARCHAR 20 PRIMARY KEY cnameVARCHAR 20 NOT NULL cpnoVARCHAR 20 credit FLOAT NOT NULL tnameVARCHAR 20 NOT NULL 成绩表成绩表 DROP TABLE SC CREATE TABLE SC snoVARCHAR 20 cnoVARCHAR 20 gradeFLOAT point FLOAT PRIMARY KEY sno cno Foreign KEY sno REFERENCES Student sno Foreign KEY cno REFERENCES Course cno 3 视图的创建 T SQL 语句 语句 创建创建Stu Cou SC视图视图 DROP VIEW Stu Cou SC CREATE VIEW Stu Cou SC sno sname cno cname credit grade point tel AS SELECT s sno sname o cname credit grade point tel FROM Student s Course c SC sc WHERE s sno sc sno AND o o 4 各模块中的功能实现 a 功能界面 截图 功能界面 截图 管理员登录模块功能截图管理员登录模块功能截图 用户登录用户登录 添加学生信息添加学生信息 更新学生信息更新学生信息 删除学生信息删除学生信息 信息查询信息查询 查询学信息查询学信息 精确查询精确查询 模糊查询模糊查询 用户维护用户维护 添加用户添加用户 修改密码修改密码 帮助帮助 切换用户登录切换用户登录 弹出登录窗体选择学生登录弹出登录窗体选择学生登录 学生登录功能截图学生登录功能截图 信息维护信息维护 信息查询信息查询 b 功能界面简单描述 功能界面简单描述 首先是运行程序 进入用户登录界面 登录是要进行身份验证 在这 登录过程系统会通过数据库中的 User 表存储的数据进行验证 并判断用标 识检查登录的类型 当登录的类型是管理员登录时 登录成功后会进入管理员操作界面 在管理员登录界面中 管理员可以进行管理设置 如 设置学生基本信息 设置课程信息 设置成绩信息 每个设置都有相应的添加 更新 删除操 作 接着是信息查询 在这儿可以查询学生的基本信息 查询课程信息 查询成绩信息 在每一种查询中都分别设置有精确查询和模糊查询等操作 模糊查询使得查询在查询的时候更加方便 还有就是用户维护操作 这里 面管理员可以添加用户 修改登录密码 切换用户登录 最后是帮助中的 关于和系统的退出 当登录类型为学生登录时 登录成功后会进入学生操作界面 在此界 面中学生可以在信息维护下修改登录密码 更新个人基本信息 切换用户 登录 然后也可以查询学生基本信息 查询课程信息 查询成绩信息 同 样查询中也设置有精确查询和模糊查询 最后也有帮助中的关于和系统的 退出 在界面的操作过程中 对一些在操作中可能是操作失误导致的错误进 行了相应的提示 比如成绩的输入必须是字符型数字 出生日期是格式应 为 yyyy MM dd 格式 如果输入格式不对 给出相应的提示 操作人员在给 出对应的正确操作 这使得该系统变得更加智能化 c T SQL 语句与宿主语言嵌套使用代码段语句与宿主语言嵌套使用代码段 JAVA数据库的连接程序数据库的连接程序 private static final String DBDRIVER com microsoft sqlserver jdbc SQLServerDriver private static final String DBURL jdbc sqlserver localhost 1433 DatabaseName SIMS private static final String DBUSER sa private static final String DBPASS 密码为空 private Connection conn null public DatabaseConnection try Class forName DBDRIVER catch ClassNotFoundException e JOptionPane showMessageDialog null e getMessage try conn DriverManager getConnection DBURL DBUSER DBPASS catch SQLException e JOptionPane showMessageDialog null e getMessage public Connection getConnection return this conn public void close if this conn null try this conn close catch SQLException e JOptionPane showMessageDialog null e getMessage 添加用户登录查询块添加用户登录查询块 dbconn new DatabaseConnection 初始化连接类 conn dbconn getConnection 获得连接 String sql SELECT uname upass bs FROM User WHERE uname AND bs PreparedStatement pstmt null try pstmt conn prepareStatement sql pstmt setString 1 getName pstmt setInt 2 user getBs ResultSet rs pstmt executeQuery user setUname null user setUpass null user setBs 2 while rs next user setUname rs getString 1 user setUpass rs getString 2 user setBs rs getInt 3 catch SQLException e JOptionPane showMessageDialog this e getMessage finally if conn null dbconn close 添加登录用户信息添加登录用户信息 PreparedStatement pstmt null ResultSet rs null String sql1 SELECT FROM User WHERE uname AND bs try pstmt conn prepareStatement sql1 pstmt setString 1 username pstmt setInt 2 user getBs rs pstmt executeQuery if rs next String sql3 INSERT INTO User uname upass bs VALUES int i 0 pstmt conn prepareStatement sql3 pstmt setString 1 username pstmt setString 2 pass1 pstmt setInt 3 user getBs i pstmt executeUpdate if i 0 JOptionPane showMessageDialog this 用户添加成功 jTextField1 setText null jPasswordField1 setText null jPasswordField2 setText null jRadioButton1 setSelected false jRadioButton2 setSelected false this setVisible false else JOptionPane showMessageDialog this 用户添加失败 else 在数据表中找到了改用户 JOptionPane showMessageDialog this 对不起 该用户名已经存在 请 使用其他用户名 this jPasswordField1 setText null this jPasswordField2 setText null catch SQLException e1 JOptionPane showMessageDialog this 用户添加失败 数据库操作异常 e1 getMessage finally if conn null dbconn close 修改用户登录密码修改用户登录密码 String sql1 SELECT FROM User WHERE uname AND upass try pstmt conn prepareStatement sql1 pstmt setString 1 uname pstmt setString 2 passtr rs pstmt executeQuery if rs next JOptionPane showMessageDialog this 密码修改失败 输入的旧密码不正 else String sql2 Update User SET upass WHERE uname AND upass int i 0 pstmt conn prepareStatement sql2 pstmt setString 1 pass1 pstmt setString 2 uname pstmt setString 3 passtr i pstmt executeUpdate if i 0 JOptionPane showMessageDialog this 密码修改成功 jPasswordField1 setText null jPasswordField2 setText null jPasswordField3 setText null this setVisible false else JOptionPane showMessageDialog this 密码修改失败 catch SQLException e1 JOptionPane showMessageDialog this 密码修改失败 数据库操作异常 e1 getMessage finally if conn null dbconn close 添加学生基本信息块添加学生基本信息块 String sql1 SELECT FROM Student WHERE sno ResultSet rs null try PreparedStatement pstmt null pstmt conn prepareStatement sql1 pstmt setString 1 stu getSno rs pstmt executeQuery catch SQLException e JOptionPane showMessageDialog this 查询时发生异常为 e getMessage try if rs next JOptionPane showMessageDialog this 该学号的学生已经存在 请使用 其他学号 else String sql2 INSERT INTO Student sno sname sex birth tel qq sdept class address VALUES PreparedStatement pstmt null pstmt conn prepareStatement sql2 pstmt setString 1 stu getSno pstmt setString 2 stu getSname pstmt setString 3 stu getSex pstmt setDate 4 new java sql Date stu getBirth getTime pstmt setString 5 stu getTel pstmt setString 6 stu getQq pstmt setString 7 stu getSdept pstmt setString 8 stu getSclass pstmt setString 9 stu getAddress if pstmt executeUpdate 0 JOptionPane showMessageDialog this 学生信息添加成功 this setVisible false catch SQLException e JOptionPane showMessageDialog this 学生信息添加失败 插入异常为 e getMessage 更新学生信息更新学生信息 String sql1 SELECT FROM Student WHERE sno PreparedStatement pstmt null try pstmt conn prepareStatement sql1 pstmt setString 1 stu getSno ResultSet rs pstmt executeQuery if rs next JOptionPane showMessageDialog this 不存在该学号的学生 不能进行 删除操作 else 该课程的数据存在 进行删除操作 String sql2 DELETE FROM Student WHERE sno pstmt conn prepareStatement sql2 pstmt setString 1 stu getSno if pstmt executeUpdate 0 JOptionPane showMessageDialog this OK 删除成功 catch SQLException e JOptionPane showMessageDialog this 删除失败 e getMessage 删除学生信息删除学生信息 String sql1 SELECT FROM Student WHERE sno PreparedStatement pstmt null try pstmt conn prepareStatement sql1 pstmt setString 1 stu getSno ResultSet rs pstmt executeQuery if rs next JOptionPane showMessageDialog this 不存在这个学号的学生 请重新输 入学号 else stu setSname rs getString 2 stu setSex rs getString 3 stu setBirth rs getDate 4 stu setTel rs getString 5 stu setQq rs getString 6 stu setSdept rs getString 7 stu setSclass rs getString 8 stu setAddress rs getString 9 flag true catch SQLException e JOptionPane showMessageDialog this SQL异常 e getMessage 错误提示 JOptionPane ERROR MESSAGE String sql1 SELECT FROM Student WHERE sno PreparedStatement pstmt null try pstmt conn prepareStatement sql1 pstmt setString 1 stu getSno ResultSet rs pstmt executeQuery all new ArrayList while rs next stu new Student String sno rs getString 1 String sname rs getString 2 String sex rs getString 3 Date birth null try birth new SimpleDateFormat yyyy MM DD parse rs getString 4 catch ParseException e JOptionPane showMessageDialog this 查询得到的日期格式不符合 e getMessage String tel rs getString 5 String qq rs getString 6 String sdept rs getString 7 String sclass rs getString 8 String addr rs getString 9 stu setSno sno stu setSname sname stu setSex sex stu setBirth birth stu setTel tel stu setQq qq stu setSdept sdept stu setSclass sclass stu setAddress addr all add stu if all size 0 JOptionPane showMessageDialog this 没有查询到相关的数据 n else if all size 0 这段是对查询的结果进行显示的代码 这里省略 catch SQLException e JOptionPane showMessageDialog this 查询学生记录失败 查询异常 e getMessage finally if conn null dbconn close 使用模糊查询方式查询学生基本信息使用模糊查询方式查询学生基本信息 String sql2 SELECT FROM Student WHERE sno LIKE OR sname LIKE OR sdept LIKE OR class LIKE PreparedStatement pstmt null try pstmt conn prepareStatement sql2 pstmt setString 1 keyword pstmt setString 2 keyword pstmt setString 3 keyword pstmt setString 4 keyword ResultSet rs pstmt executeQuery all new ArrayList while rs next stu new Student 注意这个句子不能放到外面去 每次都必须重 新产生一个对象 String sno rs getString 1 String sname rs getString 2 String sex rs getString 3 Date birth null try birth new SimpleDateFormat yyyy MM DD parse rs getString 4 catch ParseException e JOptionPane showMessageDialog this 查询得到的日期格式不符合 e getMessage String tel rs getString 5 String qq rs getString 6 String sdept rs getString 7 String sclass rs getString 8 String addr rs getString 9 stu setSno sno stu setSname sname stu setSex sex stu setBirth birth stu setTel tel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论