ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.25MB ,
资源ID:22996637      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22996637.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#课程设计学生学籍管理系统.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、C#课程设计学生学籍管理系统C#课程设计学生学籍管理系统郑州科技学院C#课程设计 设计(论文)题目: 学生学籍管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班学 生 姓 名: 李向杰 学 号: 201015054 指 导 教 师: 王玉萍 2013年6月5日 摘 要 学生学籍管理是一个学校不可或缺的一部分。以往在这方面都是采用人工的方式管理,这种工作方式不仅存在着工作量大、效率低的特点,而且时间一长产生大量的文件,这对于查找、更新和维护带来不少的困难,甚至出现档案丢失现象。因此,设计了次套学生学籍管理系统。本系统分为系统管理、专业设置、班级信息管理、学生信息管理

2、、课程信息管理、成绩信息管理六大模块,系统管理包含角色管理、用户管理、退出系统,其他几个模块均包含添加、浏览、修改、删除等功能。系统中包含不同角色,对每个角色有不同的权限设置,学生仅仅能进行各模块中的浏览功能,进而查看自己的信息,而管理员拥有各模块所有功能的使用权限,能进行添加、修改、删除所有操作。 第一部分 引言1第二部分 系统需求分析12.1目标系统概论12.2性能需求描述12.3界面设计描述1第三部分 系统总体设计23.1系统概论23.2系统预览33.3系统设计43.3.1系统结构设计43.3.2系统功能模块划分53.4 数据库设计123.4.1数据库需求分析123.4.2数据库概念结构

3、设计133.4.3数据库逻辑结构设计163.4.4设置表之间的关系19第四部分 部分功能实现204.1系统管理204.2专业信息管理224.3课程信息管理27第五部分 致谢32参考文献 一、引言 学生学籍管理是教务管理中十分重要的部分。传统手工的学籍管理方式存在着许多缺点,如:效率低、保密性差另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难,已经不能适应现在教务管理操作简便、查找快捷的要求。作为计算机应用的一部分,使用进算计对学生信息档案进行管理,具有手工管理所无法比拟的优点。既提高了教务工作者的工作效率,把他们从繁重的劳动中解脱出来,有提高了工作质量。例如:检索迅

4、速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些有点能够极大地提高学生档案管理的效率也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发样样一套管理软件成为很有必要的事情。二、系统需求分析2.1目标系统描述 本系统只用于学生学籍信息的管理,主要用户是学生和管理员,学生仅仅能浏览各项模块中自己的信息,无法进行其他操作,管理员能进行任一操作。2.2性能需求描述 软件的开发要基于人性化,要具备易于操作,于理解等特点,同时也要保障软件运行的安全性能。为达到为了达到这一目标,该软件必须具备一定的实用性、安全性、易于维性。2.4界面设计描述 界面是软件与用户交流的唯一平台,美观

5、、简洁、按钮操作方便是用户最基本的要求。本软件本着实用、简洁、方便的原则设计界面,并做到美观,登陆界面如三、系统总体设计3.1系统概论 学生学籍管理是目前院校学生管理职能部门的一个重要环节,并且该环节的顺利实施有助于推动学校的信息化建设。目前,院校的学生信息管理工作已经不再局限于对学生基本信息数据的维护,而是越来越多地参与到与其他部门相协调的互动工作中。本系统提供了一套学生综合信息管理平台,能够使系统管理人员对院校的专业进行分类管理,进而确定各个专业中所包含的班级信息,从而在已有班级信息的基础上对学生信息进行集中管理。本系统具有以下特点: 本系统各项功能的操作都比较直观、简单,因此用户可以很轻

