找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3527|回复: 0
打印 上一主题 下一主题
收起左侧

Oracle数据库学生成绩管理系统 设计文档下载

[复制链接]
跳转到指定楼层
楼主
ID:475904 发表于 2019-2-12 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目录
1 绪论
1.1 课程意义
2 需求分析
2.1可行性分析
3 系统数据库设计
3.1学生信息表
3.2 课程信息表
4 数据库实现
4.1创建表空间及用户
4.2表创建
4.3存储过程创建
4.4触发器创建
4.5 视图创建
4.6序列创建
5 学生成绩管理系统实现
5.1 用户登录界面
5.2 orcal数据库连接
6 系统测试
6.1 用户登录界面测试
6.2 学生信息表测试
6.3课程信息表测试
6.4选课信息表测试
6.5成绩视图测试
7 课程设计总结

1 绪   论

学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩管理系统是非常必要的。普通的成绩管理浪费了许多的人力和物力,已不能适应时代的发展。在当今信息时代,这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。

1.1 程意

随着高校办学规模的扩大和招生人数的增加,学生成绩管理维护是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,  介于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,  学生也能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。  在现代高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大、不好管,对于一个学校而言,管理好学生的成绩,是非常重要的。因此开发出一套学生成绩管理系统是非常必要的,应用到的技术数据库设计(ER图、关系模式、表设计、存储过程、触发器、视图)应用开发语言VC#访问Oracle数据库。


2 需求分析
2.1可行性分析

2.1.1技术可行性分析

由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,  比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。

2.1.2技术可行性分析

由于本系统采用网络方式,因此投入比较多,但此系统建成后可以直接进行信息查询和修改,本系统以后节省不少人员一因此可以带来一定的经济效益。从经济上是可行的。

2.1.3功能需求

系统涉及到两个实体学生和课程,学生的属性有学号、姓名、专业名、性别、出生日期和备注;课程的属性有课程号、课程名称、开学学期、学时和学分,同时学生可以根据学号和课程号进行选课,学生选课信息的属性有学号、课程号和成绩。系统可以实现数据管理功能,具有学生信息表、课程信息表、学生选课信息表中的数据插入、修改和删除功能;同时具有对数据查询功能:查询学生所有的课程成绩,并按照成绩进行排序;查询学生总学分(如果学生成绩低于60分,则该课程的学分不能记在总分里)



2.1.5关系模式

