计算机与软件工程学院数据库原理及应用课程设计报告课题名称: 学生信息管理系统专业: 计算机与科学技术班级:姓名:学号:指导老师:2016 年 6 月14 号课程设计任务及进度表摘要该项目开发的软件为学校学生信息管理系统软件,就是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理、目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也就是有了很大的发展,商业化的学生信息管理软件也不少、但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作学生信息管理系统就是一个教育单位不可缺少的部分,它的内容对于学校的决策者与管理者来说都至关重要。
本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计与系统实施的全过程。
关键词信息管理,分析,设计,开发目录1 引言 (1)2 项目需求分析 (1)2.1方案的可行性分析 (1)2.2方案需求分析 (2)3 项目概念设计 (3)3.1模块单元设计 (3)3.2ER图设计 (6)4 项目逻辑结构设计 (7)4.1将概念模式转换成关系模式 (7)4.2子模式设计 (7)4.3数据库设计 (8)5 编码实现 (9)5.1界面设计 (9)5.2数据库操作 (19)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-3学生管理模块3、1、3 课程管理模块课程管理模块,包括课程信息添加,修改,删除。
图3-4课程管理模块成绩管理模块,包括成绩的添加,修改。
图3-5成绩管理模块3、1、5 信息管理模块信息查询模块,包括学生查询,课程查询,成绩查询。
图3-6信息管理模块3.2 ER图设计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账户信息管理界面代码实现:namespace Student_MI{public partial class FormAccount : Form{public FormAccount(){InitializeComponent();}private void FormAccount_Load(object sender, EventArgs e) {if (UserHelper、userType != UserType、Admin){for (int i = 0; i < this、Controls、Count; i++){if (this、Controls[i]、GetType()、Equals(typeof(Button))){this、Controls[i]、Enabled = false;}}}this、button3、Enabled = true;//this、adminTableAdapter、Fill(this、studentManagerDataSet4、Admin);string sqltr = "select * From Admin";SqlCommand cmd = DBHelper、con、CreateCommand();cmd、CommandText = sqltr;cmd、CommandType = CommandType、Text;SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da、Fill(ds);this、dataGridView1、DataSource = ds、Tables[0];this、lbInfo、Text = "登录人:" + UserHelper、user;}private void button1_Click(object sender, EventArgs e){FormAddAccount fas = new FormAddAccount();if (fas、ShowDialog() == DialogResult、OK){string sqltr = "select * From Admin";SqlCommand cmd = DBHelper、con、CreateCommand();cmd、CommandText = sqltr;cmd、CommandType = CommandType、Text;SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da、Fill(ds);//this、adminBindingSource、DataSource = ds、Tables[0]; this、dataGridView1、DataSource = ds、Tables[0];int c = this、adminBindingSource、Count;this、dataGridView1、Refresh();}}private void button2_Click(object sender, EventArgs e){this、adminTableAdapter、Update(this、studentManagerDataSet4、Admin);}private void button4_Click(object sender, EventArgs e){try{if (this、dataGridView1、SelectedRows、Count > 0){DataGridViewRow drw = dataGridView1、SelectedRows[0];DataGridViewCell cell = drw、Cells["idDataGridViewTextBoxColumn"];string sql = "DELETE [Admin] Where [id]=" + cell、Value、ToString();new SqlHelper()、ExecuteNonQuery(sql, CommandType、Text);dataGridView1、Rows、Remove(drw);}MessageBox、Show("删除数据成功!");}catch{}}private void button3_Click(object sender, EventArgs e){FormAccountSearch faa = new FormAccountSearch();faa、ShowDialog();}private void 关于ToolStripMenuItem_Click(object sender, EventArgs e){FormAbout fa = new FormAbout();fa、ShowDialog();}private void 退出XToolStripMenuItem_Click(object sender, EventArgs e){this、Close();}}}5、1、2 课程信息管理图5-2课程管理界面代码实现:namespace Student_MI{public partial class FormCourse : Form{public FormCourse(){InitializeComponent();}private void FormCourse_Load(object sender, EventArgs e){if (UserHelper、userType != UserType、Admin){for (int i = 0; i < this、Controls、Count; i++){if (this、Controls[i]、GetType()、Equals(typeof(Button))){this、Controls[i]、Enabled = false;}}}this、button3、Enabled = true;this、courseTableAdapter、Fill(this、studentManagerDataSet2、Course);this、lbInfo、Text = "登录人:" + UserHelper、user;}private void button2_Click(object sender, EventArgs e){this、courseTableAdapter、Update(this、studentManagerDataSet2、Course);}private void button1_Click(object sender, EventArgs e){FormAddCourse fas = new FormAddCourse();if (fas、ShowDialog() == DialogResult、OK){//刷新string sqltr = "select * From Course";SqlCommand cmd = DBHelper、con、CreateCommand();cmd、CommandText = sqltr;cmd、CommandType = CommandType、Text;SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da、Fill(ds);this、courseBindingSource、DataSource = ds、Tables[0]; int c = this、courseBindingSource、Count;this、dataGridView1、Refresh();}}private void button4_Click(object sender, EventArgs e){try{if (this、dataGridView1、SelectedRows、Count > 0){DataGridViewRow drw = dataGridView1、SelectedRows[0];DataGridViewCell cell = drw、Cells["cNumberDataGridViewTextBoxColumn"];string sql = "DELETE [Course] Where [CNumber]=" +cell、Value、ToString();new SqlHelper()、ExecuteNonQuery(sql, CommandType、Text);dataGridView1、Rows、Remove(drw);}MessageBox、Show("删除数据成功!");}catch{}}private void button3_Click(object sender, EventArgs e){FormCourseSearch fas = new FormCourseSearch();fas、ShowDialog();}private void 关于ToolStripMenuItem_Click(object sender, EventArgs e){FormAbout fa = new FormAbout();fa、ShowDialog();}private void 退出XToolStripMenuItem_Click(object sender, EventArgs e){this、Close();}}}5、1、3 成绩信息管理图5-3成绩管理界面代码实现:namespace Student_MI{public partial class FormSource : Form{public FormSource(){InitializeComponent();}private void FormSource_Load(object sender, EventArgs e){if (UserHelper、userType == UserType、Student){for (int i = 0; i < this、Controls、Count; i++){if (this、Controls[i]、GetType()、Equals(typeof(Button))){this、Controls[i]、Enabled = false;}}}this、button4、Enabled = true;this、scoreTableAdapter、Fill(this、studentManagerDataSet3、Score);this、lbInfo、Text = "登录人:" + UserHelper、user;}private void button1_Click(object sender, EventArgs e){FormAddScore fas = new FormAddScore();if (fas、ShowDialog() == DialogResult、OK){//刷新string sqltr = "select * From [Score]";SqlCommand cmd = DBHelper、con、CreateCommand();cmd、CommandText = sqltr;cmd、CommandType = CommandType、Text;SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da、Fill(ds);this、dataGridView1、DataSource = ds、Tables[0];int c = this、scoreBindingSource、Count;this、dataGridView1、Refresh();}}private void button2_Click(object sender, EventArgs e){this、scoreTableAdapter、Update(this、studentManagerDataSet3、Score);}private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e){}private void button4_Click(object sender, EventArgs e){FormScoreManage fsm = new FormScoreManage();fsm、ShowDialog();}private void button5_Click(object sender, EventArgs e){try{if (this、dataGridView1、SelectedRows、Count > 0){DataGridViewRow drw = dataGridView1、SelectedRows[0];DataGridViewCell cell = drw、Cells["idDataGridViewTextBoxColumn"];string sql = "DELETE [Score] Where [id]=" + cell、Value、ToString();new SqlHelper()、ExecuteNonQuery(sql, CommandType、Text);dataGridView1、Rows、Remove(drw);}MessageBox、Show("删除数据成功!");}catch{}}private void 关于AToolStripMenuItem_Click(object sender, EventArgs e){FormAbout fa = new FormAbout();fa、ShowDialog();}private void 退出XToolStripMenuItem_Click(object sender, EventArgs e){this、Close();}}}5、1、4 学生信息管理图5-4学生信息界面代码实现:namespace Student_MI{public partial class FormStudents : Form{public FormStudents(){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 < this、Controls、Count; i++){if (this、Controls[i]、GetType()、Equals(typeof(Button))){this、Controls[i]、Enabled = false;}}}this、button5、Enabled = true;// TODO: 这行代码将数据加载到表“studentManagerDataSet、Student”中。