收藏 分销(赏)

C专业课程设计学生学籍标准管理系统.doc

上传人:精**** 文档编号:2533773 上传时间:2024-05-31 格式:DOC 页数:39 大小:1.22MB
下载 相关 举报
C专业课程设计学生学籍标准管理系统.doc_第1页
第1页 / 共39页
C专业课程设计学生学籍标准管理系统.doc_第2页
第2页 / 共39页
C专业课程设计学生学籍标准管理系统.doc_第3页
第3页 / 共39页
C专业课程设计学生学籍标准管理系统.doc_第4页
第4页 / 共39页
C专业课程设计学生学籍标准管理系统.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、郑州科技学院C#课程设计 设计(论文)题目: 学生学籍管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学和技术2班学 生 姓 名: 李向杰 学 号: 15054 指 导 教 师: 王玉萍 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数据库概念结构设计133.4.3数据库逻辑结构设计163.4.4设置表之间关系19第四部分 部分

3、功效实现204.1系统管理204.2专业信息管理224.3课程信息管理27第五部分 致谢32参考文件 一、 引言 学生学籍管理是教务管理中十分关键部分。传统手工学籍管理方法存在着很多缺点,如:效率低、保密性差另外时间一长,将产生大量文件和数据,这对于查找、更新和维护全部带来了不少困难,已经不能适应现在教务管理操作简便、查找快捷要求。作为计算机应用一部分,使用进算计对学生信息档案进行管理,含有手工管理所无法比拟优点。既提升了教务工作者工作效率,把她们从繁重劳动中解脱出来,有提升了工作质量。比如:检索快速、查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些有点能够极大地提升学生档案管理

4、效率也是企业科学化、正规化管理,和世界接轨关键条件。所以,开发样样一套管理软件成为很有必需事情。二、系统需求分析2.1目标系统描述 本系统只用于学生学籍信息管理,关键用户是学生和管理员,学生仅仅能浏览各项模块中自己信息,无法进行其它操作,管理员能进行任一操作。2.2性能需求描述 软件开发要基于人性化,要含有易于操作,于了解等特点,同时也要保障软件运行安全性能。为达成为了达成这一目标,该软件必需含有一定实用性、安全性、易于维性。2.4界面设计描述 界面是软件和用户交流唯一平台,美观、简练、按钮操作方便是用户最基础要求。本软件本着实用、简练、方便标准设计界面,并做到美观,登陆界面如三、 系统总体设

5、计3.1系统概论 学生学籍管理是现在院校学生管理职能部门一个关键步骤,而且该步骤顺利实施有利于推进学校信息化建设。现在,院校学生信息管理工作已经不再局限于对学生基础信息数据维护,而是越来越多地参与到和其它部门相协调互动工作中。本系统提供了一套学生综合信息管理平台,能够使系统管理人员对院校专业进行分类管理,进而确定各个专业中所包含班级信息,从而在已经有班级信息基础上对学生信息进行集中管理。本系统含有以下特点: 本系统各项功效操作全部比较直观、简单,所以用户能够很轻松地胜任信息管理和维护。数据库采取SQL server作为本系统数据库平台,从而降低了程序对硬件和操作系统版本要求。经过数据表之间关系

6、处理了数据之间依靠关系和数据完整性问题。 在窗体设计方案中采取了父窗体、子窗体这一比较流行窗体管理模式。3.2系统预览 下图所表示为用户登录系统以后应用程序主界面,经过该窗体中所提供主菜单,用户能够分别对专业信息、班级信息、学生信息、课程信息、成绩信息等功效管理,而且在整个系统中添加不一样角色。3.3系统设计本系统中采取前台应用程序结合后台SQL数据库开发模式,因为采取了目前较为流行C#作为开发语言,程序代码及结构全部得到了优化,同时又能提升程序运行效率。本系统在Visual Studio.NET环境中结合SQL server进行开发,该环境提供了大量可供选择数据控件,开发人员能够很方便地建立

