C#课程设计学生学籍管理系统.docx

上传人:b****1 文档编号:22996637 上传时间:2023-04-29 格式:DOCX 页数:31 大小:1.25MB
下载 相关 举报
C#课程设计学生学籍管理系统.docx_第1页
第1页 / 共31页
C#课程设计学生学籍管理系统.docx_第2页
第2页 / 共31页
C#课程设计学生学籍管理系统.docx_第3页
第3页 / 共31页
C#课程设计学生学籍管理系统.docx_第4页
第4页 / 共31页
C#课程设计学生学籍管理系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C#课程设计学生学籍管理系统.docx

《C#课程设计学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C#课程设计学生学籍管理系统.docx(31页珍藏版)》请在冰豆网上搜索。

C#课程设计学生学籍管理系统.docx

C#课程设计学生学籍管理系统

C#课程设计学生学籍管理系统

 

郑州科技学院

C#课程设计

 

设计(论文)题目:

学生学籍管理系统

所在院:

信息工程学院

专业班级:

10计算机科学与技术2班

学生姓名:

李向杰

学号:

201015054

指导教师:

王玉萍

2013年6月5日

摘要

学生学籍管理是一个学校不可或缺的一部分。

以往在这方面都是采用人工的方式管理,这种工作方式不仅存在着工作量大、效率低的特点,而且时间一长产生大量的文件,这对于查找、更新和维护带来不少的困难,甚至出现档案丢失现象。

因此,设计了次套学生学籍管理系统。

本系统分为系统管理、专业设置、班级信息管理、学生信息管理、课程信息管理、成绩信息管理六大模块,系统管理包含角色管理、用户管理、退出系统,其他几个模块均包含添加、浏览、修改、删除等功能。

系统中包含不同角色,对每个角色有不同的权限设置,学生仅仅能进行各模块中的浏览功能,进而查看自己的信息,而管理员拥有各模块所有功能的使用权限,能进行添加、修改、、删除所有操作。

 

 

第一部分引言……………………………………1

第二部分系统需求分析……………………………1

2.1目标系统概论…………………………………………1

2.2性能需求描述…………………………………………1

2.3界面设计描述…………………………………………1

第三部分系统总体设计………………………………2

3.1系统概论………………………………………………2

3.2系统预览………………………………………………3

3.3系统设计………………………………………………4

3.3.1系统结构设计………………………………………4

3.3.2系统功能模块划分…………………………………5

3.4数据库设计……………………………………………12

3.4.1数据库需求分析……………………………………12

3.4.2数据库概念结构设计………………………………13

3.4.3数据库逻辑结构设计………………………………16

3.4.4设置表之间的关系…………………………………19

第四部分部分功能实现………………………………20

4.1系统管理………………………………………………20

4.2专业信息管理…………………………………………22

4.3课程信息管理…………………………………………27

第五部分致谢…………………………………………32

参考文献

 

一、引言

学生学籍管理是教务管理中十分重要的部分。

传统手工的学籍管理方式存在着许多缺点,如:

效率低、保密性差另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难,已经不能适应现在教务管理操作简便、查找快捷的要求。

作为计算机应用的一部分,使用进算计对学生信息档案进行管理,具有手工管理所无法比拟的优点。

既提高了教务工作者的工作效率,把他们从繁重的劳动中解脱出来,有提高了工作质量。

例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些有点能够极大地提高学生档案管理的效率也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发样样一套管理软件成为很有必要的事情。

二、系统需求分析

2.1目标系统描述

本系统只用于学生学籍信息的管理,主要用户是学生和管理员,学生仅仅能浏览各项模块中自己的信息,无法进行其他操作,管理员能进行任一操作。

2.2性能需求描述

软件的开发要基于人性化,要具备易于操作,于理解等特点,同时也要保障软件运行的安全性能。

为达到为了达到这一目标,该软件必须具备一定的实用性、安全性、易于维性。

2.4界面设计描述

界面是软件与用户交流的唯一平台,美观、简洁、按钮操作方便是用户最基本的要求。

本软件本着实用、简洁、方便的原则设计界面,并做到美观,登陆界面如

三、系统总体设计

3.1系统概论

学生学籍管理是目前院校学生管理职能部门的一个重要环节,并且该环节的顺利实施有助于推动学校的信息化建设。

目前,院校的学生信息管理工作已经不再局限于对学生基本信息数据的维护,而是越来越多地参与到与其他部门相协调的互动工作中。

