计算机与软件
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
学院
数据库原理及应用
课程设计报告
课题名称:学生信息管理系统
专业: 计算机与科学技术
班级:
姓名:
学号:
指导老师:
2016年 6 月14号
课程设计任务及进度表
课题
名称
学生信息管理系统
设计
目的
通过对管理系统的设计和开发,了解了数据库的设计与开发的全过程,达到巩固数据库理论知识、锻炼实践能力和构建合理知识结构的目的。
实验
环境
操作系统:Windows 7;
数据库管理系统:SQL Server 2008;
编程环境:NET.ASP
任务
要求
1. 搜集学生信息管理问题方面的资料,进行需求分析;
2. 完成概念设计、逻辑设计等各阶段的设计;
3. 编写程序代码,系统调试;
4. 撰写课程设计报告;
5. 参加答辩。
工作进度
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
序号
起止日期
工作内容
1
2016.6.02~2016.6.12
查询资料、选择课题
2
2016.6.13~2016.6.13
需求分析、总体设计
3
2016.6.14~2016.6.16
系统整体设计、编写程序代码、调试程序
4
2016.6.17~2016.6.19
撰写课程设计报告
摘要
该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.
目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。
本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、
系统设计、数据库设计和系统实施的全过程。
关键词信息管理,分析,设计,开发
目录
1 引言 1
2 项目需求分析 1
2.1 方案的可行性分析 1
2.2 方案需求分析 2
3 项目概念设计 3
3.1 模块单元设计 3
3.2 ER图设计 6
4 项目逻辑结构设计 7
4.1 将概念模式转换成关系模式 7
4.2 子模式设计 7
4.3 数据库设计 8
5 编码实现 9
5.1 界面设计 9
5.2 数据库操作 20
6 项目测试结果 23
结论 24
致谢 25
参考文献 26
1 引言
学生信息管理系统已经成为了一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点。如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据。这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
2 项目需求分析
2.1 方案的可行性分析
2.1.1 技术可行性
本系统主要采用ASP.NET框架开发。ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。加上SQL Sever的连接,完全可以满足本系统的开发需要,因此技术上是可行的的。
2.1.2 经济可行性
本系统为自主开发,耗时1周,因其本身就是比较小的系统,功能简单,且使用的开发工具都是现有的。所以在经济上是可行的。
2.2 方案需求分析
2.2.1 功能需求
学生管理系统的几个主要功能如下:
(1)提供学生录入信息功能
可以输入学生的姓名,学号,选修课,实验课,必修课和总分。
(2)查询学生信息功能
根据学生学号来查询学生信息。
(3)删除学生信息功能
提供学号,查找是否有此人信息,然后选择删除学生信息。
(4)插入学生信息功能
输入学生学号,插入该学生的学号的后面
2.2.2 性能需求
本软件系统各种特点决定了系统需要具有以下几个主要特性:
(1)多样性。现在,计算机语言越来越普及,用户面临的选择越来越多。想要保证对用户的吸引力,就必须要在多样性上下功夫了。所以,系统的多样性、功能的多样性一直都是软件系统开发的重点。
(2)安全性。数据是软件的灵魂,如何保证数据的安全性,是系统开发时必须考虑的一个重要问题。开发者应避免程序出现漏洞,防止黑客进行攻击,及时进行数据备份,建立一个完善的多层次的安全保障体系,保障系统的安全。
(3)可扩展性。需求变更一直是开发中难以避免的问题。系统在进行设计时应充分考虑到需求变更的可能性,降低系统扩展功能时的复杂度。
3项目概念设计
3.1 模块单元设计
图3-1总概要设计
3.1.1 系统管理模块
系统管理模块,进入系统后,可以选择退出系统:
图3-2系统管理模块
3.1.2学生管理模块
学生管理模块,包括学生信息添加,删除,修改。
图3-3学生管理模块
3.1.3课程管理模块
课程管理模块,包括课程信息添加,修改,删除。
图3-4课程管理模块
3.1.4成绩管理模块
成绩管理模块,包括成绩的添加,修改。
图3-5成绩管理模块
3.1.5信息管理模块
信息查询模块,包括学生查询,课程查询,成绩查询。
图3-6信息管理模块
3.2ER图设计
3.2.1学生信息实体ER图
图3-7学生信息实体ER图
3.2.2课程信息实体ER图
图3-8课程信息实体ER图
4项目逻辑结构设计
4.1将概念模式转换成关系模式
以下是学生管理信息系统的关系模型:
(1)学生(姓名,班级,学号,性别,电话,出生日期)
Student(name,class,student_ID,sex,telephone,date of birth)
(2)班级课程(课程名称,专业,学期,年级)
Class_course(course_name, major, school, grade)
(3)班级(班级名,教室,年制,备注)
Class(class_name, classroom, years, note)
(4)成绩(编号,分数,课程,考号,等级)
Score(number, score, course, exam_number, grade)
4.2 子模式设计
针对不同的应用需求,分别设计对应的子模式。
(1)学生(姓名,班级,学号,性别,电话,出生日期)
View_Student(name,class,student_ID,sex,telephone,date of birth)
(2)班级课程(课程名称,专业,学期,年级)
View_Class_course(course_name, major, school, grade)
(3)班级(班级名,教室,年制,备注)
View_Class(class_name, classroom, years, note)
(4)成绩(编号,分数,课程,考号,等级)
View_Score(number, score, course, exam_number, grade)
4.3 数据库设计
4.3.1 表设计
图4-1管理员表
图4-2课程表
图4-3分数表
图4-4学生表
4.3.2 数据库加载
图4-5数据库加载
5编码实现
5.1 界面设计
5.1.1 账户信息管理
图5-1账户信息管理界面
代码实现:
namespaceStudent_MI
{
public partial class FormAccount : Form
{
publicFormAccount()
{
InitializeComponent();
}
private void FormAccount_Load(object sender, EventArgs e)
{
if (UserHelper.userType != UserType.Admin)
{
for (int i = 0; i
0)
{
DataGridViewRowdrw = dataGridView1.SelectedRows[0];
DataGridViewCell cell = drw.Cells["idDataGridViewTextBoxColumn"];
stringsql = "DELETE [Admin] Where [id]=" + cell.Value.ToString();
newSqlHelper().ExecuteNonQuery(sql, CommandType.Text);
dataGridView1.Rows.Remove(drw);
}
MessageBox.Show("删除数据成功!");
}
catch
{
}
}
private void button3_Click(object sender, EventArgs e)
{
FormAccountSearchfaa = new FormAccountSearch();
faa.ShowDialog();
}
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAboutfa = new FormAbout();
fa.ShowDialog();
}
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}}}
5.1.2 课程信息管理
图5-2课程管理界面
代码实现:
namespaceStudent_MI
{
public partial class FormCourse : Form
{
publicFormCourse()
{
InitializeComponent();
}
private void FormCourse_Load(object sender, EventArgs e)
{
if (UserHelper.userType != UserType.Admin)
{
for (int i = 0; i 0)
{
DataGridViewRowdrw = dataGridView1.SelectedRows[0];
DataGridViewCell cell = drw.Cells["cNumberDataGridViewTextBoxColumn"];
stringsql = "DELETE [Course] Where [CNumber]=" + cell.Value.ToString();
newSqlHelper().ExecuteNonQuery(sql, CommandType.Text);
dataGridView1.Rows.Remove(drw);
}
MessageBox.Show("删除数据成功!");
}
catch
{
}
}
private void button3_Click(object sender, EventArgs e)
{
FormCourseSearchfas = new FormCourseSearch();
fas.ShowDialog();
}
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAboutfa = new FormAbout();
fa.ShowDialog();
}
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}}}
5.1.3 成绩信息管理
图5-3成绩管理界面
代码实现:
namespaceStudent_MI
{
public partial class FormSource : Form
{
publicFormSource()
{
InitializeComponent();
}
private void FormSource_Load(object sender, EventArgs e)
{
if (UserHelper.userType == UserType.Student)
{
for (int i = 0; i 0)
{
DataGridViewRowdrw = dataGridView1.SelectedRows[0];
DataGridViewCell cell = drw.Cells["idDataGridViewTextBoxColumn"];
stringsql = "DELETE [Score] Where [id]=" + cell.Value.ToString();
newSqlHelper().ExecuteNonQuery(sql, CommandType.Text);
dataGridView1.Rows.Remove(drw);
}
MessageBox.Show("删除数据成功!");
}
catch
{
}
}
private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAboutfa = new FormAbout();
fa.ShowDialog();
}
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}}}
5.1.4 学生信息管理
图5-4学生信息界面
代码实现:
namespaceStudent_MI
{
public partial class FormStudents : Form
{
publicFormStudents()
{
InitializeComponent();
}
private void FormStudents_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void FormStudents_Load(object sender, EventArgs e)
{
//UserHelper.userType = UserType.Student;
if (UserHelper.userType != UserType.Admin)
{
for (int i = 0; i 0)
{
DataGridViewRowdrw = dataGridView1.SelectedRows[0];
DataGridViewCell cell = drw.Cells["sNumberDataGridViewTextBoxColumn"];
stringsql = "DELETE [Student] Where [SNumber]=" + cell.Value.ToString();
newSqlHelper().ExecuteNonQuery(sql, CommandType.Text);
dataGridView1.Rows.Remove(drw);
}
MessageBox.Show("删除数据成功!");
}
catch
{
}
}
private void button5_Click(object sender, EventArgs e)
{
FormStudentSearchfas = new FormStudentSearch();
fas.ShowDialog();
}
private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAboutfa = new FormAbout();
fa.ShowDialog();
}
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}} }
5.2 数据库操作
namespaceStudent_MI
{
public class SqlHelper
{
privateSqlConnection conn = null;
privateSqlCommandcmd = null;
privateSqlDataReadersdr = null;
// 下载于www.mycodes.net
publicSqlHelper()
{
stringconnStr = "Data Source=.\\SQL2008;Initial Catalog=StudentManager;uid=sa;pwd=sa";
conn = new SqlConnection(connStr);
}
privateSqlConnectionGetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
///
/// 执行不带参数的增删改SQL语句或存储过程
///
/// 增删改SQL语句或存储过程
/// 命令类型
///
publicintExecuteNonQuery(string cmdText, CommandTypect)
{
int res;
try
{
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return res;
}
///
/// 执行带参数的增删改SQL语句或存储过程
///
/// 增删改SQL语句或存储过程
/// 命令类型
///
publicintExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandTypect)
{
int res;
try
{
using (cmd = new SqlCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
res = cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
throw ex;
}
return res;
}
///
/// 执行查询SQL语句或存储过程
///
/// 查询SQL语句或存储过程
/// 命令类型
///
publicDataTableExecuteQuery(string cmdText, CommandTypect)
{
DataTabledt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
try
{
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
returndt;
}
///
/// 执行带参数的查询SQL语句或存储过程
///
/// 查询SQL语句或存储过程
/// 参数集合
/// 命令类型
///
publicDataTableExecuteQuery(string cmdText, SqlParameter[] paras, CommandTypect)
{
DataTabledt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
returndt;
}}}
6 项目测试结果
以下以学生信息管理模块测试:
图6-1学生信息管理
图6-2学生信息管理
其他诸如:成绩信息管理、用户信息管理,课程信息管理的测试都是可行的,并且操作与学生信息管理相同。通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语言的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也上网查了不少资料,也看了一些别人设计的报告,学以致用,自我创新,完成了这份自己的报告,从学到用,从用又到学,不断修改,系统更新。
结 论
作为一个完整的学生信息管理系统,本系统的主要实现的功能包括用户登录、成绩管理、学生信息管理、课程管理等,基本上可以满足大部分用户的需求。
本系统的亮点之处在于系统的扩展性很强。当需要为学生信息管理系统添加新的功能时,只需要改动极少的代码甚至无需改动就可以实现。各模块独立性很高,模块之间的耦合性很低,使得修改代码、添加功能变得简单可行。本系统的不足之处在于功能稍显简单。由于作者的时间和精力有限,系统的功能总体来看比较少,只能在以后根据需求慢慢增加了。
在开发本系统的过程中遇到了一些问题,主要是一些技术不太了解。最终通过查阅相关资料还是一一解决了这些问题。另外有些功能还没有完全的实现,比如学生学籍信息管理的功能,目前没有此项功能,如果要实现此功能,在后期会相继的慢慢完善。
通过这次的设项目实训,我学到了很多知识。深刻体会到了前期的设计对后期实现时的影响,如果在项目前期不能进行很好的设计,在后期开发时就会造成很多麻烦。另外,这次的项目也让我明白了数据结构知识的重要性,今后要加强数据结构相关知识的学习。
致 谢
在这最后的时刻,我要特别感谢我的指导老师——刘金岭老师,他从实训项目开始的课题选择,到初期的资料准备,到中期的编写程序,到后期的修改都给予了我非常耐心、负责的指导和建议,在这里我要对彭老师无私的付出表示诚挚的谢意。
其次,我要感谢我的室友,我的同学们。在平时的学习中,每当我遇到了困难,你们总是默默的鼓励我,给我克服困难的勇气,给我热情的帮助,谢谢你们。
最后,我要感谢大学期间所有教过我的老师们。在这三年中,你们教会了我很多知识,也教会了我很多做人的道理。对于一个马上就要踏入社会的人来说,这些知识和道理使我受益匪浅,我会铭记一生。
参 考 文 献
1 沈士根,汪乘焱.ASP.NET实用网站开发.北京:清华大学出版社,2014
2 张海藩,牟永敏.软件工程导论.北京:清华大学出版社,2008
3 郑宇军,石海鹤.C#语言程序设计基础.北京:清华大学出版社,2014
指导教师评语
学号
姓名
班级
选题
名称
学生信息管理系统
序号
评价内容
权重(%)
得分
1
考勤记录、学习态度、工作作风与表现。
10
2
是否完成设计任务;能否运行、可操作性如何等。
30
3
报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。
30
4
自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。
30
合计
指导教师(签章):
年月日