已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计 南昌大学软件学院软件技术091班 软件学院专 科 生 毕 业 综 合 设 计题 目: 学生成绩管理信息系统 专 业: 软件技术 年(班)级: 09年1班 学 号: 姓 名: 指导教师: 完成日期: 2012年 月 日 摘 要学生信息管理系统是典型的信息管理系统,经过分析,我们使用microsoft公司的visual basic开发工具,利用其提供的各种面向对象的开发工具,尤其首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键字:数据库,智能化,面向对象abstract:the abstract student information management system is the typical information management system, the process analysis, we use microsoft corporation visual the basic development kit, uses each kind of object-oriented development kit which it provides, especially first in a short time establishes the system application prototype, then, carries on the demand iteration to the initial prototype system, revises and the improvement unceasingly, until forms user satisfaction the feasible system.key words:database,intelligence,object-oriented目 录摘 要2一、 引言41.1编写目的41.2项目背景41.3系统概述41.4所用技术分析5二、系统的需求分析72.1项目开发的背景分析72.2 项目开发的目标72.3项目提出的意义82.4 国内外研究现状8三 、系统需求与分析93.1 可行性分析93.1.1. 管理上的可行性93.1.2. 技术上的可行性93.1.3效益上的可行性93.1.4.安全性分析103.2需求分析10四、 任务概述114.1目标114.2条件与限制114.3运行环境124.4数据库er图124.5数据库结构设计13五、界面设计15六、代码设计196.1登陆窗体代码196.2主窗体代码206.3课程表查询代码236.4课程表操作代码236.5学生个人信息查询代码266.6学生个人信息操作代码276.7成绩表查询代码306.8成绩表操作代码31七、结论35八、致谢36参考文献37一、 引言1.1编写目的 总体设计说明书是进行系统编码的依据,编写本文档的目的在于为程序员的编码提供详细的说明,使程序员能根据详细设计的框图进行正确的编码。本文档的读者对象为程序员,系统设计人员,图书馆管理人员以及参加评审的专家们。从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。由此更加规范软件开发流程,加速软件开发的速度,提高软件开发的质量,降低项目综合成本。1.2项目背景 本系统为南昌大学软件学院609开发的一个中型学生成绩管理系统,其开发任务由南昌大学软件学院609承担。1.3系统概述管理信息系统基础管理信息系统就是我们常说的mis (management information system),是集成了计算机网络技术、信息处理技术,对信息进行收集处理、传输及存储,进行事务管理的一种人机交互的智能化计算机系统。 软件工程理论的概述软件工程是一门旨在研究计算机软件开发与维护的普遍原理和技术的工程学科。它的研究范围涉及到技术方法、软件工具、科学管理等诸多方面。实践证明:在软件的设计和开发过程中,运用软件工程的方法,可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。 软件工程理论对本系统的指导学生成绩管理系统的设计和开发是一个较为庞大的系统工程,应以软件工程的思想和方法为指导,进行设计和开发。软件工程理论对本系统的指导,主要表现在:帮助我们理清思路,建立较为科学的结构和开发制作流程方面。上述的各种理论,对我们设计和开发学生成绩管理系统提供了重要的理论基础,同时也为我们如何进行具体的设计和开发工作,提供了必要的思路和方法。1.4所用技术分析c#程序设计 c#(c sharp)是微软(microsoft)为。net framework量身订做的程序语言,c#拥有c/c+的强大功能以及visual basic简易使用的特性,是第一个组件导向(component-oriented)的程序语言,和c+与java一样亦为对象导向(object-oriented)程序语言。c# (c sharp)是微软对这一问题的解决方案。c#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于microsoft .net平台的应用程序,microsoft .net提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于c#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的c#语言结构,这些组件可以方便的转化为xml网络服务,从而使它们可以由任何语言在任何操作系统上通过internet进行调用。 最重要的是,c#使得c+程序员可以高效的开发程序,而绝不损失c/c+原有的强大的功能。因为这种继承关系,c#与c/c+具有极大的相似性,熟悉类似语言的开发者可以很快的转向c#。sql server 2000sql server 2000 是microsoft公司推出的sql server 数据库管理系统的一个版本。该版本继承了sql server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行microsoft windows 98 的膝上型电脑到运行microsoft windows 2000 的大型多处理器的服务器等多种平台使用。sql server 2000 数据库引擎提供完整的xml 支持。它还具有构成最大的web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。sql server 2000 程序设计模型与 windows dna 构架集成,用以开发 web 应用程序,并且sql server 2000 支持 english query 和 microsoft 搜索服务等功能,在web 应用程序中包含了用户友好的查询和强大的搜索功能。同一个数据库引擎可以在不同的平台上使用,从运行 microsoft windows® 98 的便携式电脑,到运行 microsoft windows 2000 数据中心版的大型多处理器服务器。sql server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 web 站点所需的性能级别。sql server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。sql server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 sql server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。并且sql server2000具有如下优点: 1、高性能设计,可充分利用windowsnt的优势。 2、系统管理先进,支持windows图形化管理工具,支持本地和远程的系统管理和配置。 3、强壮的事务处理功能,采用各种方法保证数据的完整性。 4、支持对称多处理器结构、存储过程、odbc,并具有自主的sql语言。 sqlserver以其内置的数据复制功能、强大的管理工具、与internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。二、系统的需求分析2.1项目开发的背景分析当今时代是飞速发展的信息时代,在各行各业中离不开信息管理处理,这正是计算机被广泛应用于管理系统的原因。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行管理控制,不仅提高了工作效率,而且大大的提高了其安全性,尤其对于复杂的管理,计算机能够充分发挥它的优越性。管理系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统能为用户提供充足的管理手段,对学生来说可以轻松的查阅自己在校的成绩及排名。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点。例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理并与世界接轨的重要条件。因此,开发这样一套成绩管理系统成为很有必要的事情。学生成绩管理系统提供了强大的学生成绩管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询等操作。2.2 项目开发的目标在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是小学、初中、高中甚至是很多大学生的学生成绩管理,基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大,越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。但是人工管理成绩档案具有效率低、查找麻烦等因素。在今天信息时代,这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。本系统主要信息流程为:接受班级信息,学生成绩录入,维护学生成绩,并交于信息维护,再把成绩存入数据库中。采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地找到所需的数据、资料及其它信息,使信息快速高效的运行。2.3项目提出的意义现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。学生信息管理系统是为本校开发的,本系统所采用的语言是c#语言,通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。2.4 国内外研究现状在教育技术水平比较发达的国家,前几年就已经开发成绩管理系统,但都是根据他们本国的实际情况来进行开发的,在语言文字、价格及对象的要求等方面都不符合我国的国情。在国内,虽然现在也有很多的成绩管理系统,但大多是封闭性的。三 、系统需求与分析3.1 可行性分析3.1.1. 管理上的可行性在传统的教务管理中,管理人员不得不花费大量的时间来处理学生信息,例如人为的查询、烦琐的学生个人资料和成绩、班级和系部的分配学生信息不能及时提供等,从而影响工作效率。因此教务管理人员迫切的需要一套学生成绩管理信息系统对日常学生成绩,个人信息信息进行处理和维护。历史经验的积累使教务现有的管理制度和管理方法比较科学,规章制度比较齐全,原始数据比较正确。这些为系统的建设提供了有效的制度保障3.1.2. 技术上的可行性本管理信息系统将采用技术成熟的vs2008做为前台开发工具。后台数据库采用微软公司的 microsoft sql server 2000数据库,它的灵活性,安全性,和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技的飞速发展使硬件的更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。3.1.3效益上的可行性本系统的使用能大大提高管理人员的工作效率,可以很好的去管理学生成绩,不用人为的去操作,大大减少工作时间。3.1.4.安全性分析1.用户权限安全性:系统设置了用户、管理员、两个操作级别。管理员能对所有模块进行各种操作,管理员能给用户分配权限。用户只能在管理员分配的权限下进行操作。2.系统的处理过程严格按照事务(transaction)处理机制执行,对异常操作通常发出警告然后取消操作。同时对输入首先进行合法性检查不合法则发出错误提示,最大限度的满足数据的安全,保证系统的稳定。3.2需求分析本系统主要实现对学生成绩信息的管理,主要功能为管理有关学生的成绩,课程和个人资料信息等。本系统结构分为用户登入模块和教务管理模块。用户登入模块管理用户登入的相关信息。教务管理模块分为学生管理,课程管理,成绩管理三个子模块分别各自管理相关的功能。本系统主要功能需求如下:1用户登录模块,主要用于用户的登录,如果用户名和密码错误,拒绝进入管理模块。2教务管理模块,该模块是本系统的核心所在。主要用于对教务信息的管理,其中包括: 学生管理模块:主要包括学生信息的添加、修改、删除和查询。课程管理模块:主要包括课程信息的添加、修改、删除和查询。成绩管理模块:主要包括成绩信息的添加、修改、删除和查询。根据需求分析总结的用户需求设计系统的体系功能模块图如下:教务管理信息系统 课程信息管理学生信息管理系统用户管理成绩信息管理成绩表删除成绩表添加成绩表修改密码设置管理管理员信息管理课程表添加班级信息删除班级信息修改课程表删除课程表修改班级信息添加系统功能模块图四、 任务概述4.1目标进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用c#语言独立地编写、调试应用程序和进行其它相关设计的技能。 4.2条件与限制设计阶段应该遵循的规则:(1)软件设计应当表现出层次结构,把软件分解成为多个子系统,并确定由各个子系统以及接口构成的软件结构。(2)设计应当是模块化的,软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。(3)设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。4.3运行环境软件基本运行环境为windows环境:开发工具:microsoft visual studio 20104.4数据库er图针对教务管理信息系统的需求,通过对学生管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构:学生基本信息,包括的数据项有:学生信息的添加、修改、删除和查询。课程基本信息,包括的数据项有:课程信息的添加、修改、删除和查询。成绩基本信息,包括的数据项有:成绩信息的添加、修改、删除和查询。 有了上面的数据结构,数据项和数据流程,我们就能对系统进行数据库设计。系统er图如下所示:用户名性别 学号n 管理员学生管理1 用户密码姓名m m 1 产生管理管理课程类型n n n 学号课程编号称学分课程编号关联成绩课程1 1 课程名称学分根据e-r图转换成关系模式如下:管理员(用户名,用户密码)学生(学号,姓名,性别)课程(课程名称,课程类型,课程编号,学分)成绩(学号,课程编号,成绩,学分)4.5数据库结构设计数据库设计中十分重视数据分析、抽象与概念结构的设计,概念结构的设计是整个数据库设计的关键。用于描述概念结构模型的工具是e-r模型。需求分析采用自顶向下的结构设计方法,而概念结构设计通常采用自底向上的设计方法,这种方法是首先定义各局部应用的概念结构,然后将他们集成,得到全局的概念结构。即从需求分析的dfd、dd 概念结构设计中的分e-r图 总e-r图。数据模型是数据库设计的核心和基础,概念模型是将现实世界中的客观对象首先抽象成为不依赖任何具体机器的信息结构。概念结构不是dbms支持的数据模型,而是概念级模型。然后再把概念模型转换为具体机器dbms支持的数据模型。因此,概念模型可以看成是显示世界到机器世界的一个过渡的中间层次。概念模型的特点:是对现实世界的抽象和概括;简洁、明晰、独立于机器,很容易理解;易于更动;容易向关系、网状、层次等各种数据模型转换。概念模型最常用的表示方法是实体-联系方法。以下为e-r图中最常用的符号:数据库包含以下表:学生基本信息表、课程信息表,成绩表。1)学生信息表包含学号,姓名,性别。用户表如(表一):表一 用户表编号字段名称数据类型说明1学号char(10)学号, 必填字段2姓名char(12)姓名3性别char(2)性别 2)课程表是对班级课程的设置。其包含班级的id,年级,课程id,课程名称。如下(表二)所示:表二 课程表编号字段名称数据类型说明1课程编号char(10)课程编号 必填字段2学分decimal(9)学分 3课程类型char(10)课程的编号4课程名称char(20)课程名称3)成绩表是对当前学生成绩的设置。其包含学号,成绩,课程编号,学分。如下(表三)所示: 表三 成绩表编号字段名称数据类型说明1学号char(10)学号 必填字段2成绩char(10)成绩 3课程编号char(10)课程编号 必填字段4学分char(10)学分五、界面设计系统实现如下:1) 登录窗体,如图所示:用户名:admin 密码:admin图12) 主界面如图示:图二托盘界面3) 课程管理设置页面:图三图四4) 学生管理界面:图五图六5)成绩管理界面:图七图八六、代码设计6.1登陆窗体代码 private void button1_click(object sender, eventargs e) /登录系统 string strname; string strpwd; strname = this.textbox1.text; strpwd = this.textbox2.text; if (strname = string.empty & strpwd = string.empty) messagebox.show(用户名或密码不能为空!请确认!); else if (strname = admin & strpwd = admin) form2 form = new form2(); form.showdialog(); else messagebox.show(用户名或密码不正确!请重新输入!); private void button2_click(object sender, eventargs e) /退出系统 this.close(); private void form1_formclosing(object sender, formclosingeventargs e) if (dialogresult.no = messagebox.show(确定要退出系统吗?, 提示, messageboxbuttons.yesno, messageboxicon.question) e.cancel = true; private void textbox2_keydown(object sender, keyeventargs e) if (e.keycode = keys.return) this.button1_click(null, null); 6.2主窗体代码 public partial class form2 : form public form2() initializecomponent(); private void 课程表查询toolstripmenuitem_click(object sender, eventargs e) form3 form3 = new form3(); form3.showdialog(); private void 课程表操作toolstripmenuitem_click(object sender, eventargs e) form4 form4 = new form4(); form4.showdialog(); private void 学生信息表查询toolstripmenuitem_click(object sender, eventargs e) form5 form5 = new form5(); form5.showdialog(); private void 学生信息表操作toolstripmenuitem_click(object sender, eventargs e) form6 form6 = new form6(); form6.showdialog(); private void 成绩表查询toolstripmenuitem_click(object sender, eventargs e) form7 form7 = new form7(); form7.showdialog(); private void 成绩表操作toolstripmenuitem_click(object sender, eventargs e) form8 form8 = new form8(); form8.showdialog(); private void 关于toolstripmenuitem_click(object sender, eventargs e) form9 form9 = new form9(); form9.showdialog(); private void form2_formclosing(object sender, formclosingeventargs e) application.exit(); 托盘实现代码 private void form2_resize(object sender, eventargs e) if (this.windowstate = formwindowstate.minimized) this.visible = false; this.notifyicon1.visible = true; private icon ico1 = new icon(1.ico); private icon ico2 = new icon(2.ico); private void notifyicon1_mousedoubleclick(object sender, mouseeventargs e) this.visible = true; this.windowstate = formwindowstate.normal; this.notifyicon1.visible = false; private void 显示主界面toolstripmenuitem_click(object sender, eventargs e) this.visible = true; this.windowstate = formwindowstate.normal; this.notifyicon1.visible = false; private void form2_load(object sender, eventargs e) this.notifyicon1.icon = ico1;/设置程序刚运行时显示在任务栏的图标 this.timer1.enabled = true;/将定时控件设为启用,默认为false; int i = 0; private void timer1_tick(object sender, eventargs e) if (i 10) messagebox.show(课程编号不能大于10个字符); else string sql = select * from 课程表 where 课程编号= + this.textbox1.text.tostring() + ; dataset ds = new dataset(); sqlconnection conn = new sqlconnection(server=(local);user id=sa;pwd=;database=学生管理); sqlcommand cm = new sqlcommand(sql, conn); sqldataadapter da = new sqldataadapter(cm); da.fill(ds); this.datagridview1.datasource = ds.tables0; conn.close(); 6.4课程表操作代码 /定义数据库连接 sqlconnection conn = new sqlconnection(data source=.;initial catalog=学生管理;integrated security=true); private void bind() /绑定数据 sqldataadapter da = new sqldataadapter(select * from 课程表, conn); dataset ds = new dataset(); da.fill(ds, allusers); this.datagridview1.datasource = ds.tablesallusers; private void button1_click(object sender, eventargs e) /添加一行新数据 if (textbox1.text = ) messagebox.show(请输入课程编号); else if (textbox1.text.length 10) messagebox.show(课程编号不能大于10个字符); else if (check() != true) messagebox.show(该课程课程编号已经存在); else conn.open(); string cno = this.textbox1.text.tostring(); string cname = this.textbox2.text.tostring(); string ctype = this.textbox3.text.tostring(); string ccredit = this.textbox4.text.tostring(); string sql = insert into 课程表 values( + cno + , + cname + , + ctype + , + ccredit + ); sqlcommand cmd = new sqlcommand(sql, conn); cmd.executenonquery(); this.bind(); conn.close(); messagebox.show(添加成功!); private bool check() sqlconnection conn = new sqlconnection(server=(local);user id=sa;pwd=;database=学生管理); string sql = select * from 课程表 where 课程编号= + this.textbox1.text.tostring() + ; conn.open(); dataset ds = new dataset(); sqlcommand cmd = new sqlcommand(sql, conn); sqldatareader sread ; sread = cmd.executereader(); if (sread.read() = true) return false; else return true; private void button2_click(object sender, eventargs e) /修改指定行的数据 if (textbox1.text = ) messagebox.show(请输入课程编号); else if (textbox1.text.length 10) messagebox.show(课程编号不能大于10个字符); else conn.open(); string cno = this.textbox1.text.tostring(); string cname = this.textbox2.text.tostring(); string ctype = this.textbox3.text.tostring(); string ccredit = this.textbox4.text.tostring(); string sql = update 课程表 set 课程名称= + cname + ,课程类型= + ctype + ,学分= + ccredit + where 课程编号= + cno + ; sqlcommand cmd = new sqlcommand(sql, conn); cmd.executenonquery(); this.bind(); conn.close(); messagebox.show(修改成功!); private void button3_click(object sender, eventargs e) /删除指定的行 if (textbox1.text = ) messagebox.show(请输入课程编号); else if (textbox1.text.length 10) messagebox.show(课程编号不能大于10个字符); else if (messagebox.show(确定要删除这些数据吗?, 警告, messageboxbuttons.yesno, messageboxicon.warning) = dialogresult.yes) conn.open(); string cno = this.textbox1.text.tostring(); string username = this.textbox1.text.tostring(); string sql = delete from 课程表 where 课程编号= + cno + ; sqlcommand cmd = new sqlcommand(sq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年离婚财产分割及孩子抚养协议书
- 施工劳务承包合同协议书样本
- 产业孵化基地入住协议
- 使用授权协议书要点解析
- 房屋互换合同格式
- 员工实习期劳务协议
- 中外专有技术转让协议
- 标准版委托检验检测协议书
- 5.2 凝聚价值追求 (大单元教学设计) 2024-2025学年统编版道德与法治九年级上册
- 建筑项目施工合同书范本
- 浮动码头施工方案
- Poka-Yoke防错技术(完整版)
- 保安交接班记录表(2)
- 神明—EZflame火焰检测系统
- 个人简历求职简历课件.ppt
- 2018年江苏高考满分作文:在母语的屋檐下
- 新青岛版五四制2021-2022四年级科学上册实验指导
- 小学四年级音乐课程标准
- 民用机场竣工验收质量评定标准
- 双向细目表和单元测试卷及组卷说明
- 离子色谱法测定空气中二氧化硫
评论
0/150
提交评论