资源描述
南京信息工程大学 题目:SQL+C#学生信息管理系统 姓 名: 才央 学 号: 20131344071 班 级: 软工3班 专 业: 软件工程教师指导: 崔萌萌2015年 6 月24 日目录一、设计目的3二、 需求分析4三、模块分析及设计5四、数据库设计说明64.1数据表64.2数据库的完整性和安全性6五、 制作过程及要点7六、 设计总结15七、 参考文献17一、设计目的随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一个重要部分,信息查询系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。学生信息查询系统是学校地方管理工作过程中不可缺少的部分,对学生信息管理工作,具有着手工管理所无法比拟的优点,检索迅速、查找方便、可靠性高、存储量大等。这些优点能够极大地提高日常查询的效率。因此,开发学生信息查询系统成为很有必要的事情。数据库技术是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。而在互联网日益发展、壮大的背景下,在因特网普及浪潮持续高涨的情况下,如何让原来在单机中使用的数据库可供多机使用,也成了必然的趋势。随着计算机技术的发展和互联网时代的到来和飞速发展,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校传统的管理方法和办学水平都受到了极大的挑战。Internet技术持续迅猛的发展,也给传统的办学提出了新的模式。绝大部分大学和学院都已接入互联网并建成校园网,各校的硬件设施已经比较完善。通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。与网络技术相结合的新型办学模式具有对于教育、教学过程来说极为宝贵的特性,可以为新型办学模式的建构提供理想的环境。通过设计达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。根据题目的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和Visual Studio2005工具的使用。二、需求分析用户的需求具体体现在各种信息的录入、修改、删除和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。更重要的是数据库设计经验在今后其他项目的开发过程中同样有着很重要的借鉴作用。学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有: 1.登录学生的学号.姓名.性别.年龄.籍贯.系别.专业.班级;2.修改已知学号的学生信息; 3.删除已知学号的学生信息; 4.查找已知学号的学生信息; 三、模块分析及设计四、数据库设计说明4.1数据表字段代号字段类型字段长度是否可以为空备注姓名Char10否学生姓名性别char10否学生性别班级char100是学生班级专业char10是4.2数据库的完整性和安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏.安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全笥问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.数据库的完整性是指数据的正确性和相容性.例如本系统中;学生的学号必须唯一;性别只能是男或女;学生所在的系统必须是学校已开设的系.等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完事性是非常重要的.五、制作过程及要点这次设计和数据库紧密相连,首先我们根据题意设计相关的数据库(lab)以及相关的数据表(book,manager,user)。然后我们把这次的设计内容分成了若干个模块,逐次实现各个模块的功能,这样不仅便于功能的实现,而且外观美观,层次清晰。制作过程主要是页面的设计和相关代码的编写。主要分成以下几种模块:登录模块 登陆系统代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;/引入命名空间namespace Program public partial class Login : Form public static string managename = string.Empty; public Login() InitializeComponent(); txtName.Text = admin; txtPwd.Text = admin; /= DataTable dt = new DataTable(); dt.Columns.Add(DisplayValue); dt.Columns.Add(Value); DataRow dr = dt.NewRow(); drDisplayValue = 管理员; drValue = 1; dt.Rows.Add(dr); dr = dt.NewRow(); drDisplayValue = 老师; drValue = 2; dt.Rows.Add(dr); dr = dt.NewRow(); drDisplayValue = 学生; drValue = 3; dt.Rows.Add(dr); ddlGrade.ValueMember = Value; ddlGrade.DisplayMember = DisplayValue; ddlGrade.DataSource = dt; lblMessage.Text = ; #region 登录 private void button1_Click(object sender, EventArgs e) lblMessage.Text = ; string name = txtName.Text.Trim(); string pwd = txtPwd.Text.Trim(); DataTable dt = App_Code.DB.getDataTable(select * from manager where managername= + name + and managerpwd= + pwd + and grade= + ddlGrade.SelectedValue); if (dt.Rows.Count 0) /true managename = name; Main main = new Main(int.Parse(ddlGrade.SelectedValue.ToString(), name); main.Show(); this.Hide(); else /false lblMessage.Text = 帐号或密码错误.; #endregion #region 关闭登录窗口系统主界面登陆成功后,即可进入,系统主界面模块。窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,从而进行对系统的管理操作。 1 班级管理查找界面(能进行查找,修改,删除,添加等操作,这里以查找为例)2 教师管理添加教师界面部分代码如下:public partial class JiaoShiManage : Form string expcon = string.Empty; string wordname = *; string tempexpcon = (jiaoshiname like %0%); public int Grade = 0; public JiaoShiManage(int _grade) InitializeComponent(); Grade = _grade; if (Grade != 1) button1.Visible = false; this.Text = 教师信息管理; expcon = string.Format(tempexpcon, ); BindData(true); #region 绑定信息 / / 绑定信息 / / 初始加载时为true,其它情况时为false public void BindData(bool IsBindColumns) this.dgvInfo.DataSource = App_Code.DB.getDataTable(select + wordname + from JiaoShi where + expcon); if (IsBindColumns) this.dgvInfo.Columns0.HeaderText = ID; this.dgvInfo.Columns0.Width = 50; this.dgvInfo.Columns1.HeaderText = 姓名; this.dgvInfo.Columns1.Width = 80; this.dgvInfo.Columns2.HeaderText = 性别; this.dgvInfo.Columns2.Width = 60; this.dgvInfo.Columns3.HeaderText = 职称; this.dgvInfo.Columns3.Width = 100; this.dgvInfo.Columns4.HeaderText = 所教班级; this.dgvInfo.Columns4.Width = 120; if (Grade = 1) DataGridViewButtonColumn btnupdate = new DataGridViewButtonColumn(); btnupdate.HeaderText = ; btnupdate.Text = 修改; btnupdate.Name = edit; btnupdate.Width = 60; btnupdate.UseColumnTextForButtonValue = true; this.dgvInfo.Columns.Add(btnupdate); DataGridViewButtonColumn btndel = new DataGridViewButtonColumn(); btndel.HeaderText = ; btndel.Text = 删除; btndel.Name = del; btndel.Width = 60; btndel.UseColumnTextForButtonValue = true; this.dgvInfo.Columns.Add(btndel); 3 学生信息管理界面 查找学生部分代码如下:public void BindData(bool IsBindColumns) string swhere = ; if (Grade = 2) swhere = and yuanxiname= + App_Code.DB.getDataTable(select top 1 yuanxiname from jiaoshi where jiaoshiname= + username + ).Rows00 + ; this.dgvInfo.DataSource = App_Code.DB.getDataTable(select + wordname + from XueSheng where + expcon + swhere); if (IsBindColumns) this.dgvInfo.Columns0.HeaderText = ID; this.dgvInfo.Columns0.Width = 50; this.dgvInfo.Columns1.HeaderText = 学生姓名; this.dgvInfo.Columns1.Width = 70; this.dgvInfo.Columns2.HeaderText = 性别; this.dgvInfo.Columns2.Width = 40; this.dgvInfo.Columns3.HeaderText = 所在班级; this.dgvInfo.Columns3.Width = 100; this.dgvInfo.Columns4.HeaderText = 班级职务; this.dgvInfo.Columns4.Width = 100; this.dgvInfo.Columns5.HeaderText = 所在楼号; this.dgvInfo.Columns5.Width = 80; this.dgvInfo.Columns6.HeaderText = 宿舍号; this.dgvInfo.Columns6.Width = 80; if (Grade = 1) DataGridViewButtonColumn btnupdate = new DataGridViewButtonColumn(); btnupdate.HeaderText = ; btnupdate.Text = 修改; btnupdate.Name = edit; btnupdate.Width = 60; btnupdate.UseColumnTextForButtonValue = true; this.dgvInfo.Columns.Add(btnupdate); DataGridViewButtonColumn btndel = new DataGridViewButtonColumn(); btndel.HeaderText = ; btndel.Text = 删除; btndel.Name = del; btndel.Width = 60; btndel.UseColumnTextForButtonValue = true; this.dgvInfo.Columns.Add(btndel); 六、设计总结通过两周的上机实习,我对C#又有了崭新的认识。C#的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。这次我设计的课题是学生信息管理系统。在设计这个课题的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名计算机科学与技术专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。七、参考文献Visual Studio.NET 2008开发一册通:C#3.0从基础到项目实战 李海涛 化学工业出版社 2010-1-116
展开阅读全文