毕业设计(论文)-学生管理系统.doc

上传人:韩长文 文档编号:3953602 上传时间:2019-10-11 格式:DOC 页数:40 大小:588KB
返回 下载 相关 举报
毕业设计(论文)-学生管理系统.doc_第1页
第1页 / 共40页
毕业设计(论文)-学生管理系统.doc_第2页
第2页 / 共40页
毕业设计(论文)-学生管理系统.doc_第3页
第3页 / 共40页
毕业设计(论文)-学生管理系统.doc_第4页
第4页 / 共40页
毕业设计(论文)-学生管理系统.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《毕业设计(论文)-学生管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-学生管理系统.doc(40页珍藏版)》请在三一文库上搜索。

1、保定电力职业技术学院毕业设计论文目录目录11.前言12.系统可行性研究321技术可行性研究322 操作可行性研究33.需求分析431开发平台432使用平台54.系统分析641系统开发的意义642系统概要设计6421设计思想6422设计原则6423功能需求7424性能需求943逻辑关系图10431数据库关系图10432逻辑结构设计115.系统详细设计1351系统功能结构图13511成绩管理14512成绩分析1652代码实现18521成绩编辑18522成绩分析22结论27致谢28参考文献29附件A30附件B311.前言随着各个学校的规模增大,有关学生管理工作所涉及的数据量越来越大,各个学校的学生管

2、理基本上都是靠手工进行,有的学校不得不靠增加人力、物力来进行学生管理。但手工管理具有效率底、,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生管理系统。学生管理系统已经成为适应我国高等教育扩大规模和培养高等人才跨世纪工程的关键环节,也是高等教育得以顺利发展的基础条件。建设相关的学生信息管理系统,将会促进高等教育的发展。学生管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性

3、差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我将以开发学生管理系统为例,谈谈其开发过程和

4、所涉及到的问题及解决方法。2.系统可行性研究21技术可行性研究学生信息管理是高校管理的重要组成部分,是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。学生的稳定是学校快速发展的有力保障,这不仅仅关系到学生在校期间的表现,在很大程度上度量了一个学生的跟踪管理。学生管理的重要性不言而喻,但因为其包含的数据量大,涉及的人员面广,而且需要及时更新,所以学生管理在学校中是很繁琐的,在每个系,每个学生都需要有对应的档案记录。在学校各项管理中,学生管理牵涉到的其他管理内容是最复杂的,它牵涉到了学生个人档案管理、学籍管理、成绩管理、课程管理等。所以在实际管理工作中,往往由于记录的数量多、管理复杂

5、、可连续性差,造成学生管理的混乱。对这一混乱,最好的解决办法就是借助计算机技术和数据库管理系统,对整个学生管理进行记载,并实行电子化管理。本课题的目的就是开发“学生管理系统”,通过这一系统来掌握学生的管理情况,实现学生信息管理的电子化,提供一个电子化的学生管理平台。以Windows为操作系统,运用SQL Server的数据库技术,开发以Windows为用户的操作平台,界面友善、功能齐全的学生管理系统。新系统的运行硬件环境PC机,当用户使用系统时,通过正确的口令进入系统,进行数据库的维护操作和运用。22 操作可行性研究本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于

6、那些有一般的计算机知识的人员就可以轻松上手。而整个管理系统采用最友好的交互界面,简洁明了,不需要对数据库进行深入的了解。由此,该系统的操作是可行的,有必要开发该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的数据流程图。3.需求分析31开发平台 数据库选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选数据库中型学校(20-100)5000-50000中一般SQL Server大型学校(100-1000)50000-200000较高较好SQL Server超大型学校(1000以上)200000以上高好Oracle表3- 1 操作

7、系统的选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选操作系统中型学校(20-100)500-2000较高较好Windows2000,WindowsXP,Linux,Unix大型学校(100-1000)500-2000较高较好Unix超大型学校(1000以上)2000以上高好Unix表3- 2 而本系统选择的开发平台是系统:Microsoft Windows2003硬件:计算机(CPU 2.40GH、内存 512MB、硬盘80G)软件:Microsoft Visual Studio2005、SQL Server200032使用平台硬件配置主要包括客户端硬件的选择和服务器端硬件的选择。

8、学生管理系统的硬件配置根据用户对系统的稳定性要求、系统的容量、系统的吞吐量以及用户的维护水平来确定。给与参考: 客户端硬件选择用户稳定性要求备选客户端学生客户端低PentiumCPU/64MB/4GB管理员客户端中Pentium III/256MB/20GB表3- 3 服务器端硬件选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选服务器中型学校(20-100)50-500中一般双CPU/1GB/RAID53*72GB大型学校(100-1000)500-2000较高较好小型计算机/双机热备 或者XEON4CPU/4GB/RAID56*72GB超大型学校(1000以上)2000以上高好小型

