软件工程实验报告
学生成绩管理系统的设计与实现
学生姓名 学班成
号 级 绩
指导教师
年 月 日
1
目 录
1 课题描述…………………………………………………….....................………...……..........…………………3 2 可行性研究..............................................................................................................................................................4 2.1 编写目的..............................................................................................................................................................4 2.2 项目背景..............................................................................................................................................................4 2.3 定义(术语)......................................................................................................................................................4 2.4 数据流程和处理流程...........................................................................................................................................4 2.5 可行性分析的前提...............................................................................................................................................5 2.6 可行性分析..........................................................................................................................................................5 3 需求分析…………………………………………………….....................………...……..........…………………7 3.1 学生成绩管理系统功能需求……………………………….....................………...……..........…………….......7
3.2 学生成绩管理系统性能要求……………………………….....................………...……..........…………….......8 3.3 数据流图………………………………………………….....................………...……..........……………........8 3.4 数据字典………………………………………………….....................………...……..........……………........9 3.5 学生信息管理系统逻辑结构图…………………………….....................………...……..........……………......12 3.6 用户信息实体关系图……………………………………….....................………...……..........……………....12
4 概要设计…………………………………………………….....................………...……..........……………......13 4.1 编写目的…………………………………………………....................………...……..........……………......13 4.2 项目背景…………………………………………………....................………...……..........……………......13 4.3 任务概述…………………………………………………....................………...……..........……………......13 4.4 总体设计…………………………………………………....................………...……..........……………......13 4.5 接口设计…………………………………………………....................………...……..........……………......17 4.6 数据结构设计…………………………………………….....................………...……..........……………......17 5 详细设计…………………………………………………….....................………...……..........………………..19 5.1 系统程序流程图……………………………………..……….....................………...……..........…………....19 5.2 界面设计………………………………………………….....................………...……..........………….........21 5.3 程序界面截图…………………………………………….....................………...……..........…………..........22 5.4 程序源代码……………………………………………….....................………...……..........…………..........27 6 软件测试…………………………………………………….....................………...……..........………………..58 7 总结…………………………………………………….....................………...……..........…………………......62
2
1 课题描述
随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。
主要功能有三方面:
管理员,登陆,进入系统,可以进行管理员操作,进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。
学生,登陆,进入系统,可以进行查询、修改、打印等操作。
教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。
软件系统目标:
(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。
(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。
(4)本系统可高效、快速的查询到学生的基本信息。
3
2可行性研究
2.1 编写目的
可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间爱确定问题是否可解。经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。
2.2 项目背景
开发软件名称:学生学籍管理系统。 项目任务提出者:陕西理工学院。 项目开发者: 421开发小组。 用户:陕西理工学院。 参考资料:《软件工程导论》,张海藩,清华大学出版社 《信息系统开发实例精粹》,电子工业出版社
2.3 定义(术语)
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言
2.4 数据流程和处理流程
OleDbDataReader 参数
OleDbConnection OleDbCommand SQL 数据库 OleDbConnection OleDbDataAdpter SQL DataGrid DataSet 参数 4
2.5 可行性分析的前提
2.5.1 要求
主要功能:专业信息管理,班级信息管理,学生计本信息管理,班级课程信息管理,成绩信息管理,系统维护等,为学生、老师、管理员提供一套学生综合信息管理的平台,能够使学生、老师更好的互动及管理员管理。
性能要求:本系统提供一套学生综合信息管理的平台,能够使得系统管理员对院校的专业进行分类,进而确定各个专业中所包含的班级信息,在已有班级信息的基础上能够对所有的学生信息进行分类管理。 输出要求:数据完整,详实。 输出要求:简捷,快速,实时。
安全与保密要求:服务器的管理员享有对该系统的所有权限。老师享有对该系统成绩录入等权限。学生享有对学生信息的添加、删除、修改等权限(写入与读出)。
完成期限:预计三个礼拜,即截止2012年11月18日。
2.5.2 目标
系统实现后,可以减少人力资源的浪费,使得教学部门可以对学生成绩进行汇总及统计来对教学工总及学生的状况进行准确评估。
2.5.3条件,假定和
建议软件寿命:5年。 经费来源:自费。
硬件条件:服务器sun工作站,终端为pc机。 运行环境:Windows 数据库:SQL server 2005
投入运行最迟时间:2012/11/20
2.5.4决定可行性的主要因素
成本/效益分析结果,效益 〉成本。
技术可行,现有技术可完全承担开发任务。 操作可行,软件能被原有工作人员快速接受。
2.6 可行性分析
2.6.1 技术可行性分析
利用个人电脑中端进行编译,将完成的代码进行运行,并把相应的数据库进行连接,使输入的数据能够及时储存到数据库内,并在需要时调出进行修改。以上内容均可通过数据库等软件实现,理论上可行。
5
2.6.2 经济可行性分析
为完成需付出4台电脑、4个人及大约数周的时间。 不过此软件的回报会在相当一段时间内可节约教师、管理者的很多时间,以用来在其他方面的支出。长期累计,收益远远大于支出,所以在经济方面值得设计。
2.6.3 操作可行性分析
使用本软件人员不需要有很多计算机基础,只要能基本懂得计算机软件的使用方法即可。
6
3 需求分析
3.1 学生成绩管理系统功能需求
业务流程图部分:
登录查询 学生 信息反馈 学生成绩管理系统 登录教师 管理页面 教师 信息反馈 学生信息录入教师管理信息输出系统控制信息 录入学生信息 录入课程信息 管理员 录入成绩信息 查询成绩 学生 验证信息 管理员
学生表 课程表 成绩表 查询个人信息 7
管理功能部分:
从业务流程图可以看出,学生成绩管理系统中分为大的三个方面:系统管理员模块、教师模块、学生模块,其主要管理功能有: 1、系统管理员功能
系统管理员进入学生成绩管理系统的主要功能是:实现管理员用户的添加、修改和删除,以及对教师添加、教师修该、教师删除、教师查询、学生的添加、学生的修改、学生的查询等基本功能,并且参与开设课程、选择课程的管理,安排教师的任课和学生的选课工作,管理元为每门课程设置一个学分,没门课程可以是必修或选修,如果学生及格,学生将获得该课程学分。 2 、教师功能
教师进入学生成绩管理系统的主要功能是:各科教师登录系统后查询和修改个人信息、修改自己的账号密码,查询自己的授课课程,实现对选秀了自己课程的学生的成绩进行查询、录入和修改,各科老师可以对自己学生选修课程结束后给与分数,同时可以对自己所带课程的成绩优秀人数、及格人数和不及格人数的分布信息进行查询。 3 、学生功能
学生进入学生成绩管理系统的主要功能是:每个学生登录系统后可以查询和修改个人信息、修改自己的账号密码,以及自己所选课程任课老师的个人信息,同时在课程结束后可以查询在校期间各个时间段选修课程的成绩与学分,以及对单科成绩和总分的排名查询。
3.2 学生成绩管理系统性能要求
为了满足用户的要求,系统必须要有高的运作速度,用户填写的信息输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也还要有足够大的磁盘容量;安全性也是系统最重要的性能需求之一,学生信息管理系统必须有可靠的安全措施,以保证用户的各项信息安全。
3.3 数据流图
学生成绩信息数据库 学生 处理信息 管理员 教师
8
学生成绩信息数据库 C1 学生 录入、修改、 查询 管理员 C2 选课、上课 C4 教师 上报、审批 C3 考核 成绩数据库
3.4 数据字典
3.4.1 数据流 数据流编号:1 数据流名:录入信息 简述:用于写入学生各课成绩 数据流来源:密码检验 数据流去向:成绩登记 数据流项组成:录入信息=学生学号+学生姓名+性别+班级+各课成绩 数据流编号:2 数据流名:成绩写入记录库 说明:用于学生成绩写入 数据流来源:成绩登记 数据流去向:成绩写入记录 数据流项组成:成绩写入记录=各课成绩 9
数据流编号:3 数据流名:查询结果 说明:用于显示学生查询的信息结果 数据流来源:学生信息查询 数据流去向:学生 数据流组成:查询信息=学生信息+各课成绩 数据流编号:4 数据流名称:成绩表 简述:学生成绩通知,在下学期前发给学生 数据流来源:成绩管理 数据流去向:学生 数据项组成:学号+学生姓名+课程名+成绩 数据流量:1张/学期 3.4.2 数据存储 数据存储编号:001 数据存储名称:学生表 简述:登记学生信息 数据存储组成:学号+姓名+性别+班级+专业+系部 相关联的处理:成绩管理,课程管理 数据存储编号:002 数据存储名称:管理员表 简述:增加、修改、查询学生学籍 数据存储组成:学号+身份证号+高考号+姓名+性别+家庭住址+ 系部班级 相关联的处理:学籍管理,成绩管理,课程管理
数据存储编号:003 数据存储名称:教师表 简述:教师上课安排 数据存储组成:教师姓名+所教课程+上课班级 相关联的处理:课程管理 10
数据存储编号:004 数据存储名称:学生选课表 简述:学生选课课程信息存储 数据存储组成:姓名 +系部班级+课程名称+课程编号+学号 相关联的处理:课程管理,成绩管理 数据存储编号:005 数据存储名称:学生成绩表 简述:存放学生各科考试成绩 数据存储组成:姓名 +学号+系部班级+课程名称+课程编号 相关联的处理:课程管理,成绩管理 3.4.3 处理 处理逻辑编号:01 处理逻辑名称:身份验证 简述:检查输入信息的合法性 输入的数据流:学号+密码 处理过程:根据输入的学号和密码,检索用户,确定用户类别, 以确定该用户的权限,显示查询信息 输出的数据流:学生选课信息,学生成绩,学生学籍,密码修改 处理频率:频繁 处理逻辑编号:02 处理逻辑名称:查询登记 简述:查询专业表及课程表,成绩表 输入的数据流:教师名+教师号+密码 处理过程:根据输入的信息,确定用户类别,根据用户类别,显 示查询信息 输出的数据流:学生成绩,班级表,课程表 处理频率:频繁
11
3.5 学生信息管理系统逻辑结构图
用户操作 学生信息管理系统界面 业务逻辑 数据存储 3.6 用户信息实体关系图
用户 用户名称 角色属性 口令 12
4 概要设计
4.1 编写目的
基于现在的学生越来越多,老师的工作量越来越大。伴随着网络信息化,学生成绩管理也必须迈进一个更加进步的时代。那就是用网络来管理学生成绩,实现一个电子管理学生成绩的平台,减轻老师的负担,也便利教务处的管理工作。在本系统中,学生可以选课,退课,查询成绩;老师在期中期末的时候给学生打分,并按百分比计算,提交之前可以修改学生的成绩;管理员可以对教师、学生、课程的信息进行增、删、查、改,并且可以发布公告,新闻。如果学生,教师,管理员想进入这个系统,必须先进行登录,新用户要注册,可以进行个人信息的维护,如密码的修改等。
4.2 项目背景
1.本项目(学生成绩管理系统)由学校教学计划所安排,由团队小组负责开发。 2.系统名称:学生成绩管理系统
3.运行平台:SQL server 2000及以上版本, Visual Studio .NET 4.开发人员:有一定C语言、C# 语言、SQL 语言的第一小组
4.3 任务概述
4.3.1 目标
(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。
(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。
(4)本系统可高效、快速的查询到学生的基本信息。
4.3.2 需求概述
学生成绩管理系统是为方便教师学生实时掌握成绩、课程等相关信息而研发的系统,旨在大幅度节约教师学生时间,提升教务系统办事效率。
4.4 总体设计
4.4.1 系统设计思想
本系统选用了前台应用程序结合后台Access数据库的C/S结构开发模式,由于采用了较为流行的C#作为开发语言,程序的代码及结构都得到了优化,同时又能提高程序的运行效率,该系统在Visual Studio .NET中进行开发,该环境中提供了大量可供选择的数据控件,开发人员可以很方便地建立起与数据库之间的连接,并在此连接的基础之上,利用各种常用数据组件对数据库进行操作。如 OleDbConnection、OleDbDataReader、OleDbCommand、OleDbDataAdapter、DataSet及针对于其他特定数据库类型而设置的数据组件资源。
13
本系统中,采用 OleDbConnection 对象与后台数据库创建连接,所有针对数据库的操作,如添加数据、修改数据、删除数据及数据查询都需要利用 OleDbConnection 控件作为数据库连接对象,程序所涉及的 SQL语句可以根据不同的需要分别采用 OleDbCommand 对象及OleDbDataAdapter 对象来执行。
4.4.2 系统功能模块划分
图4.2学生成绩管理系统层次图
学生子模块 学生可以在该模块中进行选课、退课,成绩查询,并且还可以对自己的个人信息进行增删查改等操作 教师子模块 教师可以在该模块中进行选课、退课,成绩录入,并且还可以对自己的个人信息进行增删查改等操作 管理员子模块 管理员可以再此模块中添加助理管理员来维护本软件的远行,并且还可以对自己的个人信息进行增删查改等操作,还可以对教师学生的信息进行增删查改的操作 . 表4.2 模块功能
14
4.4.3 系统子模块功能图
系统管理添加用户新建角色
图4.4.3-1系统管理界面功能模块图
专业设置添加专业专业浏览修改专业删除专业
图4.4.3-2专业设置界面功能模块图
班级信息管理添加班级班级浏览修改班级删除班级
图4.4.3-3班级信息管理界面功能模块图
15
学生信息管理添加学生学生信息浏览修改学生信息删除学生信息
图4.4.3-4学生信息管理界面功能模块图
课程信息管理添加课程课程信息浏览修改课程删除课程
图4.4.3-5课程信息管理界面功能模块图
成绩信息管理添加学生成绩浏览学生成绩学生成绩查询班级成绩查询修改学生成绩删除学生成绩
图4.4.3-6成绩信息管理界面功能模块图
16
4.5 接口设计
4.5.1 外部接口与用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用Visual Studio .NET进行编程。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。
4.5.2 内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
4.6 数据结构设计
表4.6-1 学生信息管理系统数据库结构 名称 ClassInfo CourseInfo ScoreInfo SpecialInfo StudentInfo UserInfo Roles 班级信息表 课程信息表 学生成绩信息表 专业信息表 学生基本信息表 登陆用户信息表 角色信息表 描述
表4.6-2 ClassInfo 表 字段 ClassID ClassName SpecialtyName ClassNumber Length Teacher EnrolmentTime Remark
17
类型 自动编号 文本 文本 文本 数字 文本 日期/时间 备注 班级名称 专业名称 教书编号 学制 班主任 入校时间 备注 描述 班级编号(主键) 表4.6-3 Course 表
字段 CourseID ClassID Course Semester 自动编号 数字 文本 文本 类型 班级编号 课程名称 学期 描述 课程编号(主键)
表4.6-4 ScoreInfo 表 字段 ScoreID Semester StudentNumber Course Score 自动编号 文本 文本 文本 数字 类型 学期 学生学号 课程 分数 描述 成绩编号(主键)
表4.6-5 SpecialtyInfo 表
字段 SpecialtyID SpecialtyName Remark 自动编号 文本 备注 类型 专业编号 专业名称(主键) 备注 描述
表4.6-6 StudentInfo 表
字段 StudentID StudentNumber Name Sex Race Address Telephone Role PostalCode ClassID Remark Photo 自动编号 文本 文本 文本 文本 文本 文本 文本 文本 数字 备注 OLE对象 类型 学号 姓名 性别 族别 家庭住址 联系电话 政治面貌 邮政编码 班级编号 备注 照片 描述 自动编号(主键) 18
5 详细设计
5.1 系统程序流程图
5.1.1 学生基本信息模块
19
5.1.2 学生课程模块
5.1.3 教师信息模块
20
5.1.4 管理员查询信息模块
5.2 界面设计
用户登陆:该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式(默认情况下是学生),系统再根据用户选择的登陆方式到相应的表中去搜索。例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如果存在则进入教师主页,否则提示用户输入有误,请重新输入。
5.2.1 学生用户界面
①、修改密码
学生的初始密码是由管理员指定的。学生登陆后,可以按照要求自行修改使用密码。首先需要输入原始密码,如果原始密码没有输入正确将不能修改密码,只有在原始密码正确的基础上,用户才能继续下面的操作。新密码设定后,系统还要求用户再输入一次重复密码,避免因为误输而导致密码丢失。
②、查询指定学期成绩
学生可以查询自己指定学期的成绩和所有的成绩。方便学生了解自身情况。 ③、选课系统
学生选课系统是针对学生进行网上选课而设计的,学生可以自主选择自己想修的课程。
21
5.2.2 老师用户界面
①、查询授课计划
教师可以利用该系统实现查询授课计划的功能,教师不仅可以看到自己本学期要授的课程信息,还能查看选修对应课程的学生名单,同时可以添加对应课程的学生成绩。帮助教师提高了工作效率。
②、查询学生基本信息
教师可以查询学生的基本信息,以帮助教师了解学生情况。可以按班级查找、按姓名查找、按学号查找、按年龄查找、按籍贯查找,也可以一起查找。
5.2.3 管理员界面
①、班级信息管理
班级信息管理包括添加班级信息,修改班级信息以及删除班级信息。在班级信息管理之前,需要先对学校信息和专业信息管理。只有在已有的专业信息中才能建立班级档案,班级信息和专业信息是从属关系。
②、学生基本信息管理
学生基本信息管理包括学生基本信息添加、学生基本信息修改、学生基本信息删除。下面给出的是学生信息添加界面
③、教师基本信息管理
教师基本信息管理包括教师基本信息添加、教师基本信息修改以及教师基本信息删除。
5.3 程序界面截图
程序主界面
22
学生选课
修改密码
23
修改个人信息
老师选课
24
添加学生信息(学生注册)
添加老师
25
删除学生信息
删除老师
26
浏览课程
5.4 程序源代码
主界面
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;
using System.Windows.Forms; using System.Data.SqlClient;
namespace WindowsApplication1 {
public partial class Form1 : Form {
public static string userid = \"\"; public static string myuserid = \"\"; public static string xuehao = \"\"; public static string xingming = \"\"; public static string xingbie = \"\"; public static int nianling = 0; public static string zhongzu = \"\"; public static string dizhi = \"\";
27
public static string dianhua = \"\"; public static string banji = \"\"; public static string touxiang=\"\"; public static string zhuanye = \"\"; public static string yuanxi = \"\"; public static string beizhu = \"\"; public Form1() {
InitializeComponent(); }
private void 登?陆?激¤活?ToolStripMenuItem_Click(object sender, EventArgs e) {
username.Enabled = true; psw.Enabled = true; land.Enabled = true;
radioButton2.Enabled = true; radioButton3.Enabled = true; username.Focus(); }
private void land_Click(object sender, EventArgs e) {
myuserid = username.Text;
SqlConnection conn = new SqlConnection();
conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open();
SqlCommand cmd1 = new SqlCommand(); cmd1.Connection = conn;
if (radioButton1.Checked) {
cmd1.CommandText = string.Format(\"select * from StudentInfo where StudentNumber='{0}' and password='{1}'\", username.Text, psw.Text); 学§生Θ?信?息¢管ü理え?Enabled = true; } else {
if (radioButton2.Checked) {
28
cmd1.CommandText = string.Format(\"select * from TeacherInfo where TeachID='{0}' and password='{1}'\", username.Text, psw.Text); 成é绩¨信?息¢管ü理え?Enabled = true; userid = username.Text;
学§生Θ?信?息¢管ü理え?Enabled = false; } else {
cmd1.CommandText = string.Format(\"select * from 管ü理え?员±表括?where 账?号?='{0}' and 密ü码?='{1}'\", username.Text, psw.Text); 系μ统?管ü理え?Enabled = true; 专痢?业唉?设Θ?置?.Enabled = true; 班悒?级?信?息¢管ü理え?Enabled = true; 成é绩¨信?息¢管ü理え?Enabled = false; 课?程ì信?息¢管ü理え?Enabled = true; 学§生Θ?信?息¢管ü理え?Enabled = false;
院o系μ设Θ?置?ToolStripMenuItem.Enabled = true; } }
SqlDataReader rs = cmd1.ExecuteReader(); if (rs.HasRows) {
学§生Θ?信?息¢管ü理え?Enabled = true; groupBox3.Hide(); } else {
MessageBox.Show(\"用?户§名?或ò者?密ü码?有瓺误ó!?\"); }
conn.Close(); }
public void GetStudent() {
userid =myuserid;
SqlConnection conn = new SqlConnection();
conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open();
SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;
29
cmd.CommandText = string.Format(\"select
StudentNumber,StudentName,Sex,Age,Race,Address,Telephone,ClassName,Photo,Specialty,院o系μ名?,Remark from StudentInfo where StudentNumber='{0}'\", userid); SqlDataReader re = cmd.ExecuteReader(); re.Read(); if (re.HasRows) {
学§生Θ?信?息¢(re); } }
private static void 学§生Θ?信?息¢(SqlDataReader re) {
xuehao = re[0].ToString(); xingming = re[1].ToString(); xingbie = re[2].ToString(); nianling = Convert.ToInt32(re[3]); zhongzu = re[4].ToString(); dizhi = re[5].ToString(); dianhua = re[6].ToString(); banji = re[7].ToString(); touxiang = re[8].ToString(); zhuanye = re[9].ToString(); yuanxi = re[10].ToString(); beizhu = re[11].ToString(); }
private void 添EventArgs e) {
this.Hide(); Form6 cs6 = new Form6();
if (cs6.ShowDialog() == DialogResult.Cancel) {
this.Show();
} }
private void 添 {
this.Hide();
AddJS csJS = new AddJS();
if (csJS.ShowDialog() == DialogResult.Cancel) {
?加ó老?师簗ToolStripMenuItem_Click(object sender, EventArgs e) ?加ó学§生Θ?信?息¢ToolStripMenuItem_Click(object sender,
30
this.Show(); } }
private void Form1_Load(object sender, EventArgs e) {
this.classInfoTableAdapter.Fill(this.stuMangerSysDataSet.ClassInfo);
this.specialtyInfoTableAdapter.Fill(this.stuMangerSysDataSet.SpecialtyInfo); this.jXXInfoTableAdapter.Fill(this.stuMangerSysDataSet.JXXInfo); comboBox2.SelectedIndex = 0; 查é看′个?人?信?息¢.Hide(); groupBox4.Hide(); groupBox4.Hide(); sclsgroupBox5.Hide(); }
private void button2_Click(object sender, EventArgs e) {
if (username.Enabled==false) {
groupBox3.Hide(); } else{
username.Text = \"\"; psw.Text = \"\"; }
}
private void 学§生Θ?登?陆?ToolStripMenuItem_Click(object sender, EventArgs e) {
STUland cs = new STUland(); cs.Show(); this.Hide(); }
private void 学§生Θ?信?息¢浏ˉ览えEventArgs e) {
查é看′个?人?信?息¢.Show(); GetStudent();
查é看′个?人?信?息¢.Text = xingming + \"的?基ù本?信?息¢\"; grtouxiang.Text = xingming+\"的?头
?像?\";
oolStripMenuItem_Click(object sender,
31
string[] mystr2 = new string[] { \"学§号?:阰\" + xuehao,\"\", \"姓?名?:阰\" + xingming, \"\",\"性?别纄:阰\" + xingbie, \"\",\"年ê龄?:阰\" + nianling.ToString(),\"\", \"民?族?:阰\" + zhongzu,\"\", \"地?址·:阰\" + dizhi, \"\",\"电?话°:阰\" + dianhua,\"\", \"班悒?级?:阰\" + banji,\"\", \"院o系μ:阰\" + yuanxi,\"\", \"专痢?业唉?:阰\" + zhuanye }; for (int i=0; i private void 修T改?个?人?信?息¢ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); 修T改?学§生Θ?信?息¢ cs = new 修T改?学§生Θ?信?息¢(); if (cs.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 修T改?密ü码?ToolStripMenuItem_Click(object sender, EventArgs e) { userid = username.Text; this.Hide(); AlterStuPwd cs = new AlterStuPwd(); if (cs.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 删?除y学§生Θ睺oolStripMenuItem_Click(object sender, EventArgs e) { groupBox4.Show(); } private void button3_Click(object sender, EventArgs e) { groupBox4.Hide(); } 32 private void button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select StudentNumber,StudentName,Sex,Age,Race,Address,Telephone,ClassName,Specialty,院o系μ名? from STudentInfo where ClassName='{0}'\", comboBox3.Text); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); scxsdataGridView2.DataSource = dt.DefaultView; conn.Close(); } private void 退?出?ToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void 退?出?ToolStripMenuItem2_Click(object sender, EventArgs e) { 学§生Θ?信?息¢管ü理え?Enabled = false; } private void button4_Click(object sender, EventArgs e) { 查é看′个?人?信?息¢.Hide(); } private void 专痢?业唉?设Θ?置?_Click(object sender, EventArgs e) { this.Hide(); zysz zy = new zysz(); zy.tjzygroupBox1.Hide(); zy.zygroupBox1.Hide(); if (zy.ShowDialog() == DialogResult.Cancel) { 33 this.Show(); } } private void 课?程ì信?息¢管ü理え猒Click(object sender, EventArgs e) { } private void GetData() { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = \"select * from StudentInfo order by StudentNumber desc\"; SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); scxsdataGridView2.DataSource = dt.DefaultView; conn.Close(); } private void button5_Click(object sender, EventArgs e) { if (scxsdataGridView2.SelectedRows.Count > 0) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string id = scxsdataGridView2.SelectedRows[0].Cells[0].Value.ToString(); string StudentNumber={0}\", id); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sql; if (cmd.ExecuteNonQuery() > 0) { GetData(); } else { sql = string.Format(\"delete from StudentInfo where 34 MessageBox.Show(\"删?除y数簓据Y失骸?败悒?!?\"); } } } private void button6_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select * from TeacherInfo where TeachID='{0}' order by TeachID desc\", textBox1.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt.DefaultView; conn.Close(); scjsbutton7.Enabled = true; } private void 删?除y老?师簗ToolStripMenuItem_Click(object sender, EventArgs e) { groupBox4.Show(); sclsgroupBox5.Show(); } private void scjsbutton7_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); string sql = string.Format(\"delete from TeacherInfo where TeachID='{0}'\", id); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sql; if (cmd.ExecuteNonQuery() > 0) { MessageBox.Show(\"删?除y数簓据Y成é功|!?\"); 35 string sql0 = string.Format(\"select * from TeacherInfo where TeachID='{0}' order by TeachID desc\", textBox1.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt.DefaultView; scjsbutton7.Enabled=false; } else { MessageBox.Show(\"删?除y数簓据Y失骸?败悒?!?\"); } } } CLASS cl = new CLASS(); private void 添?加ó班悒?机úToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); cl.tjbjgroupBox1.Show(); cl.scgroupBox1.Hide(); cl.treeView1.Nodes.Clear(); if (cl.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 删?除y班悒?级?ToolStripMenuItem1_Click(object sender, EventArgs e) { this.Hide(); cl.tjbjgroupBox1.Text = \"删?除y班悒?级?\"; cl.tjbjgroupBox1.Show(); cl.scgroupBox1.Show(); cl.ckgroupBox1.Hide(); cl.treeView1.Nodes.Clear(); if (cl.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 班悒?级?浏ˉ览え { oolStripMenuItem_Click(object sender, EventArgs e) 36 this.Hide(); cl.tjbjgroupBox1.Text = \"班悒?级?浏ˉ览え?; cl.tjbjgroupBox1.Show(); cl.scgroupBox1.Show(); cl.ckgroupBox1.Show(); cl.treeView1.Nodes.Clear(); if (cl.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 修T改?班悒?级?信?息¢ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); cl.tjbjgroupBox1.Hide(); if (cl.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void scxsdataGridView2_Click(object sender, EventArgs e) { listBox2.Items.Clear(); DataGridViewSelectedRowCollection rows = scxsdataGridView2.SelectedRows; DataGridViewRow row = rows[0]; string[] mystr2 = new string[] { \"学§号?:阰\" + row.Cells[0].Value, \"\", \"姓?名?:阰\" + row.Cells[1].Value, \"\", \"性?别纄:阰\" + row.Cells[2].Value, \"\", \"年ê龄?:阰\" + row.Cells[3].Value, \"\", \"民?族?:阰\" + row.Cells[4].Value, \"\", \"地?址·:阰\" + row.Cells[5].Value, \"\", \"电?话°:阰\" + row.Cells[6].Value, \"\", \"班悒?级?:阰\" + row.Cells[7].Value, \"\", \"院o系μ:阰\" + row.Cells[9].Value, \"\", \"专痢?业唉?:阰\" + row.Cells[8].Value }; for (int i = 0; i < mystr2.Length; i++) { listBox2.Items.Add(mystr2[i]); } } private void 院o系μ设Θ?置?ToolStripMenuItem_Click_1(object sender, EventArgs e) { 37 this.Hide(); YXSZ form1 = new YXSZ(); form1.yxtjgroupBox1.Hide(); form1.scyxgroupBox1.Hide(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void comboBox1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql0 = string.Format(\"select 系μ编括?号?,院o系μ名? from JXXInfo\"); SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); DataTable dt0 = new DataTable(); adapter0.Fill(dt0); comboBox1.DisplayMember = \"院o系μ名?\"; comboBox1.ValueMember = \"院o系μ名?\"; comboBox1.DataSource = dt0.DefaultView; conn.Close(); } private void comboBox2_Click(object sender, EventArgs e) { string yxmc = comboBox1.SelectedValue.ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string 名?='{0}')\", yxmc); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); comboBox2.Items.Clear(); comboBox2.DisplayMember = \"SpecialtyName\"; comboBox2.ValueMember = \"SpecialtyID\"; comboBox2.DataSource = dt.DefaultView; conn.Close(); sql = string.Format(\"select SpecialtyID,SpecialtyName from SpecialtyInfo where 系μ编括?号?=(select 系μ编括?号? from JXXInfo where 院o系μ 38 } private void comboBox3_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select ClassID,ClassName from ClassInfo where SpecialtyID=(select SpecialtyID from SpecialtyInfo where SpecialtyName='{0}')\", comboBox2.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt1 = new DataTable(); adapter.Fill(dt1); comboBox3.Items.Clear(); comboBox3.DisplayMember = \"ClassName\"; comboBox3.DataSource = dt1.DefaultView; conn.Close(); } private void button7_Click(object sender, EventArgs e) { sclsgroupBox5.Hide(); groupBox4.Hide(); } private void 添 { this.Hide(); KCGL form1 = new KCGL(); form1.groupBox1.Show(); form1.groupBox1.Text = \"添?加ó课?程ì\"; form1.groupBox3.Text = \"添?加ó\"; form1.groupBox4.Hide(); form1.groupBox5.Hide(); textBox1.Focus(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 删?除y课?程ìToolStripMenuItem1_Click(object sender, EventArgs e) { ?加ó课?程ìToolStripMenuItem_Click(object sender, EventArgs e) 39 this.Hide(); KCGL form1 = new KCGL(); form1.groupBox1.Show(); form1.groupBox1.Text = \"删?除y课?程ì\"; form1.groupBox3.Text = \"删?除y\"; form1.groupBox4.Show(); form1.groupBox5.Hide(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 查é看′课?程ì_Click(object sender, EventArgs e) { this.Hide(); KCGL form1 = new KCGL(); form1.groupBox1.Show(); form1.groupBox1.Text = \"查é看′课?程ì\"; form1.groupBox4.Show(); form1.groupBox5.Show(); form1.groupBox3.Hide(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 添EventArgs e) { this.Hide(); Form4 form1 = new Form4(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 学§生Θ?选?课?ToolStripMenuItem1_Click(object sender, EventArgs e) { this.Hide(); xuanke form1 = new xuanke(); ?加ó学§生Θ?成é绩¨ToolStripMenuItem_Click(object sender, 40 form1.groupBox2.Hide(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 修T改?学§生Θ?成é绩¨ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); Form4 form1 = new Form4(); form1.button1.Text = \"修T改?成é绩¨\"; if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 删?除y学§生Θ?成é绩¨ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); Form4 form1 = new Form4(); form1.button1.Text = \"删?除y成é绩¨\"; if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } private void 退?出?ToolStripMenuItem1_Click(object sender, EventArgs e) { 成é绩¨信?息¢管ü理え?Enabled = false; } private void 修T改?学§生Θ?信?息¢ToolStripMenuItem1_Click(object sender, EventArgs e) { this.Hide(); CJCX form1 = new CJCX(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); 41 } } private void 老?师簗选?课?ToolStripMenuItem_Click(object sender, EventArgs e) { this.Hide(); xuanke form1 = new xuanke(); form1.groupBox2.Show(); if (form1.ShowDialog() == DialogResult.Cancel) { this.Show(); } } } } 成绩管理 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsApplication1 { public partial class Form4 : Form { public Form4() { InitializeComponent(); } private void Form4_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨ 42 管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; string id1 = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); string id2 = dataGridView2.SelectedRows[0].Cells[0].Value.ToString(); if (button1.Text == \"录?入?成é绩¨\") { if (textBox4.Text == \"\") { MessageBox.Show(\"请?录?入?成é绩¨!?\"); } else { MessageBox.Show(\"请?录?入?0!?\"); } cmd.CommandText MessageBox.Show(\"添 } else if (button1.Text == \"修T改?成é绩¨\") { cmd.CommandText = string.Format(\"update SelectInfo set Score={0} where StudentNumber='{1}' and CoursrID={2}\", Convert.ToInt32(textBox4.Text), id1, id2); MessageBox.Show(\"修T改?成é功|!?!?!?\"); } else { if (textBox4.Text == \"\") { cmd.CommandText = string.Format(\"update SelectInfo set Score=-1 where StudentNumber='{0}' and CoursrID={12}\", id1, id2); MessageBox.Show(\"删?除y成é功|!?!?!?\"); } } cmd.ExecuteNonQuery(); conn.Close(); textBox1.Text = \"\"; textBox2.Text = \"\"; textBox3.Text = \"\"; textBox4.Text = \"\"; = string.Format(\"insert into SelectInfo values('{0}','{1}','{2}','{3}')\",id1,id2,Convert.ToInt32(textBox4.Text),Form1.userid); ?加ó成é功|!?!?!?\"); if (Convert.ToInt32(textBox4.Text) > 100 || Convert.ToInt32(textBox4.Text)<0) 43 } private void comboBox1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql0 = string.Format(\"select SpecialtyID,SpecialtyName from SpecialtyInfo \"); SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); DataTable dt0 = new DataTable(); adapter0.Fill(dt0); comboBox1.DisplayMember = \"SpecialtyName\"; comboBox1.ValueMember = \"SpecialtyName\"; comboBox1.DataSource = dt0.DefaultView; conn.Close(); } private void comboBox3_Click(object sender, EventArgs e) { } private void comboBox2_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select ClassID,ClassName from ClassInfo where SpecialtyID=(select SpecialtyID from SpecialtyInfo where SpecialtyName='{0}')\", comboBox1.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt1 = new DataTable(); adapter.Fill(dt1); comboBox2.DisplayMember = \"ClassName\"; comboBox2.DataSource = dt1.DefaultView; conn.Close(); } private void button2_Click(object sender, EventArgs e) { comboBox3.Items.Clear(); 44 textBox1.Text = \"\"; textBox2.Text = \"\"; textBox3.Text = \"\"; textBox4.Text = \"\"; } private void textBox3_Click(object sender, EventArgs e) { textBox3.Text = comboBox3.Text; } private void button5_Click(object sender, EventArgs e) { this.Close(); } private void button3_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select CoursrID, CourseName from CourseInfo where TeachID={0} and Semester='{1}'\", Form1.userid, comboBox3.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt.DefaultView; conn.Close(); } private void dataGridView1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string id = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); textBox1.Text = id; } private void button4_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); 45 conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select StudentNumber,StudentName from StudentInfo where ClassName='{0}'\",comboBox2.Text); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView2.DataSource = dt.DefaultView; conn.Close(); } private void dataGridView2_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string id = dataGridView2.SelectedRows[0].Cells[1].Value.ToString(); textBox2.Text = id; } } } 添加学生信息 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.IO; using System.Drawing.Imaging; using System.Drawing.Drawing2D; namespace WindowsApplication1 { public partial class Form6 : Form { public Form6() 46 { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (StuNum.Text == \"\") { MessageBox.Show(\"学§号?不?能ü为a空?!?\"); } else if (StuNum.Text.Length != 10) { MessageBox.Show(\"请?正y确ā?填?入?10位?数簓字?的?学§号?!?\"); } if (StuName.Text == \"\") { MessageBox.Show(\"姓?名?不?能ü为a空?!?\"); } if (age.Text == \"\") { MessageBox.Show(\"年ê龄?不?能ü为a空?!?\"); } else if (Convert.ToInt32(age.Text) <= 16 || Convert.ToInt32(age.Text) >= 30) { MessageBox.Show(\"年ê龄?一?般?为a16—a—a30岁ê之?间?!?\"); } if (StuAddress.Text == \"\") { MessageBox.Show(\"地?址·栏?不?能ü为a空?!?\"); } if (StuTele.Text == \"\") { MessageBox.Show(\"电?话°栏?不?能ü为a空?!?\"); } else if (StuTele.Text.Length != 11) { MessageBox.Show(\"请?正y确ā?填?写′11位?手?机ú号?码?!?\"); } if (StuClass.Text == \"\") { MessageBox.Show(\"班悒?级?栏?不?能ü为a空?!?\"); } 47 if (StuPhoto.Text == \"\") { MessageBox.Show(\"头 } if (zy.Text == \"\") { MessageBox.Show(\"专痢?业唉?栏?不?能ü为a空?!?\"); } if (yx.Text == \"\") { MessageBox.Show(\"院o系μ栏?不?能ü为a空?!?\"); } if (StuNum.Text == \"\" || StuName.Text == \"\" || age.Text == \"\" || StuRace.Text == \"\" || StuAddress.Text == \"\" || StuTele.Text == \"\" || StuClass.Text == \"\" || StuPhoto.Text == \"\" || zy.Text == \"\" || yx.Text == \"\") { MessageBox.Show(\"请?完?整?填?写′内ú容╕!?!?\"); } else if (StuNum.Text == \"已?有瓺学§号?查é询ˉ\") { MessageBox.Show(\"该?生Θ?已?经-注痢?册á!!?!?\"); } else { string StuSex = \"\"; if (Stunan.Checked == true) { StuSex = \"男D\"; } else { StuSex = \"女?\"; } SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = string.Format(\"insert into StudentInfo(StudentNumber,Studentname,Sex,Age,Race,Address,Telephone,ClassName,Photo,Sp ?像?栏?不?能ü为a空?!?\"); 48 ecialty,院o系μ名?,password,Remark) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')\", StuNum.Text, StuName.Text, StuSex, age.Text, StuRace.Text, StuAddress.Text, StuTele.Text, StuClass.Text, StuPhoto.Text, zy.Text, yx.Text, StuNum.Text, StuRemark.Text); cmd.ExecuteNonQuery(); button1.Text = \"继ì续?\"; MessageBox.Show(\"添 ?加ó成é功|!?!?!?\"); StuNum.Text = \"\"; StuName.Text = \"\"; //StuSex.Text = \"\"; age.Text = \"\"; StuRace.Text = \"\"; StuAddress.Text = \"\"; StuTele.Text = \"\"; StuClass.Text = \"\"; StuPhoto.Text = \"\"; zy.Text = \"\"; yx.Text = \"\"; StuRemark.Text = \"\"; } } private void button3_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { StuPhoto.Text = openFileDialog1.FileName; } Image iSource = Image.FromFile(StuPhoto.Text); ImageFormat iFormat = iSource.RawFormat; iSource.Dispose(); oB.Dispose(); private void Form6_FormClosed(object sender, FormClosedEventArgs e) { this.Close(); } private void button2_Click(object sender, EventArgs e) { StuNum.Text = \"\"; StuName.Text = \"\"; //StuSex.Text = \"\"; age.Text = \"\"; StuRace.Text = \"\"; StuAddress.Text = \"\"; StuTele.Text = \"\"; StuClass.Text = \"\"; StuPhoto.Text = \"\"; zy.Text = \"\"; yx.Text = \"\"; StuRemark.Text = \"\"; } 49 private void yx_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql0 = string.Format(\"select 系μ编括?号?,院o系μ名? from JXXInfo\"); SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); DataTable dt0 = new DataTable(); adapter0.Fill(dt0); yx.DisplayMember = \"院o系μ名?\"; yx.ValueMember = \"院o系μ名?\"; yx.DataSource = dt0.DefaultView; conn.Close(); } private void zy_Click(object sender, EventArgs e) { string yxmc = yx.SelectedValue.ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string 名?='{0}')\", yxmc); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); zy.DisplayMember = \"SpecialtyName\"; zy.ValueMember = \"SpecialtyID\"; zy.DataSource = dt.DefaultView; conn.Close(); } private void StuClass_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select ClassID,ClassName from ClassInfo where sql = string.Format(\"select SpecialtyID,SpecialtyName from SpecialtyInfo where 系μ编括?号?=(select 系μ编括?号? from JXXInfo where 院o系μ 50 SpecialtyID=(select SpecialtyID from SpecialtyInfo where SpecialtyName='{0}')\", zy.SelectedValue.ToString()); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt1 = new DataTable(); adapter.Fill(dt1); StuClass.DisplayMember = \"ClassName\"; StuClass.DataSource = dt1.DefaultView; conn.Close(); } } } 课程管理 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsApplication1 { public partial class KCGL : Form { public KCGL() { InitializeComponent(); } private void kcglbutton1_Click(object sender, EventArgs e) { this.Close(); } private void KCGL_Load(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select CoursrID 课?程ì号?, CourseName as 课?程ì 51 名?,Semester as 学§年ê,ClassHour 学§时骸?from CourseInfo\"); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView2.DataSource = dt.DefaultView; string sql0 = string.Format(\"select CoursrID 课?程ì号?,CourseName as 课?程ì名?,TeachID as 老?师簗,Semester as 学§年ê,ClassHour 学§时骸?from CourseInfo\"); SqlCommand cmd0 = new SqlCommand(); cmd0.Connection = conn; SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); DataTable dt0 = new DataTable(); adapter0.Fill(dt0); dataGridView1.DataSource = dt0.DefaultView; } private void button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); SqlCommand cmd0 = new SqlCommand(); cmd0.Connection = conn; cmd0.CommandText = string.Format(\"select TeachID from TeacherInfo where TeachName='{0}'\", textBox4.Text); SqlDataReader re = cmd0.ExecuteReader(); re.Read(); if (re.HasRows) { string Tid = re[0].ToString(); conn.Close(); int xs = Convert.ToInt32(textBox3.Text); string textBox2.Text, xs, Tid); SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt.DefaultView; conn.Close(); sql = string.Format(\"insert into CourseInfo (CourseName,Semester,ClassHour,TeachID) values ('{0}','{1}','{2}','{3}')\", textBox1.Text, 52 UpdateKC(conn, dt); } if (MessageBox.Show(\"添 { button1.Text = \"继ì续?\"; textBox1.Text = \"\"; textBox2.Text = \"\"; textBox3.Text = \"\"; textBox4.Text = \"\"; } else { this.Close(); } } private void UpdateKC(SqlConnection conn, DataTable dt) { conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql0 = string.Format(\"select CourseName as 课?程ì名?,Semester as 学§年ê,ClassHour 学§时骸?from CourseInfo\"); SqlCommand cmd0 = new SqlCommand(); cmd0.Connection = conn; SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); adapter0.Fill(dt); dataGridView2.DataSource = dt.DefaultView; conn.Close(); } private void button3_Click(object sender, EventArgs e) { this.Close(); } private void button2_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); ?加ó成é功|!?!?!?是?否?继ì续???\", \"提 ?示?\", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 53 string id = dataGridView2.SelectedRows[0].Cells[0].Value.ToString(); string sql = string.Format(\"delete from CourseInfo where CoursrID={0}\",Convert.ToInt32(id)); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sql; if (cmd.ExecuteNonQuery() > 0) { label4.Text = \"删?除y数簓据Y成é功|!\"; button2.Enabled = false; string sql0 = string.Format(\"select CoursrID 课?程ì号?, CourseName as 课?程ì名?,Semester as 学§年ê,ClassHour 学§时骸?from CourseInfo\"); SqlCommand cmd0 = new SqlCommand(); cmd0.Connection = conn; DataTable dt = new DataTable(); SqlDataAdapter adapter0 = new SqlDataAdapter(sql0, conn); adapter0.Fill(dt); dataGridView2.DataSource = dt.DefaultView; conn.Close(); } else { MessageBox.Show(\"删?除y数簓据Y失骸?败悒?!?\"); } } private void dataGridView2_Click(object sender, EventArgs e) { label4.Text = \"\"; button2.Enabled = true; } } } 选课 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; 54 using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsApplication1 { public partial class xuanke : Form { public xuanke() { InitializeComponent(); } private void xuanke_Load(object sender, EventArgs e) { groupBox3.Text = \"\"; SqlConnection conn; SqlDataAdapter da; conn = new SqlConnection(); conn.ConnectionString = \"server=.;integrated security=true;database=学§生Θ?成é绩¨管ü理え?系μ统?;MultipleActiveResultSets=True \"; this.listBox1.Items.Clear(); DataTable dt = new DataTable(); if (conn.State == ConnectionState.Closed) { conn.Open(); } da da.Fill(dt); for (int iRows = 0; iRows < dt.Rows.Count; iRows++) { ListBox cbox = new ListBox(); cbox.Text = Convert.ToInt32(dt.Rows[iRows][0]) + \" \" + dt.Rows[iRows][1].ToString() + \" \" + dt.Rows[iRows][2].ToString() + \" \" + dt.Rows[iRows][3].ToString() + \" \" + Convert.ToInt32(dt.Rows[iRows][4]); ; checkedListBox2.Items.Add(cbox.Text); } } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < this.checkedListBox2.Items.Count; i++) { this.checkedListBox2.SetItemChecked(i, true); } } = new SqlDataAdapter(\"select CoursrID,CourseName,TeachID,Semester,ClassHour from CourseInfo\", conn); 55 private void button2_Click(object sender, EventArgs e) { for (int i = 0; i < this.checkedListBox2.Items.Count; i++) { if (checkedListBox2.GetItemChecked(i)) { this.checkedListBox2.SetItemChecked(i, false); } else { this.checkedListBox2.SetItemChecked(i, true); } } } private void button5_Click(object sender, EventArgs e) { for (int i = 0; i < this.checkedListBox2.Items.Count; i++) { this.checkedListBox2.SetItemChecked(i, false); } listBox1.Items.Clear(); } private void button4_Click(object sender, EventArgs e) { this.Close(); } private void checkedListBox2_DoubleClick(object sender, EventArgs e) { listBox1.Items.Add(checkedListBox2.SelectedItem); } private void button6_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = \"Data Source=(local);Initial Catalog=学§生Θ?成é绩¨管ü理え?系μ统?;Integrated Security=True\"; conn.Open(); string sql = string.Format(\"select CoursrID,CourseName,Semester from CourseInfo\"); SqlCommand cmd = new SqlCommand(); 56 cmd.Connection = conn; cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); dataGridView1.DataSource = dt.DefaultView; conn.Close(); } private void dataGridView1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); DataGridViewSelectedRowCollection rows = dataGridView1.SelectedRows; DataGridViewRow row = rows[0]; string[] mystr2 = new string[] { \"课?程ì号?:阰\" + row.Cells[0].Value, \"\", \"课?程ì名?:阰\" + row.Cells[1].Value, \"\", \"开a课?时骸?间?:阰\" + row.Cells[1].Value, \"\" }; for (int i = 0; i < mystr2.Length; i++) { listBox2.Items.Add(mystr2[i]); } int count = 0; groupBox2.Text = Form1.myuserid; count++; label2.Text = (count).ToString(); } private void button7_Click(object sender, EventArgs e) { this.Close(); } private void button8_Click(object sender, EventArgs e) { listBox2.Items.Clear(); } private void button9_Click(object sender, EventArgs e) { MessageBox.Show(\"选?课?成é功|\"); this.Close(); } } } 注:其余部分代码由于基本类似,不予给出。 57 6 软件测试 测试用例设计 用例编号 C001 测试对象 “教师登录”功能 用例目的 测试教师登录系统的功能是否正确实现 输入/动作 选择教师登录,不输入账号,输入密码,单击登录 选择教师登录,输入账号,不输入密码,单击登录 选择教师登录,输入错误账号,输入密码,单击登录 选择教师登录,输入账号,输入错误密码,单击登录 选择教师登录,输入账号,输入密码,单击登录 用例编号 C002 测试对象 “教师登录”子系统界面 用例目的 测试教师登录子系统界面的功能是否正确实现 输入/动作 观察界面是否正确显示教师姓名 观察界面是否正确显示教师工号 观察界面是否正确显示操作按钮 显示“课程查询”,“班级查询”,“成绩操作”,“导出成绩表”,“导出分析表”,“个人信息” 显示“课程查询”,“班级查询”,“成绩操作”,“导出成绩表”,“导出分析表”,“个人信息” 显示“工号:050201” 显示“工号:050201” 预期输出/结果 显示“姓名:卡卡” 实际结果 显示“姓名:卡卡” 进入教师登录子系统 进入教师登录子系统 提示“账号或密码错误” 提示“账号或密码错误” 提示“账号或密码错误” 提示“账号或密码错误” 提示“请输入密码” 提示“请输入密码” 预期输出/结果 提示“请输入账号” 实际结果 提示“请输入账号” 58 用例编号 C003 测试对象 “教师登录”子系统课程查询按钮功能 用例目的 测试教师登录子系统课程查询按钮功能是否正确实现 输入/动作 在“教师登录”子系统中选择“课程查询”按钮 预期输出/结果 显示“教师课程表”,其中包含教师教学课程的名称,所教班级,时间,地点及周次 实际结果 显示“教师课程表”,其中包含教师教学课程的名称,时间,地点,未包含所教班级及周次。 用例编号 C004 测试对象 “教师登录”子系统班级查询按钮功能 用例目的 测试教师登录子系统班级查询按钮功能是否正确实现 输入/动作 在“教师登录”子系统中选择“课程查询”按钮 在班级选择下拉菜单中选择“092014” 显示“092014”班级的某课的成绩表 未实现 预期输出/结果 显示班级按钮 实际结果 显示班级按钮 用例编号 C005 测试对象 “教师登录”子系统成绩操作按钮功能 用例目的 测试教师登录子系统成绩操作按钮功能是否正确实现 输入/动作 在“教师登录”子系统中选择“成绩操作”按钮 预期输出/结果 实际结果 显示“输入”,“查询”,显示“输入”,“查询”,“删除”,“导入”4个按钮 “删除”,“导入”4个按钮 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 选择“输入” 出现“班级选择”下拉列表 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 59 在表单中输入平时成绩,实验成绩,期中成绩及期末成绩后单击确定 选择“查询” 显示最终成绩 显示最终成绩 出现“班级选择”下拉列表 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 该学生成绩被删除 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 选择“删除” 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 出现“班级选择”下拉列表 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 选择一个学生成绩点选“删除” 选择“导入” 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 该学生成绩被删除 出现“班级选择”下拉列表 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 出现导入后的成绩表 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 选择“确定”,导入成绩 用例编号 C006 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 出现导入后的成绩表 测试对象 “教师登录”子系统导出成绩表按钮功能 用例目的 测试子系统导出成绩表按钮的功能是否正确实现 输入/动作 在“教师登录”子系统中选择“导出成绩表”按钮 预期输出/结果 出现“班级选择”下拉列表 实际结果 出现“班级选择”下拉列表 60 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 选择“确定”按钮 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 提示“导出路径”对话框 提示“导出路径”对话框 提示“导出成功”,查阅导出文件,确认正确导出 填写导出路径,单击“确定”提示“导出成功”,查阅导按钮 用例编号 C007 测试对象 “教师登录”子系统导出分析表按钮功能 出文件,确认正确导出 用例目的 测试子系统导出分析表按钮的功能是否正确实现 输入/动作 在“教师登录”子系统中选择“导出分析表”按钮 在班级选择下拉菜单中选择“092014” 在课程选择下拉列表中选择“软件工程” 选择“确定”按钮 预期输出/结果 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 实际结果 出现“班级选择”下拉列表 出现“课程选择”下拉列表 出现092014班软件工程专业成绩表 提示“导出路径”对话框 提示“导出路径”对话框 提示“导出成功”,查阅导出文件,确认正确导出 填写导出路径,单击“确定”提示“导出成功”,查阅导按钮 用例编号 C008 测试对象 “教师登录”子系统个人信息按钮功能 出文件,确认正确导出 用例目的 测试教师登录子系统个人信息按钮的功能是否正确实现 输入/动作 在“教师登录”子系统中选择“个人信息”按钮 预期输出/结果 显示个人信息 实际结果 显示个人信息 61 7总结 经过几个星期的上机实践学习,使我对软件工程有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现自己的好多不足之处:对以前所学过的知识理解得不够深刻,掌握得不够牢固,课后应多加练习。 回顾起此次软件工程实验,感慨颇多,从选择语言到设计思路,从理论到实践,在整整四个星期的日子里,我又学到了很多东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习编程语言,还是计算机方面其它的课程,都要重实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 62
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务