数据库课程设计报告_第1页
数据库课程设计报告_第2页
数据库课程设计报告_第3页
数据库课程设计报告_第4页
数据库课程设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、课 程 设 计 报 告课程名称 数据库原理课程设计 课题名称 学生信息管理系统 专 业 信息管理与信息系统 班 级 1302 学 号 7 姓 名 陈静 指导教师 曾赛峰、张益星、李峰 2015年 12 月 28 日湖南工程学院课 程 设 计 任 务 书课程名称 数据库原理课程设计 课 题 学生信息管理系统 专业班级 信息管理与信息系统 学生姓名 陈静 学 号 7 指导老师 曾赛峰、张益星、李峰 审 批 任务书下达日期 2015年 12月 28 日任务完成日期 2015年 1 月 8 日目 录1 引言12 需求分析12.1设计内容12.2 系统综合需求12.3 功能需求及模块分析22.3 数据字

2、典33 系统设计43.1 概念结构设计43.2 逻辑结构设计54 详细设计64.1 设计环境64.2存储过程及触发器64.3 数据库的维护74.4 实现的主要技术手段和方法75 心得体会176 参考文献187 附录18一、引言数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。在21世纪的科技时代,科学技术突飞猛进,信息社会的高科技时代,商品经济化的高效益,计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操

3、作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统为教学办公带来了极大的方便。二、需求分析2.1设计内容 数据库系统原理的课程设计要求学生综合利用本课程的有关知识,在教师的指导下,利用特定的数据库设计环境,针对具体的问题,完成从系统的需求分析、数据库的概念设计、数据库的逻辑设计,到数据库实现等设计过程,最终实现一个较为完整的反映应用需求的数据库系统。因此,在设计中,要求学生应该全面考虑各个设计环节以及它们之间的相互联系。2.2系统综合需求高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提

4、高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。2.3功能需求及模块分析 功能需求:能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。系统功能分析是在系统开发的总体任务的基础上完成的。本设计中学生成绩管理系统需要完成的功能主要有:(1) 有关学生信息的基本操作,包括查询所在班级进行学生基本信息操作(查询、修改、删除)、查询某个学生的学生基本信息操作等。 (2

5、)有关学生课程信息的基本操作,包括查询所在班级进行学生所选课程信息操作(查询、修改、删除)、查询某个学生所学课程的基本操作等。 (3)有关学生成绩信息的基本操作,包括查询所在班级进行学生所选课程成绩操作(查询、修改、删除)、查询某个学生所学课程成绩的基本操作等。对各项功能进行集中、分块,按照结构化程序设计的要求,系统功能模块图如下:学生信息管理系统奖学金管理学生成绩管理学生课程管理学生信息管理奖学金删除奖学金更改奖学金添加学生成绩删除学生成绩添加学生成绩更改学生成绩查询学生课程查询学生课程删除学生课程修改学生课程添加学生信息删除学生信息修改学生信息添加学生信息查询2.4数据字典用户的需求具体体

6、现在各种信息的查询、修改、删除,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。针对一般学生信息管理系统的需求,能过对学生学习过程的内容和数据流程分析,设计如下所示的数据项和数据结构:(1)学生信息管理:通过这一模块,可以实现学生基本情况的添加、修改、删除,数据项包括学生学号、学生姓名、性别、年龄、所在系。(2)学生信息查询:通过这一模块,使用查询条件学号,姓名,性别可以查询各个学生的情况,数据项包括学生学号、学生姓名、性别、年龄、所在系。(3)学生成绩管理:通过这一模块,可以实现学生成绩情况的添加、修

7、改、删除,数据项包括学号、课程号、成绩 。(4)学生信息查询:通过这一模块,使用学号查询条件,可以实现学生成绩情况的查询,数据项包括学号、课程号、成绩 。(5)学生课程管理:通过这一模块,可以实现学生课程的添加、修改、删除,数据项包括课程号、课程名、先行课、学分。(6)学生奖学金管理:通过这一模块,可以实现已获奖学金信息的添加、修改、删除,数据项包括学号、姓名、已获奖学金。(7)管理员选项:通过这一模块,可以实现对学生信息管理系统管理人员的添加,数据项包括用户名和密码。数据库表名关系模式名备注student学生学生信息表course课程课程信息表score成绩学生成绩表stu_user用户管理

8、员信息表stujc奖学金学生奖学金信息表三、系统设计3.1概念结构设计概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。首先设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。该设计规划出的实体有:学生实体、课程实体。全局概念模式(E-R图):学生 学 号 姓 名 性 别 年 龄选课课程 成 绩 课程名 课程号 先行课课程学分 系别3.2逻辑结构设计逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本

