C#学生信息管理系统课程设计(NET)_第1页
C#学生信息管理系统课程设计(NET)_第2页
C#学生信息管理系统课程设计(NET)_第3页
C#学生信息管理系统课程设计(NET)_第4页
C#学生信息管理系统课程设计(NET)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生管理系统 摘要:现在高校的学生信息的管理趋向于复杂化和多元化,随着计算机的广泛应用,越来越多的高校均采用了计算机化的管理模式。查询、修改、录入、删除等基本操作都采用了计算机的数据库技术。比起以前使用卡片的方法有了很大的进步,方便管理,易于更新,极大的方便了学生信息的管理工作。学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 关键词:学生信息;数据库; 系统维护1引言1.1介绍本课题的目的和意义学生信息管理系统是一个教育

2、单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段1.2课题目的及意义1.2.1开发一个学生管理系统意义计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面: 首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源; 第三,计算机可以大大的提高人们的工作效率; 第四,计算机可以使敏感文档更加安全,等等。为了解决传统学生信息的管理正面临着的这些问题,我所设计的学生信息管理系统软件也就应运而生了。

3、1.2.2 使用计算机管理学生信息的意义由于我国有些学校学生信息的管理水平比较低,只停留在纸介质的水准上,这样的机制很明显地已不能适应时代的发展要求,它浪费了过多的人力及物力,还存在一些先天缺陷。在信息时代,这种传统的管理方法被以计算机为基础的信息管理方法取代已是大势所趋。 归纳起来,学生信息管理系统做到一下功能比较合民意: 首先,可以存储历届的学生信息,安全、高效; 其次,系统可操作性强,能够节省人力,最好只需一到二名信息录入员; 再次,查找信息速度快、效率高,可以检索有条件信息; 再其次,为将来学校实现网络化教育做准备。1.3 主要设计功能本程序需要具备以下功能:可以对学生信息进行操作,比

4、如修改、添加等;可以对学生信息进行查询;系统管理具体包括添加、删除用户,修改用户信息等。2系统概述2.1系统设计背景随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。2.2系统的功能简介本系统主要分成四个部分:学生信息管理 ,成绩管理,及用户管理。2.2.1学生信息管理为每位在校学生就其中学号、性别、姓名、出生日期、出生地、备案,而且以中考成绩作为分班的依据,可以对学生信息进行添加,删除,修改。2.2.2成绩管理每个学

5、期组织期末考试,并对每个学生的各门成绩进行登记、汇总、排名。涉及的主要数据是每个班每个学期一张成绩单,内容是学生的学号、姓名及成绩,在该管理中主要完成成绩的浏览、查询、分数的计算、打印的功能,而且成绩作为学生学习状况的主要依据和教师教学质量考核的主要依据之一。2.2.3用户管理该模块的主要功能是实现对用户的各种权限管理工作,添加新用户、修改用户密码、修改用户注册信息、删除用户帐号等功能,从而方便于对用户的管理。3系统的分析及设计3.1需求分析3.1.1功能需求通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管

6、理; 原始数据修改简单方便,支持多条件修改 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;3.1.2性能需求分析(1)硬件环境CPU:Pentium4 C2.4D内存:256M硬盘:80G显示器:17寸(2)软件环境Windows XP系统/ Windows 7Microsoft Visual Studio 2008SQL Server2005IIS 6.03.2总体设计3.2.1可行性分析经过调查、研究、分析、计算,在学生信息管理中的应用已经条件成熟,我们将从以下几个方面总结系统开发的可行性,具体情况如下:技术可行性以

7、Windows为操作系统,运用SQL SERVER2005的数据库技术,开发以Windows XP/ Windows 7为用户的操作平台,界面友善、功能齐全的学生信息管理系统。新系统的运行硬件环境PC机,当用户使用系统时,通过正确的口令进入系统,进行数据库的维护操作和运用。经济可行性一方面,新系统中友好的人机界面和更强劲的功能支持,会使教务人员的工作进一步提高,从而节省人力、物力,进而提高经济效益;另一方面系统开发成本低,现有PC机即可提供该系统开发工作需要的所有硬件设备环境,至于人员主要以现有教师为指导,学生为主体进行完成。操作可行性操作上是对IE浏览器的引用,该浏览器的使用,主要凭借使用浏

