软件工程导论课程设计-学生学籍管理系统_第1页
软件工程导论课程设计-学生学籍管理系统_第2页
软件工程导论课程设计-学生学籍管理系统_第3页
软件工程导论课程设计-学生学籍管理系统_第4页
软件工程导论课程设计-学生学籍管理系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽课程设计报告课 程: 软件工程导论题 目:班 级: 专 业: 计算机科学与技术姓名:学号: 指导教师: 日期 摘 要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断开展的新型学科,任何一个单位要生存要开展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。本文在结构上首先论述了程序设计目的和意义,然后表达了开发环境、开发平台以及数据库技术,接着用图片、说明和代码的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成

2、信息的添加、修改、删除、查询等功能,本系统界面友好,操作简单,比拟实用,思路缜密严谨,管理起来方便快捷,能有效的到达学生信息的管理的目的。关键词:Microsoft Visual C#2021 Express Edition,SQL server2005,界面,权限目 录摘 要2目 录31 绪 论41.1 设计目的51.2 开发工具选择51.3 开发环境51.4 本报告的主要内容62 需求分析621系统任务描述6系统目标6系统设计与功能分析7性能需求分析7722 系统概要设计7 2.2.1 数据需求7 数据字典7 数据流图8 2.2.2 功能需求1023 系统详

3、细设计102.3.1 概念结构设计102.3.2 逻辑结构设计122.3.3 物理结构设计132.3.4 系统功能设计143 总体设计15设计概述15系统总体结构及功能模块划分15学生信息查询模块15学生信息管理模块16平安保密设计16用户登录平安性174 详细设计17概述17系统程序流程图18系统主要功能模块简介18系统登录18学生信息查询模块18学生信息管理模块19 4.3.4管理员信息管理模块20 4.3.5教师信息管理模块21 5 系统测试及难点分析235.1 公共类代码设计235.2 登录界面代码设计265.3 查询模块代码设计275.4 添加模块代码设计285.5 更新模块代码设计

4、295.6 删除模块代码设计32结 论32参考文献331 绪 论人类有几千年的历史,计算机从产生到现在只不过50多年,而网络的迅速开展也不过10年的时间。但是,计算机和网络对社会的影响已经迅速扩大,甚至在改变人们的生活。特别是90年代以来,多媒体和网络技术的飞速开展正在以惊人的速度改变着人们的工作方式、交往方式和生活方式。正像著名的未来学家尼葛洛庞帝1997所说的:“数字不再只和计算有关,它决定我们的生存。科学技术是第一生产力,是最先进的生产力。现在,已经没有人疑心信息技术的开展将会引起人类社会全面和深刻的变革,使人类社会由工业社会迈向信息社会。目前,在社会各个方面都呈现出了与工业社会显著不同

5、的特点。网上书店,网上医院,网上学校,网上购物,网上银行,政府上网等新事物如雨后春笋般涌现出来,对人们的传统生活方式、工作方式产生极大的冲击。使人们感受到技术开展的脉搏和信息时代前进的步伐。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的标准管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能

6、力。1.2 开发工具选择本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在平安性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2021作为主要开发工具,可与SQL Server 2005数据库无缝链接。1.3 开发环境系统开发平台:Microsoft Visual Studio2005系统开发语言:C#数据库管理软件:SQL Server 20051.4 本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计

7、、系统各模块的详细设计、系统运行与测试。2 需求分析需求分析是一组活动的总称,作为系统分析员,必须协同软件用户共同完成。而需求分析的任务是定义待开发的软件的功能、性能等指标。首先要了解用户的相关事务,如果你给一家网站做在线书店系统,除了参考现在已经存在的类似和相关的系统外,你还需要通过用户的演示、讲解和有关文档,与用户进行交流协商。在这个过程中,可以提出自己有建设性的想法和建议,只有这样,用户和系统设计人员才会在系统提供的事务上达成一致,这对于软件来说是相当重要的。其次要分析用户的事务流程,前面了解的用户事务只是一些离散的事务活动,而事务流程是一种重要的信息,比方用户登录这个流程,他需要经历用

