软件开发专业毕业论文-学生信息管理系统(CS) .doc_第1页
软件开发专业毕业论文-学生信息管理系统(CS) .doc_第2页
软件开发专业毕业论文-学生信息管理系统(CS) .doc_第3页
软件开发专业毕业论文-学生信息管理系统(CS) .doc_第4页
软件开发专业毕业论文-学生信息管理系统(CS) .doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

学 院: 物联网学院 专业: 软件开发 班级: 09级计软2班 学生姓名: 指导教师: 完成时间: 2019年7月20日 学生信息管理系统(c/s)27摘要学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程。在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。并采用visuals2010作为开发工具,sql server 2008作为后台数据库。本系统具有系统管理、外观设置、学生管理, 成绩管理,班级管理,科目管理,数据维护、安全设置等模块,可分别完成日常学生档案,班级信息,课程信息,成绩信息的添加、修改、删除、查询等功能。本人在此次毕业设计中主要对系统管理、外观设置、学生管理, 成绩管理,班级管理,科目管理,数据维护、安全设置等模块进行了具体设计。【关键字】:信息管理、学生、visuals2010、sql2008。summarystudent intormation management system is a indispensable part ot the education unit,its content for the schools decision-makers and managers are essential.this article describes the development of student information management system throughout the process.explain the system analysis,system design,database design and system implementation of the whole process.the system development methods in software engineering using the ideas and methods,on the whole development lifecycle using a structured approach,using a prototype implementation of specific modules and object-oriented systems development methodology.and using visual s2010 as a development toolsql2008 as backend database.the system has a system management,appearance settings,student management, performance management,class management,account management,data maintenance,security settings and other modules,respectively to complete the daily student records,class information,course information, performance information to add, modify, delete,query and other functions.i graduated in the design of the main system management,appearance settings,student management,performance management, class management, account management,data maintenance,security settings for a specific modle design.【keyword】information management,students,visuals2010,sql2008目录摘要1summary1第一章 绪论51.1 引言51.2 开发背景51.3 开发工具的选择5第二章 系统设计原理62.1 需求分析62.2 系统设计72.2.1系统功能结构图72.2.2系统业务流程图8第三章 数据库设计原理93.1 数据库需求分析93.2 数据库表实体103.3各表的物理结构11第四章 系统详细设计144.1 类库144.1.1 类库组织结构144.1.2 类库的设计144.2 系统各模块设计174.2.1 登录窗体模块174.2.2 主窗体模块194.2.3 学生管理窗体模块194.2.4 成绩管理窗体模块21第五章 系统测试245.1软件测试基础理论245.1.1 软件测试定义245.1.2 软件测试基本概念245.2软件测试目的255.3软件测试方法分类255.3.1 静态测试与动态测试255.3.2 黑盒与白盒测试255.3.3 单元测试、集成测试、系统测试、验证测试和确认测试265.4系统测试265.4.1 测试用例设计要求265.4.2 系统各个模块测试用例275.5测试报告27总结27致谢28参考文献28第一章 绪论1.1 引言该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理. 目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作1.2 开发背景学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。1.3 开发工具的选择 现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:microsoft公司的visual s, microsoft公司的visual c, borland公司的delphi和 powersoft公司的powerbulider以及java等。在这些程序开发工具中,有的强调程序语言的弹性与执行效率;有的则偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必定要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点成为了一纸空谈;相反地,如果只强调语言的弹性,却没有便利的工具作配合,会使得一些即使非常简单的界面处理动作,变得复杂和麻烦起来,这样也会浪费程序设计师们的宝贵时间。作为数据库系统的开发,visual s 2010是一个非常理想选择,它有效地避免了以上所谈到的诸缺点。数据库技术是mis设计中的重要支持技术,在mis开发过程中,如何选择数据库管理也是一个重要的问题,目前,数据库产品可谓琳琅满目,每种产品都具有各自的特点和适用范围,因此,在选择数据库前,我慎重考虑了一下,应数据库应用的特点及适用范围,本系统选用了数据库sql server2008,开发工具当然是非visual s 2010莫属了。visual s 2010是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与windows的专业开发工具sdk相媲美,而且程序开发人员不必具有c/c+编程基础。在visual s 2010环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用windows内部的应用程序接口(api)函数,以及动态链接库(dll)、动态数据交换(dde)、对象的链接与嵌入(ole)、开放式数据访问(odbc)等技术,可以高效、快速地开发出windows环境下功能强大、图形界面丰富的应用软件系统第二章 系统设计原理2.1 需求分析 针对其他学生管理软件的不足,去掉多余的操作,要求制作和系统可以方便、快捷地对学生信息、成绩等进行添加、删除、修改的操作,并且可以批量的对新生信息的录入与分班!可以对数据进行备份保存。1、学生信息管理功能班级管理:对班级的添加、删除、修改。添加学生:以班级为单位,进行学生入库。其中分为单个添加和批量添加。单个添加学生供数量较少的学生信息入库;成批添加可以大量的学生成批录入到数据库中。删除学生:当学生毕业后,学生信息不再需要,系统的基本数据库中需要删除学生信息。该功能主要进行学生信息的删除。 2、学生成绩管理功能成绩录入:以班级为单位,录入各科目的各类型考试。成绩查询:可以对学生的考试成绩进行“定位型”的查询。成绩管理:可以对考试成绩的修改,删除等操作。3、课程信息管理功能课程管理:提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。4、查询功能学生信息查询。根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询等。2.2 系统设计2.2.1系统功能结构图学生管理系统结构图如下:2.2.2系统业务流程图学生信息管理业务流程图如下:第三章 数据库设计原理学生信息管理系统采用了microsoft推出的sql server2008作为后台数据库3.1 数据库需求分析 在设计数据库结构时,以及可能地满足用户所提出的各项要求,同时又避免同时又要避免冗余数据产生。由于在学生信息管理系统中,需要采集大量的信息,包括学生信息,班级信息,科目信息,成绩信息等,如果不能够合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么后期进行的数据的整理以及汇总时,就会增加编程人员的开发难度,并造成成绩效益的大幅度下降。根据学生基本信息以及其他相关信息的特点,归纳出以下规律:1.一个科目包括多个班级;2.一个班在一个学期内开设多门课程;3.每一门课程记录每一名学生的成绩;4.一种角色对应一个和多个用户;5.一个班级包含多名学生;6.每一个学生都有不同的学号;3.2 数据库表实体用户登录实体e-r图学生信息实体e-r图成绩信息实体e-r图科目信息实体e-r图班级信息实体e-r图3.3各表的物理结构class表:列名数据类型长度允许空classidint4否classname1varchar20否lassname2varchar20是lassname3varchar20是entrancedatedatetime8否remarkvarchar256是course表: 列名 数据类型长度允许空coursedint 4否coursenamevarchar20否begindatedatetime8否finishdatedatetime8否termint4否remarkvarchar256是core 表: 列名数据类型长度允许空scoreidint4否coursedint4否studentidint4否scorefloat4否modevarchar20是examdatedatetime8否classnamevarchar20否statusint4否student 表: 列名数据类型长度允许空studentidint4否sthudentnovarchar20否studentnamevarchar50否genderchar2否birthdayvarchar30否classidint4否statusint4否remarkvarchar256是users 表: 列名数据类型长度允许空useridint4否usernamevarchar30否userpassvarchar10否statusint4否picturevarchar200是powerschar18是backimagevarchar200是第四章 系统详细设计4.1 类库4.1.1 类库组织结构4.1.2 类库的设计bll类库classbusiness 此类为班级的操作方法调用coursebusiness此类为科目的操作方法调用scorebusiness此类为成绩的操作方法调用studentbusiness此类为学生的操作方法调用usersbusiness此类为用户的操作方法调用classbll此类用于约束dal 类库classdal此类用于各种操作的存储过程classdao此类为班级各种操作的方法coursedao此类为科目各种操作的方法scoredao此类为成绩各种操作的方法studentdao此类为学生各种操作的方法usersdao此类为用户各种操作的方法dboperater 类库dboperater 数据库连接类using system;using system.collections.generic;using system.text;using system.data;using system.data.sqlclient;namespace dboperater public class dbconnection private sqlconnection conn; /定义一个连接对像 public dbconnection() conn = new sqlconnection(server=.;database=studentmanagedb;uid=sa;pwd=258); public void executesqlnonquery(string strsql) sqlcommand cmd = new sqlcommand(strsql, conn); try conn.open(); cmd.executenonquery(); catch (exception ex) throw new exception(ex.message); finally conn.close(); public datatable executesqlquery(string strsql) datatable dt = new datatable(); sqldataadapter da = new sqldataadapter(strsql, conn); try da.fill(dt); catch (exception ex) throw new exception(ex.message); return dt; public void executeprocnonquery(string strproc, sqlparameter pars) sqlcommand cmd = new sqlcommand(strproc, conn); cmd.commandtype = commandtype.storedprocedure; if (pars != null) /如果存储过程中用到的参数数组不为空 foreach (sqlparameter par in pars) /则遍历数组 cmd.parameters.add(par); /将所有的参数添加到sqlcommand对象的参数属性中 try conn.open(); cmd.executenonquery(); catch (exception ex) throw new exception(ex.message); finally conn.close(); public datatable executeprocquery(string strproc, sqlparameter pars) datatable dt = new datatable(); sqldataadapter da = new sqldataadapter(strproc, conn); da.selectcommand.commandtype = commandtype.storedprocedure; if (pars != null) /如果存储过程中用到的参数数组不为空 foreach (sqlparameter par in pars) /则遍历数组 da.selectcommand.parameters.add(par); /将所有的参数添加到sqldataadapter对象的参数属性中 try da.fill(dt); catch (exception ex) throw new exception(ex.message); return dt; model类库 classbean、 course、 scorebean、 student、 users均为对应的对象的接口。4.2 系统各模块设计4.2.1 登录窗体模块登录模块主要是通过输入正确的用户名和密码进入主窗体,它可以提高程序的安全性,保护数据资料不外泄。其主代码如下:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using system.data.sqlclient;using model;using bll;namespace valeb2011 public partial class frmuserlogin : form public frmuserlogin() initializecomponent(); private void button1_click(object sender, eventargs e) usersbusiness userbus = new usersbusiness(); users user = new users(); user.username = this.textname.text; user.userpass = this.textpass.text; user = userbus.isuser(user); if (user = null) messagebox.show(用户名或密码错误!请重新登录, 登录错误); else frmmain frm = new frmmain(user); frm.show(); this.hide(); private void button2_click(object sender, eventargs e) this.close(); 4.2.2 主窗体模块当用户输入正确的用户名和密码时,进入主窗体,用户可以通过主窗体调用系统相关的各子模块,快速掌握本系统中所实现的各个功能。进入主窗体,第一选项为系统管理选项。可以通过其调用:添加新帐户、更改帐户、删除帐户、查询帐户信息四个窗体,对其系统使用帐户的管理,确保系统的使用安全性。第二选项为系统的外观设置,可以根据用户的爱好、习惯对系统的皮肤进行设置。4.2.3 学生管理窗体模块第三选项为系统的学生管理选项。也就是本系统开发的重要功能之一选项。主要对学校在校的信息管理,如班级、学级等的管理。通过主窗体,可以调用学生管理的四个窗体:添加学生信息、查询学生信息、修改学生信息、删除学生信息。 学生档案管理-添加学生信息:主要是对学生的在校最基本的信息添加。如果是新生入校,大量的学生信息可以通过批量录入窗体对学生的信息录入。这样就不造成“速度慢,工作量小”的情况。学生档案管理-查询学生信息:主要是对学生的在校最基本的信息查询。如果对学生的信息不太清楚我们可以选择“模糊”查找。通过该窗体,可以对学生的档案信息进行修改。通过该窗体,可以对学生档案进行删除。4.2.4 成绩管理窗体模块第四选项为系统的成绩管理选项。也是本系统开发的重要功能之一选项。主要对学生的成绩录入、查询、管理等进行管理。成绩录入:通过该窗体,可以对某学期、某班级、某科目的考试成绩录入。大大减少对成绩管理的统一性、数据量大性,避免出错。这是学生管理系统开发最显明的一点,也是使用中的“易操作性”特点!成绩查询:其功能可以对指定的学班级、姓名、考试时间等查询,这样的查询具有“快”、“简单”性。如果对学生的信息不是太清楚也可以采用模糊查询。只需在姓名中输入不完整的名字,在不知道的字处用“*”代替及可。成绩管理:可以通过其对学生的考试成绩进行修改、作废等。方便使用。真正作到“快”、“准”。通过该窗体可以科目信息的添加、删除、修改。第五章 系统测试5.1软件测试基础理论5.1.1 软件测试定义软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。5.1.2 软件测试基本概念1、测试的含义所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。2、测试的步骤测试步骤详细规定了如何设置、执行、评估特定的测试用例。软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件测试在软件生命周期中横跨两个阶段:单元测试阶段:即在每个模块编写出以后所做的必要测试。综合测试阶段:即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。3、测试的意义系统测试是管理信息系统的开发周期中的一个十分重要环节。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的4050。而对于一些特别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。5.2软件测试目的测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。检查系统是否满足需求也是测试的期望目标。一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。5.3软件测试方法分类软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。5.3.1 静态测试与动态测试按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。1、静态测试指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。2、动态测试动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。5.3.2 黑盒与白盒测试1、黑盒测试按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(black-box testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。2、黑盒测试的特点黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(white-box testing)方法。3、白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖。5.3.3 单元测试、集成测试、系统测试、验证测试和确认测试按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。测试中的错误分类:a类错误:致命错误引起程序异常中断或死机的错误等。b类错误:功能错误业务功能实现错误、程序执行结果错误等。c类错误:功能缺陷功能操作不方便、缺少操作提示等。d类错误:界面缺陷界面设计不符合本系统的界面设计规范等。e类错误:测试正确正确的测试项、测试结果与预期的一致等。5.4系统测试本系统各部分模块,采黑白盒测试。5.4.1 测试用例设计要求一个好的测试用例,应该包含以下信息: 1、软件或项目的名称2、软件或项目的版本(内部版本号)3、功能模块名4、测试用例的简单描述,即该用例执行的目的或方法5、测试用例的参考

温馨提示

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

评论

0/150

提交评论