8、览操作技术即可完成数据录入、报表打印,方便简单。使用前只要对用户进行简单的说明或阅读帮助文件即可使用该系统。在对现有系统和现状认真调查分析的基础上,明确了学生信息管理工作本身存在的问题和建立管理信息系统的初步要求,进一步研究确定新系统的目标如下:1、按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持中学学生管理的全过程,加强成绩表中信息资源的管理和应用,提高教务工作的效率。2、针对现代计算机广泛应用的情况以及数据的封闭性,学生信息管理系统基于Windows系统研制、设计和开发。3、考虑经费等的原因,新系统使用PC机和现有其他打印设备以节省资金、降低成本。3.2.2功能分析根据系统分析

9、的结果,按照结构化的系统设计方法,学生信息管理系统从功能上可以做出如下系统的划分:系统功能结构图3.2.3数据流图分析数据流图是在对系统分析调查的基础上,以系统的科学性、管理的合理性、技术的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确地描述应具有的数据加工功能、数据输入、数据输出、数据存储及数据的来源和去向。学生信息管理系统经过划分出各子系统及其各自的功能,以及相互联系,绘制出数据流图如下:学生信息管理系统管理员用户图3-1顶层数据流图管理员1.检查合法性3.系统维护4.学生信息管理用户系统管理员2.显示系统主要功能图3-2第0层数据流图1.2检查登录名1.3

10、检查密码1.1检查登录系统管理员登录名,密码图3-3第一层数据流图2.1显示系统主要功能2.2显示学生基本信息2.3修改学生基本信息2.5删除学生基本信息2.6查询学生成绩2.4添加学生基本信息2.7学生成绩录入学生信息表学生信息表学生成绩表图3-4第一层数据流图2.3.1修改学生2.3.2检查学生信息合法性学生信息表2.3.3修改学生信息检查成功图3-5第二层数据流图(修改学生信息)2.4.1添加学生2.4.2检查学生信息合法性学生信息表2.4.3添加学生信息检查成功图3-6第二层数据流图(添加学生信息)2.5.1删除学生2.5.2检查学生信息合法性学生信息表2.5.3删除学生信息检查成功图

11、3-7第二层数据流图(删除学生信息)2.6.1查询成绩2.6.2检查学生信息合法性学生成绩表2.6.3显示学生成绩检查成功图3-8第二层数据流图(查询学生成绩)Admins(管理员)管理员ID管理员密码图3-9Admins(管理员)表E-R图Stucdents(学生表)学号姓名性别出生日期出生地专业图3-10Students(学生)表E-R图Score(成绩表)学号姓名成绩图3-11Score(成绩)表E-R图4详细设计4.1数据库设计数据库采用了Microsoft推出的SQL SERVER2005数据库,能够快速方便的和其他套件综合使用。由于SQL SERVER2005具有显著的简易性和有效

12、性,大量的网络数据库系统都采用SQL SERVER2005作为后台数据库。使用SQL SERVER2005的好处还在于,为系统以后的扩展提供方便。本系统中所涉及到的主要实体共有五个数据表:User表:用户ID,用户密码Students表:学号,姓名,性别,班级,出生地,出生日期Score表:学号,姓名,成绩Course表:科目编号,科目名称,开始时间,结束时间,学期Class表:编号,一期班名,二期班名,三期班名,入学时间各表的物理结构:User表:Students表:Score表:Course表:Class表:4.2系统模块设计本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码

13、保存在user表中,可以用user;123为用户名和密码来登陆本系统,其登录界面如下:登录页面主要是根据用户输入的用户名和密码,去查找管理员表中是否存在这样的合法的用户,找到则登录成功;未找到则提示用户登录错误。其系统流程图如下所示:退 出开始用 户 登 录成功之路查询信息管理自己和学生的信息错误重试 管理用户普通用户由于与数据库链接是整个系统的关键,也是使用就经常的,把与数据库链接的文件集成到DBOperater下的DBConnection.cs类中namespace DBOperater public class DBConnection private SqlConnection con

14、n; /定义一个连接对像 / <summary> / 购造方法中实例一个连接对象,本项目使用的是Microsoft SQL Server / </summary> public DBConnection() conn = new SqlConnection("Data Source=LENOVO-PC;Initial Catalog=StudentManageDB;Integrated Security=True"); / <summary> / 根据参数传来的SQL语句,执行增、删、改操作 / </summary> / &l

15、t;param name="strSql">要执行的SQL语句</param> public void ExecuteSqlNonQuery(string strSql) SqlCommand cmd = new SqlCommand(strSql,conn); try conn.Open(); cmd.ExecuteNonQuery(); catch (Exception ex) throw new Exception(ex.Message); finally conn.Close(); / <summary> / 根据参数传来的SQL语句,