8、户名和密码的输入,正确用户类型的选择这些活动,然后将了解到的用户活动加以整理并按照这些活动所固有的次序形成业务流程。还要了解用户对软件的期望值,除了需要能够正确处理用户的事务外,还需要了解用户对系统的其他需求,比方系统的平安性。这些对于用户而言也显得尤为重要。最后整理出用户需求并评审需求。21系统任务描述系统模块的设计应该遵循整个系统总体设计思路,基于C#开发工具与数据库SQL设计,主要完成的设计如下:(1) 根据查询条件实现学生信息的查询(2) 学生选课信息查询、成绩信息的查询(3) 学生信息、课程信息、成绩信息的增加、删除、修改(4) 对根本信息完成增加、删除、修改时,需注意表与表之间的关

9、联系统设计与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2000数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,平安性好。SQLServer2000数据库高效平安,两者结合可相互利用各自的优势。该系统实现的大致功能:1 用户登陆界面。该界面可以选择使用者

10、的身份,“管理员,教师,学生。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,修改登录密码等功能。2 教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除。修改密码等功能。3 管理员管理界面。拥有最高的权限。允许添加教师信息。4 登录的用户信息分别存储在SQL数据库的“管理员信息表, “教师信息表, “学生表中,如果用户信息不存在那么三张表中,将会无权利登录本管理系统。保证了本学生管理系统的平安性。(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2) 平安保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管

11、理等。22 系统概要设计2.2.1数据需求:数据字典实体属性表:实体属性教师教师ID,教师姓名,登录密码管理员管理员ID,登录密码学生学号,姓名,性别,班级号,籍贯,登录密码,学生成绩教师信息表:字段名 类型空值约束条件教师ID varchar(8)not null主键教师姓名varchar(8)not null登录密码varchar(8)not null管理员信息表:字段名 类型空值约束条件管理员ID varchar(10)not null主键登录密码varchar(10)not null学生表:字段名 类型空值约束条件学号int not null主键姓名varchar(30)not nul

12、l性别char(2)班级号varchar(30)not null 外键籍贯char(10)  登录密码moneynot null学生成绩Char 数据流图第一层 学生名单学籍管理系统学 生教 师 学生信息 成绩 学 生管理人员 统计表 成绩单第二层1录入存储处理2查询处理学生记录学生信息 成绩 3统计 处理4升留级处理本次考试成绩历次考试成绩 班平均成绩 升留级表 各科平均成绩第三层13录入存储学生信息各科成绩是否新生审计学生信息 合格单 新生信息 学生信息学生成绩第四层班级平均成绩 班级统计选择学生信息 统计成绩 各科平均成绩 各科第五层是否升留级更新记录学

13、生信息 升留级名单 学生记录成绩标准2.功能需求:1实现学生根本情况的录入,修改,删除等根本操作。2对学生根本信息提供灵活的查询方式。3完成一个班级的学期选课功能。4实现学生成绩的录入,修改,删除等根本操作。5能方便的对学生的个人学期成绩进行查询。6具有成绩统计,排名等功能。7具有留级,休学等特殊情况的处理功能。8能输出常用的各种报表。9具有数据备份和数据恢复功能。23系统详细设计概念结构设计局部ER图性别姓名人数专业名专业号 学生学号出生年月专业院系课程号学时课程名课程整体的ER图专 业学生课程院系专业号 学时出生年月性别姓名学号密码课程号专业名人数专业号设置课程号学期课程号选课属于 学号成

14、绩学期课程名 . 逻辑结构设计(1)ER图转换为关系模型由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:学生根本信息表: S (sno, sname, ssex, sbirth, spasw) 课程根本信息表: C (cno, cname, cperiord)专业根本信息表: P (pno, pname, pnum, psdept)对应的属性分别为:学号,姓名,性别,出生日期,登陆密码 课程编号,课程名,学期 专业编号,专

15、业名,专业人数,所在院系对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一局部。 以上ER图的三个联系为多对多,所以转换为关系模式为:课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原那么:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码

16、,即sno,cno,psenior。此外,选课表还有一个非主属性grade。学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。2关系模式的优化:学生表 s (sno,sname,ssex,sbirth,spasw)该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的局部函数依赖,可以到达2NCF。另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex, sno -> ssex,sno -> sbirth, sn

17、o -> spasw,其间不存在传递依赖,故学生表可到达3NCF.课程表 C ( cno ,cname , cperiod)该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的局部函数依赖,可以到达2NCF。另外,该关系模式的函数依赖为:cno->cname, cno->cperiod, cname ->cno ,cname -> cperiod. 因为cno -> cname,cname -> cperiod cno -> cperiod, 所以

