安徽工业大学
工商学院
课程设计报告
程 : 数据库课程设计
目 : 学生成绩管理系统
级 : 0841 班
业 : 软件工程
名 : 范刚亮
号 : 081842126
课
题
班
专
姓
学
指 导 教
师
: 王广正
日
期 : 2011.6.6
目 录
一 系统开发平台……………………………………………………………3
二 需求与功能分析…………………………………………………………3
1
三 概要设计………………………………………………………………...4
系统的总体框图或系统功能图
对各部分功能的分析
四 数据库设计……………………………………………………………….5
分析系统存在的实体、属性、以及实体间的联系
画出 ER 模型图
数据库中关系表
五 程序代码设计和实现………………………………………………… 7
写出重点代码(若是代码一定要有相应的功能分析及注释)
六 系统关键技术实现………………………………………………………12
核心功能模块的代码实现
七 系统测试………………………………………………………………….15
各基本功能模块的正确性测试(截图并结合文字说明)
八 总结与展望……………………………………………………………….19
本次课程设计的心得体会与收获
系统存在的问题以及改进的方向
一、系统开发平台
1.1 题目:学生成绩管理系统
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理
者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手
段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如
2
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来
了不少的困难。系统采用 Microsoft Visual Studio 2008 作为开发工具,C# 为开发语言,采用
Microsoft SQL Server 2000 建立数据库,先在 Microsoft SQLServer 2000 中设计并制作各部
分需要调用的数据库,并进行初始数据的输入,再进行界面的设计和事件代码的编写,在指
导老师的帮助下,已经基本上成功地实现了设计要求。其中数据库设计和程序设计是系统的
核心部分。通过对数据库的概念设计、逻辑设计、物理设计和系统的模块设计,使得系统界
面简洁,功能明确,方便了工作人员的操作。
1.2 Microsoft Visual Studio 2008
VS2008 引 入 了 250 多 个 新 特 性 , 整 合 了 对 象 、 关 系型 数 据 、XML 的 访 问 方 式,
语言更加简洁。使用 Visual Studio 2008 可以高效开发 Windows 应用。设计器中可以
实时反映变更,XAML 中智能感知功能可以提高开发效率。同时 Visual Studio 2008 支
持 项目 模 板、 调 试器 和 部署 程 序。Visual Studio 2008 可 以高 效 开发 Web 应 用, 集 成
了 AJAX 1.0,包含 AJAX 项目模板,它还可以高效开发 Office 应用和 Mobile 应用。
1.3 数据库:Microsoft SQL Server 2000
SQL Server 2000 Enterprise Edition 则是一套完整的数据库和分析产品,具有
高度可扩展性和可靠性,对市场的快速反应能力强,可以快速构建各种业务方案,且具
有高度的安全性保障。
二、需求分析与功能分析
2.1 问题的提出:为了高效率的完成学生成绩的管理,决定开发学生成绩管理
系统。
2.2 系统功能基本要求
基本功能:
1.教师:登录功能,输入学生成绩,修改学生成绩,提交成绩,提交后不能再修
改,统计成绩(各分数段人数、及格率等);
学生:登录功能,查询自己选修的每门课程基本信息及成绩;
管理员:登录功能,可以对学生信息、教师信息、课程信息进行维护,导入选
课基本数据等。
2.学生信息包括:学号、姓名、性别、专业、年级等;
3.学生成绩信息包括:学号、课程编号、课程名称、教师号、教师姓名、分数等;
课程信息:包括课程编号、课程名称、学时等;
4.教师信息包括:教师号、教师姓名、性别、职称、教研室等。
2.3 需完成的功能:
1. 能录入、修改、查询、输出学生的档案信息,这些信息包括学生的成绩、课
程、个人信息等。
2. 触发器,索引,存储过程的建立及使用。
三 概要设计
3.1、系统功能表
:
3
学生成绩管理系统
登录系统
学生用户
教师用户
管理员
修
改
密
码
成
绩
查
询
选
课
查
询
退
出
系
统
密
码
服
务
统
计
分
数
成
绩
处
理
查
询
成
绩
选
课
查
询
退
出
系
统
密
码
服
务
更
新
教
师
信
息
更
新
学
生
信
息
更
新
课
程
信
息
查
询
成
绩
修
改
成
绩
退
出
系
统
3.2、对功能的分析
1、 通过用户登录所输入的首个字符判断是管理员,学生还是教师,0 开始表示学生
登录,1 开始表示教师登录,2 开始表示是管理员登录;
2、 进入学生登录界面后,学生可以进行修改密码,成绩查询,选课查询,退出系统
这四项基本操作;
3、 进入教师界面后,密码服务包括修改密码;统计分数包括及格人数和查询不同分
数段人数;成绩处理包括修改成绩和录入成绩;查询成绩包括按学号查询和查询
全部成绩;选课查询,退出系统;
4、 进入管理员界面后,密码服务包括修改密码;更新教师信息包括添加教师,删除
4
教师,修改教师信息;更新学生信息包括添加学生,删除学生,修改教师信息;
更新课程成绩信息包括增加课程,删除课程,修改课程信息;查询成绩包括按学
号查询,按课程查询;修改成绩;退出系统;
四 数据库设计
4.1、分析系统存在的实体、属性、以及实体间的联系
实体:学生,教师,管理员,课程
学生的属性包括学号,姓名,性别,专业,年级
教师的属性包括教师号、教师姓名、性别、职称、教研室
课程的属性包括课程号,课程名,课时
实体间的关系:一个学生可以选多门课程,一对多的关系
一个教师可以教多门课程,一对多的关系
一个课程可以有多个教师教。
4.2、画出 ER 模型图
性别
年级
班级
教师工号
教师姓名
姓名
学号
学 生
教 师
学
教
教研室
性别
职 称
课 程
课程号
课程名称
课时
4.3、数据库中的关系表
1、学生表:
5
2、教师表:
3、管理员表:
4、学生成绩表:
5、成绩表:
6、课程信息:
6
7、选课表:
8、授课表:
五 程序代码设计和实现
第一个登录界面:
public class Login extends JFrame implements ActionListener {
JButton jb1, jb2;
JLabel jl1, jl2, jl3;
JPanel jp1, jp2, jp3, jp4, jp5, jp6;
JTextField jtf1;
JPasswordField jpf;
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
public Login() {
jb1 = new JButton("登录");
jb1.addActionListener(this);
jb2 = new JButton("取消");
jb2.addActionListener(this);
7
jl1 = new JLabel("用户名:");
jl1.setFont(new Font("宋体", 1, 15));
jl2 = new JLabel("密 码:");
jl2.setFont(new Font("宋体", 1, 15));
jl3 = new JLabel("学生成绩管理系统");
jl3.setFont(new Font("楷书", 1, 50));
jl3.setBackground(Color.blue);
jtf1 = new JTextField(10);
jpf = new JPasswordField(10);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp5 = new JPanel();
jp6 = new JPanel();
// jp2.setLayout(new BorderLayout());
this.setLayout(new GridLayout(6, 1));
jp1.add(jl3);
jp2.add(jl1);
jp2.add(jtf1);
jp3.add(jl2);
jp3.add(jpf);
jp6.add(jb1);
jp6.add(jb2);
this.add(jp1);
this.add(jp4);
this.add(jp2);
this.add(jp3);
this.add(jp6);
this.add(jp5);
this.setResizable(false);
this.setIconImage(new ImageIcon("images\\1.jpg").getImage());
this.setTitle("数据库课程设计");
this.setSize(600, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
8