考生信息表(考生准考证#,姓名,性别,身份证号,考试考点代码(外键),院系名称,考试级别名称)

管理员(管理员id,管理员姓名,管理员密码)

考试信息表(考试信息表的主键,考生准考证号,笔试成绩,上机成绩,总成绩)

院系(院系名字#)

考点信息表(考点代码#,考点名称)

考点管理表(管理员id,考点代码id)

考生信息管理表(考生准考证,管理员id)

成绩信息管理表(管理员id,考试信息的id)

院系查看信息表(院系名称,考试信息表)

性别(男女)

考点代码为整数



3 系统数据库设计
3.1学生信息表

学生信息表中,学号是主码,性别取值是“男”或“女”图3.1

图3.1学生信息表
3.2 课程信息表

课程信息表中,课程号是主码,学分和学时要求大于0,开学学期是数值类型,取值在1和8之间图3.2。

图3.2课程信息表

   3.3选课信息表

学生选课信息表中,采用自增长序列作为主码,学号和课程号是外码,分别参考学生信息表的学号和课程信息表的课程号;成绩采用百分制如图3.3。

图3.3学生选课信息表


4 数据库实现
4.1创建表空间及用户

新建表空间SS和临时表空间SSTemp,新建用户student;如图4.1

图4.1表空间临时表空间

图4.2用户创建
4.2表创建
4.2.1课程信息表

根据关系模式设计出课程信息表如图4.3

图4.3创建课程信息表

4.2.2选课信息表

根据关系模式设计出选课信息表如图4.4

图4.4创建选课信息表

4.2.3学生信息表

根据关系模式设计出学生信息表如图4.5

图4.5创建学生信息表

4.3存储过程创建

4.3.1课程信息表插入的存储过程

课程信息表插入的存储过程在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在插入数据失败如图4.6。


图4.6课程信息表插入的存储

4.3.2课程信息表删除的存储过程

课程信息表删除的存储过程在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在删除数据。

4.7课程信息表删除的存储

4.3.3课程信息表更新的存储过程

课程信息表中更新的存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新数据失败,课程信息表中更新的存储过程如图4.8

   图4.8课程信息表更新的存储过程

4.3.4学生信息表添加的存储过程

学生信息表中添加存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新失败如图4.9

4.9学生信息表中添加存储过程

4.3.5学生信息表删除的存储过程

学生信息表中删除存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新数据失败如图4.10


4.10学生信息表中删除存储过程

4.3.6学生信息表更新的存储过程

学生信息表更新存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新数据失败如图4.11

4.11学生信息表中更新存储过程

4.3.7选课信息表添加的存储过程

选课信息表插入的存储过程在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在插入数据失败如图4.12

4.12选课信息表中插入存储过程

4.3.8选课信息表删除的存储过程

选课信息表中删除存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新数据失败如图4.13

4.12选课信息表中删除存储过程

4.3.9选课信息表更新的存储过程

选课信息表中更新存储过程,在更新之前,查询数据表中是否存在相应记录,存在更新数据,不存在更新数据失败如图4.13

4.13选课信息表中更新存储过程
4.4触发器创建

在删除学生信息时,删除该学生选课信息表中数据触发器图4.14

4.14删除学生信息表触发器

在删除课程时,删除该学生选课信息表中数据触发器图4.15
4.15删除课程信息表触发器
4.5 视图创建

查询所有课程总学分如图4.16


图4.16查询高于60总学分视

查询总成绩视图如图4.17


图4.17查询所有成绩的视
4.6序列创建

创建序列如图4.18

图4.18序列创建


5 学生成绩管理系统实现
5.1 用户登录界面

用户登录界面设计如图5.1

图5.1用户登录界面
5.2 orcal数据库连接

连接Oracle数据库代码如下

   public partial class 登录窗口 : Form
    {
        public 登录窗口()
        {
            InitializeComponent();
        }
        private void login_Click(object sender, EventArgs e)
        {
            String username = txtUsername.Text;
            String password = txtPassword.Text; ;
            String connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=" + username + ";Password=" + password + ";";
            OracleConnection conn;
            conn = new OracleConnection(connstring);
            try
            {
                conn.Open();
                System.IO.File.WriteAllText(@"c:\a.txt", connstring);
               主页面fm1 = new 主页面();
                conn.Close();
                this.Hide();
                fm1.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show("无法登陆请核对用户名,密码核对数据库连接或者约束");
                MessageBox.Show(ex.ToString());
            }
        }
    }
}
            //选课信息表更新
        private void btnSCalter_Click(object sender, EventArgs e)
        {
            String csid = txtCJH.Text.Trim();
            int score = Int32.Parse(cobcsscore.Text);
            int vcount;

                OracleConnection conn = new OracleConnection(connstring);
                conn.Open();
                OracleCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "selectcourse_inf_update";

                cmd.Parameters.Add("v_csid", OracleType.VarChar).Direction = ParameterDirection.Input;
                cmd.Parameters["v_csid"].Value = csid;
                cmd.Parameters.Add("v_score", OracleType.VarChar).Direction = ParameterDirection.Input;
                cmd.Parameters["v_score"].Value = score;

                cmd.Parameters.Add("vresult", OracleType.Number).Direction = ParameterDirection.Output;
                cmd.ExecuteNonQuery();
                vcount = Int32.Parse(cmd.Parameters["vresult"].Value.ToString());
                conn.Close();
                if (vcount == 0)
                {
                    MessageBox.Show("该选课信息不存在,无法更新");
                }
                else
                    if (vcount == 2)
                    {
                        MessageBox.Show("插入数据有误请核对");
                        //MessageBox.Show(sbirthday + "\r\n" + ssex);
                    }
                    else
                        selectcourse_inf_datarefresh();}    登录成功              
6 系统测试
6.1 用户登录界面测试

登录失败测试如图6.1


图6.1登录失败测试

登录成功测试如图6.2

图6.2登录成功测试

6.2 学生信息表测试

学生信息表插入如图6.3

图6.3学生信息表插入
学生信息表重复插入失败如图6.3

图6.3学生信息表重复插入失败

学生信息表修改如图6.4

图6.4学生信息表修改

学生信息表删除如图6.5

图6.5学生信息表删除


6.3课程信息表测试

课程信息表查询如图6.6

图6.6课程信息表查询

课程信息表插入如图6.7

图6.7课程信息表插入

课程信息表插入课时小于0的如图6.8

图6.8课程信息表插入课时小于0

课程信息表插入学期出现异常如图6.9

图6.9课程信息表插入学期出现异常


课程信息表修改如图6.10

图6.10课程信息表修改

课程信息表删除如图6.11


图6.11课程信息表删除

6.4选课信息表测试

选课信息表添加如图6.12

图6.12选课信息表添加

选课信息表重复添加如图6.13

图6.13选课信息表重复添加

选课信息表删除如图6.14

图6.14选课信息表删除

选课信息表修改如图6.15

图6.15选课信息表修改
6.5成绩视图测试

查询总成绩如图6.16

查询总成绩图6.16

查询低于60分不计入总学分如图6.17

图6.17查询低于60分不计入总学分


黑盒子测试用例
6-1黑盒测试

7 课程设计总结

两周的课程设计结束了, 我和同学们一起度过了这段忙 碌而充实的时光。 这次的课程设计深刻的反映出实践是检验 真理的唯一标准这句话的真谛。 课程设计是我们专业课程知 识综合应用的实践训练,是我们迈向社会,从事职业工作前 一个必不少的过程。 “千里之行始于足下” ,通过这次课程设 计,我深深体会到这句千古名言的真正含义。我今天认真的 进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳 健地在社会大潮中奔跑打下坚实的基础。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领 悟,不断获取。最终的检测调试环节,本身就是在践行。

“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于 游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想 到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功 的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收 获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 同时在开发过程中遇见了很多问题,也是在不断地探索。


完整的Word格式文档51黑下载地址:
oracle数 据 库.docx (1.11 MB, 下载次数: 10)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表