数据库课程设计学生成绩管理系统.docx

上传人:b****7 文档编号:10516610 上传时间:2023-02-17 格式:DOCX 页数:38 大小:542.90KB
下载 相关 举报
数据库课程设计学生成绩管理系统.docx_第1页
第1页 / 共38页
数据库课程设计学生成绩管理系统.docx_第2页
第2页 / 共38页
数据库课程设计学生成绩管理系统.docx_第3页
第3页 / 共38页
数据库课程设计学生成绩管理系统.docx_第4页
第4页 / 共38页
数据库课程设计学生成绩管理系统.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

数据库课程设计学生成绩管理系统.docx

《数据库课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩管理系统.docx(38页珍藏版)》请在冰豆网上搜索。

数据库课程设计学生成绩管理系统.docx

数据库课程设计学生成绩管理系统

 

《数据库》

课程设计说明书

题目:

学生成绩管理系统

院系:

信息与计算机科学系

专业班级:

网络工程

学号:

***********

学生姓名:

***

指导老师:

***

 

一概述

1.1.1问题的提出

随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。

几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。

系统概述:

通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。

基本要求:

完成学生、班级、课程表的维护。

完成成绩表的维护、浏览查找。

按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率。

统计某学生、某学期的所有课程的平均成绩。

完成用户管理功能。

完成数据备份与恢复功能,

1.1.2本课题的意义

通过该课程设计,可以达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

1.2设计环境

①  Sqlserver2005

二需求分析

2.1系统功能要求设计

此系统实现如下系统功能:

(1)使得学生的成绩管理工作更加清晰、条理化、自动化。