6、松地胜任信息的管理与维护。数据库采用SQL server2005作为本系统的数据库平台,从而降低了程序对硬件以及操作系统版本的要求。通过数据表之间的关系解决了数据之间的依赖关系以及数据完整性问题。 在窗体的设计方案中采用了父窗体、子窗体这一比较流行的窗体管理模式。3.2系统预览 下图所示为用户登录系统以后应用程序的主界面,通过该窗体中所提供的主菜单,用户可以分别对专业信息、班级信息、学生信息、课程信息、成绩信息等功能的管理,并且在整个系统中添加不同的角色。3.3系统设计本系统中采用前台应用程序结合后台SQL数据库的开发模式,由于采用了当前较为流行的C#作为开发语言,程序代码及结构都得到了优化,

7、同时又能提高程序的运行效率。本系统在Visual Studio.NET2008环境中结合SQL server2005进行开发,该环境提供了大量可供选择的数据控件,开发人员可以很方便地建立与数据库的连接,并在此基础之上,利用各种常用数据组件对数据库进行操作。3.3.1系统结构设计 在本系统中,需要解决的核心技术问题为如何通过最合理的方式对数据进行存取查询操作,本系统中队数据存取的操作流程图下图所示: 数据存取流程图 一般情况下,SqlCommand控件可用于执行无返回记录的SQL语句,如对班级信息的添加、修改、删除等操作,也可以用于执行含有返回记录的SQL语句,如对成绩信息的查询统计等操作。 3

8、.3.2系统功能模块划分 根据本系统的模块划分及操作流程,分别从系统管理、专业信息管理、班级信息管理、学生信息管理、课程信息管理及成绩信息管理等主要功能进行描述。 系统管理模块如图所示: 专业管理模块如图所示:班级信息管理模块如图所示:学生信息管理模块如下图所示:课程信息管理模块如下图所示:成绩信息管理如下图所示:3.4数据库设计 在设计数据库结构时,应该尽可能低满足用户所提出的各种要求,同时又要避免产生冗余数据。3.4,1数据库需求分析 由于在本系统中需要采集大量信息,包括学生信息、班级信息等信息,如果不能合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么在后期进行数据的整理及

9、汇总时,就会增加开发人员的编程难度,并造成效率的下降,根据收集来的信息,归纳出以下规律。一个专业包含多个班级。一个班级对应一个入学年份及年制。一个班级可以包含多个学生。每一位学生拥有唯一的学号。一个班级对应连续的两个学期。一个班级在一个学期可以开设多门课程。每一门课程需要记录每一位同学的成绩。一个角色对应多个用户。根据上述数据间的对应及依赖关系,可以确定出数据库中应该包含的数据表信息如下。专业信息:包含所开设的专业的名称及描述。班级信息:包含班级名称、所属专业、入校时间、学制及班主任信息。学生信息:包含学生学号、姓名、性别及所属班级等基础信息。课程信息:包含课程名称、所属班级等信息。成绩信息:

10、包含学生学号、课程及学期和成绩等信息。用户信息:包含用户名称、密码及角色信息。角色信息:包含角色名称及所属权限。3.4.2数据库概念结构设计 根据数据库需求分析得到的结果,可以确定并概括出程序中所包含的实体及实体间的关系,为后续的数据库逻辑结构设计提供指导。下面通过直观的ER实体关系图对实体进行描述。 专业信息实体如下图所示:班级信息实体如下图: 学生信息实体如下图所示:课程信息实体如图所示:成绩信息实体图如下图所示: 用户信息实体如下图所示:登录密码3.4.3数据库逻辑结构设计数据库逻辑结构的设计主要是用于为最终确定出的数据库中所需的各种信息及没一张表中所包含的字段,本系统中所包含的各项信息

11、表名称描述如下所示。 表一 学籍管理系统数据库结构 表名称 表信息描述tbClassInfo班级信息tbCourseInfo课程信息tbScoreInfo成绩信息tbSpecialityInfo专业信息tbStudentInfo学生信息tbUserInfo用户信息tbRoles角色信息 下面将分别对部分表进行介绍。表二所示为班级信息表tbClassInfo.下表三位成绩信息表tbScoreInfo,包含了与学生课程、成绩及学期相关的信息。下表四位课程信息表,包含了班级、学期、课程有关的信息。下表五所示为专业信息表tbSpecilityInfo,用于保存学院开设的所有专业。下表六为用户信息表tb