16、执行断开式查询操作 / </summary> / <param name="strSql">要执行的SQL语句</param> / <returns>返回DataTable类型的查询结果</returns> public DataTable ExecuteSqlQuery(string strSql) DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(strSql,conn); try da.Fill(dt); catch

17、(Exception ex) throw new Exception(ex.Message); return dt; / <summary> / 根据参数传来的存储过程名和存储过程中用到的参数,执行增、删、改操作 / </summary> / <param name="strProc">存储过程名</param> / <param name="pars">存储过程中用到的参数数组</param> public void ExecuteProcNonQuery(string strPr

18、oc,SqlParameter pars) SqlCommand cmd = new SqlCommand(strProc, conn); cmd.CommandType = CommandType.StoredProcedure; if (pars != null) /如果存储过程中用到的参数数组不为空 foreach(SqlParameter par in pars) /则遍历数组 cmd.Parameters.Add(par); /将所有的参数添加到SqlCommand对象的参数属性中 try conn.Open(); cmd.ExecuteNonQuery(); catch (Exce

19、ption ex) throw new Exception(ex.Message); finally conn.Close(); / <summary> / 根据参数传来的存储过程名和存储过程中用到的参数,执行断开式查询操作 / </summary> / <param name="strProc">存储过程名</param> / <param name="pars">存储过程中用到的参数</param> / <returns>返回DataTable类型的查询结果</

20、returns> public DataTable ExecuteProcQuery(string strProc, SqlParameter pars) DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(strProc, conn); da.SelectCommand.CommandType = CommandType.StoredProcedure; if (pars != null) /如果存储过程中用到的参数数组不为空 foreach (SqlParameter par in pars)