7、和数据库连接,并在此基础之上,利用多种常见数据组件对数据库进行操作。3.3.1系统结构设计 在本系统中,需要处理关键技术问题为怎样经过最合理方法对数据进行存取查询操作,本系统中队数据存取操作步骤图下图所表示: 数据存取步骤图 sqlconnectionsqlcommandSQLsqldatareaderdatabasesqlconnecsqldataap参数SQLdatagirdiewdataset参数通常情况下,SqlCommand控件可用于实施无返回统计SQL语句,如对班级信息添加、修改、删除等操作,也能够用于实施含有返回统计SQL语句,如对成绩信息查询统计等操作。 3.3.2系统功效模块

8、划分 依据本系统模块划分及操作步骤,分别从系统管理、专业信息管理、班级信息管理、学生信息管理、课程信息管理及成绩信息管理等关键功效进行描述。 系统管理模块图所表示: 系统管理添加用户添加角色 专业管理模块图所表示:专业信息管理添加专业专业浏览修改专业信息删除专业信息班级信息管理模块图所表示:班级信息管理添加班级信息班级浏览删除班级信息修改班级信息学生信息管理模块以下图所表示: 学生信息管理 浏览学生信息 添加学生信息删除学生信息修改学生信息删除课程信息修改课程信息添加课程信息课程浏览课程信息管理课程信息管理模块以下图所表示:成绩信息管理以下图所表示: 删除成绩信息学生成绩查询 修改成绩信息 浏

9、览学生成绩添加成绩信息 成绩信息管理3.4数据库设计 在设计数据库结构时,应该尽可能低满足用户所提出多种要求,同时又要避免产生冗余数据。3.4,1数据库需求分析 因为在本系统中需要采集大量信息,包含学生信息、班级信息等信息,假如不能合理有效地组织数据表结构,和合理设置每张表所包含字段,那么在后期进行数据整理及汇总时,就会增加开发人员编程难度,并造成效率下降,依据搜集来信息,归纳出以下规律。一个专业包含多个班级。一个班级对应一个入年份及年制。一个班级能够包含多个学生。每一位学生拥有唯一学号。一个班级对应连续两个学期。一个班级在一个学期能够开设多门课程。每一门课程需要统计每一位同学成绩。一个角色对

10、应多个用户。依据上述数据间对应及依靠关系,能够确定出数据库中应该包含数据表信息以下。专业信息:包含所开设专业名称及描述。班级信息:包含班级名称、所属专业、入校时间、学制及班主任信息。学生信息:包含学生学号、姓名、性别及所属班级等基础信息。课程信息:包含课程名称、所属班级等信息。成绩信息:包含学生学号、课程及学期和成绩等信息。用户信息:包含用户名称、密码及角色信息。角色信息:包含角色名称及所属权限。3.4.2数据库概念结构设计 依据数据库需求分析得到结果,能够确定并概括出程序中所包含实体及实体间关系,为后续数据库逻辑结构设计提供指导。下面经过直观ER实体关系图对实体进行描述。 专业信息实体以下图

11、所表示: 专业信息专业编号专业描述专业名称专业信息教室编号班级名称入年份班主任学制 班级信息班级信息实体以下图: 家庭住址政治面貌性别 学生信息 民族学号姓名学生信息实体以下图所表示:课程信息实体图所表示:学期 课程信息课程名称 班级编号成绩信息实体图以下图所表示:学期学号课程名称 成绩信息 成绩登录密码用户信息实体以下图所表示: 用户信息用户名称 角色登录密码3.4.3数据库逻辑结构设计数据库逻辑结构设计关键是用于为最终确定出数据库中所需多种信息及没一张表中所包含字段,本系统中所包含各项信息表名称描述以下所表示。 表一 学籍管理系统数据库结构 表名称 表信息描述tbClassInfo班级信息

12、tbCourseInfo课程信息tbScoreInfo成绩信息tbSpecialityInfo专业信息tbStudentInfo学生信息tbUserInfo用户信息tbRoles角色信息 下面将分别对部分表进行介绍。表二所表示为班级信息表tbClassInfo.下表三位成绩信息表tbScoreInfo,包含了和学生课程、成绩及学期相关信息。下表四位课程信息表,包含了班级、学期、课程相关信息。下表五所表示为专业信息表tbSpecilityInfo,用于保留学院开设全部专业。下表六为用户信息表tbUserInfo,用于保留登录用户信息。3.4.4设置表之间依靠关系 通常情况下,数据库中所包含表全部

