C#课程设计学生学籍管理系统2————————————————————————————————作者:————————————————————————————————日期:郑州科技学院C#课程设计设计(论文)题目:学生学籍管理系统所在院:信息工程学院专业班级:10计算机科学与技术2班学生姓名:李向杰学号:201015054指导教师:王玉萍2013年6月5日摘要学生学籍管理是一个学校不可或缺的一部分。以往在这方面都是采用人工的方式管理,这种工作方式不仅存在着工作量大、效率低的特点,而且时间一长产生大量的文件,这对于查找、更新和维护带来不少的困难,甚至出现档案丢失现象。因此,设计了次套学生学籍管理系统。本系统分为系统管理、专业设置、班级信息管理、学生信息管理、课程信息管理、成绩信息管理六大模块,系统管理包含角色管理、用户管理、退出系统,其他几个模块均包含添加、浏览、修改、删除等功能。系统中包含不同角色,对每个角色有不同的权限设置,学生仅仅能进行各模块中的浏览功能,进而查看自己的信息,而管理员拥有各模块所有功能的使用权限,能进行添加、修改、、删除所有操作。目录第一部分引言……………………………………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第四部分部分功能实现………………………………204.1系统管理………………………………………………204.2专业信息管理…………………………………………224.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系统功能模块划分根据本系统的模块划分及操作流程,分别从系统管理、专业信息管理、班级信息管理、学生信息管理、课程信息管理及成绩信息管理等主要功能进行描述。系统管理模块如图所示:sqlconnectionsqlcommandSQLsqldatareaderdatabasesqlconnecsqldataap参数SQLdatagirdiewdataset参数专业管理模块如图所示:系统管理添加用户添加角色专业信息管理添加专业专业浏览修改专业信息删除专业信息班级信息管理模块如图所示:学生信息管理模块如下图所示:班级信息管理添加班级信息班级浏览删除班级信息修改班级信息学生信息管理添加学生信息浏览学生信息修改学生信息删除学生信息课程信息管理模块如下图所示:成绩信息管理如下图所示:课程信息管理添加课程信息课程浏览修改课程信息删除课程信息成绩信息管理添加成绩信息浏览学生成绩修改成绩信息删除成绩信息学生成绩查询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