(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。

容易地完成学生信息的查询操作。

(3)设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

 

2.2系统模块设计

成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;

2.3数据字典

数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

利用SQLServer2000建立“学生选课”数据库,其基本表清单及表结构描述如下:

数据库中用到的表:

数据库表名

关系模式名称

备注

Student

学生表

学生学籍信息表

Course

课程表

课程基本信息表

Teach

教师表

教师基本信息

Stu_Cour

选课表

学生选课信息

Score

成绩

选课成绩信息表

Student基本情况数据表,结构如下:

字段名

字段类型

NotNull

说明

Sno

Char

Primarykey

学号

Sname

char

NotNull

学生姓名

Sdept

char

学院

Sclass

char

班级

Sage

intr

年龄

Ssex

char

性别

Teach基本情况数据表,结构如下

字段名

字段类型

NotNull

说明

Tno

Char

Primarykey

教师号

Tname

char

NotNull

教师姓名

Tsex

char

性别

Cno

char

外部码

所授课程

Tage

int

年龄

Tdept

char

学院

Course数据表,结构如下:

字段名

字段类型

约束控制

说明

Cno

char

主键(primarykey)

课程号

Cname

char

notnull

课程名称

Ctime

int

notnull

课时

 

Stu_cour情况数据表,结构如下:

字段名

字段类型

约束控制

说明

Cno

char

外部键

课程号

Sno

char

外部键

学号

Score情况数据表,结构如下:

字段名

字段类型

约束控制

说明

Cno

char

外部键

课程号

Sno

char

外部键

学号

score

int

成绩

 

三概念模型设计

由需求分析的结果可知,本系统设计的实体包括:

(1)学生基本信息:

学号,姓名,学院,班级,年龄,性别。

(2)课程基本信息:

课程名,课程号,学时。

(3)教师基本信息:

教师号,教师姓名,职称,年龄,性别,学院

(4)学院基本信息:

学院名、学院号、院长姓名

这些实体间的联系包括:

(1)每位学生可以学习多门课程,每门课程可供多位学生学习。

(2)每门课可以由多个老师教,每个老师可以教多门课程

(3)学生每选一门课就可以得到一个成绩,不选此课就不能取得该课程成绩

 

由上述分析可得到系统的E—R图:

 

四逻辑和物理结构设计

4.1由系统E—R图转化而得到的关系模式如下:

(1)学生(学号,姓名,性别,年龄,学院,班级),其主关键字为学号;

(2)课程(课程名,课程号,学时),其中主关键字为课程号;

(3)教师(教师号,教师姓名,职称,年龄,性别,学院,所授课程号)

(4)选课(课程号,学号)其中主关键字为学号和课程号

(4)成绩(课程号,学号,分数)其中主关键字为学号和课程号。

 

4.2确定关系模型的存取方法

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。

可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。

在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:

在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。

才能充分利用索引的作用避免因索引引起的负面作用。

4.3确定数据库的存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

因为该成绩管理系统的数据量小,,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。

(1)创建学生基本信息表:

CREATETABLEStudent(

SNOCHAR(5),

SNAMECHAR(10)NOTNULL,

SDEPTCHAR

(2)NOTNULL,

SCLASSCHAR

(2)NOTNULL,

SAGENUMBER

(2),

SSEXCHAR

(2),

CONSTRAINTSNO_PKPRIMARYKEY(SNO));

2,创建表Course

CREATETABLECourse(

CNOCHAR(3),

CNAMEVARCHAR2(16),

CTIMENUMBER(3),

CONSTRAINTCNO_PKPRIMARYKEY(CNO)

3,创建表Teach

CREATETABLETeach(

TNOVARCHAR(6),

TNAMEVARCHAR(8),

TSEXCHAR

(2),

CNOCHAR(3),

TAGENUMBER

(2),

TDEPTCHAR

(2),

CONSTRAINTTT_PKPRIMARYKEY(TNO),

CONSTRAINTCNO_FKFOREIGNKEY(CNO)REFERENCESCourse(CNO)

 

4,创建表Stu_cno

CREATETABLEScore(

SNOCHAR(5),

CNOCHAR(3),

CONSTRAINTSC_PKPRIMARYKEY(SNO,CNO),

CONSTRAINTSNO_FKFOREIGNKEY(SNO)REFERENCESStudent(SNO),

CONSTRAINTCNOM_FKFOREIGNKEY(CNO)REFERENCESCourse(CNO)

 

5.创建成绩表

CREATETABLEScore(

SNOCHAR(5),

CNOCHAR(3),

SCORENUMBER(5,2),

CONSTRAINTSC_PKPRIMARYKEY(SNO,CNO),

CONSTRAINTSNO_FKFOREIGNKEY(SNO)REFERENCESStudent(SNO),

CONSTRAINTCNOM_FKFOREIGNKEY(CNO)REFERENCESCourse(CNO)

CONSTRAINTScore_FKFOREIGNKEY(SNO,CNO)REFERENCESStu_cno(SNO,CNO)

 

二、插入数据

1,Student

INSERTINTOStudentVALUES('96001','马小燕','CS','01',21,'女');

INSERTINTOStudentVALUES('96002','黎明','CS','01',18,'男');

INSERTINTOStudentVALUES('96003','刘东明','MA','01',18,'男');

INSERTINTOStudentVALUES('96004','赵志勇','IS','02',20,'男');

INSERTINTOStudentVALUES('97001','马蓉','MA','02',19,'女');

INSERTINTOStudentVALUES('97002','李成功','CS','01',20,'男');

INSERTINTOStudentVALUES('97003','黎明','IS','03',19,'女');

INSERTINTOStudentVALUES('97004','李丽','CS','02',19,'女');

INSERTINTOStudentVALUES('96005','司马志明','CS','02',18,'男');

2,Course

INSERTINTOCourseVALUES('001','数学分析',144);

INSERTINTOCourseVALUES('002','普通物理',144);

INSERTINTOCourseVALUES('003','微机原理',72);

INSERTINTOCourseVALUES('004','数据结构',72);

INSERTINTOCourseVALUES('005','操作系统',64);

INSERTINTOCourseVALUES('006','数据库原理',64);

INSERTINTOCourseVALUES('007','DB_Design',48);

INSERTINTOCourseVALUES('008','程序设计',56);

 

3,Teach

INSERTINTOTeachVALUES('9401','王成钢','男','004',35,'CS');

INSERTINTOTeachVALUES('9402','李正科','男','003',40,'CS');

INSERTINTOTeachVALUES('9403','严敏','女','001',33,'MA');

INSERTINTOTeachVALUES('9404','赵高','男','004',28,'IS');

INSERTINTOTeachVALUES('9405','李正科','男','003',32,'MA');

INSERTINTOTeachVALUES('9406','李玉兰','女','006',43,'CS');

INSERTINTOTeachVALUES('9407','王成钢','男','004',49,'IS');

INSERTINTOTeachVALUES('9408','马悦','女','008',35,'CS');

INSERTINTOTeachVALUES('9409','王成钢','男','007',48,'CS');

 

4,Score

INSERTINTOScoreVALUES('96001','001',77.5);

INSERTINTOScoreVALUES('96001','003',89);

INSERTINTOScoreVALUES('96001','004',86);

INSERTINTOScoreVALUES('96001','005',82);

INSERTINTOScoreVALUES('96002','001',88);

INSERTINTOScoreVALUES('96002','003',92.5);

INSERTINTOScoreVALUES('96002','006',90);

INSERTINTOScoreVALUES('96005','004',92);

INSERTINTOScoreVALUES('96005','005',90);

INSERTINTOScoreVALUES('96005','006',89);

INSERTINTOScoreVALUES('96005','007',76);

INSERTINTOScoreVALUES('96003','001',69);

INSERTINTOScoreVALUES('97001','001',96);

INSERTINTOScoreVALUES('97001','008',95);

INSERTINTOScoreVALUES('96004','001',87);

INSERTINTOScoreVALUES('96003','003',91);

INSERTINTOScoreVALUES('97002','003',91);

INSERTINTOScoreVALUES('97002','004','');

INSERTINTOScoreVALUES('97002','006',92);

INSERTINTOScoreVALUES('97004','005',90);

INSERTINTOScoreVALUES('97004','006',85);

INSERTINTOScoreVALUES('97004','008',75);

INSERTINTOScoreVALUES('97003','001',59);

INSERTINTOScoreVALUES('97003','003',58)

五数据库的实施与维护

5.1数据库的实施:

此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。

首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。

部分截图和代码如下:

 

学生表的增删改查:

 

增加学生信息

\

 

更新学生信息

 

删除学生信息

 

学生表增加、删除、修改代码(部分)

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Data.OracleClient;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceMyProgram

{

publicpartialclassForm3:

Form

{

privatestringConnectionString="DataSource=ahut;"+

"UserID=Scott;Password=123456";

privateOracleConnectionconn=null;

privateOracleDataAdapterDataAdapter=null;

privateDataSetdataset=null;

//privateOracleCommandcommand=null;

publicForm3()

{

InitializeComponent();

}

privatevoidForm3_Load(objectsender,EventArgse)

{

conn=newOracleConnection(ConnectionString);

showData();

}

privatevoidshowData()

{

stringtname="";

try

{

if(conn==null)

conn.Open();

DataAdapter=newOracleDataAdapter("select*fromstudent",conn);

dataset=newDataSet();

DataAdapter.Fill(dataset);

dataGridView1.DataSource=dataset;

dataGridView1.DataMember=dataset.Tables[0].ToString();

tname=dataset.Tables[0].ToString();

//先清除所有绑定,然后再重新绑定

textBox1.DataBindings.Clear();

textBox2.DataBindings.Clear();

textBox3.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.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(Exceptionex)

{

MessageBox.Show(ex.ToString());

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringstrOracle="insertintostudentvalues(";

strOracle+="'"+textBox1.Text;//学号

strOracle+="','"+textBox2.Text;//姓名

strOracle+="','"+textBox3.Text;//学院

strOracle+="','"+textBox4.Text;//班级

strOracle+="',"+textBox5.Text;//年龄

strOracle+=",'"+textBox6.Text+"')";//性别

OracleCommandcommand=null;

try

{

command=newOracleCommand();

command.Connection=conn;

command.CommandText=strOracle;

conn.Open();

intn=command.ExecuteNonQuery();//执行Insert语句

if(n>0)

MessageBox.Show("成功插入数据!

");

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

if(conn!

=null)

conn.Close();

command.Dispose();

}

showData();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

Form7f7=newForm7();

f7.Show();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

try

{

OracleCommandBuilderbuilder=newOracleCommandBuilder(DataAdapter);

intn=DataAdapter.Update(dataset,"Table");

MessageBox.Show("成功更新数据,有"+n.ToString()+"行受到更新!

");

}

catch

{

MessageBox.Show("更新不成功!

");

}

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

stringcurNo="";

if(dataGridView1.Rows.Count<=1)

return;

intindex=dataGridView1.CurrentRow.Index;

dataGridView1.Rows[index].Selected=true;

curNo=this.dataGridView1.Rows[index].Cells[0].Value.ToString();

OracleCommandcommand=null;

stringstrOracle="deletefromstudentwheresno='"+curNo+"'";

try

{

co

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1