21、/则遍历数组 da.SelectCommand.Parameters.Add(par); /将所有的参数添加到SqlDataAdapter对象的参数属性中 try da.Fill(dt); catch (Exception ex) throw new Exception(ex.Message); return dt; 验证数据是否存在到数据访问层(DAL)userDAO.cs中验证/验证用户名和密码是否正确 public Users isUsers(Users user) SqlParameter pars = new SqlParameter2new SqlParameter("u

22、serName",SqlDbType.VarChar,30), new SqlParameter("userPass",SqlDbType.VarChar,10) ; pars0.Value = user.UserName; pars1.Value = user.UserPass; DataTable dt=dbc.ExecuteProcQuery("proc_isUsers", pars); if (dt.Rows.Count!=0) user.UserId = Int32.Parse(dt.Rows0"userId".T

23、oString(); user.Picture = dt.Rows0"picture".ToString(); user.Status = Int32.Parse(dt.Rows0"status".ToString(); user.BackImage = dt.Rows0"backImage".ToString(); user.Powers = dt.Rows0"powers".ToString(); return user; else return null; 系统主界面:本模块是本系统的主功能界面,在本界面上集

24、成了本系统的所有功能,共有个功能菜单,从而实现了本系统从信息管理、成绩管理、页面管理等系统的具体功能,同时,在系统管理模块中可以完成对本系统的安全性管理。4.2.1学生信息模块的设计添加学生信息:public void StudentAdd(Student stu) SqlParameter pars = new SqlParameter6new SqlParameter("studentNO",SqlDbType.VarChar,20), new SqlParameter("studentName",SqlDbType.VarChar,50), new

25、 SqlParameter("gender",SqlDbType.Char,2), new SqlParameter("birthday",SqlDbType.VarChar,30), new SqlParameter("classId",SqlDbType.Int,4), new SqlParameter("remark",SqlDbType.VarChar,256) ; pars0.Value = stu.StudentNO; pars1.Value = stu.StudentName; pars2.Value

26、 = stu.Gender; pars3.Value = stu.Birthday; pars4.Value = stu.ClassId; pars5.Value = stu.Remark; dbc.ExecuteProcNonQuery("proc_AddStudent", pars); 修改学生信息: /修改学生信息的方法 public void StudentUpdate(Student stu) SqlParameter pars = new SqlParameter7new SqlParameter("studentId",SqlDbType.

27、Int,4), new SqlParameter("studentNO",SqlDbType.VarChar,20), new SqlParameter("studentName",SqlDbType.VarChar,50), new SqlParameter("gender",SqlDbType.Char,2), new SqlParameter("birthday",SqlDbType.VarChar,30), new SqlParameter("classId",SqlDbType.Int

28、,4), new SqlParameter("remark",SqlDbType.VarChar,256) ; pars0.Value = stu.StudentId; pars1.Value = stu.StudentNO; pars2.Value = stu.StudentName; pars3.Value = stu.Gender; pars4.Value = stu.Birthday; pars5.Value = stu.ClassId; pars6.Value = stu.Remark; dbc.ExecuteProcNonQuery("proc_Upd

29、ateStudent", pars); 删除学生信息: /删除学生信息的方法 public void StudentDelete(Student stu) SqlParameter pars = new SqlParameter1new SqlParameter("studentId",SqlDbType.Int,4) ; pars0.Value = stu.StudentId; dbc.ExecuteProcNonQuery("proc_DelStudent", pars); 查询学生信息: /查询所有学生信息的方法 public DataT

30、able StudentSelectAll() return dbc.ExecuteProcQuery("proc_SelStudentAll", null); 4.2.2学生成绩模块设计添加成绩:代码如下: public void ScoreAdd(ScoreBean sco) SqlParameter pars = new SqlParameter6new SqlParameter("courseId",SqlDbType.Int,4), new SqlParameter("studentId",SqlDbType.Int,4),

31、 new SqlParameter("score",SqlDbType.Float), new SqlParameter("mode",SqlDbType.VarChar,20), new SqlParameter("examDate",SqlDbType.DateTime), new SqlParameter("className",SqlDbType.VarChar,20) ; pars0.Value = sco.CourseId; pars1.Value = sco.StudentId; pars2.Valu

32、e = sco.Score; pars3.Value = sco.Mode; pars4.Value = sco.ExamDate; pars5.Value=sco.ClassName; dbc.ExecuteProcNonQuery("proc_AddScore", pars); 成绩修改:代码如下: /修改成绩信息的方法 public void ScoreUpdate(ScoreBean sco) SqlParameter pars = new SqlParameter5new SqlParameter("scoreId",SqlDbType.Int

33、,4), new SqlParameter("courseId",SqlDbType.Int,4), new SqlParameter("score",SqlDbType.Float), new SqlParameter("mode",SqlDbType.VarChar,20), new SqlParameter("examDate",SqlDbType.DateTime) ; pars0.Value = sco.ScoreId; pars1.Value = sco.CourseId; pars2.Value =

34、sco.Score; pars3.Value = sco.Mode; pars4.Value = sco.ExamDate; dbc.ExecuteProcNonQuery("proc_UpdateScore", pars); 成绩查询:/根据班级、科目、考试时间、考试类型,查询一个班级的其中一次考试成绩信息 public DataTable ScoreSelectOnce(ScoreBean sco) SqlParameter pars = new SqlParameter4new SqlParameter("courseId",SqlDbType.I

35、nt,4), new SqlParameter("className",SqlDbType.VarChar,20), new SqlParameter("examDate",SqlDbType.DateTime), new SqlParameter("mode",SqlDbType.VarChar,20) ; pars0.Value = sco.CourseId; pars1.Value = sco.ClassName; pars2.Value = sco.ExamDate; pars3.Value = sco.Mode; retur

36、n dbc.ExecuteProcQuery("proc_SelScoreOnce", pars); 4.2.3学生科目模块:添加科目:/添加科目信息的方法 public void CourseAdd(Course course) SqlParameter pars = new SqlParameter3new SqlParameter("courseName",SqlDbType.VarChar,20), new SqlParameter("term",SqlDbType.Int), new SqlParameter("r

37、emark",SqlDbType.VarChar,256) ; pars0.Value = course.CourseName; pars1.Value = course.Term; pars2.Value = course.Remark; dbc.ExecuteProcNonQuery("proc_AddCourse", pars); /修改科目信息的方法 public void CourseUpdate(Course course) SqlParameter pars = new SqlParameter4new SqlParameter("cour

38、seId",SqlDbType.Int), new SqlParameter("courseName",SqlDbType.VarChar,20), new SqlParameter("term",SqlDbType.Int), new SqlParameter("remark",SqlDbType.VarChar,256) ; pars0.Value = course.CourseId; pars1.Value = course.CourseName; pars2.Value = course.Term; pars3.Va

39、lue = course.Remark; dbc.ExecuteProcNonQuery("proc_UpdateCourse", pars); /删除科目信息的方法 public void CourseDelete(Course course) SqlParameter pars = new SqlParameter1 new SqlParameter("courseId", SqlDbType.Int) ; pars0.Value = course.CourseId; dbc.ExecuteProcNonQuery("proc_DelCou

40、rse", pars); 查询科目: / 查询科目信息 / </summary> / <returns></returns> public DataTable SelectCourse() return dbc.ExecuteProcQuery("proc_selCourse", null); /根据科目查询 public DataTable SelectCourseByName(Course cou) SqlParameter pars = new SqlParameter1 new SqlParameter("name

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论