《C课程设计报告学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《C课程设计报告学生信息管理系统.doc(38页珍藏版)》请在三一办公上搜索。
1、摘要学生信息管理系统是学校对学生管理中的一个重要内容,随着时间的增加,学校师生的变化、学校人员的去留职位的变迁、学生的毕业与留校和他们之间的关系是如何变化得。如何处理好这些信息的变化,对学校实施高效的科学管理,对学校人员构成情况和发展趋势进行统计、规划、分析并制定切实可行的相关教育政策,是一项繁重而艰巨的任务。 本文是采用C#作为前台开发工具,SQL Server2005作为后台数据库平台的基于C/S的两层模式的管理系统。旨在实现对现有的学生信息管理系统工作中遇到的各种情况和大量数据在数据库存储的基础上,提供信息咨询,信息检索,信息存取等服务,在此论文中主要实现对存储在数据库中的数据表进行这些
2、简单的操作,为提高学生信息管理系统效率提供了行之有效的手段。 关键词:C#;数据库表;SQL Server2005;学生信息管理系统。目录目录1第一章开发环境和开发工具11.1C#语言简介11.2 开发背景11.3 开发环境2第二章 学生信息管理系统的分析与设计33.1 系统需求分析43.2 系统总体设计43.2.1 系统设计目标43.2.2 开发设计思想43.2.3 系统功能模块设计4第三章数据库设计53.1 引入背景63.2 数据库需求分析63.3 数据库概念结构设计73.4 数据库逻辑结构设计9第四章系统详细设计与实现124.1 公共类设计与实现124.2 数据访问层类设计与实现184.
3、3 业务逻辑层类设计与实现234.4 界面设计及实现274.4.1 登陆界面及代码274.4.2 主界面及代码28结 论34心得体会35参考文献36第一章 开发环境和开发工具1.1 C#语言简介C#是美国微软公司推出的Windows操作系统下的应用程序开发平台VisualStudio.NET(简称VS.NET)家族中的一员C#是对C+进行了很大改进的一种完全面向对象的可视化程序设计语言。由于C#采用了类似于Visual Basic 的较易使用的程序设计界面,从而成为了一种更加简单易学、功能强大的应用程序开发工具。C#是一种先进的、面向对象的语言,使用C#语言可以让开发人员快速的建立大范围的基于
4、MS网络平台的应用,并且提供大量的开发工具和服务,帮助开发人员开发机基于计算和通信的各种应用。由于C#是一种面向对象的开发语言,所以C#可以大范围地适用于高层商业应用和底层系统的开发。即使是通过简单的C#构造,也可以让各种组件方便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量现代管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事
5、管理的好坏对于不同的决策者和管理者来说都至关重要,在很大程度上影响着他们的经济效益和社会效益。因此,本文所研究的学生信息管理系统具有一定的使用价值和现实意义。 一直以来人们使用传统人工的方式进行人事管理,这种管理方式存在着诸多缺点,如:工作量大、效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。鉴于此,本文研究了一种基于关系型数据库的学生管理方案。利用SQL Server2005数据库管理系统灵活性和开发效率高的特点,采用面向对象的C#的方法,开发出学生信息管理系统。该系统具有手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、
6、保密性好、信息利用率高、成本低等。该系统能够极大地提高学校的人事管理的效率,优化教育人力、物力,降低学校的教育管理成本,为学校管理的信息化、正规化奠定了坚实的基础。1.3 开发环境本文所采用的开发环境主要是基于数据库系统的SQL Server 2005和基于面向对象程序设计的C#。利用SQL Server 2005创建企业中的部门信息表。学生信息表、教师信息表以及用C#连接数据库用的用户信息表。利用C#和数据库建立连接之后,利用C#中的控件按钮以及一些程序代码实现一些特定的功能,例如学生信息查询、教师信息编辑、教师课程查询等,极大地提高了学校人事管理的效率。第二章 学生信息管理系统的分析与设计
7、 随着计算机技术的飞速发展,计算机在现代社会管理中应用的普及,利用计算机实现学校人事管理势在必行。当前学生信息管理系统正在从C/S结构向B/S结构转移,但是由于安全性等方面的因素,C/S结构的管理信息系统仍然占据学生信息管理系统的主流。本文所论述的系统也是C/S结构的管理信息系统。学校人事管理是现代社会管理不可缺少的一部分,是适应现代化制度要求,推动学校师生人事管理走向科学化、规范化的必要条件。2.1 系统需求分析 随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,用计算机实现信息的管理正处于蓬勃发展的时期。随着高等教育的迅速发展,高校对学生信息的管理要求也越来越高。以往的高校
8、学生信息的管理靠人工,效率低并且难以修改给管理工作带来很多不便。因此,建立一个规范化,系统化,程序化的学生信息管理系统系统迫不及待。数据需求分析本系统的主要数据信息有学生基本信息和成绩信息。学生基本信息包括:学号、姓名、性别、年龄、系、专业。 功能需求分析本系统主要实现对学生信息进行管理,需要实现以下几个方面的管理功能:(1)注册学生信息(2)学号、姓名检索个人信息的合法性(4)根据学号、姓名删除个人信息(5)修改学生信息(6)插入一个学号不重复的学生信息(7)保存学生的信息2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的学生信息管理系统用于支持企业完成学校人事管理工作,有如下三个
9、方面的目标: 支持学校实现规范化的管理。支持学校高效率完成学生人事管理的日常业务,包括新生入校时人事档案的建立、学生上课记录、教师信息查询等。 支持学校进行学生人事管理及其相关方面的科学决策,如学校领导根据现有的学生数目决定招生人数等。2.2.2 开发设计思想 基于以上系统设计目标,本文在学生信息管理系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构,Clinet(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Serve
10、r(服务器端)则用于提供数据服务。(写出三层设计思想)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计 本系统分为四个模块:主界面模块、查询模块、数据维护模块、学生选课模块。得到如图3-1所示的系统功能模块图。教师 学生信息管理系统学生选课输入选课结果注册信息查询结果查询条件查询修改要求修改结果数据流程图 第三章 数据库设计3.1 引入背景学生信息管理系统是一个数据库应用系统,师生的所有信息都保存在数据库中。数据库结构设计是学生信息
11、管理系统数据库应用系统开发过程中一个非常重要的环节,设计的好坏将直接对所开发的学生信息管理系统的效率以及实现的效果产生影响。好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。数据库结构设计主要就是要设计好数据库中各个表的结构,包括信息保存在哪些表格中、各个表的结构如何以及各个表之间的关系。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。 3.2 数据库需求分析 数据库需求分析是数据库结构设计的第一个阶段,也是非常重要的一个阶段。在这个阶段主要工作是收集基本数据以及数据处理的流程,为以后进一步设计一打下基
12、础。需求分析主要解决两个问题::. 内容要求。调查应用系统用户所需要操作的数据,决定在数据库中存储什么数据。 处理要求。调查应用系统用户要求对数据库进行什么样的处理,理清数据库中各种数据之间的关系。在数据库需求分析后,得到一个数据字典文档,包括3方面内容。.数据项。包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系。.数据结构。若干个数据项的有意义的集合,包括名称、含义以及组成数据结构的数据项。.数据流。指数据中数据的处理过程,包括输入、处理和输出。本系统数据项和数据结构设计如下:.学生基本情况。包括的数据项有学生号(账号)、学生姓名、密码、课程、性别。课程信息。包括的数据项有
13、课程号、课程名称、上课时间、每周节数、教课老师、课程的执行时间。 选课信息。包括学生号、课程号、分数、代号。 用户登录信息。包括用户名、密码、用户职务。3.3 数据库概念结构设计 数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。用E-R图是描述数据实体关系的一种直观描述工具,所以本系统采用了E-R图的方法进行数据库概念结构设计。图2-1学生为实体E-R图 学 生专业名姓 名年 龄密 码学 号性 别图2-2课程为实体E-R图 课程名额上课时间年 龄课程名课程号节数教师名 图2-4选课为实体E-R图选课成绩课程号学 名 2
14、-5教务员为实体 E-R图 用户口 令用户名职 务图2-4为实体之间关系E-R图 学生对应选课对应课程1n Nn1用 户对应113.4 数据库逻辑结构设计 概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为BP数据库系统所支持的实际数据模型。 学生信息管理系统数据库中各个表格的设计结果如下面的四个表所示。每个表表示数据库中的一个表。 学生设计及情况表: 课程设计及情况表: 选课设计及情况表: 用户设计及情况表: 第四章 系统详细设计与实现4 .1 公共类设计与实现类 Constants 主要用于教师模块的数据库实现,主要代码如
15、下:using System;using System.Collections.Generic;using System.Text;namespace SchoolMIS.DataAccess.Teacher.SQLServer class Constants / / 数据库连接字符串 / public static readonly string ConnString = ata Source=FREESKYC-333AEBSQLEXPRESS;Initial Catalog=student;Integrated Security=True; / / 教师登陆 / public static
16、 readonly string TeacherLogin = SELECT COUNT(*) FROM users WHERE UserName = teaName AND UserPassword = teaPassword AND Usertype = 教师 ; / / 修改密码 / public static readonly string ChangePassword = UPDATE users SET UserPassword = teaPassword WHERE UserName = teaName; / / 添加课程信息 / public static readonly s
17、tring AddCourse = INSERT INTO course ( courseName,courseTime,courseStartTime, courseEndTime,courseCredit,courseTeacher, courseDesc,courseAddress ) VALUES ( courseName,courseTime,courseStartTime, courseEndtime,courseCredit,courseTeacher, courseDesc,courseAddress ); / / 获取指定教师的所有的课程信息 / public static
18、readonly string GetAllCourseByTeaName = SELECT courseID AS 编号, courseName AS 名称, courseTime AS 上课时间, courseAddress AS 上课地点, courseStartTime AS 开课时间, courseEndTime AS 结课时间, courseCredit AS 学分, courseDesc AS 其他信息 FROM course WHERE courseTeacher = teaName; / / 删除指定标号的课程信息 / public static readonly strin
19、g DeleteCourseByCourseID = DELETE FROM course WHERE courseID = courseID; / / 删除指定课程编号的学生选课信息 / public static readonly string DeleteStuCourseByCourseID = DELETE FROM stuCourse WHERE courseID = courseID; / / 依据课程编号获取所有选课学生的学生信息 / public static readonly string GetStuCourseByCourseID = SELECT stuCourse.
20、scID AS 选课编号, course.courseName AS 课程名称, student.stuName AS 学生姓名, stuCourse.stuID AS 学生学号, stuCourse.scScore AS 学生成绩 FROM course,stuCourse,student WHERE course.courseID = stuCourse.courseID AND stuCourse.stuID = student.stuID AND stuCourse.courseID = courseID; / / 给指定的学生选课记录评分 / public static readon
21、ly string UpdateScore = UPDATE stuCourse SET scScore = score WHERE scID = scID; 类 Constants 主要用于学生模块的数据库实现,主要代码如下:using System;using System.Collections.Generic;using System.Text;namespace SchoolMIS.DataAccess.Student.SQLServer class Constants / / 数据库连接字符串 / public static readonly string ConnString =
22、 ata Source=FREESKYC-333AEBSQLEXPRESS;Initial Catalog=student;Integrated Security=True; / / 验证学生登陆 / public static readonly string StuLogin = select stuName from student where stuID = stuID and stuPassword = stuPassword; / / 修改学生信息 / public static readonly string StuUpdateInfo = UPDATE student SET s
23、tuPassword=stuPassword, stuName=stuName, stuEnrollmentDate=stuEnrollmentDate, stuGraduatedDate=stuGraduatedDate, stuMajor=stuMajor, stuSex=stuSex, stuBirthday=stuBirthday, stuHome=stuHome, stuRace=stuRace, stuDesc=stuDesc, stuParty=stuParty, stuPhone=stuPhone WHERE stuID=stuID; / / 添加学生信息 / public s
24、tatic 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,stuR
25、ace,stuDesc,stuID,stuParty,stuPhone); / / 依据学生学号获取学生信息 / public static readonly string GetStuInfoByStuID = SELECT * FROM student WHERE stuID = stuID; / / 获取所有的课程信息 / public static readonly string GetAllCourse = SELECT courseID AS 编号, courseName AS 名称, courseTime AS 上课时间, courseAddress AS 上课地点, cours
26、eStartTime AS 开课时间, courseEndTime AS 结课时间, courseCredit AS 学分, courseTeacher AS 教师, courseDesc AS 其他信息 FROM course; / / 获取已经选择的课程信息 / public static readonly string GetSelectedCourse = SELECT stuCourse.scID AS 选课编号, courseName AS 名称, courseTime AS 上课时间, courseAddress AS 上课地点, courseStartTime AS 开课时间,
27、 courseEndTime AS 结课时间, courseCredit AS 学分, courseTeacher AS 教师, courseDesc AS 其他信息 FROM course,stuCourse WHERE stuCourse.stuID = stuNum AND course.courseID = stuCourse.courseID; / / 四六级报考历史 / public static readonly string GetCetHistory = SELECT cetID AS 编号, cetClass AS 级别, stuCardID AS 身份证号码, cetTe
28、stDate AS 考试时间, cetTestPlace AS 考试地点, cetTestScore AS 分数 FROM cet WHERE stuID = stuID; / / 计算机等级考试报考历史 / public static readonly string GetComputerHistory = SELECT comID AS 编号, comType AS 级别, stuCardID AS 身份证号码, comTestDate AS 考试时间, comTestPlace AS 考试地点, comScore AS 分数 FROM computer WHERE stuID = stu
29、ID; / / 添加学生选课信息 / public static readonly string AddSelectedCourse = INSERT INTO stuCourse(stuID,courseID) VALUES (stuNum,courseID); / / 删除学生选课信息 / public static readonly string DeleteSelectedCourse = DELETE FROM stuCourse where scID = scID; / / 判断学生是否已经选择该课程 / public static readonly string IsSelect
30、edCourse = SELECT COUNT(scID) FROM stuCourse WHERE stuID = stuNum and courseID = courseID; / / 四六级报考 / public static readonly string AddCetTest = INSERT INTO cet (stuID,cetClass,stuCardID) VALUES (stuID,cetClass,stuCardID); / / 计算机等级考试报考 / public static readonly string AddComTest = INSERT INTO compu
31、ter (stuID,comType,stuCardID) VALUES (stuID,comType,stuCardID); 4.2 数据访问层类设计与实现代码如下:using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace SchoolMIS.DataAccess.Student.SQLServer public class CourseDB / / 获取所有的课程信息 / / 所有的课程信息 public Da
32、taSet GetAllCourse() /建立数据库连接对象 SqlConnection conn = new SqlConnection(Constants.ConnString); /建立数据库命令对象 SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = Constants.GetAllCourse; cmd.CommandType = CommandType.Text; SqlDataAdapter dataAdapter = new SqlDataAdapter(); dataAdapter.SelectCommand = cmd; DataSet allCourse = new DataSet(); try dataAdapter.Fill(allCourse, course); return allCourse; catch (SqlException ex) return null; finally /确保数据库连接被关闭 if (conn.State = ConnectionState.Open) conn.Close();