本系统提供了一套学生综合信息管理平台,能够使系统管理人员对院校的专业进行分类管理,进而确定各个专业中所包含的班级信息,从而在已有班级信息的基础上对学生信息进行集中管理。

本系统具有以下特点:

本系统各项功能的操作都比较直观、简单,因此用户可以很轻松地胜任信息的管理与维护。

数据库采用SQLserver2005作为本系统的数据库平台,从而降低了程序对硬件以及操作系统版本的要求。

通过数据表之间的关系解决了数据之间的依赖关系以及数据完整性问题。

在窗体的设计方案中采用了父窗体、子窗体这一比较流行的窗体管理模式。

3.2系统预览

下图所示为用户登录系统以后应用程序的主界面,通过该窗体中所提供的主菜单,用户可以分别对专业信息、班级信息、学生信息、课程信息、成绩信息等功能的管理,并且在整个系统中添加不同的角色。

3.3系统设计

本系统中采用前台应用程序结合后台SQL数据库的开发模式,由于采用了当前较为流行的C#作为开发语言,程序代码及结构都得到了优化,同时又能提高程序的运行效率。

本系统在VisualStudio.NET2008环境中结合SQLserver2005进行开发,该环境提供了大量可供选择的数据控件,开发人员可以很方便地建立与数据库的连接,并在此基础之上,利用各种常用数据组件对数据库进行操作。

3.3.1系统结构设计

在本系统中,需要解决的核心技术问题为如何通过最合理的方式对数据进行存取查询操作,本系统中队数据存取的操作流程图下图所示:

数据存取流程图

一般情况下,SqlCommand控件可用于执行无返回记录的SQL语句,如对班级信息的添加、修改、删除等操作,也可以用于执行含有返回记录的SQL语句,如对成绩信息的查询统计等操作。

3.3.2系统功能模块划分

根据本系统的模块划分及操作流程,分别从系统管理、专业信息管理、班级信息管理、学生信息管理、课程信息管理及成绩信息管理等主要功能进行描述。

系统管理模块如图所示:

专业管理模块如图所示:

 

班级信息管理模块如图所示:

 

学生信息管理模块如下图所示:

 

课程信息管理模块如下图所示:

 

成绩信息管理如下图所示:

 

3.4数据库设计

在设计数据库结构时,应该尽可能低满足用户所提出的各种要求,同时又要避免产生冗余数据。

3.4,1数据库需求分析

由于在本系统中需要采集大量信息,包括学生信息、班级信息等信息,如果不能合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么在后期进行数据的整理及汇总时,就会增加开发人员的编程难度,,并造成效率的下降,根据收集来的信息,归纳出以下规律。

●一个专业包含多个班级。

●一个班级对应一个入学年份及年制。

●一个班级可以包含多个学生。

●每一位学生拥有唯一的学号。

●一个班级对应连续的两个学期。

●一个班级在一个学期可以开设多门课程。

●每一门课程需要记录每一位同学的成绩。

●一个角色对应多个用户。

根据上述数据间的对应及依赖关系,可以确定出数据库中应该包含的数据表信息如下。

●专业信息:

包含所开设的专业的名称及描述。

●班级信息:

包含班级名称、所属专业、入校时间、学制及班主任信息。

●学生信息:

包含学生学号、姓名、性别及所属班级等基础信息。

●课程信息:

包含课程名称、所属班级等信息。

●成绩信息:

包含学生学号、课程及学期和成绩等信息。

●用户信息:

包含用户名称、密码及角色信息。

●角色信息:

包含角色名称及所属权限。

3.4.2数据库概念结构设计

根据数据库需求分析得到的结果,可以确定并概括出程序中所包含的实体及实体间的关系,为后续的数据库逻辑结构设计提供指导。

下面通过直观的E—R实体关系图对实体进行描述。

专业信息实体如下图所示:

 

 

班级信息实体如下图:

 

 

 

学生信息实体如下图所示:

 

课程信息实体如图所示:

 

 

 

成绩信息实体图如下图所示:

 

 

用户信息实体如下图所示:

 

登录密码

 

3.4.3数据库逻辑结构设计

数据库逻辑结构的设计主要是用于为最终确定出的数据库中所需的各种信息及没一张表中所包含的字段,本系统中所包含的各项信息表名称描述如下所示。

表一学籍管理系统数据库结构

表名称

表信息描述

tbClassInfo

班级信息

tbCourseInfo

课程信息

tbScoreInfo

成绩信息

tbSpecialityInfo