9、E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系,其关系模式中对每个实体定义的属性如下:学生信息表(学号,姓名,性别,年龄,系别);课程信息表(课程号,课程名,先选课号,学分);学生成绩表(学号,课程号,成绩);用户权限表(UserName,Password);学生奖学金信息表。1. 学生信息表student 学生信息表student列名数据类型可否为空说明snoVARCHAR(50)NOT NU

10、LL学号(主键)snameVARCHAR(50)NULL姓名ssexVARCHAR(50)NULL性别sageVARCHAR(50)NULL年龄sdeptVARCHAR(50)NULL系别2.课程信息表course课程信息表course列名数据类型可否为空说明cnoVARCHAR(50)NOT NULL课程号(主键)cnameVARCHAR(50)NULL课程名cpnoVARCHAR(50)NULL先选课号ccreditVARCHAR(50)NULL学分3学生成绩表score学生成绩表score列名数据类型可否为空说明snoVARCHAR(50)NOT NULL学号(主键)cnoVARCHAR

11、(50)NOT NULL课程号(主键)gradeVARCHAR(50)NULL成绩4管理员信息表stu_user管理员信息表stu_user列名数据类型可否为空说明usernameVARCHAR(50)NOT NULL用户名(主键)passwdVARCHAR(50)NOT NULL密码5学生奖学金信息表stujc管理员信息表stujc列名数据类型可否为空说明snoVARCHAR(50)NOT NULL学号(主键)snameVARCHAR(50) NULL姓名sjcVARCHAR(50)NULL奖学金4、 详细设计4.1设计环境:VMware WorkstationMicrosoft Visua

12、l C+ 6.04.2存储过程及触发器作为数据库应用系统,数据的一致性需要得到保证,通过单纯的手工编码方式,工作烦琐,容易出错,而且不易于扩展。采用DBMS的外码约束,Unique约束,触发器的使用来解决这一问题。 (1)建立数据库(2)创建表创建学生信息表:create table student (sno char(5) not null unique, sname char(20), ssex char(2), sage int, sdept char(12);(3)向数据库中添加信息4.3数据库的维护当试运行数据库合格后,数据库开发工作基本完成,即可投入运行了。但是由于应用环境在不断变

13、化,数据库运行但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高,因为这个数据库系统比较简单,数据量也小,数据库中基本不会发生什么较大的变化,但是还是需要做好数据的备份和维护工作,我们可以利用备份功能对数据进行备份,如果数据库受到破坏或者系统故障,我们就可以利用备份文件恢复数据库的数据,当然也可以利用其他各种方法进行数据维护。4.4实现的主要技术手段和方法一、 创建数据库文件.mdf 1、开始菜单打开Microsoft Visual Stdio2010新建项目选择windows窗体应用程序右键

14、项目名添加新建项选择数据基于服务的数据库2、数据库连接方法SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True);二、学生信息处理1学生信息的管理功能,此部分实现了对学生基本信息添加修改删除操作。关键代码如下namespace stu_managesystem public partial class stu_inf

15、 : Form public stu_inf() InitializeComponent(); SqlConnection myConnection; SqlCommand sqlCommand; private void stu_inf_Load(object sender, EventArgs e) / myConnection = new SqlConnection(); myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf

