资源描述
学籍管理系统 第一组 王勉
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
管理信息系统课程大作业
题 目: 高校学籍管理系统
学生姓名: 王勉
指导教师: 王艳君
所在分院: 信息工程学院
专 业: 计算机信息管理
班 级: 0902
二O一 一年 十二 月
高校学籍管理系统
摘 要:当今社会中,计算机的使用已经深入到日常工作和生活的方方面面.Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作.然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件.我们都知道,对于学生的学籍管理是一个教育单位不可缺少的部分,它的内容对学校的管理者来说至关重要,所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机对学生学籍信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、存储量大、保密性好等。这些优点能够极大地提高学生管理的效率,也是学校科学化、正规化管理的重要途径.
关键词:学籍管理 系统软件
1 引 言
1。1 论文研究背景与意义
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好学生信息而设计的.
学籍管理是一个学校信息管理的重要组成部分,它的内容对于一个学校的学生学籍管理起着至关重要的作用。现今,许多的学校对学生学籍的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为不但浪费了许多人力和物力,而且还存在着人事资料的安全隐患。在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。基于这此问题,我认为有必要建立一个学籍管理系统,使学生的信息管理工作系统化,程序化,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生资料,并保证学生学籍系统的安全性.
1。2 本课题研究内容与目标
本系统选用C/S模式设计的方案,应用SQL Server 2005数据库管理系统,C#程序设计语言,Visual Studio.开发工具等开发出来的基于WINDOWS系列的学生学籍管理系统.该系统面向各部门和全体学生,实现对学生成绩情况、学籍情况等的计算机管理。系统支持学生查询自己的学籍信息和成绩信息,还可以修改自己的密码,而教师可以对学生的学籍信息和成绩信息进行添加、删除和修改等的操作。 学校的学生学籍信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力.因此,不难想象,正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱。同时,编写一套完善的学生学籍管理系统的任务就显得尤为重要。本系统是根据某学校的实际情况而设计的一套针对性和功能都比较强的学籍管理信息系统.
2 开发环境和相关技术介绍
本系统选用C/S模式设计的方案,应用SQL Server 2005数据库管理系统,C#程序设计语言,Visual Studio。开发工具等开发出来的基于WINDOWS系列的学生学籍管理系统。
2.1 SQL Server
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言—-SQL。
SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据.1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准.SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可.
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航.SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节.
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 7。0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 97 的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服务器等多种平台使用.
2.2 C#语言
C#是一种面向对象的编程语言,主要用于开发可以在.NET平台上运行的应用程序。C#是从C和C++派生出来的一种简单、现代、面向对象和类型安全的编程语言,其语言体系都构建在。NET框架上,并且能够与.NET框架完美结合。C#具有以下突出的特点:
语法简洁:不允许直接操作内存,去掉了指针操作。
彻底的面向对象设计:C#具有面向对象语言所应有的一切特性-—封装、继承和多态.
与Web紧密结合:C#支持绝大多数的Web标准,如HTML、XML、SOAP等.
强大的安全机制:可以消除软件开发中的常见错误(如语法错误),.NET提供的垃圾回收器能够帮助开发者有效地管理内存资源。
兼容性:因为C#遵循.NET的公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容
灵活的版本处理技术:因为C#语言本身内置了版本控制功能,使得开发人员可以更容易地开发和维护.
完善的错误、异常处理机制:C#提供了完善的错误和异常处理机制,使程序在交付应用时能够更加健壮。
2.3 开发环境—- Visual Basic 6。0
Visual Basic 6。0是一款由微软公司开发的包含协助开发环境的事件驱动编程语言.它具有齐全的控件,而且操作上也较为简单,足以胜任本次设计所需要的条件.
3 系统需求分析
伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息.经过详细的调研,并多次与学生档案管理的老师进行研讨后,我们发现开发一套计算机管理的高校学籍管理系统是十分必要的,对于原始的手工学籍管理有着效率低下,工作量大且繁琐枯燥,准确率低等严重的弊病,所以我们决定对此课题进行软件的编写.首先加深了对学生信息管理系统业务的深刻了解,其次在充分熟悉学生档案管理业务的同时,将整个学生档案管理的业务流程功能描述如下:
新生入校,首先报到并进行登记注册,然后到财务部门缴费。根据学生被录取的专业,持缴费单到所在系部报到注册。
到系或部注册后,根据选报专业分配到班级
进入正常大学生活,参加各种教学活动,学期期末要求每位同学参加各科的期末考试.
考试结束,由各系或部将每位学生的考试成绩及其他一些相关信息记录到每个同学的档案中。
通过调查,要求系统需要有以下功能:
⑴ 由于该系统一次性输入的数据量可能很大,所以要求支持从Excel导入数据;
⑵ 由于该系统的使用对象多,要求有较好的权限管理;
⑶ 原始数据修改简单方便,支持多条件修改;
⑷ 方便的数据查询,支持多条件查询;
⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;
3。1 可行性分析
由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂.因此,比较适合于采用数据库管理.在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在Windows XP操作系统环境下,使用Visual Studio中文版开发成功的 。 基于C#的高校学籍管理系统,他可以为各个高校的学生学籍管理工作带来详细的,安全的,兼容的,快捷的管理过程,本系统运用的是微软的,2000数据库此数据库具有界面友好逻辑清晰操作简单等特点这也是在编写此软件时选用他的原因 。
数据库的设计在需求分析阶段已完成了系统的数据分析,根据数据分析阶段建立的概念模型,把数据库的设计分为数据库逻辑设计和物理设计两个步骤.
3.2 数据库的逻辑设计
在完成数据的概念模型设计即E—R图后,即可进入数据库的逻辑设计阶段,数据库的逻辑设计即把得到的关系转化为特定的数据库管理系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。
① 学生信息表 ② 课程信息表 ③超级用户表
④成绩信息表 ⑤用户表
3.2 数据库的物理设计
在完成数据库的逻辑设计后,即可开始数据库的物理设计.基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本学生管理信息系统采用的Access2000数据库,并在其下创建5个数据表,结构分别如下:
学生信息表(student),共有6个字段,分别为:学号、姓名、性别、出生日期、家庭住址、备注等。
3.3数据分析——概念模型设计
需求分析阶段主要有两个方面的任务:分析用户的数据要求和分析用户的处理要求。通过以上分析,我们已经基本了解了用户对处理的要求,接下来需要做的工作时分析用户对数据的要求.
为了把用户的数据清晰明确地表达出来,首先建立一个概念性的数学模型,概念性数学模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模。最常用的表示概念性数据模型的方法是实体—联系方法.这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型.E—R图共有三种符号:实体、属性和联系。通常实体用矩形表示,属性用椭圆或圆角矩形表示,联系用菱形表示。联系又分为一对一、一队多和多对多三种类型。
3.4数据字典
1)数据元素
数据元素条目
数据元素名称:用户密码
别名:userpass
长度:20
描述:用户登陆系统的密码
数据元素条目
数据元素名称:学生编号
别名:Student ID
类型:数值型
长度:14
描述:学生的编号
数据元素条目
数据元素名称:教师编号
别名:Teacher ID
类型:数值型
长度:14
描述:教师的编号
2)数据流条目
数据流条目
数据流名称:学生登录
简述:学生查询个人信息
数据来源:studentmessage
数据流向:查询结果
数据流条目
数据流名称:查询结果
简述:从学生信息表中检索信息
数据来源:studentmessage
数据流向:查询结果
包含的数据结构:
数据流条目
数据流名称:按条件查找
简述:管理员按照专业和年级或学生编号查找的结果
数据来源:查询窗口
数据流向:admistratormessage
包含的数据结构:
数据流条目
数据流名称:管理员登陆
简述:学籍信息管理员对学籍系统进行管理
数据来源:users
数据流向:管理员表
包含的数据结构:
数据流条目
数据流名称:修改的信息
简述:输入与修改的信息
数据来源:studentmessage
数据流向:学生信息修改界面
包含的数据结构:
数据流条目
数据流名称:学生信息
简述:管理员对它进行维护
数据来源:administratormessage
数据流向:学生信息维护
数据流条目
数据流名称:添加学生
简述:新生信息入库添加
数据来源:studengmessage
数据流向:学生信息表
包含的数据结构:
3)处理过程描述
处理功能条目
名称:查询个人信息
输入数据:学生编号、姓名
输出数据:成绩、专业课程、其他个人信息等
处理逻辑:(1)精确查询
(2)对查询的信息在授权的情况下可修改
处理功能条目
名称:添加用户
输入数据:用户ID,用户密码,
输出数据:是否添加成功
处理逻辑:(1)用户ID是否正确
(2)用户密码是否包含非法字符
4)数据存储
数据存储条目
数据存储名称:学生信息表
说明:存储学生基本信息
结构:学生编号、学生姓名性别、所学专业、所学课程、学生成绩
个人学籍信息
关键字:学生编号
相关处理:查询、修改、添加、删除
数据存储条目
数据存储名称:管理员信息表
说明:存储管理员信息
结构:管理员编号、管理员姓名、管理员密码
关键字:管理员编号
5)外部实体条目
外部实体条目
名称:学生
说明:
输出数据流:
输入数据流 学生 查询信息
外部实体条目
名称:管理员
说明:
输出数据流:
输入数据流 管理员 学生信息
4 系统设计
4.1系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化.
在本系统中有二种权限:一种是用户权限,即学生。另一种是管理员权限,即教师.
学生管理系统需要完成的功能主要有:
学生可以完成的功能有 :
●学生信息的查询,包括查询学生的基本信息、学生成绩、就业、课程等。
●学生信息的修改,学生只能修改他本人的密码。
教师可以完成的功能有 :
● 学生管理信息的输入、查询、修改。
● 课程管理的输入、查询、修改。
● 学生成绩的输入、查询、修改.
● 用户管理的输入、查询、修改。
对上述各功能进行集中、分块、按照结构化程序设计的要素图
4.2 功能结构图
4.3 系统流程图
通过对学生从入学到毕业全过程的调查,明确学生学籍的整个业务流程,如下图所示。
5 数据库设计(本人负责)
数据库需求分析
● 超级用户表:包括数据项有用户名、密码.
● 用户信息:包括的数据项有:用户号、姓名、密码、身份。
● 学生信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、家庭地址、专业等.
● 成绩表:包括的数据项有:编号、课程编号、成绩等。
● 课程信息:包括的数据项有:课程编号、课程名称等.
学籍管理系统
用户信息
学生信息
课程信息
成绩信息
数据库
图5—1 学生学籍管理系统数据流程图
5.2 数据库概念结构设计
本系统的实体有:学生实体、用户实体、课程实体。各个实体具体的描述E-R图如图下所示。
学生
基本信息
班级
成绩
课程
图5-2 学生实体E—R图
用户
学生
教师
图5-3 用户实体E-R图
课程
课程名称
成绩
课程编号
图5-4 课程实体E-R图
现在需要将上面的数据库概念结构转化为SQL Server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
学生管理系统数据库中各个表格的设计结果如下面的几个表所示.每个表表示在数据库中的一个数据表。
5-5 学生信息表
表5-6 成绩表
表5-7 用户信息表
表5-8 课程信息表
5.3数据库逻辑结构设计
将数据库概念结构转化为SQL数据库系统支持的实际模型,也就是数据库的逻辑结构。由数据库中表在SQL中的实现如下:
学生信息表的创建语句:
Create Table t_NEW_XS(
XJH VARCHAR2(12) NOT NULL, 学号
XM VARCHAR2(10) NOT NULL, 姓名
CSRQ VARCHAR2(50) NOT NULL,出生日期
JG VARCHAR2(100) NOT NULL, 籍贯
JTZZ VARCHAR2(100) NOT NULL, 家庭住址
ZY VARCHAR2(50) NOT NULL, 专业
JC VARCHAR2(50) NOT NULL, 奖惩
);
成绩表的创建语句:
Create Table t_NEW_CJ(
XH VARCHAR2(12) NOT NULL 学号
KCH VARCHAR2(20) NOT NULL 课程号
KCBH VARCHAR2(10) NOT NULL 课程编号
CJ VARCHAR2(3) NOT NULL 成绩
其他表创建如上图;
6 详细设计
6。1.主界面
下图是学籍管理系统的主界面,最上面的菜单是系统的各个模块,菜单下面的大图表是此系统经常用到的一些功能,这样方便用户的使用,并且考虑到了色彩的搭配和图片的选择。
6。2.系统登陆界面:
此为了系统的安全性,根据用户的需求,设置了登录窗口,必须输入正确的用户名和密码才能进入系统,并且根据用户名选择权限,即用户能进行的工作。通过功能模块来限制功能,有一些模块是大家公用的,就是一些基本的查询,只能进行查询,没有修改和删除的权限,另外又分为超级用户,学生用户,教师用户。比如:要想进入学籍管理模块,用户名是,密码是bb, 此用户只有权对学籍管理进行访问。而超级用户,它能对此系统的任何一个模块进行查询、修改、删除。当你输入正确的用户名和密码,然后系统会根据用户所输入的用户名和密码,给用户所拥有的权限,点击“登录”进入该系统。
用户登陆窗体中放置了两个文本框(TextBox),用来输入用户名和用户密码。两个按钮(Button)用来确定或者取消登陆.2个标签(Label)用来标示窗体的信息.为窗体定义全局变量OK,用来判断登陆是否成功.
6。3.管理员管理界面
下面是管理员操作界面,其功能有对教师、学生用户的查询,添加,删除,更改四个功能;其中实现对这四个功能的成功操作均是用户帐号为有效值。当管理员需要对用户信息删除或修改时,只要单击目标信息就会将其信息填充到左边的这本框里,
然后选择删除或更改,使用起来方便.还有一个导出EXCEL功能,满足、方便用户传阅和打打印的需要。
6.4学生登录界面
学生在成功登录系统后,即可查询自己的相关信息,在主窗体中点击学生信息查询菜单下的学籍查询,即出现如下所示的图:
● 查询学籍信息
● 查询成绩信息
● 查询课程信息
● 查询就业信息
● 修改密码
以上是学生实现的功能.以下是教师的功能
6.5 教师登录界面(本人主要负责)
.教师登录界面后会出现如下图:
教师功能模块主要实现如下功能:
● 添加/删除/修改学籍信息(学生管理)
● 添加/删除/修改成绩信息(成绩管理)
● 添加/删除用户信息(用户管理)
● 添加/删除课程信息(课程管理)
首先,教师进入到学生管理界面,包括了对学生基本信息的查询,添加,修改,删除和EXCEL表的导出。
教师还可以进入成绩管理菜单,即可出现如下窗体:
教师还可以进入用户管理菜单,即可出现如下窗体:
教师还可以进入课程管理菜单,即可出现如下窗体:
以下是我主要负责的教师功能模块中的部分代码:
教师登录
namespace 第一组
{
public partial class Teacher : Form
{
public Teacher()
{
InitializeComponent();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
StuManage f = new StuManage();
f.Show();
this。Hide();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
ScoreManage g = new ScoreManage();
g.Show();
this。Hide();
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
StuUserManage y = new StuUserManage();
y.Show();
this。Hide();
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
ClassManage k = new ClassManage();
k.Show();
this。Hide();
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
jobMessage j = new jobMessage();
j.Show();
this。Hide();
}
private void Main_Load(object sender, EventArgs e)
{
}
private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
Application。Exit();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
学生信息
namespace 第一组
{
public partial class Student : Form
{
public Student()
{
InitializeComponent();
}
private void stunews_Load(object sender, EventArgs e)
{
}
private void tabPage1_Click(object sender, EventArgs e)
{
}
private void toolStripStatusLabel3_Click(object sender, EventArgs e
{
}
private void btnStuMessage_Click(object sender, EventArgs e)
{
SqlConnection conn = new
SqlConnection("server=.;database=first;Trusted_Connection=yes;”);
string sql = ”select * from studentMessage where 学号 like '%” + textBox1.Text + ”%’";
SqlCommand cmd = new SqlCommand(sql。ToString(), conn);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter dds = new SqlDataAdapter();
dds。SelectCommand = cmd;
dds.Fill(ds);
dataGridView1。DataSource = ds.Tables[0];
SqlDataReader sdr = cmd。ExecuteReader();
textBox1。Text = ”";
}
private void label7_Click(object sender, EventArgs e)
{
}
private void btnGraMesage_Click(object sender, EventArgs e)
{
SqlConnection conn = new
SqlConnection(”server=.;database=first;Trusted_Connection=yes;");
string sql = ”select * from scoreMessage where 学号 like '%" + textBox3。Text + ”%' ”;
SqlCommand cmd = new SqlCommand(sql。ToString(), conn);
conn。Open();
DataSet ds = new DataSet();
SqlDataAdapter dds = new SqlDataAdapter();
dds。SelectCommand = cmd;
dds.Fill(ds);
SqlDataReader sdr = cmd.ExecuteReader();
dataGridView2.DataSource = ds。Tables[0];
while (sdr。Read())
{
textBox9.Text = sdr[”课程名"].ToString();
textBox10。Text = sdr["课程编号"].ToString();
textBox11.Text = sdr["成绩"].ToString();
}
sdr。Close();
}
private void btnClaMessage_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=.;database=first;Trusted_Connection=yes;");
conn。Open();
SqlCommand cmd = new SqlCommand();
string sql = "select * from courseMessage where 课程名 like ’%” + textBox14.Text + ”%’";
cmd.CommandText = sql;
cmd。Connection = conn;
DataSet ds = new DataSet();
SqlDataAdapter dd = new SqlDataAdapter();
dd.SelectCommand = cmd;
dd。Fill(ds);
dataGridView3.DataSource = ds.Tables[0];
}
private void btnBack_Click(object sender, EventArgs e)
{
Login y = new Login();
y.Show();
this.Hide();
}
private void tabPage2_Click(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
/* txtClassName。Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index]。Cells[0].Value。ToString();
txtClassId.Text = dataGridView1.Rows[dataGridView1。CurrentRow.Index]。Cells[1].Value.ToString();
txtTeacher.Text = dataGridView1。Rows[dataGridView1.CurrentRow。Index]。Cells[2].Value。ToString();
txtCheckTime.Text = dataGridView1.Rows[dataGridView1。CurrentRow.Index]。Cells[3]。Value。ToString();
txtChectSide.Text = dataGridView1。Rows[dataGridView1.CurrentRow.Index].Cells[4]。Value.ToString();*/
}
private void toolStripStatusLabel1_Click(object sender, EventArgs e
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void tabPage3_Click(object sender, EventArgs e)
{
}
private void textBox15_TextChanged(object sender, EventArgs e)
{
}
private void label17_Click(object sender, EventArgs e)
{
}
private void label18_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new
SqlConnection(”server=.;database=first;Trusted_Conne
展开阅读全文