专业信息

tbStudentInfo

学生信息

tbUserInfo

用户信息

tbRoles

角色信息

 

 

下面将分别对部分表进行介绍。

表二所示为班级信息表tbClassInfo.

下表三位成绩信息表tbScoreInfo,包含了与学生课程、成绩及学期相关的信息。

 

下表四位课程信息表,包含了班级、学期、课程有关的信息。

 

下表五所示为专业信息表tbSpecilityInfo,用于保存学院开设的所有专业。

 

下表六为用户信息表tbUserInfo,用于保存登录用户的信息。

3.4.4设置表之间的依赖关系

一般情况下,数据库中所包含的表都不是独立存在的,而是表与表之间存在一定的依赖关系,成为关系,如学生信息表中的“班级”字段来源于班级信息中的班级等。

如果数据库中的信息不能满足正常的依赖关系,就会破坏数据库的完整性、一致性。

根据本系统的实际情况,接下来将会介绍如何在SQL中设置数据库之间的关系。

首先,必须根据E—R图分析出那些表之间的字段存在依赖关系,分析结果如下。

●班级信息表中的专业信息来源于专业信息表。

●学生信息表中的班级来源于班级信息表。

●学生成绩中的学号来源于学生信息表。

●课程信息中的班级来源于班级信息表。

●用户信息表中的角色来源于角色信息表。

下图为设置好的表与之间的关系。

四、部分功能实现

下面介绍本系统的部分功能实现。

4.1系统管理

系统管理中包括添加用户角色和添加用户两项功能。

添加角色

添加用户角色的作用是将不同权限的用户进行分组,这样不同的用户使用不同的功能,对系统的控制有个总体的控制。

【添加角色信息】界面如下图所示。

【添加】按钮的代码编写如下

publicpartialclassfrmAddRole:

Form

