目 录
第 I页 共I页
1 引言 ................................................................. 1 2 系统调查与可行性研究 .................................................. 2 2.1 初步调查 .............................................................. 2 2.2 可行性研究 ............................................................ 3 3 系统分析 .............................................................. 4 3.1 业务流程分析 .......................................................... 4 3.2 数据流程分析 .......................................................... 5 3.3 数据字典 .............................................................. 6 4 系统设计 ............................................................. 14 4.1 功能结构设计 ......................................................... 14 4.2 数据库设计 ........................................................... 17 4.3 代码设计 ............................................................. 33 4.4 输入输出设计 ......................................................... 34 4.5 系统配置设计 ......................................................... 36 5 结束语............................................................... 36 5.1 系统总结及不足之处.................................................. 36 5.2 设计心得............................................................ 37 参考文献 ................................................................. 38
课程设计报告
1 引言
第1页 共38页
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,但是还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存、要发展、要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。这对于正在迅速发展的各大高校而言,同样有着重要意义。
现如今高校为适应社会的需求以及自身办学的需要,扩建、扩招已在寻常不过。自然就会有更多的学生信息需要处理。如果只靠人力来完成,必然是一项非常繁琐、复杂的工作,而且还会出现很多意想不到的错误,这不仅会给教学及管理带来了很大的不便,也不益于学校全面快速发展的需要。
众所周知,作为高校日常教学中的主要管理工作之一的教务管理,它涉及到院校、专业、师生等诸多方面。特别是目前国家的教育也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出了适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。同时,随着选课制的展开和深入,教务日常管理工作也日趋繁重、复杂,如何把教务工作信息化、模块化、便捷化便成为了现代高校发展的重点。所以总的来说,教务管理软件应实现教务信息的集中管理,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。在高校中,教务管理工作具有举足轻重的地位,教学质量直接取决十教务管理水平。现如今教务管理信息系统的开发与实施可谓日新月异。
在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。
教务管理系统是一个庞大而复杂的系统,它包括对学生信息的注册、修改,学生选课及课程管理和学生的四六级考试及计算机等级考试的管理;对教师课程的管理以及对选课学生评分的管理;和管理员对教师、的综合管理等主要的功能。教务管理
课程设计报告
第2页 共38页
系统运行的状况将直接影响到学校里的主要工作,一旦此系统出错,不仅学校的教学进度安排会受到一定程度的影响,而且还会危及到每一个在校学生的切身利益。所以设计一个功能相对完整、操作简单以及界面友好的教务管理系统变得非常重要。
为了提高教务管理的工作效率和服务质量,降低出错率,精简人力、物力的投入,各个高校均建立了自己的教务管理信息系统,为学校的动态管理和分析决策带来了极大的便利。现在的学校的教务管理也逐步从手工转到计算机自动化信息处理阶段。通过这个系统,用户可以方便的对教师信息以及学生信息和学生成绩资料进行添加、修改和删除操作,还可以对学生资料和成绩进行查询操作。除此之外,对用户的添加和删除操作也很方便。
教务管理系统是典型的信息管理系统(MIS),它能够实现整体规划教学资源(学生,教师,教室),评估教学质量,制定教学计划,检查教学进度,给学校的教务人员管理教务工作提供了极大的方便。本论文以高校的教务管理系统为背景,以Visual C#为前台和SQL Server为后台等软件作为开发工具,论述了信息系统开发的基本原理,结构,方法和过程。详细阐述了可行性研究、系统分析、系统设计以及系统实现等软件开发过程。力求可以将所学到的知识在此次教学管理信息系统开发实践中得以应用,并使系统在实际的操作中能按照设计的要求安全有效正确的运行。
2 系统调查与可行性研究
在系统的开发前期对系统进行可行性分析是十分必要的一个环节,这对于保证资源的合理使用,避免浪费是十分必要的,也是项目一旦开始以后能顺利进行的必要保证。信息系统的建设是一项投资大,时间长的复杂工程 ,可行性研究更为必要,也更复杂,更困难。“可行性”是指在当前情况下,企业研制这个信息系统是否有必要,是否具备必要的条件。可行性的含义不仅包括可能性,还包括必要性,合理性[4]。
2.1 初步调查
随着计算机应用的推进与普及,大部分高校都拥有一套管理自己内部教务信息的信息管理系统,而且这种趋势已向中小学蔓延,但因各校的组织结构部门的划分不尽相同,系统的结构及实施也各有所以,但教务管理的工作重点却均是放在了学生的学籍信息、相关课程的成绩资料以及教师的课程安排等,故而开发一套具备基本教务信息管理功能的、可移植性较强的管理信息系统不为一件乐事。它既可以作为学校开发教务管理信息
课程设计报告
系统的模板,又可作为自主设计开发教务管理系统的一个参照。
第3页 共38页
以下是经信息收集分析后得出了可做基础模板的学校教务组织结构图:
教务处
教务副 招生办 学籍管理处 教学任务研究办 学生成绩管理处 在职教师管理处 教行办公室 (组织结构图)
教务处下属可以该六个部门为主,以为主要管理者,负责综合管理,下设各个副处,分别主要管理相应的部门,各司其职,共同推进学校的教学办公管理。
2.2 可行性研究
可行性研究是系统分析阶段的第二项活动。此活动的主要目标是:进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性研究是对系统进行全面、概要的分析。 通过调查分析,系统的设计方案有以下三个可行性:
(1). 管理可行性:
信息化的教务管理在如今的信息时代是大势所趋,而且随着现代管理理念、方法和
途径的发展,教务信息化管理手段日渐成熟,也必定会突飞猛进,所以从长远利益出发,主管领导对该项目的开发与实施会大力支持。
(2). 技术可行性:
课程设计报告
第4页 共38页
本系统采用 Windows 2000作为操作平台。数据库选用SQL server 2000,该数据库管理系统在Windows 2000 Professional上能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。本系统的应用软件开发平台也选用Microsoft Visual Studio .NET 2005。 (3). 经济可行性:
采用教务管理信息系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,规划教学资源,提高学生信息,及时反馈教学信息的利用率,使教学质量更上一个台阶。 (4). 营运可行性:
本系统操作简单,易于理解,只需通过简单熟悉,上手较快,学校教务管理处的教职员以及相关教师均能进行操作,营运环境要求低。
面对于系统设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。软件的开发应能在较长时间内满足学校的发展需要。
通过可行性分析研究,认为新系统的开发方案切实可行,可进行开发。
3 系统分析
3.1 业务流程分析
教务管理信息系统需要满足来自三方面的需求,这三个方面分别是学生、教师和管理员,所以它的教务业务流程以这三方面为主,以下是对该业务流程进行一下大略介绍:学生报到登记,注册学籍信息;教学研究办公室根据学校的教学特色、教学理念及社会需求,制定学生的培养计划,并将培养计划下发给教行办公室、有关教师以及学生自己;教行办公室根据指定的学生培养计划对学生在学校的学习进行课程、进度等多方面具体详细的安排,定制出相关课表以及教师的上课时间地点,分别下发给学生以及教师。
以下就是经过分析制定的学校教务业务流程,它从学校教务的管理逻辑为基础进行较为具体的业务流程表示:
课程设计报告
教学研究办公室 第5页 共38页
学生培养计划表 学生培养计划表 学生培养计划表 教行办公室 选课单 课程安排表 课程安排表 课程申请 学生 成绩单 教师 通知书 成绩单 招生办 学生成绩管理处 (业务流程图)
3.2 数据流程分析
通过调查研究我们可以绘制出教务管理系统的数据流程图。数据流程图是一种可以全面地描述教务管理信息系统的逻辑模型。它完全舍去了具体的物质,只剩下了数据的流动、加工处理和存储,并且可以把信息中的各种不同业务处理过程联系起来,形成一个整体,具有较高的抽象性和概括性。它主要用专用符号表示出了外部实体、数据流、处理和数据存储之间的关系,是系统设计的关键前提。下面关于教务管理系统的数据流
课程设计报告
程分析图:
第6页 共38页
教师信息存档 更新后的教师信息 P3.1 更新教师信息 教师信息 报考历史数据 报考信息 P3.2 处理报考数据 报考信息 管理员 查询 报考数据 报名表 P1.3 等级考试报考 报考信息 学生 报考数据存档 注册信息 P1.1 学籍注册 查询 成绩表 学生信息 学生信息存档 教师 成绩表 P2.1 登记成绩 查询 学生信息存档 查询 学生 查询 选课单 授课信息 P2.2 更改课程 课程信息 课程记录表 选课结果 P1.2 选课 (数据流程图)
3.3 数据字典
数据流图只是描述了系统有哪几部分组成,各部分之间的联系等等,但还没有说明系统中各个成分的含义。数据字典主要用来描述数据流图中的数据流、数据存储、处理过程和外部实体。数据字典中有六类条目:数据项、数据结构、数据流、数据存储、处
课程设计报告
理过程、外部实体。
第7页 共38页
由于该教务管理系统规模较大,关于这六类条目的实例很多,在此,对于各类条目适当加以举例说明。 (1) 数据项
数据元素又称数据项,是最小的数据组成单位,也就是不可再分的数据单位。每个数据元素需要以下属性:名称、别名、类型、长度、编号等。 编号:X01-01 编号:X01-02 名称:学生学号 名称:学生密码 简述:本校学生编码 简述:学生登陆密码 类型及长度:字符型,50 类型及长度:字符型,50
编号:X01-03 编号:X01-04 名称:学生姓名 名称:入学时间 简述:本校学生编码 简述:学生的入学时间 类型及长度:字符型,50 类型及长度:日期型,8
编号:X01-05 编号:X01-06 名称:毕业时间 名称:学生专业 简述:学生毕业日期 简述:学生的主修专业 类型及长度:日期型,8 类型及长度:字符型,50
编号:X02-07 编号:X02-08 名称:课程名称 名称:上课时间
课程设计报告
简述:学校开设的课程 简述:课时
第8页 共38页
类型及长度:字符型,50 类型及长度:字符型,50
(2)数据结构
数据结构描述的重点是数据之间的组合关系,即说明这个数据结构包括哪些成分。一个数据结构可以包含若干个数据元素或数据结构。
编号:DX01-01 名称:学籍信息
简述:学生入学登记的基本信息
组成:学生学号﹢学生姓名+学生密码﹢入学日期﹢毕业日期﹢学生专业﹢学生性别
﹢生日﹢家庭地址﹢民族﹢政治面貌﹢电话﹢备注
编号:DX01-02 名称:学生成绩信息
简述:学生在该学期的课程成绩 组成:学生学号+课程编号+课程成绩
编号:DX02-01
名称:计算机等级考试信息
简述:学生所报考的计算机等级考试信息
组成:报考编号﹢学生学号﹢计算机考试等级﹢考试时间﹢考试得分﹢考试地点﹢
学生身份证号
编号:DX02-02
课程设计报告
名称:四六级考试信息
简述:学生所报考的四六级考试信息
第9页 共38页
组成:报考编号﹢学生学号﹢四六级考试等级﹢考试时间﹢考试得分﹢考试地点﹢
学生身份证号
编号:DX03-01 名称:课程信息
简述:学校所开设的课程信息
组成:课程编号﹢课程名称﹢上课时间﹢课程开始时间﹢课程结束时间﹢课程学分
﹢课程教师﹢上课地点﹢课程备注
编号:DX04-01
名称:教师用户管理员信息
简述:教师和管理员登陆的设置信息 组成:用户名﹢用户密码﹢用户级别 (3)数据流
定义数据流,在数据字典中要描述以下属性:数据流的来源、数据流的去处、数据流的组成、数据流的流通量等。
编号:D01-01 名称:学生注册信息
简述:学生入学登记的基本信息 来源:学生
课程设计报告
去向:学籍管理处 组成:DX01-01
编号:D01-02 名称:学生选课信息
简述:学期结束后,学生填写的下学期的选课单 来源:学生
去向:教学任务研究办公室 组成:DX03-01
编号:D01-03
名称:学生考试报考信息
简述:在校学生的四六级和计算机等级考试的有关信息 来源:管理员
去向:在校学生成绩管理处 组成:DX02-01,DX02-02
编号:D01-04 名称:学生成绩单
简述:学期结束后,学生各科成绩 来源:教师
去向:学生成绩管理处
第10页 共38页
课程设计报告
组成:学生编号+课程名称+成绩
编号:D02-01 名称:教师信息 来源:管理员 去向:在职教师管理处
第11页 共38页
简述:除了学校排的课程,教师根据自身的情况另行申请的授课课程 组成:教师姓名+教师编号+教师密码
(4)处理逻辑
仅是对数据流程图中最底层的处理逻辑加以说明。 编号:P1.1 名称:注册学籍
简述:即是对学生个人信息的登记 输入的数据流:注册信息
处理:根据学生的姓名所学专业判断学生所在学院及班级 输出的数据流:学生信息
编号:P1.2 名称:学生选课
简述:每学期初之前除必修课外学生的选择的任选院校课程 输入的数据流:选课单 处理:选课后形成学生课表 输出的数据流:课表信息
编号:P1.3
课程设计报告
名称:等级考试报名
简述:学生的四六级、计算机等级考试报名 输入的数据流:报考信息 处理:学生考试报名登记 输出的数据流:报名表
编号:P2.1 名称:登记成绩
简述:学生的考试成绩登记 输入的数据流:成绩信息 处理:成绩登记 输出的数据流:成绩表
编号:P2.2 名称:更改课程
简述:教师所教授任选课程的选择 输入的数据流:课程信息 处理:更改或是添加所授课程 输出的数据流:课程记录
编号:P3.1
名称:更新教师信息
简述:对于新近教师及教师离职信息的处理 输入的数据流:教师信息
处理:添加或是修改删除教师信息 输出的数据流:更新后的教师信息
编号:P3.2
名称:等级考试报名处理
第12页 共38页
课程设计报告
简述:学生的四六级、计算机等级考试报名的信心处理 输入的数据流:报考信息
处理:将学生的报考信息进行分类处理 输出的数据流:报名表
(5)数据存储
第13页 共38页
数据存储的条目,主要描述该数据存储的结构,及有关的数据流和查询要求。 编号:F01-01 名称:学生信息存储 简述:存放学生的学籍信息 组成:D01-01 关键字:学生学号 相关处理:P1.1
编号:F01-02 名称:学生成绩存储
简述:学生历次的考试成绩记录 组成:学生姓名+学号+课程+成绩 关键字:学生学号 相关处理:P2.1
编号:F01-03 名称:课程记录表 简述:每学期的课程安排 组成:DX03-01 关键字:课程号 相关处理:P1.2,P2.2
编号:F01-04
课程设计报告
名称:学生报考数据存档
简述:学生历次的报考四六级和计算机等级考试记录 组成:DX02-01,DX02-02 关键字:学生学号 相关处理:P1.3
(6)外部实体
编号:X01-01 名称:学生
简述:系统用户之一也是管理对象 输入数据流:成绩表
输出数据流:选课单、报名表、注册信息
编号:J01-01 名称:教师
简述:系统用户也是管理对象 输入数据流:
输出数据流:成绩表、所授课程信息
编号:W01-01 名称:管理员 简述:系统用户
输入信息:学生四六级和计算等级报考信息 输出数据流:教师信息、处理后的学生报考信息
第14页 共38页
4 系统设计
4.1 功能结构设计
本系统的设计目标是开发一个基于桌面的教务管理系统,供系统管理员、教师
课程设计报告
第15页 共38页
和学生使用。管理员可以管理教师和学生的信息;教师可以开设课程、管理学生的选课信息以及对学生课程进行评分等;学生则可以选修课程、报考四六级和计算机等级考试等。
系统的总体结构功能图如下:
学生登陆 系统管理 学生注销 退出系统 新生注册 学籍管理 修改信息 学生功能模块 所有课程 我的课程 课程管理 添加选课 删除选课 报考四六级 四六级管理 报考历史 报考等级考试 计算机等级考试管理 教务管理系统 报考历史 教师登陆 教师功能模块 系统管理 教师注销 退出系统 添加课程 课程列表 课程管理 删除课程 查看选课学生信息 评分
课程设计报告
管理员登陆 系统管理 管理员功能模块 修改密码 退出系统 添加教师教师管理 教师列表 删除教师 四六级报考列表处理四六级报考信息 课程管理 计算机报考列表 处理计算机报考信息 第16页 共38页
(系统功能结构图)
本系统采用三层结构开发,位于表现层的是三个Windows Application项目,分别为Student、Teacher和Administrator:位于事务逻辑层的是DataAccess项目,位于数据存储层的是SQL Server 中的Student、Teacher和Administrator数据库。
应用程序层 应用程序层 Windows ApplicationWindows Application 应用程序层 业务逻辑层DataAccess项目 数据存储层 数据库 (系统结构图)
课程设计报告
4.2 数据库设计
第17页 共38页
4.2.1数据库的概念结构设计:E-R图
为简明起见,图中未画出属性,图后用文字标出。
m 1 等级考试 m 报考 n 处理 管理员 1 教师信息 m 更新 成绩 m 录入 1 查看 1 学生 1 注册 1 n 选修 m 课程 1 教师 m 课程安排 1 查看 n 学籍信息 1 课程库
学生:学号、学生学号、学生密码、学生姓名
学籍信息:学号、学生学号、学生密码、学生姓名、入学时间、毕业时间、学生专
业、学生性别、生日、家庭住址、民族、政治面貌、电话、备注
教师:用户名、密码 管理员:用户名、密码
考试等级:考试时间、考试地点、考试成绩
课程:课程名、上课时间、课程开始时间、课程结束时间、课程学分、课程教师、
课程备注
课程设计报告
成绩:学号、科目、成绩
第18页 共38页
4.2.2数据逻辑结构——表的设计
表1: cet表,保存学生计算机等级考试报考信息。 列名 cetID stuID cetClass cetTestDate cetTestPlace cetTestScore stuCardTD 数据类型 长度 允许空 是否标识 说明 Int 4 否 是 报考编号,自动递增型 Varchar 16 否 否 学生学号 Char 8 否 否 四六级考试等级 Datetime 8 是 否 考试时间 Varchar 50 是 否 考试地点 Int 4 是 否 考试成绩 Varchar 18 是 否 学生身份证编号 表2: computer表,保存学生计算机等级考试报考信息。 列名 comID stuID comType comTestDate comTestPlace comScore stuCardTD 数据类型 长度 允许空 是否标识 Int 4 否 是 Varchar 16 否 否 Varchar 8 否 否 Datetime 8 是 否 Varchar 50 是 否 Int 4 是 否 Varchar 18 是 否 说明 报考编号,自动递增型 学生学号 计算机考试等级 考试时间 考试地点 考试成绩 学生身份证编号 表3: course表,保存所有课程信息。 列名 courseID courseName courseTime courseStartTime courseEndTime courseCredit courseTeacher courseDesc courseAddress 数据类型 长度 允许空 是否标识 Int 4 否 是 Varchar 50 否 否 Varchar 50 否 否 Datetime 8 否 否 Datetime 8 否 否 Int 4 否 否 Varchar 16 否 否 Nvarchar 500 否 否 Varchar 50 是 否 说明 课程编号,自动递增型 课程名称 上课时间 课程开始时间 课程结束时间 课程学分 课程教师 课程备注 上课地点 表4: stuCourse表,保存学生选课信息。 列名 scID 数据类型 Int 长度 4 允许空 否 是否标识 是 说明 选课编号,自动递增型 课程设计报告
stuID courseID scScore Varchar Int Int 50 4 4 否 否 否 否 否 否 第19页 共38页
学生学号 课程编号 考试成绩 表5: student表,保存学生信息。 列名 stuID stuPassword stuName stuEnrollmentDate stuGraduatedDate stuMajor stuSex stuBirthday stuHome stuRace StuDesc stuParty stuPhone 数据类型 长度 Varchar 50 Varchar 50 Varchar 8 Datetime 8 Datetime 50 Varchar 50 Varchar 2 Datetime 8 Varchar 50 Varchar 50 Nvarchar 255 Varchar 50 Varchar 50 允许空 否 否 否 否 否 否 否 否 否 否 是 是 是 是否标识 是 否 否 否 否 否 否 否 否 否 否 否 否 说明 学生学号 学生密码 学生姓名 入学时间 毕业时间 学生专业 学生性别 生日 家庭住址 民族 备注 政治面貌 电话 表6: users表,保存教师和管理员用户信息。 列名 UserName UserPassword Usertyp 数据类型 长度 允许空 是否标识 Varchar 50 否 是 Varchar 255 否 否 Varchar 6 否 否 说明 用户名 用户密码 用户级别;管理或教师 4.2.3主要功能模块的详细设计
在此,以学生管理模块的“学生登陆”“新生注册”功能的具体设计进行介绍,学生管理的其他功能模块、教师以及管理员管理模块的设置方法大同小异,就不再赘述。
1 系统的登录
课程设计报告
第20页 共38页
(1)主窗体设计如上图,主要实现学生登陆、注销以及注册功能;要实现数据库与用户界面的链接,首先要建立一个名为DataAccess的项目,使其负责整个应用程序的数据访问。
至此,整个项目框架已建立,其中Student是表现层项目,而DataAccess则为数据访问层项目。
课程设计报告
第21页 共38页
(2)在Student项目中建立用于标识用户是否已经登录的GlobalInfo,cs类文件:
using System;
using System.Collections.Generic; using System.Text;
namespace SchoolMIS.UI.Student {
class GlobalInfo {
private static bool isLogin = false; private static string stuName; private static string stuID;
///
public static bool IsLogin { get {
return isLogin; } set {
isLogin = value; } }
///
public static string StuName {
课程设计报告
get {
return stuName; } set {
stuName = value; } }
///
public static string StuID { get {
return stuID; } set {
stuID = value; } } } }
第22页 共38页
(3)在Student文件夹下的SQL Server子文件中建立Constants类文件,并向其中添加两个变量,以便成功链接数据库:
class Constants {
///
public static readonly string ConnString =
@\"Data Source=(local);Initial Catalog=student;User ID=sa;Password=1234\"; ///
public static readonly string StuLogin =
@\"select stuName from student where stuID = @stuID and stuPassword = @stuPassword\";
课程设计报告
… …
第23页 共38页
(4)为StudentDB类添加自定义方法Login,代码如下:
public string Login(string stuID, string stuPsw) { //建立数据库连接对象
SqlConnection conn = new SqlConnection(Constants.ConnString);
//建立数据库命令对象
SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;
cmd.CommandText = Constants.StuLogin; cmd.CommandType = CommandType.Text;
//添加参数给数据命令
SqlParameter prmStuNum = new SqlParameter(\"@stuID\", stuID);
SqlParameter prmStuPassword = new SqlParameter(\"@stuPassword\", stuPsw); cmd.Parameters.Add(prmStuNum); cmd.Parameters.Add(prmStuPassword);
try {
conn.Open();
object stuName = cmd.ExecuteScalar();
if (stuName != null) {
return stuName.ToString(); } else {
return String.Empty; }
}
catch (SqlException ex) {
return String.Empty; } finally {
//确保数据库连接被关闭
if (conn.State == ConnectionState.Open)
课程设计报告
{
conn.Close(); }
}
第24页 共38页
(5)修改LoginForm中的“确定”按钮,注册按钮单击事件btnOK_Click在LoginForm.cs代码编辑界面顶部添加如下代码,引入数据访问所需要的命名空间,并添加“确定”“取消”单击事件:
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;
using System.Windows.Forms;
using SchoolMIS.DataAccess.Student.SQLServer; namespace SchoolMIS.UI.Student {
public partial class LoginForm : Form {
public LoginForm() {
InitializeComponent(); }
private void btnCancel_Click(object sender, EventArgs e) {
this.txtStuNum.Text = \"\"; this.txtStuPassword.Text = \"\"; }
private void btnOK_Click(object sender, EventArgs e) {
if (this.txtStuNum.Text.Trim() == \"\") {
MessageBox.Show(\"请输入您的学号\", \"错误提示:\", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else if (this.txtStuPassword.Text.Trim() == \"\") {
MessageBox.Show(\"请输入您的密码\", \"错误提示:\", MessageBoxButtons.OK,
课程设计报告
MessageBoxIcon.Warning); } else {
StudentDB stuDbAccess = new StudentDB();
第25页 共38页
string stuName = stuDbAccess.Login(txtStuNum.Text.Trim(), txtStuPassword.Text.Trim());
if (stuName != String.Empty) {
GlobalInfo.StuName = stuName;
GlobalInfo.StuID = this.txtStuNum.Text; GlobalInfo.IsLogin = true; this.Dispose(); } else {
MessageBox.Show(\"用户名或者密码错误,请重新输入。\",\"错误提示:\"); } } }
private void txtStuNum_TextChanged(object sender, EventArgs e) {
} } }
(6)最后在“学生客户端”界面为“学生登陆”二级菜单注册单击事件stuLogin_Click,并添加负责改变菜单使能状态的自定义方法ChangeMenuState
private void stuLogin_Click(object sender, EventArgs e) {
LoginForm frmLogin = new LoginForm(); frmLogin.ShowDialog();
if (GlobalInfo.IsLogin) {
this.ChangeMenuState(); } } /// /// 改变菜单的使能状态 课程设计报告 ///
private void ChangeMenuState() {
this.stuModify.Enabled = !this.stuModify.Enabled; this.menuCourse.Enabled = !this.menuCourse.Enabled; this.menuCET.Enabled = !this.menuCET.Enabled;
this.menuComputer.Enabled = !this.menuComputer.Enabled; this.stuLogin.Enabled = !this.stuLogin.Enabled; this.stuLogout.Enabled = !this.stuLogout.Enabled; this.stuReg.Enabled = !this.stuReg.Enabled; }
第26页 共38页
至此,学生的登陆功能全部完成。 2 新生注册
新生注册提供一个注册窗体,用于学生用户输入自己的个人信息,然后将这些信息进行合法性验证以后提交到数据库。
(1 )首先在编码界面引入命名空间:
using SchoolMIS.DataAccess.Common.Entity; using SchoolMIS.DataAccess.Student.SQLServer;
课程设计报告
(2)编写“提交注册”的单击事件:
private void btnOK_Click(object sender, EventArgs e) {
if (this.txtStuName.Text == \"\") {
AlertMessage(\"请输入姓名\"); this.txtStuName.Focus(); }
else if (this.txtStuNum.Text == \"\") {
AlertMessage(\"请输入学号\"); this.txtStuNum.Focus(); }
else if (this.cmbSex.SelectedItem.ToString() == \"\") {
AlertMessage(\"请选择性别\"); this.cmbSex.Focus(); }
else if (this.cmbParty.SelectedItem.ToString() == \"\") {
AlertMessage(\"请选择政治面貌\"); this.cmbParty.Focus(); }
else if (this.txtPhone.Text == \"\") {
AlertMessage(\"请输入电话号码\"); this.txtPhone.Focus(); }
else if (this.txtHome.Text == \"\") {
AlertMessage(\"请输入家庭住址\"); this.txtHome.Focus(); }
else if (this.cmbRace.Text.ToString() == \"\") {
AlertMessage(\"请输入民族\"); this.cmbRace.Focus(); }
else if (this.txtMajor.Text == \"\") {
AlertMessage(\"请选择专业\"); this.txtMajor.Focus(); }
第27页 共38页
课程设计报告
else if (this.txtPassword.Text.Trim() == \"\") {
AlertMessage(\"请输入密码\"); this.txtPassword.Focus(); }
第28页 共38页
else if (this.txtPassword.Text != this.txtCfmPassword.Text) {
AlertMessage(\"两次输入的密码不匹配,请查实后重试\"); this.txtCfmPassword.Focus(); } else {
//将信息封装为学生信息实体
EStudent stuInfo = new EStudent();
stuInfo.StuBirthday = DateTime.Parse(this.dtpBirthday.Text); stuInfo.StuDesc = this.txtDesc.Text;
stuInfo.StuEnrolDate = DateTime.Parse(this.dtpEnrolDate.Text); stuInfo.StuGraduDate = DateTime.Parse(this.dtpGraduDate.Text); stuInfo.StuHome = this.txtHome.Text; stuInfo.StuMajor = this.txtMajor.Text; stuInfo.StuName = this.txtStuName.Text; stuInfo.StuNum = this.txtStuNum.Text;
stuInfo.StuParty = this.cmbParty.SelectedItem.ToString(); stuInfo.StuPhone = this.txtPhone.Text;
stuInfo.StuRace = this.cmbRace.Text.ToString(); stuInfo.StuSex = this.cmbSex.SelectedItem.ToString(); stuInfo.StuPassowrd = this.txtPassword.Text; try {
StudentDB stuDB = new StudentDB(); if (stuDB.AddStudent(stuInfo)) {
AlertMessage(\"您的信息已经添加成功\"); this.Close(); } else {
AlertMessage(\"操作失败,请确保您的学号正确\"); } }
catch (SqlException ex) {
AlertMessage(\"数据库操作失败,请稍后重试。\"); }
课程设计报告
} }
第29页 共38页
(3)在注册窗口中添加自定义方法AlerMessage(是MessageKBox.Show的一个变体,固定了一些参数):
private void AlertMessage(string message) {
MessageBox.Show(message,\"Information:\",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
(4)在DataAccess 项目中的Common文件夹下的Entity子文件中添加名为Estudent.cs的类项目并修改代码:
using System;
using System.Collections.Generic; using System.Text;
namespace SchoolMIS.DataAccess.Common.Entity {
public class EStudent {
private string stuNum; ///
get { return stuNum; } set { stuNum = value; } }
private string stuName; ///
get { return stuName; } set { stuName = value; } }
private DateTime stuEnrolDate; ///
public DateTime StuEnrolDate
课程设计报告
{
get { return stuEnrolDate; } set { stuEnrolDate = value; } }
private DateTime stuGraduDate; ///
public DateTime StuGraduDate {
get { return stuGraduDate; } set { stuGraduDate = value; } }
private string stuParty; ///
public string StuParty {
get { return stuParty; } set { stuParty = value; } }
private DateTime stuBirthday; ///
public DateTime StuBirthday {
get { return stuBirthday; } set { stuBirthday = value; } }
private string stuSex; ///
get { return stuSex; } set { stuSex = value; } }
private string stuRace; ///
第30页 共38页
课程设计报告
public string StuRace {
get { return stuRace; } set { stuRace = value; } }
private string stuMajor; ///
public string StuMajor {
get { return stuMajor; } set { stuMajor = value; } }
private string stuPhone; ///
public string StuPhone {
get { return stuPhone; } set { stuPhone = value; } }
private string stuHome; ///
get { return stuHome; } set { stuHome = value; } }
private string stuDesc; ///
get { return stuDesc; } set { stuDesc = value; } }
private string stuPassowrd; /// 第31页 共38页 课程设计报告 ///
public string StuPassowrd {
get { return stuPassowrd; } set { stuPassowrd = value; } } } }
第32页 共38页
(5)向StudentDB.cs文件,添加自定义方法AddStudent,代码如下:
//建立数据库连接对象
SqlConnection conn = new SqlConnection(Constants.ConnString); //建立数据库命令对象
SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;
cmd.CommandText = Constants.StuLogin; cmd.CommandType = CommandType.Text; //添加参数给数据命令
SqlParameter prmStuNum = new SqlParameter(\"@stuID\", stuID);
SqlParameter prmStuPassword = new SqlParameter(\"@stuPassword\", stuPsw); cmd.Parameters.Add(prmStuNum); cmd.Parameters.Add(prmStuPassword); try {
conn.Open();
object stuName = cmd.ExecuteScalar(); if (stuName != null) {
return stuName.ToString(); } else {
return String.Empty; } }
catch (SqlException ex) {
return String.Empty; } finally {
//确保数据库连接被关闭
if (conn.State == ConnectionState.Open) {
课程设计报告
conn.Close(); }
}
第33页 共38页
(6)在DataAccess 项目中的Student文件夹下的Constants.cs文件添加名为私有域StuInserInfo:
/// /// 添加学生信息 ///
public static readonly string StuInsertInfo = @\"INSERT INTO student( [stuPassword],[stuName],
[stuEnrollmentDate],[stuGraduatedDate], [stuMajor],[stuSex],[stuBirthday],
[stuHome],[stuRace],[stuDesc],[stuID],[stuParty],[stuPhone]) VALUES(
@stuPassword,@stuName,
@stuEnrollmentDate,@stuGraduatedDate, @stuMajor,@stuSex,@stuBirthday,
@stuHome,@stuRace,@stuDesc,@stuID,@stuParty,@stuPhone)\";
(7)在登陆窗体中添加“重新填写”的单击事件:
private void btnCancel_Click(object sender, EventArgs e) {
this.txtCfmPassword.Text = \"\"; this.txtDesc.Text = \"\"; this.txtHome.Text = \"\"; this.txtMajor.Text = \"\"; this.txtPassword.Text = \"\"; this.txtPhone.Text = \"\"; this.txtStuName.Text = \"\"; this.txtStuNum.Text = \"\"; this.cmbParty.Text = \"\"; this.cmbRace.Text = \"\"; this.cmbSex.Text = \"\"; this.dtpBirthday.Text = \"\"; this.dtpEnrolDate.Text = \"\"; this.dtpGraduDate.Text = \"\"; }
(8 )最后为“学生客户端”二级菜单 “新生注册”添加单击事件:
private void stuReg_Click(object sender, EventArgs e) {
RegisterForm frmReg = new RegisterForm();
课程设计报告
frmReg.MdiParent = this; frmReg.Show(); }
第34页 共38页
至此,“新生注册”功能实现。
4.3 代码设计
代码是指代表事物名称、属性、状态等的符号。代码设计就是以数字或字符来表示各种客观实体。在管理信息系统中,为便于计算机处理,节省存储空间和处理对象,提高处理的效率与精确度,需要将处理对象代码化。本系统主要采用顺序码和区间码来设计,以下是对本系统的主要数据代码进行说明:
学生学号:
教师编号:
课程编号:
授课学院 课属专业
教师编号 所在班级
就职年份 所在学院
所属专业
入学年份 所在学院
所学专业 所在班级
班中编号
**
**
** ** ** **
** **
**
** ** ** 其中如:学院、专业、班级等都采用顺序码编码。
4.4 输入输出设计
本系统在输入/输出设计上遵循既满足用户需求又方便用户使用的原则。输入/输出界面的确定都与用户反复沟通,知道用户满意为止。
信息系统的输入输出设计是一个重要环节,一个好的输入设计可以给用户带来良好的工作环境,而一个好的输出设计可以为管理者提高简捷、明了、有效、实用的管理和控制环境。
(1)输入设计
输入设计的目标是:在保证输入信息正确性和满足输出需要的前提下,做到输入方法简便、迅速与经济。输入设计要遵循最小量、简单性、早检验、少转换原则。其主要
课程设计报告
内容包括:
①输入方式的选择
第35页 共38页
输入方式根据数据产生的地点,时间,周期,数量及特性,处理要求的确定。常用的输入方式主要有以下三种:键盘输入、光电设备输入及声音输入。本系统主要采用键盘输入。
②输入数据的活动及输入格式的设计
原始数据的获得需要考虑数据产生的部门,确定收集的时间和方法;了解数据产生的周期,平均发生量及最大量。
此外,输入的格式还需仔细设计,本系统为方便管理人员输入信息,设计专门的输入记录单,按屏幕填表或对话发生输入数据。如,“添加课程”的输入设计:
(2)输出设计
输出设计主要解决的问题是针对不同的用户的特点和要求,以最适当的形式,输出最切合需要的信息。其主要内容包括:
①输出方式的选择
系统的输出方式根据输出信息的使用要求,信息量的大小、输出设备的条件来决定。
②输出表的设计
表内容要根据使用人员的实际需要进行设计。对不同的用户,应当提供详细程度不同、内容不同的表。
③输出设计说明
课程设计报告
第36页 共38页
输出设计说明包括选用的输出设备,信息输出的频率和数量,各种输出文件及输出报表的格式及表格样本等。如“计算机等级考试报考历史”的输出设计:
4.5 系统配置设计
教务管理系统主要用于学校内部资源的管理,充分利用现代高度信息化手段来整合、优化信息的存储以及管理,形成了目前学校内部受欢迎的教务产品,同时也方便了教务管理人员的管理工作,也方便了学生对自己个人信息的实时了解。该系统是依托校园网而设计的,系统运行的硬件和软件设施就为校园网的组成。
本系统采用Asp.net+C#开发技术,所需开发环境如下: 代码编写平台:Microsoft Visual Studio 2005; 数据库:SQL Server2000
操作系统:Microsoft Windows XP。
5 结束语
5.1 系统总结及不足之处
本系统具有以下优点:
1、本系统采用C#软件作为开发平台,界面风格设计简单明了,易于用户理解、使用和掌握。系统采用代码来实现操作界面与数据库的链接,具有更好的移植性,为日后
课程设计报告
系统升级奠定了良好的基础。
第37页 共38页
2、本系统可以运行在多种操作系统平台上(Windows NT/Windows 2000/Windows XP/Windows Vista),此外,数据库管理系统采用SQL Server 2000,便于数据库的管理和维护。
但是也存在以下不足之处:
1、界面跳转简单,有待进一步改进。
2、功能比较简单,部分选课过程等没有进一步改善、加强,只能为用户提供有限的服务。
3、数据库设计有些简单,需要进一步优化。
5.2 设计心得
此次管理信息系统设计基本成功结束,整个设计过程中,是我的劳动与汗水的结晶。通过这次课程设计,我确实有学到许多东西,有新的感受和新的收获。
首先,这次设计打破了我对大学所学知识的一项见解:学的东西基本没有什么实用价值。此刻深刻的懂得,不是没有价值,只是我们学习的东西太少、太少,体现不出它的价值罢了。因为这一点点东西,对于复杂的社会大系统而言,所起到的作用是微乎其微。要想真正的学有所成,还得学会借鉴,学会使用,古语说的好“师夷长技以制夷”,对我们而言就是,我们要想做出点成绩,还得站在巨人的肩上,现代社会知识更新的速度太快、从头学起,我们没有那么多精力,更没有那么些时间,就算有,等到学懂,无非又是到了另一种囧地,因为我们又落伍了……再次,这次设计让我从新拾起了几乎要淡出我记忆的C#和SQL,真的应了那句话:等到用的时候才体现了其价值。所以说,学的东西要适时巩固,尽可能的融入自己……学习是一个长期的过程……
这次系统设计,枯燥而又乏味,但我们的指导老师一直陪着我们走过了这半个月,还有我的同学们,在一起彼此鼓励、彼此互勉,是的,我还明白了,有朋友的战斗,才不孤单。
总而言之,这次课程设计使我学到了很多在大学课堂上学不到东西,不光是专业知识有所提高,还锻炼了我的意志,使我更加坚强。
课程设计报告
参 考 文 献
1. 黄梯云.管理信息系统.北京:高等教育出版社,2009(4)
第38页 共38页
2. 刘卫国,严晖.数据库技术与应用.北京:清华大学出版社,2007
3. 杨晓光. Visual C#.NET. 北京:清华大学出版社,北京交通大学出版社,2006 4.郭常圳.C#网络应用开发例学与实践.北京:清华大学出版社,2006 5.王要武. 管理信息系统. 电子工业出版社,2008.5
6.邝孔武,王晓敏. 信息系统分析与设计(第3 版). 北京:清华大学出版社,2006.4 7.萨师煊,王珊. 数据库系统概论. 北京:高等教育出版社,2002 8. 陈佳. 信息系统开发方法教程.北京:清华大学出版社,2004 9. 龙守谌.数据库技术与应用.北京科学出版社.1995
指导教师评语及成绩
指 导 教 师 评 语 成绩 签字: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务