12、UserInfo,用于保存登录用户的信息。3.4.4设置表之间的依赖关系 一般情况下,数据库中所包含的表都不是独立存在的,而是表与表之间存在一定的依赖关系,成为关系,如学生信息表中的“班级”字段来源于班级信息中的班级等。如果数据库中的信息不能满足正常的依赖关系,就会破坏数据库的完整性、一致性。 根据本系统的实际情况,接下来将会介绍如何在SQL中设置数据库之间的关系。首先,必须根据ER图分析出那些表之间的字段存在依赖关系,分析结果如下。 班级信息表中的专业信息来源于专业信息表。 学生信息表中的班级来源于班级信息表。 学生成绩中的学号来源于学生信息表。 课程信息中的 班级来源于班级信息表。 用户信

13、息表中的角色来源于角色信息表。下图为设置好的表与之间的关系。四、部分功能实现 下面介绍本系统的部分功能实现。4.1系统管理系统管理中包括添加用户角色和添加用户两项功能。添加角色添加用户角色的作用是将不同权限的用户进行分组,这样不同的用户使用不同的功能,对系统的控制有个总体的控制。【添加角色信息】界面如下图所示。【添加】按钮的代码编写如下 public partial class frmAddRole : Form public frmAddRole() InitializeComponent(); /添加角色 private void btAdd_Click(object sender, Ev

14、entArgs e) if (tbRoleName.Text.Trim() != ) SqlConnection conn = new SqlConnection(frmMain.sqlstr); conn.Open(); string sql = select * from tbRoles where filedRoleName= + tbRoleName.Text.Trim() + ; SqlCommand cmd = new SqlCommand(sql, conn); if (cmd.ExecuteNonQuery() 0) MessageBox.Show(已经存在的角色名称!, 提示

15、); else sql = insert into tbRoles (filedRoleName,filedSystemManage,filedSpeciManage,filedClassManage,filedCourseManage,filedScoreManage,filedStudentMange) values ( + tbRoleName.Text.Trim() + , + filedSystemManage.Checked + , + filedSpeciManage.Checked + , + filedClassManage.Checked + , + filedCourse

16、Manage.Checked + , + filedScoreManage.Checked + , + filedStudentMange.Checked + ); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(添加角色成功!); conn.Close(); else MessageBox.Show(角色名称不能为空!, 提示); private void frmAddRole_Load(object sender, EventArgs e) 4.2专业信息管理专业信息管理包括专业信息的浏览、删除、添加、修改等功能,

17、专业信息浏览下图为浏览专业信息的功能实现窗体。 public partial class frmBrowseSpecialty : Form /定义DataSet数据集保存查询结果集 private DataSet ds; public frmBrowseSpecialty() InitializeComponent(); / / 窗体初始化事件,在此加入对dgv的绑定 / / / private void frmBrowseSpecialty_Load(object sender, EventArgs e) /实例化一个OledbConnection对象 SqlConnection conn

18、 = new SqlConnection(frmMain.sqlstr); conn.Open(); string queryString = select filedSpecialityID as 编号,filedSpecialityName as 专业名称,filedRemark as 专业描述 from tbSpecialityInfo; /实例化一个数据适配器对象 SqlDataAdapter dap = new SqlDataAdapter(queryString, conn); ds = new DataSet(); dap.Fill(ds, tbSpecialityInfo);

19、dgvQueryResult.DataSource = ds.TablestbSpecialityInfo.DefaultView; /一下代码控制各列的宽度 dgvQueryResult.Columns编号.Width = 100; dgvQueryResult.Columns专业名称.Width = 100; dgvQueryResult.Columns专业描述.Width = (dgvQueryResult.Width - dgvQueryResult.Columns专业名称.Width - dgvQueryResult.Columns编号.Width); /关闭数据连接 conn.Cl