{

publicfrmAddRole()

{

InitializeComponent();

}

//添加角色

privatevoidbtAdd_Click(objectsender,EventArgse)

{

if(tbRoleName.Text.Trim()!

="")

{

SqlConnectionconn=newSqlConnection(frmMain.sqlstr);

conn.Open();

stringsql="select*fromtbRoleswherefiledRoleName='"+tbRoleName.Text.Trim()+"'";

SqlCommandcmd=newSqlCommand(sql,conn);

if(cmd.ExecuteNonQuery()>0)

{

MessageBox.Show("已经存在的角色名称!

","提示");

}

else

{

sql="insertintotbRoles(filedRoleName,filedSystemManage,filedSpeciManage,filedClassManage,filedCourseManage,filedScoreManage,filedStudentMange)values('"

+tbRoleName.Text.Trim()+"',"+filedSystemManage.Checked+","+filedSpeciManage.Checked+","+filedClassManage.Checked+","+filedCourseManage.Checked+

","+filedScoreManage.Checked+","+filedStudentMange.Checked+")";

cmd.CommandText=sql;

cmd.ExecuteNonQuery();

MessageBox.Show("添加角色成功!

");

}

conn.Close();

}

else

{

MessageBox.Show("角色名称不能为空!

","提示");

}

}

privatevoidfrmAddRole_Load(objectsender,EventArgse)

{

}

}

}

4.2专业信息管理

专业信息管理包括专业信息的浏览、删除、添加、修改等功能,

专业信息浏览

下图为浏览专业信息的功能实现窗体。

publicpartialclassfrmBrowseSpecialty:

Form

{

//定义DataSet数据集保存查询结果集

privateDataSetds;

publicfrmBrowseSpecialty()

{

InitializeComponent();

}

///

///窗体初始化事件,在此加入对dgv的绑定

///

///

///

privatevoidfrmBrowseSpecialty_Load(objectsender,EventArgse)

{

//实例化一个OledbConnection对象

SqlConnectionconn=newSqlConnection(frmMain.sqlstr);

conn.Open();

stringqueryString="selectfiledSpecialityIDas编号,filedSpecialityNameas专业名称,filedRemarkas专业描述fromtbSpecialityInfo";

//实例化一个数据适配器对象

SqlDataAdapterdap=newSqlDataAdapter(queryString,conn);

ds=newDataSet();

dap.Fill(ds,"tbSpecialityInfo");

dgvQueryResult.DataSource=ds.Tables["tbSpecialityInfo"].DefaultView;

//一下代码控制各列的宽度

dgvQueryResult.Columns["编号"].Width=100;

dgvQueryResult.Columns["专业名称"].Width=100;

dgvQueryResult.Columns["专业描述"].Width=(dgvQueryResult.Width-dgvQueryResult.Columns["专业名称"].Width-dgvQueryResult.Columns["编号"].Width);

//关闭数据连接

conn.Close();

}

///

///修改按钮事件

///

///

///

privatevoidbtUpdate_Click(objectsender,EventArgse)

{

DataGridViewRowdr;

if(this.dgvQueryResult.CurrentRow!

=null)

{

dr=this.dgvQueryResult.CurrentRow;

stringid=dr.Cells["编号"].Value.ToString();

stringname=dr.Cells["专业名称"].Value.ToString();

stringremark=dr.Cells["专业描述"].Value.ToString();

//打开修改专业信息窗体

frmUpdateSpecialtyfrmUpdate=newfrmUpdateSpecialty(id,name,remark);

frmUpdate.MdiParent=this.MdiParent;

frmUpdate.Show();

}

}

privatevoidbtDel_Click(objectsender,EventArgse)

{

DataGridViewRowdr;

SqlConnectionconn=newSqlConnection(frmMain.sqlstr);

conn.Open();

SqlCommandcmd;

if(this.dgvQueryResult.CurrentRow!

=null)

{

dr=this.dgvQueryResult.CurrentRow;

stringsql="selectfiledSpecialityNamefromtbSpecialityInfowherefiledSpecialityID="+dr.Cells["编号"].Value.ToString()+

"andfiledSpecialityIDnotin(selectdistincttbSpecialityInfo.filedSpecialityIDfromtbClassInfoinnerjointbSpecialityInfo"+

"ontbClassInfo.filedSpecialityName=tbSpecialityInfo.filedSpecialityName)";

cmd=newSqlCommand(sql,conn);

SqlDataReaderdreader=cmd.ExecuteReader();

if(!

dreader.Read())

{

MessageBox.Show("删除专业:

"+dr.Cells["专业名称"].Value.ToString()+"失败,请先删除与此相关的专业信息!

","提示");

dreader.Close();

}

else

{

dreader.Close();

sql="deletefromtbSpecialityInfowherefiledSpecialityNamenotin(selectdistinctfiledSpecialityNamefromtbClassInfo)and"+

"filedSpecialityID="+dr.Cells["编号"].Value.ToString();

cmd.CommandText=sql;

cmd.ExecuteNonQuery();

MessageBox.Show("删除专业:

"+dr.Cells["专业名称"].Value.ToString()+"成功!

","提示");

}

}

conn.Close();

}}

在浏览专业信息模块中包含了专业的修改和删除功能。

下图所示为修改专业信息的窗体图:

 

4.3课程信息管理

课程信息管理模块包括课程信息的添加、浏览、修改及删除等功能。

下图为

课程信息浏览窗体同时包括了修改课程和删除课程的按钮,所以浏览专业信息的的代码同时包含了修改和删除课程功能。

【课程信息浏览】代码如下:

publicpartialclassfrmBrowseCourse:

Form

{

publicfrmBrowseCourse()

{

InitializeComponent();

}

privatevoidfrmBrowseCourse_Load(objectsender,EventArgse)

{

//读取信息到treeview

SqlConnectionconn1=newSqlConnection(frmMain.sqlstr);

SqlConnectionconn2=newSqlConnection(frmMain.sqlstr);

SqlConnectionconn3=newSqlConnection(frmMain.sqlstr);

SqlCommandcmd1=newSqlCommand("",conn1);

SqlCommandcmd2=newSqlCommand("",conn2);

SqlCommandcmd3=newSqlCommand("",conn3);

SqlDataReaderdr1,dr2,dr3;

stringsql="selectfiledSpecialityNamefromtbSpecialityInfo";

cmd1.CommandText=sql;

conn1.Open();

dr1=cmd1.ExecuteReader();

while(dr1.Read())

{

TreeNodenewNode=newTreeNode();

newNode.Text=dr1.GetString(0).ToString();

this.tvInfo.Nodes.Add(newNode);

conn2.Open();

sql="selectfiledClassID,filedClassNamefromtbClassInfowherefiledSpecialityName='"+newNode.Text.Trim()+"'orderbyfiledClassNamedesc";

cmd2.CommandText=sql;

dr2=cmd2.ExecuteReader();

while(dr2.Read())

{

TreeNodenewNode1=newTreeNode();

newNode1.Text=dr2.GetString

(1).ToString();

newNode.Nodes.Add(newNode1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1