9、计算机双机热备 或者XEON8CPU/4GB/RAID56*72GB表3- 44.系统分析41系统开发的意义学生管理系统的建立是可以有效的节省人力资源提高管理效率的投资,其设计理念很简单,变人工管理学生信息为计算机自动化进行学生信息的管理,既省时间又提高效率。因此在系统构建时,只要我们本着丰富学生管理的信息资源,为学生和教务管理员方便的快捷的学生信息查询途径和管理手段,去改变原有的效率低下的管理方式,那么学生管理系统是完全可行的.学生管理系统是一个学校不可缺少的部分,它的内容对于学校管理者来说是至关重要,所以学生管理系统应该能够为学校管理者提供充足的信息和快捷的查询手段。但一直以来人们使用传统

10、人工的方式管理学生档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着计算机科学技术的不断研究与发展,计算机正日益广泛地应用到社会各大领域,他在人类社会各个领域发挥着越来越重要的作用,给人们的学习、工作、生活带来了极大的便利,在教育系统领域亦是如此。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。42系统概要设计421设计思想1系统

11、分成几个相对独立的模块,但这些模块都进行集中式管理。2分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。3合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。422设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1) 正确性原则:消息在不同系统平台之间进行传递和显示时不会出现乱码现象。(2) 健壮性原则:能够容纳100-200人同时在线交流,服务器端程序连续应工作半年以上。(3)可靠性原则:应用程序异常

12、退出及崩溃的机率小于等于5%。(4)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料。(5)源程序可读性原则:为了便于其他人员设计,维护人员读懂代码或以后的代码修改,软件升级维护,尽可能地做好代码注释工作。(6)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。423功能需求本系统采用自定向下方法开发,其功能模块主要有如下几个部分:系统主界面、基础资料部分、学生管理部分、课程管理部分、成绩管理部分。具体的功能描述如下:功能用例名称后台信息维护用户登录基础设置学生管理课程管理成绩管理前台信息查询查询学生学籍信息查询学生成绩图4- 1后

13、台管理:后台管理用例图:图4- 2(1)用户登录根据用户填写的名称和密码,判断该用户是否为管理员。如果用户名和密码都正确,则转到主界面,如果不正确,提示错误信息。业务流程图:图4- 3(2) 基础资料设置基础资料设置包括院系设置、班级设置和学期设置等几个方面。u 院系设置包括院系的添加、修改、查看、删除。u 班级设置包括班级的添加、修改、查看、删除。u 学期设置包括学期的添加、修改、查看、删除。(3)学生管理学生管理包括学生档案的管理编辑和学生学籍管理两个方面。u 学生档案管理编辑包括学生各种资料的添加、修改、查看、删除。u 学生学籍管理包括学生院系和班级的变动以及学生离校的处理。档案管理用例

14、图:图4- 4(4)课程管理课程管理包括设置和班级选课两个方面。u 课程的设置:用户选择添加,修改,删除操作,系统执行添加课程信息。u 班级选课:班级选课是以班级为单位选择在某个学期内的所有课程,同时也为此班级内的所有成员选择了课程。因为每一班级每一个学期所学的课程名称不能相同,所有选择ListBox将所有课程名称列出来,然后在选择此课程的同时,删除显示课程名称ListBox中的此课程名称。这样在这个班的下个学期就不会再出现此课程了。同时根据选择课程名称创建表结构。以便查询所有学生的成绩。(5)成绩管理成绩管理包括学生成绩编辑和学生成绩分析两个方面。u 学生成绩编辑包括学生成绩录入和学生成绩修

15、改。u 学生成绩分析是用列表和图形等方法给出某个班级某个科目的最高、最低、平均分统计和总体分数分布图。前台用户登录:根据不同的身份(学生,老师)登录,赋予用户不同的权限。u 以学生身份登录:学生以姓名,学号登录。登录成功后,学生可以查看自己的学生学籍信息以及某个学期的所有成绩。图4- 5u 以老师身份登录:老师以用户名,密码登录。登录成功后,老师可以查看想要查看的某系某班学生的所有学籍信息以及某学期的所有人的成绩。或是某个任课老师想要查询他所教的学科的该班人的成绩。图4- 6424性能需求1时间特性该管理系统软件从启动到进入系统登录界面的时间正常情况下应少于5秒,录入并更新数据的时间正常情况下

16、少于2秒。2适用性该管理系统软件适用于Windows 2000/xp及以上操作系统43逻辑关系图431数据库关系图图4- 7432逻辑结构设计 Department(院系信息表)编号字段名称数据结构说明1DepartementIDVarchar(10)院系编号2DeparementNameVarchar(50)院系名称3PhoneNoVarchar(20)电话号码表4- 1Class(班级信息表)编号字段名称数据结构说明1ClassIDVarchar(10)班级编号2ClassNameVarchar(50)班级名称3DepartmentIDVarchar(10)院系编号4StudentNumb