18、该关系模式中存在传递依赖,不能到达3NCF。故优化该表为:C1(cno,period),C2cname,cperiod.从而两表都到达了3NCF。专业表 P (pno,pname,pnum,pdept)该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的局部函数依赖,故可到达2NCF。另外,此关系模式的函数依赖为:pno->pname, pno-> pnum, pno -> pdept , pname -> pno, pname->pnum, pname -> pdept; 由于

19、存在传递依赖:pno -> pname, pname->pnum, pno -> pnum., 所以未能到达3NCF。优化分解为:P1 (pno,pnum,pdept), P2 (pname,pnum,pdept)明显,两表都到达了3NCF.课程设置表PC(pno,psenior,cno),该关系模式的码为:(pno,psenior,cno)为全码,所以可直接到达3NCF学生选课表 SC(sno,psenior,cno,grade)该关系模式的码为:sno,psenior,cno,因为不存在非主性grade对码的局部函数依赖,所以可到达2NCF,由于不存在函数依赖表中的函数依

20、赖只有sno,psenior,cno-> grade故也到达了3NCF属于表 SP(sno,pno)该关系模式的码(sno,pno)也是全码,所以也到达了3NCF用户表 U(uname,upasw)该表的码为uname,明显upasw对码uname是完全函数依赖的,从而到达2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表到达了3NCF物理结构设计1根本表学生表s列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)sname否否否无是Char(20)ssex否否否无是Char(2)只可取男或女sbirth否否否无是Char(20)spasw否否否无是

21、Char(10)课程表 c1列名主码候选码外码被参照表允许空数据类型约束条件cno是否否无否Char(10)cperiod否否否无是smallint课程表c2列名主码候选码外码被参照表允许空数据类型约束条件cname是否否无否Char(20)cperiod否否否无是smallint专业表p1列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)pnum否否否无是smallintPnum >=0psdept否否否无是Char(20)专业表p2列名主码候选码外码被参照表允许空数据类型约束条件pname是否否无否Char(20)pnum否否否无是smallintPnu

22、m >=0psdept否否否无是Char(20)课程设置表 pc列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)学生选课表sc列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)grade否否否无是smallintgrade>=0学生与专业属于表sp列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)pno是否否无否Char(10)管理人员密码表u列名主

23、码候选码外码被参照表允许空数据类型约束条件uname是否否无否Char(20)upasw否否否无否Char(10)(2)视图,索引a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。表s的主索引列为:sno表c1的主索引列为:cno表c2的主索引列为:cname表p1的主索引列为:pno表p2的主索引列为:pname表sc的主索引列为:(pno,psenior,cno)表sp的主索引列为:(sno,pno)表u的主索引列为:unameb视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比拟复杂,所

24、以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.系统功能设计学生学籍管理系统添加用户学生信息管理人员信息根本信息信息查询成绩查询系统管理查询管理成绩统计个人成绩专业成绩欢送界面身份及密码验证根本信息维护删除更新添加 3总体设计根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;学生成绩录入学生信息管理学生信息管理系统学生信息查询经过对系统的需求分析,学生信息管理系统主要划分为三个局部:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1 系统的总体结构。图3.2.1 系统的

25、总体结构学生信息查询学号查询姓名查询学生信息查询:学生可以根据学号、姓名、专业进行查询学生信息查询模块结构。图3.2.2 学生信息管理模块结构根本信息录入成绩录入根本信息更新成绩更新学生信息删除学生信息录入学生信息管理学生信息更新学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。图3.2.3 学生信息管理模块结构系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。 4详细设计详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而

26、在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。 用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面如图4.3.1 用户登录界面所示。图4.3.1 用户登录界面学生信息查询:在程序主界面如图4.3.2 程序主界面学生可以根据学号、姓名进行查询。学生也可以只用一种条件进行信息查询,也可以多个条件查询。双击记录任一单元格可显示学生的更详细信息。图4.3.2 程序主界面学生信息管理:通过右击程序主界面的相应记录弹出的上下文菜

27、单可对当前选定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。图4.3.4 上下文菜单图4.3.6 学生信息增删改查界面4.3.4管理员信息管理模块管理员信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。 图4.3.8 管理员添加界面4.3.5管理员信息管理模块教师信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定学生成绩进行详细