16、;Integrated Security=True;User Instance=True); sqlCommand = new SqlCommand(); sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student; myConnection.Open(); SqlDataReader dreader = sqlCommand.ExecuteReader(CommandBehavior.CloseCo

17、nnection); while (dreader.Read() ListViewItem newItem = listView1.Items.Add(dreadersno.ToString().Trim(); newItem.SubItems.Add(dreadersname.ToString().Trim(); newItem.SubItems.Add(dreaderssex.ToString().Trim(); newItem.SubItems.Add(dreadersage.ToString().Trim(); newItem.SubItems.Add(dreadersdept.ToS

18、tring().Trim(); dreader.Close(); private void listView1_SelectedIndexChanged(object sender, EventArgs e) if (listView1.SelectedItems.Count 0) textBox1.Text = listView1.SelectedItems0.Text; textBox2.Text = listView1.SelectedItems0.SubItems1.Text; textBox3.Text = listView1.SelectedItems0.SubItems2.Tex

19、t; textBox4.Text = listView1.SelectedItems0.SubItems3.Text; textBox5.Text = listView1.SelectedItems0.SubItems4.Text; private void button1_Click(object sender, EventArgs e) if (button1.Text = 添加) button1.Text = 保存; textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; textBox4.Text = ; textBox5.Text

20、= ; textBox1.Focus(); textBox1.ReadOnly = false; textBox2.ReadOnly = false; textBox3.ReadOnly = false; textBox4.ReadOnly = false; textBox5.ReadOnly = false; button2.Enabled = false; button3.Enabled = false; else sqlCommand.CommandText = insert into student values( + textBox1.Text + , + textBox2.Text

21、 + , + textBox3.Text + , + textBox4.Text + , + textBox5.Text + ); myConnection.Open(); int cmdresults = sqlCommand.ExecuteNonQuery(); myConnection.Close(); if (cmdresults = 1) textBox1.ReadOnly = true; textBox2.ReadOnly = true; textBox3.ReadOnly = true; textBox4.ReadOnly = true; textBox5.ReadOnly =

22、true; button2.Enabled = true; button3.Enabled = true; ListViewItem newItem = listView1.Items.Add(textBox1.Text); newItem.SubItems.Add(textBox2.Text); newItem.SubItems.Add(textBox3.Text); newItem.SubItems.Add(textBox4.Text); newItem.SubItems.Add(textBox5.Text); button1.Text = 添加; MessageBox.Show(插入数据

23、成功); else MessageBox.Show(插入数据失败); void TextBox1TextChanged(object sender, EventArgs e) 2学生信息查询功能,此部分实现了对学生信息的查询功能。关键代码如下namespace stu_managesystem public partial class stu_ser : Form public stu_ser() InitializeComponent(); private SqlDataAdapter sqlDataAdapter; private DataSet dsScore; private void

24、 stu_ser_Load(object sender, EventArgs e) / SqlConnection myConnection = new SqlConnection(); SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True); SqlCommand sqlCommand = new SqlComma

25、nd(); sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student; sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.SelectCommand = sqlCommand; SqlCommandBuilder builder = new SqlCommandBuilder(sqlDataAdapter); dsScore = new Da

26、taSet(); sqlDataAdapter.Fill(dsScore, student); this.BindingContextdsScore, student.PositionChanged += new EventHandler(BindingManagerBase_PositionChanged); dataGridView1.DataSource = dsScore; dataGridView1.DataMember = student; ShowPosition(); /setState(true); private void ShowPosition() int iCnt,

27、iPos; iCnt = this.BindingContextdsScore, student.Count; iPos = this.BindingContextdsScore, student.Position + 1; private void BindingManagerBase_PositionChanged(object sender, EventArgs e) ShowPosition(); private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(学号

28、不能为空); else string a = textBox1.Text; / SqlConnection myConnection = new SqlConnection(); SqlConnection myConnection = new SqlConnection(Data Source=.SQLEXPRESS;AttachDBFilename=|DataDirectory|stu_managesystem.mdf;Integrated Security=True;User Instance=True); SqlCommand sqlCommand = new SqlCommand()

29、; sqlCommand.Connection = myConnection; sqlCommand.CommandType = CommandType.Text; sqlCommand.CommandText = select * from student where sno= + a + ; sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.SelectCommand = sqlCommand; SqlCommandBuilder builder = new SqlCommandBuilder(sqlDataAdapter); ds

30、Score = new DataSet(); sqlDataAdapter.Fill(dsScore, student); this.BindingContextdsScore, student.PositionChanged += new EventHandler(BindingManagerBase_PositionChanged); dataGridView1.DataSource = dsScore; dataGridView1.DataMember = student; ShowPosition(); textBox1.Text = ; 3学生成绩管理,此部分实现了对学生基本成绩添加

31、、修改、删除操作。关键代码与学生信息管理相似4学生成绩查询,此部分实现了对学生成绩的查询操作。 关键代码与学生信息查询相似5.学生课程管理,此部分实现了对学生课程信息的添加、修改、删除操作。关键代码与学生信息管理相似6.学生奖学金管理,此部分实现了对学生已获奖学金信息的添加、修改、删除操作。 关键代码与学生信息管理相似 7.管理员添加,此部分实现了对管理人员添加操作。 关键代码如下namespace stu_managesystem public partial class add_user : Form public add_user() InitializeComponent(); pri

32、vate void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(用户名不能为空); if (textBox2.Text = ) MessageBox.Show( 密码不为空); else string a = textBox1.Text; string b = textBox2.Text; DB_CZ u = new DB_CZ(); string sql = insert into stu_user values( + a + , + b + ); u.ExcSql(sql); MessageBox.Show(添加成功); textBox1.Text = ; textBox2.Text = ; pri

温馨提示

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

评论

0/150

提交评论