17、ersmallint学生人数表4- 2Course(课程信息表)编号字段名称数据结构说明1CourseIDVarchar(10)课程编号2CourseNameVarchar(50)课程名称3ScoreHourInt课程学时4DepartmentIDVarchar(10)所属院系表4- 3Semester(学期信息表)编号字段名称数据结构说明1SemesterIDVarchar(10)学期编号2SemesterNameVarchar(50)学期名称表4- 4Student(学生信息表)编号字段名称数据结构说明1StudentIDVarchar(10)学生编号2ClassIDVarchar(10)

18、班级编号3StudentNameVarchar(50)学生姓名4Sexchar(2)性别5Agesmallint年龄6NationVarchar(50)民族7NativePlaceVarchar(50)籍贯8StatusVarchar(20)政治身份9InDateSmallDateTime入学时间10PictureVarchar(100)照片表4- 5SelectCourse(选课信息表)编号字段名称数据结构说明1SerialNOint选课序列号2ClassIDVarchar(10)班级编号3SemesterIDVarchar(10)学期编号4CourseIDVarchar(10)课程编号表4

19、- 6Score(成绩信息表)编号字段名称数据结构说明1ClassIDVarchar(10)班级编号2StudentIDVarchar(10)学生编号3CourseIDVarchar(10)课程名称4Scoresmallint分数表4- 7UserInfo(用户表)编号字段名称数据结构说明1UserIDint用户编号2UserNameVarchar(50)用户名称3PwdVarchar(50)密码表4- 85.系统详细设计51系统功能结构图学生管理系统提供:基础设置,学生管理,课程管理,成绩管理。登录界面如图5.1所示:图5- 1当以老师身份登录成功后,界面如图5.2所示:图5- 2511成绩

20、管理成绩管理包括学生成绩编辑和学生成绩分析两个方面。学生成绩编辑包括学生成绩录入和学生成绩修改,其界面如图5-3所示:图5- 3当窗体加载时二次确认和修改按钮禁用。当选择院系、班级、学期后点击确认按钮后禁用解除,用户可以在课程框中选择课程,点击二次确认按钮数据加载成功。其界面如图5-4所示:图5- 4 选择所要修改的信息,按修改按钮进行修改,提示修改成功,其界面如图5-5所示:图5- 5修改完毕退出。512成绩分析学生成绩分析是用列表和图形等方法给出某个班级某个科目的最高、最低、平均分统计和总体分数分布图。成绩列表情况,如图5-6所示:图5-6列表统计情况,如图5-7所示:图5-7图表分析情况

21、,如图5-8所示:图5-852代码实现521成绩编辑/确定院系、班级、学期以后 对选定课程的确认 private void btnScoreCourseSure_Click(object sender, EventArgs e) if (this.cmbCourse.Text = null | this.cmbCourse.Text = ) MessageBox.Show(请选择课程, 用户提示); else String dispSql = exec proc_v_studentScore + this.cmbDepartment.SelectedItem.ToString() + , +

22、this.cmbClass.SelectedItem.ToString() + , + this.cmbSemester.SelectedItem.ToString() + , + this.cmbCourse.SelectedItem.ToString() + ; dispDS = DBCon.getDataSet(dispSql); if (dispDS.Tables0.Rows.Count = 0) this.dgScoreEdit.Enabled = false; this.btnScoreSubmit.Enabled = false; else this.dgScoreEdit.En

23、abled = true; this.btnScoreSubmit.Enabled = true; this.dgScoreEdit.DataSource = dispDS.Tables0; /成绩修改 private void btnScoreSubmit_Click(object sender, EventArgs e) try for (int i = 0; i dispDS.Tables0.Rows.Count; i+) double score = Convert.ToDouble(dispDS.Tables0.Rowsi2); String studentid = dispDS.T

24、ables0.Rowsi1.ToString(); String modSql = exec proc_update_v_studentScore +score+,+studentid+, + this.cmbDepartment.SelectedItem.ToString() + , + this.cmbClass.SelectedItem.ToString() + , + this.cmbSemester.SelectedItem.ToString() + , + this.cmbCourse.SelectedItem.ToString() + ; DBCon.updateScore(mo

25、dSql); /this.label5.Text = score.ToString(); MessageBox.Show(成绩修改成功, 用户提示); /更新stu_score String up_Stuscore = update stu_score set + this.cmbCourse.SelectedItem.ToString() + = + score + where 班级= + this.cmbClass.SelectedItem.ToString() + and 学号= + studentid+; / DBCon.Update_stu_score(up_Stuscore); c

