为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

学生信息管理系统设计报告

2010-11-29 16页 doc 575KB 60阅读

用户头像

is_392239

暂无简介

举报
学生信息管理系统设计报告学生信息管理系统设计报告 080370104 马中源 一、 设计目的 作为C#课程结课设计,验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单数据库应用程序设计。希望通过项目实践,熟悉巩固所学知识,以使自身达到熟练掌握.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解ADO.NET数据库开发基本知识,为今后的进一步深入学习,奠定基础。 二、需求分析 学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有:班级管理、学生管理、科目管理、课程管理、成...
学生信息管理系统设计报告
学生信息管理系统设计 080370104 马中源 一、 设计目的 作为C#课程结课设计,验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单数据库应用程序设计。希望通过项目实践,熟悉巩固所学知识,以使自身达到熟练掌握.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解ADO.NET数据库开发基本知识,为今后的进一步深入学习,奠定基础。 二、需求分析 学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有:班级管理、学生管理、科目管理、课程管理、成绩管理以及系统管理员才具有的教师管理和用户管理。 1.班级管理:可对班级进行添加、删除、修改、查找和报表输出等功能,班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。 2.学生管理:可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。 3.科目管理:可对科目进行添加、删除、修改、查找和报表输出等功能,科目属性有:科目名称、学时数和备注等属性。 4.课程管理:可对每一个班级的上课科目进行添加、删除、修改、查找和报表输出等功能,课程属性有:所属班级(来自于系统中保存的班级)、授课老师(来自于系统中保存的教师)、开课日期、结课日期和备注等属性。 5.成绩管理:可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。 6. 系统管理:该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户、修改密码、重新登录等等。 三、系统模块的实现 在系统中包括以下功能:系统管理、学生信息管理、课程信息管 理、成绩信息管理、班级信息管理。 系统各模块关系如图所示: 本系统共分为三大部分: 1、​ 登录模块 为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。 用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(Button)用来确定或者取消登录。 设置一个SSTab控件,供不同用户登录时选择用户权限,超级用户拥有一切权限(包括添加删除和修改以及对用户的管理),普通用户拥有受限制的权限(查询及修改密码),提高了数据库的安全性。 添加一个ToolTip组件,提示用户输入正确的用户名和密码形式,提示用户密码是佛正确。 登陆条件判断代码: private void button1_Click(object sender, EventArgs e) { if (this.textBox1.Text == "" || this.textBox2.Text == "") { MessageBox.Show("用户名或密码不能为空!"); } SqlConnection conn = new SqlConnection(connString); string str = "select * from Users where UserName='" + this.textBox1.Text.Trim() + "'"; try { conn.Open(); SqlCommand cmd = new SqlCommand(str, conn); SqlDataReader read = cmd.ExecuteReader(); if (read.Read()) { if (textBox2.Text.Trim() == read["UserPassWord"].ToString().Trim()) { MessageBox.Show("用户正确,欢迎您使用本系统!"); this.Hide(); 主界面 fm = new 主界面(); fm.Show(); } else { MessageBox.Show("密码错误,请重新输入!"); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } conn.Close(); } private void button2_Click(object sender, EventArgs e) { Application.Exit(); } 2、​ 系统主界面模块 登陆成功后,即可进入,系统主界面模块。窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,用户可根据MenuStrip上面各个模块名称单击进入各个管理模块,从而进行对系统的管理操作。 主界面入口代码: private void 学生增删ToolStripMenuItem_Click(object sender, EventArgs e) { 学生管理 fm4 = new 学生管理(); fm4.Show(); } private void 课程管理ToolStripMenuItem_Click(object sender, EventArgs e) { 课程管理 fm7 = new 课程管理(); fm7.Show(); } private void 科目管理ToolStripMenuItem_Click(object sender, EventArgs e) { 科目管理 fm8 = new 科目管理(); fm8.Show(); } private void 成绩管理ToolStripMenuItem_Click(object sender, EventArgs e) { 成绩管理 fm10 = new 成绩管理(); fm10.Show(); } private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e) { 用户管理 fm12 = new 用户管理(); fm12.Show(); } private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) { 更改密码 fm14 = new 更改密码(); fm14.Show(); } private void 班级管理ToolStripMenuItem_Click(object sender, EventArgs e) { 班级管理 fm2 = new 班级管理(); fm2.Show(); } 3、​ 各功能模块 1.​ 用户管理: 可对用户进行添加、删除、修改、查找等功能,用户属性有:用户名、密码、用户类型、 用户权限、用户注册日期等信息。在用户管理界面,用户可根据自身权限查看用户信息,系统超级管理员可根据需求进行添加、删除用户等相关操作。 进入用户管理界面后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。 在这个窗体中放置了三个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;三个标签用来标示文本框的提示。用户添加界面,超级管理员可通过本界面对用户修改用户类型,用户权限设置。 1.4.2修改密码窗体的创建 在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。在这个窗体中放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。密码修改界面主要包括用户名、新设置密码、以及确认等功能。主要供普通用户进行密码修改、以及密码清除操作。 2.​ 班级管理: 班级信息管理界面 班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。 班级管理模块主要分为班级信息管理和班级查询两个界面,班级基本信息管理界面中的Groupbox班级档案,显示班级编号、班级名称、学制、专业、班主任、开班日期、备注等基本信息情况。DataGridView显示数据库中班级详细信息以及伴随操作产生的数据变动情况。在本操作界面内,管理员可对班级信息进行添加、删除、修改等各种操作。 班级查询界面 班级查询界面,主要实现班级基本信息的查询,面向没有管理权限的普通用户访问系统信息,根据班级编号对班级信息进行查询操作,详细信息会在窗体上面DataGridView中显示,普通用户只能浏览信息,不能进行删除、修改等管理权限操作。 3. 课程管理: 课程管理模块主要分为课程管理界面和教师管理界面两部分实现。 课程管理界面中的DataGridView显示课程基本信息,包括科目编号、班级编号、开课学期、教师编号、开课日期、捷克日期等基本信息。管理员可对每一个班级的上课科目进行添加、删除、修改、查找等功能,也可对全部课程进行查看、修改、添加、删除等基本操作。 sql = "select * from ClassCourse"; da = new SqlDataAdapter(sql, connString); ds = new DataSet(); da.Fill(ds, "ClassCourse"); binds = new BindingSource(ds, "ClassCourse"); dataGridView1.DataSource = binds; 教师管理模块主要包括教师基本档案,教师属性为编号、姓名、联系电话、教师姓名、任教年限、性别、专业、出生年月。在教师管理模块可进行相应的查询与信息修改。 4.课程管理模块 课程信息浏览功能:点击主窗体中课程管理模块下的科目信息浏览,可进入科目信息浏览窗体。为了用户的使用方便,我使用了SSTab控件,故在该窗体中同时包含了科目信息的添加和修改的功能。并且我还在窗体上设置了myflexgrid控件。添加和修改记录后,对于数据有何变化都可以在myflexgrid中显示出来,使用户对所做的操作一目了然。 课程设置功能:进入课程管理模块下的课程设置窗体,可以对每一个年级的课程进行设置。 SqlConnection conn = new SqlConnection(connString); string sql = "Insert into ClassCourse values(" + "'" + textBox1.Text + "','" + textBox2.Text + "'," + textBox3.Text + ",'" + textBox4.Text + "','" + DateTime.Parse(dateTimePicker1.Text) + "','" + DateTime.Parse(dateTimePicker2.Text) + "')"; try { conn.Open(); MessageBox.Show("打开数据库连接成功"); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show("添加记录成功!"); } catch (SqlException ex) { MessageBox.Show("数据库连接失败!" + "添加记录失败!" + ex.Message); } 可对科目进行添加、删除、修改、查找等功能, 修改 SqlConnection conn = new SqlConnection(connString); string sql = "Update ClassCourse set CourseNo='" + textBox1.Text + "'," + "ClassNo='" + textBox2.Text + "'," + "StartTerm=" + textBox3.Text + "," + "TeaNo='" + textBox4.Text + "'," + "StartData='" + DateTime.Parse(dateTimePicker1.Text) + "'," + "FinishData='" + DateTime.Parse(dateTimePicker2.Text) + "'" + "where CourseNo=" + temp; try { conn.Open(); MessageBox.Show("打开数据库连接成功"); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show("修改记录成功!"); } catch (SqlException ex) { MessageBox.Show("数据库连接失败!" + "修改记录失败!" + ex.Message); } 科目管理模块科目属性主要包括科目名称、学时数和备注等属性。同时包括教师管理,教师管理包括教师姓名、电话、性别、科目、职称等一系列基本信息;可对教师进行添加、删除、查询等基本操作。 5.成绩管理模块 成绩添加代码实现 SqlConnection conn = new SqlConnection(connString); string sql = "Insert into Scores values(" + "'" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')"; try { conn.Open(); MessageBox.Show("打开数据库连接成功"); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show("添加记录成功!"); 成绩删除代码实现 SqlConnection conn = new SqlConnection(connString); DialogResult ret = MessageBox.Show("确定要删除吗?", "删除", MessageBoxButtons.OKCancel); if (ret == DialogResult.Cancel) return; string sql = "delete from Scores where StuNo=" + textBox1.Text; SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); int rows = cmd.ExecuteNonQuery(); if (rows == 1) MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 成绩查询代码实现 sql = "select * from Scores where StuNo='"+textBox1.Text+"'"; da = new SqlDataAdapter(sql, connString); ds = new DataSet(); da.Fill(ds, "Scores"); binds = new BindingSource(ds, "Scores"); dataGridView1.DataSource = binds; 成绩管理模块主要包括成绩信息管理功能点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体,考虑到美观和实用性,界面设置如下图。用Frame控件在窗体中划定一个可浏览成绩信息地方,再在Frame中添加MSFlexGrid控件,运行时将在MSFlexGrid中显示所有学生的成绩信息。使用Toolbar来建立工具条。点击工具条中的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。 成绩管理模块,管理员可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。 6.学生管理模块 添加学籍信息功能 SqlConnection conn = new SqlConnection(connString); //MemoryStream ms; //pictureBox1.Image.Save(ms); //byte[] img = ms.ToArray(); string sql = "Insert into Student(StuNo,StuName,StuSex,ClassNo,StuBday,StuAdress,StuPostNo,StuPhone,StuData,StuRemarks) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + DateTime.Parse(dateTimePicker1.Text) + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + DateTime.Parse(dateTimePicker2.Text) + "','" + textBox8.Text + "')"; SqlCommand cmd = new SqlCommand(sql,conn); try { conn.Open(); MessageBox.Show("数据库连接成功!"); cmd.ExecuteNonQuery(); MessageBox.Show("添加记录成功!"); } catch (SqlException ex) { MessageBox.Show(ex.Message); } 选择主窗体中学生管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体中我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。 在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框中需要输入的内容。 在学生管理窗体下,可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。 修改删除学生信息 SqlConnection conn = new SqlConnection(connString); DialogResult ret = MessageBox.Show("确定要删除吗?", "删除", MessageBoxButtons.OKCancel); if (ret == DialogResult.Cancel) return; string sql = "delete from Student where StuNo=" + temp; SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); int rows = cmd.ExecuteNonQuery(); if (rows == 1) MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (SqlException ex) { MessageBox.Show("数据库连接失败!" + ex.Message); } 点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体中我们可以对前面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。又考虑到用户的误操作,为了方便,我在该窗体中增添了取消修改的功能,可一次性把输入文本框的内容全部置空。 查询学籍信息功能 //string conn = "Initial Catalog=Mazhongyuan;Data Source =localhost;Integrated Security=true"; SqlConnection connection = new SqlConnection(connString ); SqlDataAdapter adapter = new SqlDataAdapter("select * from Student ",connection); DataTable table = new DataTable(); adapter.Fill(table); dataGridView1.DataSource = table; 进入学籍管理模块下的查询学籍信息窗体,在该窗体中可以对学生的信息进行查询,有三种查询方式。我在设计时,一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,myflexgrid中会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将在myflexgrid中显示出用户所需的学生的学籍信息。 四、系统测试 在开发这个软件系统的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。 在该设计中,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。 当然,该学生信息管理系统也存在一些不足之处。在成绩管理界面,当3次改变成绩为不同的内容时,程序会出错。虽然尝试了很多方法,仍不能解决。再一点就是关于打印和年级课程信息设置都未能实现,这有待于以后的进一步提高。 一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用系统在运行过程中,用户会提出一些新的需求和建议,我就会根据用户需求的变化,对本系统做出一定的修改,使其进一步地得到完善和提高。 五、课程设计总结 通过本次课程设计,验证了本学期对C#的学习效果,同时利用所学的基本知识和技能,尝试进行简单数据库应用程序设计。通过本次项目实践,熟悉巩固了本学期所学软件设计知识,达到熟练掌握.NET基本结构以及C#语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,了解ADO.NET数据库开发基本知识,为今后的进一步深入学习,奠定了基础。 参考 C#程序设计 C#实用软件开发 数据库设计
/
本文档为【学生信息管理系统设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索