![数据库课程设计--学生选课成绩管理系统_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a66288a1-31c6-4396-a22f-7eb6465c1c65/a66288a1-31c6-4396-a22f-7eb6465c1c651.gif)
![数据库课程设计--学生选课成绩管理系统_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a66288a1-31c6-4396-a22f-7eb6465c1c65/a66288a1-31c6-4396-a22f-7eb6465c1c652.gif)
![数据库课程设计--学生选课成绩管理系统_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a66288a1-31c6-4396-a22f-7eb6465c1c65/a66288a1-31c6-4396-a22f-7eb6465c1c653.gif)
![数据库课程设计--学生选课成绩管理系统_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a66288a1-31c6-4396-a22f-7eb6465c1c65/a66288a1-31c6-4396-a22f-7eb6465c1c654.gif)
![数据库课程设计--学生选课成绩管理系统_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a66288a1-31c6-4396-a22f-7eb6465c1c65/a66288a1-31c6-4396-a22f-7eb6465c1c655.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统概论课程设计实验报告书姓名:学号:专业:软件工程班级:软093班学院:计算机 一 概述1.1.1 问题的提出 随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。基本要求:完成学生、班级、课程表的维护。 完成成绩表的维护、浏览查找 。 按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率。统计某学生、某学期的所有课程
2、的平均成绩。 完成用户管理功能。 完成数据备份与恢复功能,1.1.2 本课题的意义通过该课程设计,可以达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1.2设计环境 Oracle 11G C# .net平台二 需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。(3) 设计人机友好界面,功能安排合
3、理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。登陆失败学生管理课程管理退出系统用户验证成绩查询登陆成功教师管理2.2 系统模块设计成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块; 2.3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建
4、立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student学生表学生学籍信息表Course课程表课程基本信息表Teach教师表教师基本信息Stu_Cour选课表学生选课信息Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null说明SnoCharPrimary key学号SnamecharNot Null学生姓名Sdeptchar学院Sclasschar班级Sageintr年龄Ssexchar性别Teach基本情况数据表,结构如下字段名字段类型Not Null说明TnoCharPrimary key教
5、师号TnamecharNot Null教师姓名Tsexchar性别Cnochar外部码所授课程Tageint年龄Tdeptchar学院Course数据表,结构如下:字段名字段类型约束控制说明Cnochar主键(primary key)课程号Cnamecharnot null课程名称Ctimeintnot null课时Stu_cour情况数据表,结构如下:字段名字段类型约束控制说明Cnochar外部键课程号Snochar外部键学号Score情况数据表,结构如下:字段名字段类型约束控制说明Cnochar外部键课程号Snochar外部键学号scoreint成绩三 概念模型设计由需求分析的结果可知,本
6、系统设计的实体包括:(1)学生基本信息:学号,姓名,学院,班级,年龄,性别。(2)课程基本信息: 课程名,课程号,学时。(3)教师基本信息:教师号,教师姓名,职称,年龄,性别,学院(4)学院基本信息:学院名、学院号、院长姓名这些实体间的联系包括:(1) 每位学生可以学习多门课程,每门课程可供多位学生学习。(2) 每门课可以由多个老师教,每个老师可以教多门课程(3) 学生每选一门课就可以得到一个成绩,不选此课就不能取得该课程成绩由上述分析可得到系统的ER图:选修课程成绩学生课程号课程名学时学分分数学号姓名性别系别 地址年龄教授拥有学院代码拥有学院职称教师教师号学院名学院性别教师名院长名四 逻辑和
7、物理结构设计4.1由系统ER图转化而得到的关系模式如下:(1)学生(学号,姓名,性别,年龄,学院,班级),其主关键字为学号;(2)课程(课程名,课程号,学时),其中主关键字为课程号;(3)教师(教师号,教师姓名,职称,年龄,性别,学院,所授课程号)(4)选课(课程号,学号)其中主关键字为学号和课程号(4)成绩(课程号,学号,分数)其中主关键字为学号和课程号。4.2 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计
8、中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.3 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。(1)创
9、建学生基本信息表:CREATE TABLE Student ( SNO CHAR(5) , SNAME CHAR(10) NOT NULL, SDEPT CHAR(2) NOT NULL, SCLASS CHAR(2) NOT NULL, SAGE NUMBER(2), SSEX CHAR(2),CONSTRAINT SNO_PK PRIMARY KEY(SNO);2,创建表CourseCREATE TABLE Course(CNO CHAR(3),CNAME VARCHAR2(16) ,CTIME NUMBER(3),CONSTRAINT CNO_PK PRIMARY KEY(CNO)3,创
10、建表Teach CREATE TABLE Teach( TNO VARCHAR(6), TNAME VARCHAR(8), TSEX CHAR(2), CNO CHAR(3), TAGE NUMBER(2), TDEPT CHAR(2), CONSTRAINT TT_PK PRIMARY KEY(TNO), CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)4,创建表Stu_cnoCREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),CONSTRAINT SC_PK PRIMARY KEY(SNO,
11、CNO),CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO),CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)5.创建成绩表CREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO),CONSTRAINT CN
12、OM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)CONSTRAINT Score_FK FOREIGN KEY(SNO,CNO) REFERENCES Stu_cno(SNO,CNO)二、插入数据1,StudentINSERT INTO Student VALUES('96001','马小燕','CS','01',21,'女');INSERT INTO Student VALUES('96002','黎明','CS','
13、;01',18,'男');INSERT INTO Student VALUES('96003','刘东明','MA','01',18,'男');INSERT INTO Student VALUES('96004','赵志勇','IS','02',20,'男');INSERT INTO Student VALUES('97001','马蓉','MA','02&
14、#39;,19,'女');INSERT INTO Student VALUES('97002','李成功','CS','01',20,'男');INSERT INTO Student VALUES('97003','黎明','IS','03',19,'女');INSERT INTO Student VALUES('97004','李丽','CS','02',
15、19,'女');INSERT INTO Student VALUES('96005','司马志明','CS','02',18,'男'); 2,CourseINSERT INTO Course VALUES('001','数学分析',144);INSERT INTO Course VALUES('002','普通物理',144);INSERT INTO Course VALUES('003','微机原理',
16、72);INSERT INTO Course VALUES('004','数据结构',72);INSERT INTO Course VALUES('005','操作系统',64);INSERT INTO Course VALUES('006','数据库原理',64);INSERT INTO Course VALUES('007','DB_Design',48);INSERT INTO Course VALUES('008','程序设计'
17、,56);3,TeachINSERT INTO Teach VALUES('9401','王成钢','男','004',35,'CS');INSERT INTO Teach VALUES('9402','李正科','男','003',40,'CS');INSERT INTO Teach VALUES('9403','严敏','女','001',33,'MA'
18、);INSERT INTO Teach VALUES('9404','赵高','男','004',28,'IS');INSERT INTO Teach VALUES('9405','李正科','男','003',32,'MA');INSERT INTO Teach VALUES('9406','李玉兰','女','006',43,'CS');INSERT I
19、NTO Teach VALUES('9407','王成钢','男','004',49,'IS');INSERT INTO Teach VALUES('9408','马悦','女','008',35,'CS');INSERT INTO Teach VALUES('9409','王成钢','男','007',48,'CS');4,ScoreINSERT INTO
20、 Score VALUES('96001','001',77.5);INSERT INTO Score VALUES('96001','003',89);INSERT INTO Score VALUES('96001','004',86);INSERT INTO Score VALUES('96001','005',82);INSERT INTO Score VALUES('96002','001',88);INSERT INTO Sc
21、ore VALUES('96002','003',92.5);INSERT INTO Score VALUES('96002','006',90);INSERT INTO Score VALUES('96005','004',92);INSERT INTO Score VALUES('96005','005',90);INSERT INTO Score VALUES('96005','006',89);INSERT INTO Score
22、 VALUES('96005','007',76);INSERT INTO Score VALUES('96003','001',69);INSERT INTO Score VALUES('97001','001',96);INSERT INTO Score VALUES('97001','008',95);INSERT INTO Score VALUES('96004','001',87);INSERT INTO Score VALU
23、ES('96003','003',91);INSERT INTO Score VALUES('97002','003',91);INSERT INTO Score VALUES('97002','004','');INSERT INTO Score VALUES('97002','006',92);INSERT INTO Score VALUES('97004','005',90);INSERT INTO Score V
24、ALUES('97004','006',85);INSERT INTO Score VALUES('97004','008',75);INSERT INTO Score VALUES('97003','001',59);INSERT INTO Score VALUES('97003','003',58) 五 数据库的实施与维护5.1 数据库的实施:此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分
25、析和改仅,数据库的重组和重构等。首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。部分截图和代码如下:学生表的增删改查:增加学生信息更新学生信息删除学生信息学生表增加、删除、修改代码(部分)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OracleClient;using System.Drawing;using System.Linq;using System.Text;using System.Wind
26、ows.Forms;namespace MyProgram public partial class Form3 : Form private string ConnectionString = "Data Source=ahut;" + "User ID=Scott;Password=123456" private OracleConnection conn = null; private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; / private Or
27、acleCommand command= null; public Form3() InitializeComponent(); private void Form3_Load(object sender, EventArgs e) conn = new OracleConnection(ConnectionString); showData(); private void showData() string tname = "" try if (conn = null) conn.Open(); DataAdapter = new OracleDataAdapter(&q
28、uot;select * from student", conn); dataset = new DataSet(); DataAdapter.Fill(dataset); dataGridView1.DataSource = dataset; dataGridView1.DataMember = dataset.Tables0.ToString(); tname = dataset.Tables0.ToString(); /先清除所有绑定,然后再重新绑定 textBox1.DataBindings.Clear(); textBox2.DataBindings.Clear(); te
29、xtBox3.DataBindings.Clear(); textBox4.DataBindings.Clear(); textBox5.DataBindings.Clear(); textBox6.DataBindings.Clear(); textBox1.DataBindings.Add("Text", dataset, "table.sno"); textBox2.DataBindings.Add("Text", dataset, "table.sname"); textBox3.DataBindings.
30、Add("Text", dataset, "table.sdept"); textBox4.DataBindings.Add("Text", dataset, "table.sclass"); textBox5.DataBindings.Add("Text", dataset, "table.sage"); textBox6.DataBindings.Add("Text", dataset, "table.ssex"); catch (
31、Exception ex) MessageBox.Show(ex.ToString(); private void button1_Click(object sender, EventArgs e) string strOracle = "insert into student values(" strOracle += "'" + textBox1.Text;/学号 strOracle += "','" + textBox2.Text;/姓名 strOracle += "','&qu
32、ot; + textBox3.Text;/学院 strOracle += "','" + textBox4.Text;/班级 strOracle += "'," + textBox5.Text;/年龄 strOracle += ",'" + textBox6.Text + "')"/性别 OracleCommand command = null; try command = new OracleCommand(); command.Connection = conn; com
33、mand.CommandText = strOracle; conn.Open(); int n = command.ExecuteNonQuery();/执行Insert语句 if (n > 0) MessageBox.Show("成功插入数据!"); catch (Exception ex) MessageBox.Show(ex.Message); finally if (conn != null) conn.Close(); command.Dispose(); showData(); private void button2_Click(object send
34、er, EventArgs e) Form7 f7 = new Form7(); f7.Show(); private void button3_Click(object sender, EventArgs e) try OracleCommandBuilder builder = new OracleCommandBuilder(DataAdapter); int n = DataAdapter.Update(dataset, "Table"); MessageBox.Show("成功更新数据,有" + n.ToString() + "行受到
35、更新!"); catch MessageBox.Show("更新不成功!"); private void button4_Click(object sender, EventArgs e) string curNo = "" if (dataGridView1.Rows.Count <= 1) return; int index = dataGridView1.CurrentRow.Index; dataGridView1.Rowsindex.Selected = true; curNo = this.dataGridView1.Rows
36、index.Cells0.Value.ToString(); OracleCommand command = null; string strOracle = "delete from student where sno='" + curNo + "'" try command = new OracleCommand(); command.Connection = conn; command.CommandText = strOracle; conn.Open(); int n = command.ExecuteNonQuery(); c
37、atch (Exception ex) MessageBox.Show(ex.Message); finally if (conn != null) conn.Close(); command.Dispose(); showData(); MessageBox.Show("成功删除一行!"); 选择检索条件(学生表查询)学生表查询代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OracleClient
38、;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace MyProgram public partial class Form7 : Form private string ConnectionString = "Data Source=ahut;" + "User ID=Scott;Password=123456" private OracleConnection conn = null; private OracleD
39、ataAdapter DataAdapter = null; private DataSet dataset = null; private OracleCommand cmd = null; public Form7() InitializeComponent(); private void Form7_Load(object sender, EventArgs e) try conn = new OracleConnection(ConnectionString); conn.Open(); DataAdapter = new OracleDataAdapter(); dataset =
40、new DataSet(); cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT * from student" DataAdapter.SelectCommand = cmd; DataAdapter.Fill(dataset, "t1"); comboBox1.Items.Clear(); for (int i = 0; i < dataset.Tables"t1".Columns.Count; i+) comboBox1.I
41、tems.Add(dataset.Tables"t1".Columnsi.ToString(); dataset.Clear(); comboBox2.Items.Add("="); comboBox2.Items.Add("<"); comboBox2.Items.Add(">"); comboBox2.Items.Add("like"); catch (Exception ex) MessageBox.Show(ex.Message); private void button1_
42、Click(object sender, EventArgs e) string tb1 = textBox1.Text; if (comboBox2.Text = "like") tb1 = "%" + textBox1.Text + "%" string strOracle = "select * from student where" strOracle += " " + comboBox1.Text + " " + comboBox2.Text + " &q
43、uot; + "'" + tb1 + "'" try cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear(); DataAdapter.Fill(dataset, "t1"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = "t1" catch MessageBox.Show("请正确设置检索条件!")
44、; finally if (conn != null) conn.Close(); 教师表信息成绩表信息学生成绩检索(单表操作)按照课程检索最高分、最低分和平均分按照课程检索选课总数按照个人检索最高分、最低分和平均分按照班级检索最高分、最低分和平均分按照班级检索选课总数成绩表查询代码#include "stdafx.h"using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OracleClient;using
45、System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace MyProgram public partial class Form9 : Form private string ConnectionString = "Data Source=ahut;" + "User ID=Scott;Password=123456" private OracleConnection conn = null; private OracleDataAdap
46、ter DataAdapter = null; private DataSet dataset = null; private OracleCommand cmd = null; public Form9() InitializeComponent(); private void button1_Click(object sender, EventArgs e) string tb1 = textBox1.Text; if (comboBox2.Text = "like") tb1 = "%" + textBox1.Text + "%"
47、; string strOracle = "select * from score where" strOracle += " " + comboBox1.Text + " " + comboBox2.Text + " " + "'" + tb1 + "'" try cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear(); DataAdapter.Fill(da
48、taset, "t1"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = "t1" catch MessageBox.Show("请正确设置检索条件!"); finally if (conn != null) conn.Close(); private void Form9_Load(object sender, EventArgs e) try conn = new OracleConnection(ConnectionString); conn.Ope
49、n(); DataAdapter = new OracleDataAdapter(); dataset = new DataSet(); cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "SELECT * from score" DataAdapter.SelectCommand = cmd; DataAdapter.Fill(dataset, "t1"); comboBox1.Items.Clear(); for (int i = 0; i < dataset
50、.Tables"t1".Columns.Count; i+) comboBox1.Items.Add(dataset.Tables"t1".Columnsi.ToString(); dataset.Clear(); comboBox2.Items.Add("="); comboBox2.Items.Add("<"); comboBox2.Items.Add(">"); comboBox2.Items.Add("like"); comboBox3.Items.Add("Max(score)"); comboBox3.Items.Add("Min(score)"); comb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB37-T 4660-2023 浮桥承压舟船壳涂装技术要求
- 规划放线申请书
- 免学金申请书
- 入团申请书个人简介
- 2024-2025学年高中物理第1章电磁感应第4节法拉第电磁感应定律学案粤教版选修3-2
- 退社团申请书2000字
- 2024-2025学年新教材高中地理第六章自然灾害6.1.1旱涝灾害练习含解析新人教版必修第一册
- 二零二五版盆景园艺设施销售与安装合同3篇
- 声乐团申请书
- 2025年度农业科技实习生劳动合同
- 产品设计思维 课件 第1章 产品设计思维概述
- 儿童和青少年高尿酸血症的预防和管理
- 中国移动企业文化理念体系
- 混合动力汽车构造与检修(高职新能源汽车专业)PPT完整全套教学课件
- 佛教寺院修缮方案
- 质量部架构图
- 灭火器使用常识培训课件
- 小学体育《运动前后的饮食卫生》课件
- 薪酬专员岗位月度KPI绩效考核表
- 结构化学-第1章讲义课件
- 2015奔驰c180l c200l c3电路图9129座椅电气系统
评论
0/150
提交评论