26、atch(Exception ex) MessageBox.Show(ex.ToString(); /成绩退出 private void btnScoreExit_Click(object sender, EventArgs e) this.Close(); /窗体加载 private void ScoreEdit_Load(object sender, EventArgs e) /读取所有院系 String departmentSql = select DepartmentName from Department; DataSet departmentDS = DBCon.getDataSe

27、t(departmentSql); foreach (DataRow dr in departmentDS.Tables0.Rows) this.cmbDepartment.Items.Add(drDepartmentName.ToString(); /选中某一院系 读取 特定班级、有几个学期 private void cmbDepartment_SelectedIndexChanged(object sender, EventArgs e) this.cmbCourse.Items.Clear(); this.cmbCourse.Text = ; /班级 this.cmbClass.Item

28、s.Clear(); this.cmbClass.Text = ; String classSql = exec proc_v_allClass + this.cmbDepartment.SelectedItem.ToString() + ; DataSet classDS = DBCon.getDataSet(classSql); foreach (DataRow dr in classDS.Tables0.Rows) this.cmbClass.Items.Add(drClassName.ToString(); /学期 this.cmbSemester.Items.Clear(); thi

29、s.cmbSemester.Text = ; String semesterSql = exec proc_v_allSemester +this.cmbDepartment.SelectedItem.ToString()+; DataSet semesterDS = DBCon.getDataSet(semesterSql); foreach (DataRow dr in semesterDS.Tables0.Rows) this.cmbSemester.Items.Add(drSemesterName.ToString(); 522成绩分析/窗体加载 private void ScoreF

30、enxi_Load(object sender, EventArgs e) /读取所有院系 String departmentSql = select DepartmentName from Department; DataSet departmentDS = DBCon.getDataSet(departmentSql); foreach (DataRow dr in departmentDS.Tables0.Rows) this.cmbFXDepartment.Items.Add(drDepartmentName.ToString(); this.rvFenxi.RefreshReport

31、(); this.rvFenxi.RefreshReport(); /选中某一院系 读取 特定班级、有几个学期 private void cmbFXDepartment_SelectedIndexChanged(object sender, EventArgs e) this.cmbFXClass.Items.Clear(); this.cmbFXClass.Text = ; this.cmbFXCourse.Enabled = false; this.btnCount.Enabled = false; this.tabControl1.Enabled = false; /班级 this.cm

32、bFXClass.Items.Clear(); this.cmbFXClass.Text = ; String classSql = exec proc_v_allClass + this.cmbFXDepartment.SelectedItem.ToString() + ; DataSet classDS = DBCon.getDataSet(classSql); foreach (DataRow dr in classDS.Tables0.Rows) this.cmbFXClass.Items.Add(drClassName.ToString(); /学期 this.cmbFXSemest

33、er.Items.Clear(); this.cmbFXSemester.Text = ; String semesterSql = exec proc_v_allSemester +this.cmbFXDepartment.SelectedItem.ToString()+; DataSet semesterDS = DBCon.getDataSet(semesterSql); foreach (DataRow dr in semesterDS.Tables0.Rows) this.cmbFXSemester.Items.Add(drSemesterName.ToString(); /开始统计

34、 private void btnCount_Click(object sender, EventArgs e) if (this.cmbFXCourse.Text = null | this.cmbFXCourse.Text = ) MessageBox.Show(请选择课程, 用户提示); else String dispFXSql = exec proc_v_studentScore + this.cmbFXDepartment.SelectedItem.ToString() + , + this.cmbFXClass.SelectedItem.ToString() + , + this

35、.cmbFXSemester.SelectedItem.ToString() + , + this.cmbFXCourse.SelectedItem.ToString() + ; dispFXDS = DBCon.getDataSet(dispFXSql); if (dispFXDS.Tables0.Rows.Count = 0) MessageBox.Show(没有获取数据,相关控件将禁用); this.tabControl1.Enabled = false; else this.tabControl1.Enabled = true; this.dgList.DataSource = dis

36、pFXDS.Tables0; /用三种方式显示数据 private void tabControl1_Selected(object sender, TabControlEventArgs e) if (this.tabControl1.SelectedIndex = 0) this.dgList.DataSource = dispFXDS.Tables0; else if (this.tabControl1.SelectedIndex = 1) this.lvCount.Clear(); this.lvCount.Columns.Add(统计项); this.lvCount.Columns.Add(得分); double averageMark;/平均分 double maxMark = 0;/最高分 double minMark = 100;/最低分 double sum = 0;/总分 double score; for (int i = 0; i dispFXDS.Tables0.Rows.Count; i+) score = Convert.ToDouble(dispFXDS.Tables0.Rowsi2); if (maxMark score) minMark = score; sum = sum + score;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1