28、信息录入,更改。更新时如果输入的学号不存在,可选择是否添加学生成绩。通过程序主界面的新建信息记录可添加学生成绩。 5主要功能模块代码5.1 公共类代码设计 namespace MySql public class mySql public String connectionString = "SERVER=.SQLEXPRESS;AttachDbFilename=D:学习C#课程设计StuScoreManSystemStuScoreManSystemStuScoManSys.mdf;Integrated Security=True;Connect Timeout=30;User In

29、stance=True;" public String commondText; public bool flag; /指示有条该条记录 public System.Data.DataView table; public void runSql() / 执行查询、删除SQL语句 using (SqlConnection connection = new SqlConnection(connectionString) connection.Open(); SqlCommand cmdQuery = new SqlCommand(commondText, connection); Sql

30、DataAdapter sda = new SqlDataAdapter(commondText, connection); DataSet ds = new DataSet(); sda.Fill(ds); if (commondText.IndexOf("SELECT") >= 0) table = ds.Tables0.DefaultView; connection.Close(); public bool getFlag() /判断是否有该条记录 using (SqlConnection connection = new SqlConnection(conne

31、ctionString) connection.Open(); SqlCommand cmdQuery = new SqlCommand(commondText, connection); SqlDataReader reader = cmdQuery.ExecuteReader(); if (reader.Read() flag = true; else flag = false; reader.Close(); connection.Close(); return flag; public String getContent(String require,String SNO) /获取视图

32、表的的指定单元格内容 try commondText = "SELECT " + require + " FROM detail WHERE 学号=" + SNO; if (require = "up课程名称") commondText = "SELECT 课程名称 FROM detail WHERE 学号=" + SNO; if (require = "up成绩") commondText = "SELECT 成绩 FROM detail WHERE 学号=" + SNO;

33、 SqlDataAdapter sda = new SqlDataAdapter(commondText, connectionString); DataSet ds = new DataSet(); sda.Fill(ds); String result="" if(require="课程名称"|require="成绩") int i=new int(); for (i=0; i <ds.Tables0.Rows.Count; i+) result = result+ds.Tables0.Rowsirequire.ToStri

34、ng()+"n" else result=ds.Tables0.Rows0require.ToString().Trim(); return result; catch return "无" public void update() /添加、更新语句 try using (SqlConnection connection = new SqlConnection(connectionString) connection.Open(); SqlCommand cmdInsert = new SqlCommand(commondText, connection

35、); cmdInsert.ExecuteNonQuery(); connection.Close(); catch(Exception ex) MessageBox.Show(ex.ToString(), "提示"); 5.2 登录界面代码设计 private void login_Click(object sender, EventArgs e) /用户名及密码组合判断 if (username.Text.ToString().Trim() != "" && password.Text.ToString().Trim() != &quo

36、t;") mySql sql = new mySql(); sql mondText = "SELECT * FROM userdata WHERE USERNAME='" + username.Text.ToString().Trim() + "' AND PASSWORD='" + password.Text.ToString().Trim() + "'" try bool temp = new bool(); temp = sql.getFlag(); if (temp) this.Vi

37、sible = false; mainface main = new mainface(this); main.Show(); catch(Exception ex) MessageBox.Show(ex.ToString(),"提示"); else MessageBox.Show("请输入用户名和密码","提示"); 5.3 查询模块代码设计 private void btQuery_Click(object sender, EventArgs e) mySql query=new mySql(); if (sNInput.Text

38、.Trim() = ""&& sNoinput.Text.Trim()!="") query mondText = "SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SNO="+sNoinput.Text.Trim()+"" if (sNInput.Text.Trim() != "" && sNoinput.Text.Tri

39、m() = "") query mondText = "SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SN='" +sNInput.Text.Trim()+ "'" if (sNInput.Text.Trim() != "" && sNoinput.Text.Trim() != "") query mondText = &

40、quot;SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SN='" + sNInput.Text.Trim() + "' and SNO=" + sNoinput.Text.Trim() + "" if (sNInput.Text.Trim() = "" && sNoinput.Text.Trim() = "") MessageBox.Show("您输入的信息为空,请重新输入!", "错误信息"); else if (query.getFlag() query.runSql(); dataGridView1.DataSource = query.table; else MessageBox.Show("您查找的信息不存在", "错误信息"); 5.4 添加模块代码设计 private void addbtOK_Click(object sender, EventArgs e) if (addStuNo.Text.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论