1、 计算机和软件工程学院 数据库原理及应用 课程设计汇报 课题名称: 学生信息管理系统 专业: 计算机和科学技术 班级: 姓名: 学号: 指导老师: 年 6 月 14 号 课程设计任务及进度表 课题 名称 学生信息管理系统 设计 目标 经过对管理系统设计和开发,了解了数据库设计和开发全过程,达成巩
2、固数据库理论知识、锻炼实践能力和构建合理知识结构目标。 试验 环境 操作系统:Windows 7; 数据库管理系统:SQL Server ; 编程环境:NET.ASP 任务 要求 1. 搜集学生信息管理问题方面资料,进行需求分析; 2. 完成概念设计、逻辑设计等各阶段设计; 3. 编写程序代码,系统调试; 4. 撰写课程设计汇报; 5. 参与答辩。 工作进度计划 序号 起止日期 工 作 内 容 1 .6.02~.6.12 查询资料、选择课题 2 .6.13~.6.13 需求分析、总体设计 3 .6.14~.6.16 系统整
3、体设计、编写程序代码、调试程序 4 .6.17~.6.19 撰写课程设计汇报 摘要 该项目开发软件为学校学生信息管理系统软件,是鉴于现在学校学生人数剧增,学生信息呈爆炸性增加前提下,学校对学生信息管理自动化和正确化要求日益强烈背景下构思出来,该软件设计完成后可用于全部教育单位(包含学校,学院等等)学生信息管理. 现在社会上信息管理系统发展飞快,各个企机关全部引入了信息管理软件来管理自己日益增加多种信息,学生管理系统也是有了很大发展,商业化学生信息管理软件也不少.但本系统完全独立开发,努力争取使系统功效简练明了,但功效齐全且易于操作学生信息管理系统是一个教育单位不可缺
4、乏部分,它内容对于学校决议者和管理者来说全部至关关键。 本文介绍了学生信息管理系统开发整个过程,叙述了系统分析、 系统设计、数据库设计和系统实施全过程。 关键词 信息管理,分析,设计,开发 目 录 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
5、 6 项目测试结果 23 结 论 24 致 谢 25 参 考 文 献 26 1 引言 学生信息管理系统已经成为了一个教育单位不可缺乏部分。一个功效齐全、简单易用信息管理系统不仅能有效地减轻学校相关工作人员工作负担,它内容对于学校决议者和管理者来说全部至关关键。所以学生信息管理系统应该能够为用户提供充足信息和快捷查询手段。但一直以来大家使用传统人工方法管理文件档案、统计和查询数据,这种管理方法存在着很多缺点。如:效率低、保密性差,人工大量浪费;另外时间一长,将产生大量文件和数据。这对于查找、更新和维护全部带来了不少困难。伴随科学技术不停提升,计算机科学日渐成熟,其
6、强大功效已为大家深刻认识,它已进入人类社会各个领域并发挥着来越关键作用。 作为计算机应用一部分,使用计算机对学校各类信息进行管理,含有手工管理所无法比拟优点。比如:检索快速、查询方便、效率高、可靠性好、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升学校信息管理效率,也是一个单位科学化、正规化管理,和世界接轨关键条件。 2 项目需求分析 2.1 方案可行性分析 2.1.1 技术可行性 本系统关键采取ASP.NET框架开发。ASP.NET是基于通用语言编译运行程序,所以它强大性和适应性,能够使它运行在Web应用软件开发者几乎全部平台上。加上SQL Sever连接,完全能够满
7、足本系统开发需要,所以技术上是可行。 2.1.2 经济可行性 本系统为自主开发,耗时1周,因其本身就是比较小系统,功效简单,且使用开发工具全部是现有。所以在经济上是可行。 2.2 方案需求分析 2.2.1 功效需求 学生管理系统多个关键功效以下: (1)提供学生录入信息功效 能够输入学生姓名,学号,选修课,试验课,必修课和总分。 (2)查询学生信息功效 依据学生学号来查询学生信息。 (3)删除学生信息功效 提供学号,查找是否有此人信息,然后选择删除学生信息。 (4)插入学生信息功效 输入学生学号,插入该学生学号后面 2.2.2 性能需求 本软件系统多种特点决定了系
8、统需要含有以下多个关键特征: (1)多样性。现在,计算机语言越来越普及,用户面临选择越来越多。想要确保对用户吸引力,就必需要在多样性上下功夫了。所以,系统多样性、功效多样性一直全部是软件系统开发关键。 (2)安全性。数据是软件灵魂,怎样确保数据安全性,是系统开发时必需考虑一个关键问题。开发者应避免程序出现漏洞,预防黑客进行攻击,立即进行数据备份,建立一个完善多层次安全保障体系,保障系统安全。 (3)可扩展性。需求变更一直是开发中难以避免问题。系统在进行设计时应充足考虑到需求变更可能性,降低系统扩展功效时复杂度。 3 项目概念设计 3.1 模块单元设计 学生信息管理 学生
9、 管理员 选课 操作 信息查询 学生管理 课程管理 成绩管理 信息查询 图3-1总概要设计 3.1.1 系统管理模块 系统管理模块,进入系统后,能够选择退出系统: 系统管理 退出 图3-2系统管理模块 3.1.2 学生管理模块 学生管理模块,包含学生信息添加,删除,修改。 学生管理 学生信息添加 学生信息修改 学生信息删除 图3-3学生管理模块 3.1.3 课程管理模块 课程管理模块,包
10、含课程信息添加,修改,删除。 课程管理 课程信息添加 课程信息修改 课程信息删除 图3-4课程管理模块 3.1.4 成绩管理模块 成绩管理模块,包含成绩添加,修改。 成绩管理 成绩添加 成 绩 修 改 图3-5成绩管理模块 3.1.5 信息管理模块 信息查询模块,包含学生查询,课程查询,成绩查询。 信息查询 学生信息查询 课程信息查询 学生成绩查询 图3-6信息管理模块
11、 3.2 ER图设计 学 生 学号 姓名 性别 家庭住址 祖籍 所在学院 专业 入年份 出生日期 3.2.1 学生信息实体ER图 图3-7学生信息实体ER图 3.2.2 课程信息实体ER图 课 程 课程号 课程名 任课老师 课程类型 上课地点 上课时间 图3-8课程信息实体ER图 4 项目逻辑结构设计 4.1 将概念模式转换成关系模式 以下是学生管理信息系统关系模型: (1) 学生(姓名,班级,学号,性别,电话,出生日期) Student(name,cl
12、ass,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) 学生
13、姓名,班级,学号,性别,电话,出生日期) 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
14、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 {
15、 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++)
16、 { if (this.Controls[i].GetType().Equals(typeof(Button))) { this.Controls[i].Enabled = false; } } } this.button3.Enabled = true; //this.adminTable
17、Adapter.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(c
18、md); 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) { FormAddAccou
19、nt fas = new FormAddAccount(); if (fas.ShowDialog() == DialogResult.OK) { string sqltr = "select * From Admin"; SqlCommand cmd = DBHelper.con.CreateCommand(); cmd.CommandText = sqltr; cmd.CommandType = Comm
20、andType.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];
21、 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_Cl
22、ick(object sender, EventArgs e) { try { if (this.dataGridView1.SelectedRows.Count > 0) { DataGridViewRow drw = dataGridView1.SelectedRows[0]; DataGridViewCell cell = drw.Cells["idDataGridVi
23、ewTextBoxColumn"]; string sql = "DELETE [Admin] Where [id]=" + cell.Value.ToString(); new SqlHelper().ExecuteNonQuery(sql, CommandType.Text); dataGridView1.Rows.Remove(drw); } MessageBox.Show("删除数据成功!");
24、 } catch { } } private void button3_Click(object sender, EventArgs e) { FormAccountSearch faa = new FormAccountSearch(); faa.ShowDialog(); } private void 相关ToolStripMenuItem_C
25、lick(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课程管理界面 代码实现:
26、namespace Student_MI { public partial class FormCourse : Form { public FormCourse() { InitializeComponent(); } private void FormCourse_Load(object sender, EventArgs e) { if (UserHelper.userType != UserType.Admin)
27、 { for (int i = 0; i < this.Controls.Count; i++) { if (this.Controls[i].GetType().Equals(typeof(Button))) { this.Controls[i].Enabled = false; }}} this.butto
28、n3.Enabled = true; this.courseTableAdapter.Fill(this.studentManagerDataSet2.Course); this.lbInfo.Text = "登录人:" + UserHelper.user; } private void button2_Click(object sender, EventArgs e) { this.courseTableAdapter.Update(th
29、is.studentManagerDataSet2.Course); } private void button1_Click(object sender, EventArgs e) { FormAddCourse fas = new FormAddCourse(); if (fas.ShowDialog() == DialogResult.OK) { //刷新 string sqltr = "s
30、elect * From Course"; SqlCommand cmd = DBHelper.con.CreateCommand(); cmd.CommandText = sqltr; cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet();
31、 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) {
32、 try { if (this.dataGridView1.SelectedRows.Count > 0) { DataGridViewRow drw = dataGridView1.SelectedRows[0]; DataGridViewCell cell = drw.Cells["cNumberDataGridViewTextBoxColumn"]; string
33、 sql = "DELETE [Course] Where [CNumber]=" + cell.Value.ToString(); new SqlHelper().ExecuteNonQuery(sql, CommandType.Text); dataGridView1.Rows.Remove(drw); } MessageBox.Show("删除数据成功!"); } catch
34、 { } } private void button3_Click(object sender, EventArgs e) { FormCourseSearch fas = new FormCourseSearch(); fas.ShowDialog(); } private void 相关ToolStripMenuItem_Click(object sender, EventArgs e)
35、{ 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 cl
36、ass FormSource : Form { public FormSource() { InitializeComponent(); } private void FormSource_Load(object sender, EventArgs e) { if (UserHelper.userType == UserType.Student) { for (int i = 0; i
37、 < this.Controls.Count; i++) { if (this.Controls[i].GetType().Equals(typeof(Button))) { this.Controls[i].Enabled = false; } } } this.button4.Enabled = t
38、rue; this.scoreTableAdapter.Fill(this.studentManagerDataSet3.Score); this.lbInfo.Text = "登录人:" + UserHelper.user; } private void button1_Click(object sender, EventArgs e) { FormAddScore fas = new FormAddScore();
39、 if (fas.ShowDialog() == DialogResult.OK) { //刷新 string sqltr = "select * From [Score]"; SqlCommand cmd = DBHelper.con.CreateCommand(); cmd.CommandText = sqltr; cmd.CommandType = CommandType.Text;
40、 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();
41、 } } private void button2_Click(object sender, EventArgs e) { this.scoreTableAdapter.Update(this.studentManagerDataSet3.Score); } private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) {
42、 } private void button4_Click(object sender, EventArgs e) { FormScoreManage fsm = new FormScoreManage(); fsm.ShowDialog(); } private void button5_Click(object sender, EventArgs e) { try {
43、 if (this.dataGridView1.SelectedRows.Count > 0) { DataGridViewRow drw = dataGridView1.SelectedRows[0]; DataGridViewCell cell = drw.Cells["idDataGridViewTextBoxColumn"]; string sql = "DELETE [Score] Where [id]=" + c
44、ell.Value.ToString(); new SqlHelper().ExecuteNonQuery(sql, CommandType.Text); dataGridView1.Rows.Remove(drw); } MessageBox.Show("删除数据成功!"); } catch { } }
45、 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.
46、4 学生信息管理 图5-4学生信息界面 代码实现: namespace Student_MI { public partial class FormStudents : Form { public FormStudents() { InitializeComponent(); } private void FormStudents_FormClosing(object sender, FormClosingEventArgs e) {
47、 } 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++) {
48、 if (this.Controls[i].GetType().Equals(typeof(Button))) { this.Controls[i].Enabled = false; } } } this.button5.Enabled = true; // TODO: 这行代码将数据加载到表“studentMa
49、nagerDataSet.Student”中。您能够依据需要移动或移除它。 this.studentTableAdapter1.Fill(this.studentManagerDataSet.Student); this.studentTableAdapter.Fill(this.studentManagerDataSet1.Student); this.lbInfo.Text = "登录人:" + UserHelper.user; } private
50、void button1_Click(object sender, EventArgs e) { FormAddStudent fas = new FormAddStudent(); if (fas.ShowDialog() == DialogResult.OK) { //刷新 string sqltr = "select * From Student"; SqlCommand cmd = DBHe






