数据库课程设计学生信息管理系统.docx
- 文档编号:3286592
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:16
- 大小:416.88KB
数据库课程设计学生信息管理系统.docx
《数据库课程设计学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生信息管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
数据库课程设计学生信息管理系统
数据库课程设计报告
—学生信息管理系统
学校:
佳木斯大学
学院:
信息电子技术学院
年级:
09级
专业:
计算机科学与技术
姓名:
XXX
学号:
XXXXXXXXX
指导教师:
XX
一、课程设计选题的意义
此次课程设计可以使我经历一个数据库系统开发的全过程并受到一次综合的训练,以便能较为全面的理解掌握和综合运用所学的的知识去分析解决实际问题。
数据库课程设计使用的数据库软件是MicrosoftSQLServer2005,使用的工具是C#,通过建立数据库的连接使整个学生信息管理系统更加完善。
二、需求分析
2.1需求分析的任务
需求分析的主要任务是通过详细调查佳木斯大学的学生信息管理系统,充分了解原系统工作概况,明确各种需求然后在此基础上确定新系统的功能。
对数据库的要求有信息、处理、安全性与完整性的要求。
2.2需求分析的方法
通过进入各个大学的学生信息管理系统的深入了解,界面分析、询问,还有各种书籍上的介绍,再加上我作为一名学生自身对学生信息管理系统的了解等对整体课程设计的进行了详细的分析。
2.3数据字典
用户的需求具体体现在各种信息的查询、修改、删除,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
针对一般学生信息管理系统的需求,能过对学生学习过程的内容和数据流程分析,设计如下所示的数据项和数据结构:
●学生信息管理:
通过这一模块,可以实现学生基本情况的添加、修改、删除,数据项包括学生学号、学生姓名、性别、年龄、所在系。
●学生信息查询:
通过这一模块,使用查询条件学号,姓名,性别可以查询各个学生的情况,数据项包括学生学号、学生姓名、性别、年龄、所在系。
●学生成绩管理:
通过这一模块,可以实现学生成绩情况的添加、修改、删除,数据项包括学号、课程号、成绩。
●学生信息查询:
通过这一模块,使用学号查询条件,可以实现学生成绩情况的查询,数据项包括学号、课程号、成绩。
●学生课程管理:
通过这一模块,可以实现学生课程的添加、修改、删除,
数据项包括课程号、课程名、先行课、学分。
●学生奖学金管理:
通过这一模块,可以实现已获奖学金信息的添加、修改、删除,数据项包括学号、姓名、已获奖学金。
●管理员选项:
通过这一模块,可以实现对学生信息管理系统管理人员的添加,数据项包括用户名和密码。
三、数据库的概念设计
首先设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
该设计规划出的实体有:
学生实体、课程实体。
四、数据库的逻辑设计
现在需要将上面的数据库概念结构转化为SQLServer2005数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,开成数据库中的表格以及各个表格之间的关系。
学生信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。
1.学生基本信息表student
学生基本信息表student
列名
数据类型
可否为空
说明
sno
VARCHAR(50)
NOTNULL
学号(主键)
sname
VARCHAR(50)
NULL
姓名
ssex
VARCHAR(50)
NULL
性别
sage
VARCHAR(50)
NULL
年龄
sdept
VARCHAR(50)
NULL
所在系
2.课程基本信息表course
课程基本信息表course
列名
数据类型
可否为空
说明
cno
VARCHAR(50)
NOTNULL
课程号(主键)
cname
VARCHAR(50)
NULL
课程名
cpno
VARCHAR(50)
NULL
先行课
ccredit
VARCHAR(50)
NULL
课程学分
3学生成绩信息表sc
学生成绩信息表sc
列名
数据类型
可否为空
说明
sno
VARCHAR(50)
NOTNULL
学号(主键)
cno
VARCHAR(50)
NOTNULL
课程号(主键)
grade
VARCHAR(50)
NULL
成绩
4管理员信息表stu_user
管理员信息表stu_user
列名
数据类型
可否为空
说明
username
VARCHAR(50)
NOTNULL
用户名(主键)
passwd
VARCHAR(50)
NOTNULL
密码
5学生奖学金信息表stujc
管理员信息表stujc
列名
数据类型
可否为空
说明
sno
VARCHAR(50)
NOTNULL
学号(主键)
sname
VARCHAR(50)
NULL
姓名
sjc
VARCHAR(50)
NULL
奖学金
五、系统完成的主要功能
系统功能分析是在系统开发的总体任务的基础上完成的。
本设计中学生信息管理系统需要完成的功能主要有:
●有关学生学籍信息的基本操作,包括查询所在班级进行学生基本信息操作(查询、修改、删除)、查询某个学生的学生基本信息操作等。
●有关学生课程信息的基本操作,包括查询所在班级进行学生所选课程信息操作(查询、修改、删除)、查询某个学生所学课程的基本操作等。
●有关学生成绩信息的基本操作,包括查询所在班级进行学生所选课程成绩操作(查询、修改、删除)、查询某个学生所学课程成绩的基本操作等。
对各项功能进行集中、分块,按照结构化程序设计的要求,系统功能模块图如下:
六、实现的主要技术手段和方法
一、创建数据库文件.mdf
1开始菜单→打开MicrosoftVisualStdio2010→新建项目→选择windows窗体应用程序→右键项目名→添加新建项→选择数据→基于服务的数据库
2数据库连接方法
SqlConnectionmyConnection=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\stu_managesystem.mdf;
IntegratedSecurity=True;UserInstance=True");
二、学生信息处理
1.学生信息的管理功能,,此部分实现了对学生基本信息添加修改删除操作。
关键代码如下
namespacestu_managesystem
{
publicpartialclassstu_inf:
Form
publicstu_inf()
{
InitializeComponent();
}
SqlConnectionmyConnection;
SqlCommandsqlCommand;
privatevoidstu_inf_Load(objectsender,EventArgse)
{
//myConnection=newSqlConnection();
myConnection=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\stu_managesystem.mdf;
IntegratedSecurity=True;UserInstance=True");
sqlCommand=newSqlCommand();
sqlCommand.Connection=myConnection;
sqlCommand.CommandType=CommandType.Text;
sqlCommand.CommandText="select*fromstudent";
myConnection.Open();
SqlDataReaderdreader=sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
while(dreader.Read())
{
ListViewItemnewItem=listView1.Items.Add(dreader["sno"].ToString().Trim());
newItem.SubItems.Add(dreader["sname"].ToString().Trim());
newItem.SubItems.Add(dreader["ssex"].ToString().Trim());
newItem.SubItems.Add(dreader["sage"].ToString().Trim());
newItem.SubItems.Add(dreader["sdept"].ToString().Trim());
}
dreader.Close();
}
privatevoidlistView1_SelectedIndexChanged(objectsender,EventArgse)
{
if(listView1.SelectedItems.Count>0)
{
textBox1.Text=listView1.SelectedItems[0].Text;
textBox2.Text=listView1.SelectedItems[0].SubItems[1].Text;
textBox3.Text=listView1.SelectedItems[0].SubItems[2].Text;
textBox4.Text=listView1.SelectedItems[0].SubItems[3].Text;
textBox5.Text=listView1.SelectedItems[0].SubItems[4].Text;
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(button1.Text=="添加")
{
button1.Text="保存";
textBox1.Text="";textBox2.Text="";
textBox3.Text="";textBox4.Text="";
textBox5.Text="";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="insertintostudentvalues('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"')";
myConnection.Open();
intcmdresults=sqlCommand.ExecuteNonQuery();
myConnection.Close();
if(cmdresults==1)
{
textBox1.ReadOnly=true;textBox2.ReadOnly=true;
textBox3.ReadOnly=true;textBox4.ReadOnly=true;
textBox5.ReadOnly=true;
button2.Enabled=true;button3.Enabled=true;
ListViewItemnewItem=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("插入数据成功");
}
else
MessageBox.Show("插入数据失败");
}
}
voidTextBox1TextChanged(objectsender,EventArgse)
{
}
}
2.学生信息查询功能,此部分实现了对学生信息的查询功能。
关键代码如下
namespacestu_managesystem
{
publicpartialclassstu_ser:
Form
{
publicstu_ser()
{
InitializeComponent();
}
privateSqlDataAdaptersqlDataAdapter;
privateDataSetdsScore;
privatevoidstu_ser_Load(objectsender,EventArgse)
{
//SqlConnectionmyConnection=newSqlConnection();
SqlConnectionmyConnection=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\stu_managesystem.mdf;
IntegratedSecurity=True;UserInstance=True");
SqlCommandsqlCommand=newSqlCommand();
sqlCommand.Connection=myConnection;
sqlCommand.CommandType=CommandType.Text;
sqlCommand.CommandText="select*fromstudent";
sqlDataAdapter=newSqlDataAdapter();
sqlDataAdapter.SelectCommand=sqlCommand;
SqlCommandBuilderbuilder=newSqlCommandBuilder(sqlDataAdapter);
dsScore=newDataSet();
sqlDataAdapter.Fill(dsScore,"student");
this.BindingContext[dsScore,"student"].PositionChanged+=newEventHandler(BindingManagerBase_PositionChanged);
dataGridView1.DataSource=dsScore;
dataGridView1.DataMember="student";
ShowPosition();
//setState(true);
}
privatevoidShowPosition()
{
intiCnt,iPos;
iCnt=this.BindingContext[dsScore,"student"].Count;
iPos=this.BindingContext[dsScore,"student"].Position+1;
}
privatevoidBindingManagerBase_PositionChanged(objectsender,EventArgse)
{
ShowPosition();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{MessageBox.Show("学号不能为空");}
else
{
stringa=textBox1.Text;
//SqlConnectionmyConnection=newSqlConnection();
SqlConnectionmyConnection=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\stu_managesystem.mdf;
IntegratedSecurity=True;UserInstance=True");
SqlCommandsqlCommand=newSqlCommand();
sqlCommand.Connection=myConnection;
sqlCommand.CommandType=CommandType.Text;
sqlCommand.CommandText="select*fromstudentwheresno='"+a+"'";
sqlDataAdapter=newSqlDataAdapter();
sqlDataAdapter.SelectCommand=sqlCommand;
SqlCommandBuilderbuilder=newSqlCommandBuilder(sqlDataAdapter);
dsScore=newDataSet();
sqlDataAdapter.Fill(dsScore,"student");
this.BindingContext[dsScore,"student"].PositionChanged+=newEventHandler(BindingManagerBase_PositionChanged);
dataGridView1.DataSource=dsScore;
dataGridView1.DataMember="student";
ShowPosition();
textBox1.Text="";
}
}
}
}
3.学生成绩管理,此部分实现了对学生基本成绩添加、修改、删除操作。
关键代码与学生信息管理相似
4.学生成绩查询,此部分实现了对学生成绩的查询操作。
关键代码与学生信息查询相似
5.学生课程管理,此部分实现了对学生课程信息的添加、修改、删除操作。
关键代码与学生信息管理相似
6.学生奖学金管理,此部分实现了对学生已获奖学金信息的添加、修改、删除操作。
关键代码与学生信息管理相似
7.管理员添加,此部分实现了对管理人员添加操作。
关键代码如下
namespacestu_managesystem
{
publicpartialclassadd_user:
Form
{
publicadd_user()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("用户名不能为空");
}
if(textBox2.Text=="")
{
MessageBox.Show("密码不为空");
}
else
{
stringa=textBox1.Text;
stringb=textBox2.Text;
DB_CZu=newDB_CZ();
stringsql="insertintostu_uservalues('"+a+"','"+b+"')";
u.ExcSql(sql);
MessageBox.Show("添加成功");
textBox1.Text="";
textBox2.Text="";
}
}
privatevoidadd_user_Load(objectsender,EventArgse)
{
}
}
}
8.关闭,此部分实现了对软件的关闭退出功能
关键代码如下
privatevoid关闭ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
七、结论
这次的课程设计可以说是为毕业设计做的一个预演,真的做起来困难重重,深刻体会到做一个软件,里面需要的很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。
从需求分析阶段不断地搜索资料,想充分了解自己所做的课题在客户或者公司中的需求,由于《软件工程》这门课学的不深,画数据流图等等软件设计流程做起来很生疏,翻阅课本,和软件工程课老师上课的讲解,总算整了一个像样点的需求分析,经过不断地测试,不断地改进,其中还是发下了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,怎样从数据库中将数据提取出来放到一个文本框或者标签内,这些东西是组成界面的东西,虽然小,但是可以体现整个软件的水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。
经过一段时间的学习与实践,学生信息理系统基本上开发好了。
人如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即是面临找工作,从学习这个专业,到以后做这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)