资源描述
山东职业学院毕业论文山东职业学院 毕业设计(论文)题 目:学生成绩管理系统系 别:信息工程系专 业:计算机应用技术班 级:计应0832学生姓名: 王淇渲 指导教师: 李琳完成日期:2011年5月摘 要本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,使各项管理更加规范化。本系统在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。 学生信息管理系统是典型的信息管理系统,经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本系统主要用于学生成绩管理,总体任务是实现学生成绩信息的系统化、规范化和自动化。其主要任务是用计算机对学生各科成绩进行管理,如修改、增加、删除,另外还考虑到学生名次的排序等,针对这些要求设计了学生成绩管理系统。【关键词】成绩管理信息系统 信息化 数据库 A目 录第一章 绪 论11.1系统开发目标与意义11.1.1系统开发目标11.1.2意义11.2可行性分析11.2.1 经济上可行性11.2.2技术上可行性11.2.3运行上可行性2第二章 需求分析32.1 教育系统学生管理现状分析32.1.1 学校工作流程分析32.1.2 学校具体需求分析32.1.3 系统设计思想42.1.4 系统设计分析42.1.5 系统功能分析42.1.6 学生学籍系统的目标4第三章 学生成绩管理系统总体设计63.1系统设计图例说明63.2 系统设计业务目标(业务逻辑层)63.2.1系统设计目标概述63.2.2 用户(角色)63.2.3 系统模块63.2.4 系统管理流程7第四章 系统数据库结构10第五章 系统的详细设计125.1 系统登录界面125.1.1 新用户注册界面135.1.2 用户创建界面135.2 菜单设计145.2.1学生成绩查询模块155.2.2 用户更改密码155.2.3教师管理模块165.2.4学生成绩信息修改175.2.5添加学生成绩185.2.6删除学生成绩18第六章 总结20致谢21参考文献22附录2329第一章 绪 论本次论文是以学校学生管理信息系统建设中的成绩管理系统的开发为背景,论述了管理信息系统的概念、结构及系统开发的基本原理和方法,全文共分为绪论、系统分析、概要设计、详细设计、开发总结、致谢、参考文献、附录等。1.1系统开发目标与意义1.1.1系统开发目标本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:1.系统应具有实用性、可靠性和适用性,同时注意到先进性。2.对各个数据库进行动态管理,防止混乱。3.能够按照用户选择的不同的条件进行简单查询和复合查询。4.能够对查询结果进行分类汇总,实现报表打印。5.注意数据的安全性,具有数据备份和恢复的功能。6.方便用户的操作,尽量减少用户的操作。1.1.2意义在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。1.2可行性分析 可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。1.2.1 经济上可行性现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第四,本系统可以使敏感文档更加安全,等等。所以,本系统在经济上是可行的。1.2.2技术上可行性本系统的开发利用Microsoft SQL Server2005作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Visual S作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。1.2.3运行上可行性本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。第二章 需求分析管理信息系统就是我们常说的MIS (Management Information System),是集成了计算机网络技术、信息处理技术,对信息进行收集处理、传输及存储,进行事务管理的一种人机交互的智能化计算机系统。软件工程是一门旨在研究计算机软件开发与维护的普遍原理和技术的工程学科。它的研究范围涉及到技术方法、软件工具、科学管理等诸多方面。实践证明:在软件的设计和开发过程中,运用软件工程的方法,可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。学生成绩管理系统的设计和开发是一个较为庞大的系统工程,应以软件工程的思想和方法为指导,进行设计和开发。软件工程理论对本系统的指导,主要表现在:帮助我们理清思路,建立较为科学的结构和开发制作流程方面。上述的各种理论,对我们设计和开发学生成绩管理系统提供了重要的理论基础,同时也为我们如何进行具体的设计和开发工作,提供了必要的思路和方法。2.1 教育系统学生管理现状分析2.1.1 学校工作流程分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,然后年级组长再进行汇总,并对本年级各科成绩及总成绩进行排名。教务处、年级组长、班主任及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。2.1.2 学校具体需求分析学生:对各科成绩的查询及查看本班成绩排名等情况。任课老师:输入并维护所教科目的学生成绩,计算本科的成绩排名、本科成绩在班上的排名。输出本班科目的成绩及排名情况。班主任:输入并维护本班的基本信息,对本班的各科成绩汇总,计算各科成绩的总分,排名,本班平均分等需求。输出学生的基本信息,各科的成绩及各科成绩的部分,各科成绩的排名,总分的排名情况。教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具体的管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护,可打印学生的所有信息。2.1.3 系统设计思想1采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。2系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。3系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。2.1.4 系统设计分析本系统适用于中小学校,其功能主要分为六大类:用户管理:用于对用户的添加,赋于不同权限及对用户的修改及查询。课程管理:用于对各学期课程的开设和修改。成绩管理:用于对成绩的输入、修改、汇总及排名。学生信息管理:添加,删除,修改学生信息等。 授课信息管理: 对授课教师,课程号,学时数,班级等信息的添加,维护等。学生信息查询: 对学生成绩等信息的查询,查询方式为模糊,且具有多条件组合查询功能。 学生成绩统计: 统计本科的总分,平均分等信息。本系统性能力求易于使用,具体有较高的扩展性和可维护性。2.1.5 系统功能分析权限功能:系统具有动态的权限分配功能,可按用户权限对用户进行分组。可分为普通用户,一般用户,超级用户。普通用户只是查询不能修改,一般用户只能对授权范围内进行相应修改及删除,超级用户能修改、删除所有信息。录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。维护功能:为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。退出功能:结束并关闭系统。2.1.6 学生学籍系统的目标节约资源,提高学籍信息的精确度本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速操作,精减人员,节约开支方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。数据库分析:用户需求具体有学籍管理系统提供保存、更新、查询、维护和打印,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。第三章 学生成绩管理系统总体设计3.1系统设计图例说明l本系统流程图基本图形元素如下所示:开始与结束决策过程数据程序流向2程序逻辑结构描述图例(1)顺序结构:一个命令接一个地执行;(2) 选择结构:(或IF-THEN-ELSE)当一个决定有多种不同执行结果时;(3)循环结构:只要条件成立就一直执行.3.2 系统设计业务目标(业务逻辑层)3.2.1系统设计目标概述 成绩管理信息系统的业务总体目标是建立一个先进、高效、安全、可靠的能被有效和应用于学生成绩管理的信息化数据库管理系统。该系统基于B/S结构,即采用浏览器/服务器模式,服务器端由运行ASP.Net的Web应用程序及运行Microsoft SQL Server2005的数据库服务器组成,客户端可以Internet Explorer,FireFox访问系统。本信息系统体现了学生成绩管理的业务逻辑行为、大大简化了相关工作的烦琐流程,同时为管理层提供有力的决策支持。3.2.2 用户(角色)本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师,教务处等用户。系统管理员:可进行用户管理,组权限分配,信息查询等工作。教师:可进行学生信息管理,课程信息管理,成绩管理,授课信息管理,信息查询,成绩统计等工作。学生:可进行成绩查询等操作。3.2.3 系统模块学生成绩管理系统登录模块查询模块统计模块管理模块基本信息查询用户管理密码管理注册管理成绩修改管理成绩录入管理成绩查询不及格人数平均成绩缺考人数学生人数成绩删除管理3.2.4 系统管理流程教师单科成绩系主任批准各科成绩教务员统计综合成绩成绩档案成绩统计排名表成绩通知单班主任学生不及格处理补考通知书图3.1学生成绩管理业务流程图应考名单重考名单实考名单打印空成绩单教师教务处成绩录入当前学生成绩打印成绩单学生成绩查询学期成绩统计图3.2学生成绩管理业务流程图学生输入学号和密码查询学生数据库成绩数据库输出结果输出结果统计汇总新数据数据修改或添加管理员图3.3学生成绩管理业务流程图单科成绩F3S3教师S2学生成绩管理P3S1学生科D4成绩档案成绩 F2成绩统计信息F8 图3.4顶层图 学生成绩 F2.1F2.2P3.1录入P3.2统计P3.4发布P3.3查询S3教师S2学生S1学生科S4教务处D4成绩档案D3学分F2.3补考成绩单科成绩F3成绩 F10F8图3.5二层图 S1学生科,S2学生,S3教师,S4教务处P3.1录入,P3.2统计,P3.3查询,P3.4发布F2成绩单,F2.1学生成绩,F2.2学生成绩单,F2.3补考成绩单,F3单科成绩,F8成绩统计信息,F10成绩,D3学分,D4成绩档案第四章 系统数据库结构学生成绩管理系统数据库采用SQL 2005数据库,库中包含有用户信息表、学生课程信息表表4.1用户信息表字段名类型宽度描述UserIDvarchar(10)10用户编号(不能为空,主键)UserNamevarchar(10)10用户名称Passwdvarchar(20)20用户密码Flagchar(1)1用户类型(0为学生,1为教师表4.2学生课程信息表字段名类型宽度描述StuIDvarchar(10)10学生编号StuNamevarchar(10)10学生姓名Genderchar(2)2性别Departmentvarchar(10)10所在系Politicsint政治Englishint英语Mathsint数学Computerint计算机表4.3 学生表字段名类型宽度描述StuIDvarchar(10)10学号StuNamevarchar(10)10学生姓名Genderchar(2)2性别StuBir日期/时间短日期出生日期StuClavarchar(10)20学生编号StutTelvarchar(10)13联系方式StuEsd日期/时间短日期入学日期StuAddvarchar(10)60家庭住址StuRem备注备注信息表4.4 班级表字段名称数据类型字段大小允许空字符串班级编号class_NOvarchar(10)20否班级名称class_Namevarchar(10)10否导员姓名class_Teachervarchar(10)10否备注信息class_Remarksvarchar(10)60表4.5 成绩表字段名称数据类型字段大小允许空字符串成绩号score_NO文本14否考试期号score_Per文本20学生班号score_Cls文本20学生编号score_Stu文本20考试课程score_Cou文本20考试分数score_Sco数字单精度型自动(小数位)第五章 系统的详细设计5.1 系统登录界面 本系统的开始页面设计为登录页面图5.1 登录页面在出现用户登陆页面时当没有输入任何信息,直接点击“登录”按钮时,系统会提示:用户名不能为空,密码不能为空。见下图。图5.2 登录报错页面5.1.1 新用户注册界面图5.3新用户注册界面在学生成绩管理系统注册新用户时,如界面所示:需要输入用户ID、用户名、用户登录密码、以及身份,然后点击创建用户,创建成功会出现“注册成功”字样。5.1.2 用户创建界面图5.4用户创建界面当点击“创建用户”按钮后,系统会提示:图5.5用户创建提示界面当注册信息时没有输入任何信息,直接点击“创建用户”按钮时,系统会提示用户ID不能为空,密码不能为空。5.2 菜单设计本系统的主界面设计为菜单界面,对各个子功能的访问均通过菜单来完成。相关截图如下:图5.6菜单设计如图5.4菜单设计 ,学生成绩管理系统的菜单页面:包括主菜单,学生成绩查询:本学期成绩,学生成绩管理:查询学生成绩信息、修改学生成绩、增加学生成绩、删除学生成绩。当学生点击学生车估计管理模块时会显示你无权访问,因为没有管理学生成绩的权限,这个而只要教师有权限。5.2.1学生成绩查询模块图5.7学生成绩查询页面在输入学号后点击“查询”按钮后,会在下面显示学生本学期的学习成绩,如截图图5.5学生成绩查询页面。5.2.2 用户更改密码图5.8用户更改密码当点击“更改密码“按钮时,进入到“用户更改密码”界面。注:此模块逻辑关系如下:(1)一定要从登录开始登录,登录要用数据库中的用户名和密码并且用户名、密码要正确。(2)该页面只能查询,不能修改。5.2.3教师管理模块当在登录页面中选择教师登录时,即可进入本模块。本模块的逻辑结构与学生管理模块基本上是一致的,只是教师的功能比较丰富一些。 相关截图如下:主界面:图5.9教师管理模块当点击”查询学生信息”按钮时,教师可以查询学生信息,当点击“修改学生成绩”按钮时,教师可以修改学生信息。这块功能只要教师有权限,学生没有权限。5.2.4学生成绩信息修改图5.10学生成绩信息修改若要修改学生成绩在显影的科目后面重新输入科目成绩然后点击“更新”按钮后如下图所示:修改成功!图5.11更新成功界面5.2.5添加学生成绩图5.12添加学生成绩若要增加学生信息则点击“增加学生成绩”按钮时,依次输入学生学号、学生姓名,选择学生性别,输入学生各科成绩然后点击添加,教师可以增加学生信息。5.2.6删除学生成绩图5.13删除学生成绩若要删除学生成绩在点击“删除学生成绩”按钮之后即可进入该界面。输入要删除的学生的学号显示下界面。图5.14删除学生成功成绩第六章 总结学生成绩管理系统的开发和应用,可以提高学校对学生成绩的管理。学校办公效率可以有很大的提高,为学校的信息管理提供了一个良好的工具,简化了繁琐的工作模式,从而使得学校的管理更另合理化和科学化。建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。1.数据的表现形式。学年和学期的表示不很直观。2.学生成绩管理系统是一个模块较复制的系统,模块分化细致。3.本系统的运行可以代替人工进行许多繁杂的劳动;运行可以节省许多资源4.数据库的转储是一个重要的概念,在实际应用的过程中是一个尚未解决的问题。应该做好数据库的完善工作,特别是数据备份和安全工作。在实际应用中应该不断总结经验,使本系统更加完善。功能更强大。通过资料收集,以及需求调研完成了本次毕业设计,在这个过程中,使我对VB.NET编程的方法、程序设计的原理、表单设计、菜单程序设计、文件处理等等,有了更深一步的认识,并且已经熟练掌握了VB.NET编程软件运用。总的来说,这次的毕业设计为我即将踏入社会之前提供了一次锻炼的舞台。正像辅导老师说的一样,他让我对几年来所学的专业课有了更为深刻的认识,使知识得到了融会贯通,得到了比以往学习任何一门课都大的提高和进步。对于我们来讲,我们每天都要学习,但这书本上的东西如果只是个理论,如果不把他应用于实践中,这门课可以对我们来说完全没有意义。经过开发这个系统,这不仅仅是一次毕业设计,不仅仅是学会了一门开发语言,更重要的是在学习的过程中,所有的问题要自已去面对,有问题也只有靠自已去解决,这们,在学习和解决这些困难的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,学到了许多书本以外的知识,这让我踏出这个校门给予自已最大的回报,同时我也相信会给我在以后的人生道路上带来很多的帮助。致谢在本次毕业设计中,我遇到了不少论文排版和技术方面的问题,但在指导老师李琳和我在凌佳一块培训的同学们的耐心帮助下,使问题都得到了圆满解决,在此对李琳老师和给过我巨大帮助的同学表示深深的感谢。感谢他们对我的帮助,使我能如期将系统设计完毕,并且使我以后的工作和学习也打下了良好的基础。在此对您们说声谢谢。感谢我的室友们,在我遇到困难的时候,帮我分析问题,解决问题,感谢他们三年以来对我的鼓励,感谢所有曾经帮助过我的人们还要感谢我最平凡的父母,谢谢他们的养育之恩。 近三年的学习,不仅使我的知识结构上了一个新台阶,更重要的是,各方面的素质得到了提高。而这一切,都要归功于老师的深切教诲与热情鼓励。值此论文顺利完成之际,我要向我尊敬的老师表达深深的敬意和无以言表的感谢。 感谢朱彦贞,。朱彦贞灵活考虑问题的方式,严谨的解决问题的态度; 许翠霞扎实的专业知识功底,认真态度都给我留下了深刻的印象。 最后深深的感谢呵护我成长的父母。每当我遇到困难的时候,父母总是第一个给我鼓励的人。回顾20多年来走过的路,每一个脚印都浸满着他们无私的关爱和谆谆教诲,10年的在外求学之路,寄托着父母对我的殷切期望。他们在精神上和物质上的无私支持,坚定了我追求人生理想的信念。父母的爱是天下最无私的最宽厚的爱。大恩无以言报,惟有以永无止境的奋斗,期待将来辉煌的事业让父母为之骄傲。我亦相信自己能达到目标。 最后,向所有关心我的亲人、师长和朋友们表示深深的谢意。参考文献1Visual Basic数据库开发实例解析 江红M.北京:北京大学出版社,2009.2Visual Basic可视化程序设计教程魏峥M.北京:清华大学出版社,2008.3SQL Server实用教程虞益诚M.中国铁道出版社4 ADO.NET程序设计教程与实验王军,崔同良,M.北京:清华大学出版社,2009.附录1.主界面模块public partial class MainForm : Form public string myname;/定义变量,从登陆框中取得登录名,以便查询 public MainForm() InitializeComponent(); /-查询一个子窗体是否存在- private bool checkChildFrmExist(string childFrmName) foreach (Form childFrm in this.MdiChildren) /用子窗体的Name进行判断,如果已经存在则将它激活 if (childFrm.Name = childFrmName) if (childFrm.WindowState = FormWindowState.Minimized) childFrm.WindowState = FormWindowState.Normal; childFrm.Activate(); return true; return false; /子窗体添加专业的调用 private void itm_AddSpecialty_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddSpecialty) = true) return;/判断该子窗体是否存在,如果存在则讲它激活 /如果不存在,则新生成一个 AddSpecialty adsp = new AddSpecialty(); adsp.MdiParent = this; adsp.Show(); /子窗体浏览专业 private void itm_BrowseSpecilty_Click(object sender, EventArgs e) if (this.checkChildFrmExist(BrowseSpecialty) = true) return; BrowseSpecialty brs = new BrowseSpecialty(); brs.MdiParent = this; brs.Show(); /子窗体:添加学生 private void itm_AddStudent_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddStudent) = true) return; AddStudent adst = new AddStudent(); adst.MdiParent = this; adst.Show(); /子窗体:添加班级 private void itm_AddClass_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddClass) = true) return; AddClass adcl = new AddClass(); adcl.MdiParent = this; adcl.Show(); /子窗体:浏览班级 private void itm_BrowseClass_Click(object sender, EventArgs e) if (this.checkChildFrmExist(BrowseClass) = true) return; BrowseClass brcl = new BrowseClass(); brcl.MdiParent = this; brcl.Show(); /子窗体:添加课程 private void itm_AddCourse_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddCourse) = true) return; AddCourse adcs = new AddCourse(); adcs.MdiParent = this; adcs.Show(); /子窗体:浏览课程 private void itm_BrowseCourse_Click(object sender, EventArgs e) if (this.checkChildFrmExist(BrowseCourse) = true) return; BrowseCourse brcs = new BrowseCourse(); brcs.MdiParent = this; brcs.Show(); /子窗体:添加成绩 private void itm_AddScore_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddScore) = true) return; AddScore adsc = new AddScore(); adsc.MdiParent = this; adsc.Show(); /子窗体:浏览成绩 private void itm_BrowseScore_Click(object sender, EventArgs e) if (this.checkChildFrmExist(BrowseScore) = true) return; BrowseScore brsc = new BrowseScore(); brsc.MdiParent = this; brsc.Show(); /子窗体:学生成绩查询 private void itm_ScoreQuery_Click(object sender, EventArgs e) if (this.checkChildFrmExist(ScoreQuery) = true) return; ScoreQuery scqu = new ScoreQuery(); scqu.MdiParent = this; scqu.Show(); /子窗体:班级成绩查询 private void itm_ClassScoreQuery_Click(object sender, EventArgs e) if (this.checkChildFrmExist(ClassScoreQuery) = true) return; ClassScoreQuery csqu = new ClassScoreQuery(); csqu.MdiParent = this; csqu.Show(); /子窗体:创建角色 private void itm_CreateRole_Click(object sender, EventArgs e) if (this.checkChildFrmExist(CreateRole) = true) return; CreateRole crtr = new CreateRole(); crtr.MdiParent = this; crtr.Show(); /子窗体:创建用户 private void itm_AddUser_Click(object sender, EventArgs e) if (this.checkChildFrmExist(AddUser) = true) return; AddUser adus = new AddUser(); adus.MdiParent = this; adus.Show(); /子窗体:退出系统 private void itm_Exit_Click(object sender, EventArgs e) if (MessageBox.Show(确定要退出系统吗?, 询问, MessageBoxButtons.YesNo) = DialogResult.Yes) this.Close(); private void MainForm_Load(object sender, EventArgs e) OleDbConnection connection1 = new OleDbConnection(Provider = Microsoft.Jet.OLEDB.4.0; + Data Source = C:db1.mdb); connection1.Open(); /Login login = new Login(); string sql = select popedom1,popedom2,popedom3,popedom4,popedom5,popedom6 from roles inner join userinfo on roles.rolename = userinfo.rolename where userinfo.name = + myname + ; /取得当userinfo.name等于登陆框输入登陆名时所具有的权限值 OleDbDataAdapter adp = new OleDbDataAdapter(sql, connection1); DataSet ds = new DataSet(); adp.Fill(ds,roles_userinfo); /-通过查询所拥有的权限,设置相应子窗体的Enabled值,从而确定该子窗体是否可用- if (ds.Tablesroles_userinfo.Rows00.ToString().Trim() = Yes) this.menuItem1.Enabled = true; else this.menuItem1.Enabled = false; if (ds.Tablesroles_userinfo.Rows01.ToString().Trim() = Yes) this.menuItem2.Enabled = true; else this.menuItem2.Enabled = false; if (ds.Tablesroles_userinfo.Rows02.ToString().Trim() = Yes) this.menuItem3.Enabled = true; else this.menuItem3.Enabled = false; if (ds.Tablesroles_userinfo.Rows03.ToString().Trim() = Yes) this.menuItem4.Enabled = true; else this.menuItem4.Enabled = false; if (ds.Tablesroles_userinfo.Rows04.ToString().Trim() = Yes) this.menuItem5.Enabled = true; else this.menuItem5.Enabled = false; if (ds.Tablesroles_userinfo.Rows05.ToString().Trim() = Yes) this.menuItem6.Enabled = true; else this.menuItem6.Enabled = false; /子窗体:浏览学生 private void itm_BrowseStudent_Click(object sender, EventArgs e) if (this.checkChildFrmExist(BrowseStudent) = true) return; BrowseStudent brst = new BrowseStudent(); brst.MdiParent = this; brst.Show(); 2学生信息模块public partial class AddStudent : Form public AddStudent() InitializeComponent(); OleDbConnection connection1 = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0; + Data Source=C:db1.mdb); OpenFileDialog openFileDialog1 = new OpenFileDialog(); private void AddStudent_Load(object sender, EventArgs e) connection1.Open(); OleDbDataAdapter adp = new OleDbDataAdapter(select specialtyname from specialtyinfo, connection1); DataSet ds = new DataSet(); adp.Fill(ds,specialty); comboBox3.DisplayMember = specialtyname; comboBox3.ValueMember = specialtyid; comboBox3.DataSource = ds.Tables0.DefaultView; connection1.Close(); private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) if (comboBox3.Text.Trim()!=) OleDbDataAdapter adp=new OleDbDataAdapter(select classid,classname from classinfo where specialtyname = + comboBox3.Text.Trim() + ,connection1); DataSet ds=new DataSet(); adp.Fill(ds,class); comboBox4.DisplayMember=classname; comboBox4.ValueMember=classid; comboBox4.DataSource=ds.Tables0.DefaultView; /定义将图片转化为长二进制代码的函数getphoto() public Byte getphoto(string photopath) string str = photopath; FileStream file = new FileStream(str, FileMode.Open, FileAccess.Read);
展开阅读全文