20、ose(); / / 修改按钮事件 / / / private void btUpdate_Click(object sender, EventArgs e) DataGridViewRow dr ; if (this.dgvQueryResult.CurrentRow != null) dr = this.dgvQueryResult.CurrentRow; string id = dr.Cells编号.Value.ToString(); string name = dr.Cells专业名称.Value.ToString(); string remark = dr.Cells专业描述.Val

21、ue.ToString(); /打开修改专业信息窗体 frmUpdateSpecialty frmUpdate = new frmUpdateSpecialty(id, name, remark); frmUpdate.MdiParent = this.MdiParent; frmUpdate.Show(); private void btDel_Click(object sender, EventArgs e) DataGridViewRow dr; SqlConnection conn = new SqlConnection(frmMain.sqlstr); conn.Open(); Sq

22、lCommand cmd; if (this.dgvQueryResult.CurrentRow != null) dr = this.dgvQueryResult.CurrentRow; string sql = select filedSpecialityName from tbSpecialityInfo where filedSpecialityID= + dr.Cells编号.Value.ToString()+ and filedSpecialityID not in (select distinct tbSpecialityInfo.filedSpecialityID from t

23、bClassInfo inner join tbSpecialityInfo+ on tbClassInfo.filedSpecialityName=tbSpecialityInfo.filedSpecialityName); cmd = new SqlCommand(sql, conn); SqlDataReader dreader = cmd.ExecuteReader(); if (!dreader.Read() MessageBox.Show(删除专业: + dr.Cells专业名称.Value.ToString() + 失败,请先删除与此相关的专业信息!, 提示); dreader.

24、Close(); else dreader.Close(); sql = delete from tbSpecialityInfo where filedSpecialityName not in (select distinct filedSpecialityName from tbClassInfo) and + filedSpecialityID= + dr.Cells编号.Value.ToString(); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(删除专业: + dr.Cells专业名称.Value.T

25、oString() + 成功!, 提示); conn.Close(); 在浏览专业信息模块中包含了专业的修改和删除功能。下图所示为修改专业信息的窗体图:4.3课程信息管理课程信息管理模块包括课程信息的添加、浏览、修改及删除等功能。下图为课程信息浏览窗体同时包括了修改课程和删除课程的按钮,所以浏览专业信息的的代码同时包含了修改和删除课程功能。【课程信息浏览】代码如下:public partial class frmBrowseCourse : Form public frmBrowseCourse() InitializeComponent(); private void frmBrowseCo

26、urse_Load(object sender, EventArgs e) /读取信息到treeview SqlConnection conn1 = new SqlConnection(frmMain.sqlstr); SqlConnection conn2 = new SqlConnection(frmMain.sqlstr); SqlConnection conn3 = new SqlConnection(frmMain.sqlstr); SqlCommand cmd1 = new SqlCommand(, conn1); SqlCommand cmd2 = new SqlCommand(

27、, conn2); SqlCommand cmd3 = new SqlCommand(, conn3); SqlDataReader dr1, dr2, dr3; string sql = select filedSpecialityName from tbSpecialityInfo; cmd1.CommandText = sql; conn1.Open(); dr1 = cmd1.ExecuteReader(); while (dr1.Read() TreeNode newNode = new TreeNode(); newNode.Text = dr1.GetString(0).ToSt

28、ring(); this.tvInfo.Nodes.Add(newNode); conn2.Open(); sql = select filedClassID,filedClassName from tbClassInfo where filedSpecialityName=+newNode.Text.Trim()+ order by filedClassName desc; cmd2.CommandText = sql; dr2 = cmd2.ExecuteReader(); while (dr2.Read() TreeNode newNode1 = new TreeNode(); newNode1.Text = dr2.GetString(1).ToString(); newNode.Nodes.Add(newNode1

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

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