13、不是独立存在,而是表和表之间存在一定依靠关系,成为关系,如学生信息表中“班级”字段起源于班级信息中班级等。假如数据库中信息不能满足正常依靠关系,就会破坏数据库完整性、一致性。 依据本系统实际情况,接下来将会介绍怎样在SQL中设置数据库之间关系。首先,必需依据ER图分析出那些表之间字段存在依靠关系,分析结果以下。 班级信息表中专业信息起源于专业信息表。 学生信息表中班级起源于班级信息表。 学生成绩中学号起源于学生信息表。 课程信息中 班级起源于班级信息表。 用户信息表中角色起源于角色信息表。下图为设置好表和之间关系。四、 部分功效实现 下面介绍本系统部分功效实现。4.1系统管理系统管理中包含添加

14、用户角色和添加用户两项功效。添加角色添加用户角色作用是将不一样权限用户进行分组,这么不一样用户使用不一样功效,对系统控制有个总体控制。【添加角色信息】界面以下图所表示。【添加】按钮代码编写以下 public partial class frmAddRole : Form public frmAddRole() InitializeComponent(); /添加角色 private void btAdd_Click(object sender, EventArgs e) if (tbRoleName.Text.Trim() != ) SqlConnection conn = new SqlCo

15、nnection(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(已经存在角色名称!, 提醒); else sql = insert into tbRoles (filedRoleName,filedSystemManage,filedSp

16、eciManage,filedClassManage,filedCourseManage,filedScoreManage,filedStudentMange) values ( + tbRoleName.Text.Trim() + , + filedSystemManage.Checked + , + filedSpeciManage.Checked + , + filedClassManage.Checked + , + filedCourseManage.Checked + , + filedScoreManage.Checked + , + filedStudentMange.Chec

17、ked + ); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(添加角色成功!); conn.Close(); else MessageBox.Show(角色名称不能为空!, 提醒); private void frmAddRole_Load(object sender, EventArgs e) 4.2专业信息管理专业信息管理包含专业信息浏览、删除、添加、修改等功效,专业信息浏览下图为浏览专业信息功效实现窗体。 public partial class frmBrowseSpecialty : Form /定义Da

18、taSet数据集保留查询结果集 private DataSet ds; public frmBrowseSpecialty() InitializeComponent(); / / 窗体初始化事件,在此加入对dgv绑定 / / / private void frmBrowseSpecialty_Load(object sender, EventArgs e) /实例化一个OledbConnection对象 SqlConnection conn = new SqlConnection(frmMain.sqlstr); conn.Open(); string queryString = selec

19、t filedSpecialityID as 编号,filedSpecialityName as 专业名称,filedRemark as 专业描述 from tbSpecialityInfo; /实例化一个数据适配器对象 SqlDataAdapter dap = new SqlDataAdapter(queryString, conn); ds = new DataSet(); dap.Fill(ds, tbSpecialityInfo); dgvQueryResult.DataSource = ds.TablestbSpecialityInfo.DefaultView; /一下代码控制各列宽

20、度 dgvQueryResult.Columns编号.Width = 100; dgvQueryResult.Columns专业名称.Width = 100; dgvQueryResult.Columns专业描述.Width = (dgvQueryResult.Width - dgvQueryResult.Columns专业名称.Width - dgvQueryResult.Columns编号.Width); /关闭数据连接 conn.Close(); / / 修改按钮事件 / / / private void btUpdate_Click(object sender, EventArgs e

21、) 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专业描述.Value.ToString(); /打开修改专业信息窗体 frmUpdateSpecialty frmUpdate = new frmUpdateSpecial

22、ty(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(); SqlCommand cmd; if (this.dgvQueryResult.CurrentRow != null) dr = this.dgvQueryRe

23、sult.CurrentRow; string sql = select filedSpecialityName from tbSpecialityInfo where filedSpecialityID= + dr.Cells编号.Value.ToString()+ and filedSpecialityID not in (select distinct tbSpecialityInfo.filedSpecialityID from tbClassInfo inner join tbSpecialityInfo+ on tbClassInfo.filedSpecialityName=tbS

24、pecialityInfo.filedSpecialityName); cmd = new SqlCommand(sql, conn); SqlDataReader dreader = cmd.ExecuteReader(); if (!dreader.Read() MessageBox.Show(删除专业: + dr.Cells专业名称.Value.ToString() + 失败,请先删除和此相关专业信息!, 提醒); dreader.Close(); else dreader.Close(); sql = delete from tbSpecialityInfo where filedSp

25、ecialityName not in (select distinct filedSpecialityName from tbClassInfo) and + filedSpecialityID= + dr.Cells编号.Value.ToString(); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(删除专业: + dr.Cells专业名称.Value.ToString() + 成功!, 提醒); conn.Close(); 在浏览专业信息模块中包含了专业修改和删除功效。下图所表示为修改专业信息窗体图:4.3课

26、程信息管理课程信息管理模块包含课程信息添加、浏览、修改及删除等功效。下图为课程信息浏览窗体同时包含了修改课程和删除课程按钮,所以浏览专业信息代码同时包含了修改和删除课程功效。【课程信息浏览】代码以下:public partial class frmBrowseCourse : Form public frmBrowseCourse() InitializeComponent(); private void frmBrowseCourse_Load(object sender, EventArgs e) /读取信息到treeview SqlConnection conn1 = new SqlCo

27、nnection(frmMain.sqlstr); SqlConnection conn2 = new SqlConnection(frmMain.sqlstr); SqlConnection conn3 = new SqlConnection(frmMain.sqlstr); SqlCommand cmd1 = new SqlCommand(, conn1); SqlCommand cmd2 = new SqlCommand(, conn2); SqlCommand cmd3 = new SqlCommand(, conn3); SqlDataReader dr1, dr2, dr3; st

28、ring 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).ToString(); this.tvInfo.Nodes.Add(newNode); conn2.Open(); sql = select filedClassID,file

29、dClassName 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); conn3.Open();

30、sql = select distinct filedSemester from tbCourseInfo inner join tbClassInfo on tbCourseInfo.filedClassID=tbClassInfo.filedClassID + where tbClassInfo.filedClassName=+newNode1.Text+; cmd3.CommandText = sql; dr3 = cmd3.ExecuteReader(); while (dr3.Read() / TreeNode newNode2 = new TreeNode(); / Message

31、Box .Show (dr3.GetValue(0).ToString(); / MessageBox.Show(dr3.GetValue(0).ToString(); / MessageBox.Show(dr3.GetValue(0).ToString(); TreeNode newNode2 = new TreeNode(); newNode2.Text = (Convert.ToInt32(dr3.GetValue(0).ToString() / 10) + - + (Convert.ToInt32(dr3.GetValue(0).ToString() / 10 + 1) + 年度第 +

32、 (Convert.ToInt32(dr3.GetValue(0).ToString() % 10) + 学期; MessageBox.Show(dr3.GetValue(0).ToString(); newNode2.Tag = dr3.GetValue(0); newNode1.Nodes.Add(newNode2); dr3.Close(); conn3.Close(); dr2.Close(); conn2.Close(); dr1.Close(); conn1.Close(); /treeview控件选择事件 private void tvInfo_AfterSelect(objec

33、t sender, TreeViewEventArgs e) string sql = string.Empty; SqlConnection conn = new SqlConnection(frmMain.sqlstr); SqlDataAdapter adp = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); conn.Open(); if (e.Node.Tag != null) sql = select tbCourseInfo.filedCourseID as 自动编号,tbCourseInfo.filedCourseName as 课程名称 from tbClassInfo inner join + tbCourseInfo on tbCourseInfo.filedClassID=tbClassInfo.filedClassID where tbClassInfo.filedClassName= + e.Node.Parent.Text.Tri

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服