学生成绩管理系统_第1页
学生成绩管理系统_第2页
学生成绩管理系统_第3页
学生成绩管理系统_第4页
学生成绩管理系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、目录摘要 . 2 关键词: . 2 一、引言 . 3 1.1 项目开发背景 . 3 1.2 项目开发的目标 . 3 1.3 项目提出的意义 . 3 二、常用的软件开发方法 . 4 2.1 结构化系统开发方法 . 4 2.2 原型开发方法 . 4 2.3 面向对象开发方法 . 5 2.4 visualstudio开发方法 . 6 2.5 软件开发方法的选择 . 7 三、学生成绩管理系统的概述 . 8 3.1 学生成绩管理系统的简介 . 8 3.2 学生成绩管理系统的用户需求 . 8 四、学生成绩管理系统的分析和设计 . 9 4.1 学生成绩管理系统的需求分析 . 9 4.2 学生成绩管理系统的数

2、据库设计 . 10 五、学生成绩管理系统的具体实现 . 12 5.1 开发环境的选择 . 12 5.2 学生成绩管理系统的功能介绍 . 12 5.3 学生成绩管理系统的具体实现. 13 5.4 列举部分代码 . 15 总结 . 25 致谢 . 26 参考文献: . - 1 - 学生成绩管理系统摘要学生成绩管理系统是典型的信息管理系统, 其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强. 数据安全性好的库。而对于后者则要求应用程序功能完备, 易使用等特点。经过分析如此情况 , 我们使用 microsoft公司的 visualstudio开

3、发工具 , 利用其提供的各种面向对象的开发工具, 尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象, 首先在短时间内建立系统应用原型, 然后 , 对初始原型系统进行需求迭代, 不断修正和改进 , 直到形成用户满意的可行系统。关键词:sql2000,c#, 数据一致性 , 信息管理系统。abstract : student achievement management system is representative information management system (mis) , whose development mainly consists of two aspects:

4、building and maintain of backward database and development of foreward application program.to the former, we must build a database who has great data-consistence,great data-completion and good data-security. but to the later,that the application program has enough functions and is case to use is req

5、uired. after analysing so-called condition, we decide to use visualstudio of microsoft corporation, exploitation implement, utilizing the implement who provides all kinds of face to the object, especially the data window of intellectualized which is able to controlit by concise and convenient,first,

6、we should build the systerm application prototype in a short time,then, carry out the system needing iteration , amending and improving unceasingly, until the consumer satisfied with the viable system which is formed. key words:sql2000,c# , data window , information management system. 一、引言1.1 项目开发背景

7、几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理. 但手工管理具有效率底、易出错、对学校的管理提供决策信息较为困难等缺点 . 我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生成绩管理系统. 采用软件工程的指导方法,选用c/s模式设计的方案,应用sql server 2000 数据库管理系统, c#程序设计语言 ,visual studio.net 2003开发工具等开发出

8、来的基于windows 系列的学生学籍管理系统. 该系统面向各部门和全体学生,实现对学生成绩情况、学籍情况等的计算机管理。系统支持学生查询自己的学籍信息和成绩信息,还可以修改自己的密码,而教师可以对学生的学籍信息和成绩信息进行添加、删除和修改等的操作, 同时本系统支持报表的输出打印功能。减少了部门之间工作的中间环节,提高了跨部门管理的效率。1.2 项目开发的目标建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平 . 帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化 . 1.3 项目提出的意义现在我国的大中专院校的学生成绩管理水平普遍

9、不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力. 在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替. 如果本系统能被学校所采用, 将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率 . 二、常用的软件开发方法2.1 结构化系统开发方法2.1.1 结构化系统开发的基本思想用系统工程的思想和工程化的方法,按照用户至上的原则,采取结构化、模块化、自顶向下的方法对系统进行分析与设计。2.1.2 结构化系统开发方法的特点1强调用户的参与。2深入调查研究。3使用结构化、模块化方法。4严格按照阶段进行。5开发过程

10、工程化。2.1.3 结构化系统开发方法的阶段划分1、系统规划阶段根据用户的系统开发要求,初步调查,明确问题,然后进行可行性研究。2、系统分析阶段系统分析阶段的主要任务是分析业务流程,分析数据与数据流程,提出新系统的逻辑方案。3、系统设计阶段系统时间阶段的主要任务是总体结构设计和模块设计。根据设计要求选择合适的软硬件设备,进行代码、用户界面、文件、数据库、网络结构的设计。4、系统实施阶段系统实施阶段的主要任务包括编程、操作人员培训以及数据准备, 然后投入试运行。5、系统运行阶段系统运行阶段的主要任务是进行系统的日常运行管理、评价、审计工作。2.2 原型开发方法2.2.1 原型的概念原型开发方法首

11、先有用户提出开发要求,开发人员识别和归纳用户需求, 根据识别、归纳的结果,构造出一个原型,然后同用户一起评价这个原型。如果根本不行,则重新构造原型;如果不满意,则修改原型,直到用户满意为此。原型按照建立的目的不同可分为抛弃型原型和增量渐进型原型。2.2.2 抛弃型原型抛弃型原型主要用于验证软件需求以及设计方案和算法,这是当前使用较广泛的原型。抛弃型原型开发模型如下:调整需求图 抛弃型原型开发模型2.2.3 增量渐进型原型与抛弃型原型不同,建立增量渐进型原型的主要目的是要开发目标系统,而不是为了满足需求和设计验证的需要。2.2.4 原型开发方法的特点1原型方法更符合人们认识事物的

12、规律,因而更容易被人们普遍接受。2原型方法将模拟的手段引入系统分析的初期,沟通了人们的思想,缩短了用户和分析人员之间的距离,解决了结构化方法中最难于解决的一个环节。3允许利用最新的软件工具,使系统开发的时间、费用大大减少,效率、技术等都大大提高。2.3 面向对象开发方法2.3.1 面向对象开发方法的基本思想面向对象的方法认为客观世界是由各种各样的对象组成的,每个对象都有各自的内部状态和运动规律, 不同对象之间通过消息传送相互作用和联系就构成了各种不同的系统。2.3.2 面向对象系统的特征决定需求决定需求决定需求决定需求1抽象2继承性3多态性4封装性2.3.3 面向对象设计的步骤1定义问题。2为

13、现实世界问题域的软件实现一个不严格的概括描述。3按以下子步骤把方法严格化:弄清对象及属性;弄清可能被施于对象的操作;利用表达对象与操作的关系建立每个对象的接口;决定详细设计问题,从而给出对象的实现描述。4递归地重复步骤 1 到 3,以得到完整的设计。面向对象设计方法将数据设计、结构设计和过程设计三类设计元素结合起来。2.4 visualstudio开发方法2.4.1 visualstudio开发方法的基本思想如果在对系统调查后,系统开发过程的每一步都可以形成一定的对应关系,则可以借助于特定的 visualstudio工具软件来实现上述一个个的系统开发过程。2.4.2 visualstudio开

14、发方法的特点解决了客观世界到软件系统的直接影射的问题;使结构化方法更加实用;自动检测方法大大提高了软件的质量;使原型方法和面向对象方法付诸实施;简化了软件管理与维护;使开发者从繁琐的分析设计图表和程序编写工作中解放出来;软件成分的可重用性提高;产生出统一的标准化的系统文档;使软件开发的速度得到很大的提高。2.5 软件开发方法的选择综上所说 , 我这次的系统采用的方法是结构化系统开发方法和原型开发方法相结合。系统开发前采用结构化系统开发方法,系统开发的具体实施采用原型开发方法。三、学生成绩管理系统的概述3.1 学生成绩管理系统的简介学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用. 由于

15、各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,已不能适应时代的发展。学生成绩管理系统基于window98的开发研制, 该软件针对学生成绩及其数据特点,设计了系统维护子系统、数据处理子系统、报表打印子系统,这几个子系统包括了学生成绩数据管理的主要业务工作,可以全面实现对学生成绩的输入、查询、排序、统计和打印等业务的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。适

16、用于各类大中专院校、中小学校现代化教学的综合管理。3.2 学生成绩管理系统的用户需求要设计一个学生成绩管理系统,其功能包括:用户设置:管理员增加用户、删除用户、修改密码等工作;成绩输入:根据学生的学号,课程输入该学生的成绩;增加课程:当学生课程发生改变时,可以对该学生的课程信息进行修改;学生成绩表:通过该表单可以实现对学生成绩的添加、编辑、保存、删除等操作,同时显示相关操作的数据显示;学生成绩查询:通过该表单用户可以进行成绩最高查询、总分最高查询、不及格查询、三好学生查询等操作。同时显示相关操作的数据显示;学生成绩排序:让用户对学生成绩进行学号、平均分、单科分排序等操作;四、学生成绩管理系统的

17、分析和设计4.1 学生成绩管理系统的需求分析通过对用户需求的分析, 我们可以分析出该学生成绩管理系统大致可以分为四个系统:系统维护子系统、数据处理子系统、报表打印子系统。现在对这三个系统的流程做具体说明:4.1.1 登陆系统图 4.1.1 登陆系统4.1.2 子系统图 4.1.2 子系统用户信息维护用户添加用户信息修改用户删除用户登陆修改密码学生信息界面管理员界面用户信息维护学生信息按学号查询按课程查询管理员界面按学号查询按课程查询总查询添加修改成绩删除4.1.3 合并图图 4.1.3 合并图4.2 学生成绩管理系统的数据库设计由于考虑到本系统是应用在单机系统上,另外根据其规模,我们只建立起一

18、个数据库,在此数据库基础上建立起如下表:4.2.1 学生课程表学生信息管理员密码修改退出按课程按课程添加成绩成绩查询学生成绩用户信息修改成绩成绩排序课程查询登陆系统学生成绩管理系统课程添加用户信息用户信息添加用户信息添加用户信息删除学生管理员表 4.2.1 学生课程表4.2.2 课程表:表 4.2.2 课程表4.2.3 用户清单表:表 4.2.3 用户清单表五、学生成绩管理系统的具体实现5.1 开发环境的选择目前市场上可供选择的开发工具很多,不同的开发工具有各自的特点,适合开发不同的应用系统。下面简单介绍一些常用的软件开发工具。一、传统的程序设计语言如 basic 、c 、pascal 、fo

19、rtran 等二、第四代语言如 visual foxpro、power builder等都具有第四代语言的很多特点;另一类与第四代语言相似的开发工具,如visual c# 、visual basic、delphi 等,虽然使用的传统的程序设计语言,但是它们提供了帮助用户程序框架的能力。可快速生成数据库应用程序。三、面向对象的程序设计语言如 c#、object pascal、java、smalltalk 等。四、c/s、b/s 应用开发工具如 visual studio 系列, delphi 、c+ builder等支持 c/s开发; 支持 b/s 开发的技术有 cgi、php 、jsp等。五、

20、可视化开发工具如微软的 visual studio系列、 inprise公司的 delphi 、c+ builder等,另外inprise公司已将 delphi 开发环境移植到 linux 操作系统下。综上所说,以及结合我已经学的知识,我选择了visual c# 作为我本次开发的环境。5.2 学生成绩管理系统的功能介绍功能要求用户注册及登陆,用户合法性审核,用户密码修改。系统权限管理:管理员可以录入、修改、添加数据,修改一般用户只能查看。学生成绩的录入,修改,删除。条件查询1)按学号查询某名学生成绩。2)按课程查询学生成绩。3)按专业查询学生成绩。排序班级内部:分别按学号,姓名,分数排序。班级

21、外部:分别按学号,姓名,分数排序。界面要求页面设计要求美观大方,操作简便,功能明确。一、系统维护子系统系统维护子系统提供对整个学生成绩管理系统的管理功能。其主要提供用户设置的相关功能。用户设置主要包括:修改密码、添加用户、删除用户。修改用户:用户可以对密码进行修改。添加用户:用户可以添加新的用户。删除用户:用户可以删除一些用户。二、数据处理子系统数据处理子系统是学生成绩管理系统的一个重要组成部分,是提高工作效率和管理质量的重要途径。在这部分中,用户可以进行学生成绩的录入、修改、删除等操作,并可以对成绩进行查询、排序的操作。5.3 学生成绩管理系统的具体实现现在使用 visual c# 实现学生

22、成绩管理系统。新建一个项目,再建立数据库成绩信息管理,然后建立表班级、成绩信息、课程设置、密码、学生档案、用户。在以上工作做好的情况下,使用表单、主程序、菜单技术等来实现。5.3.1 登陆界面如下:图 5.3.1 登陆界面5.3.2 修改密码界面设计如下:图 5.3.2 修改密码界面5.3.3 管理员界面设计如下:图 5.3.3 管理员界面5.3.4 学生信息界面设计如下:图 5.3.4 学生信息界面5.3.5 用户信息维护界面设计如下:图 5.3.4 用户信息维护界面5.4 列举部分代码5.4.1 自定义类public class linkdatabase private string st

23、rsql; private string connectionstring=workstation id=localhost;integrated security=sspi;database=xscj; private sqlconnection myconnection; private dataset ds=new dataset(); private sqldataadapter da; public linkdatabase() 定义查询类public dataset selectdatabase(string tempstrsql,string temptablename) thi

24、s.strsql=tempstrsql; this.myconnection=new sqlconnection(connectionstring); this.da=new sqldataadapter(this.strsql,this.myconnection); this.ds.clear(); this.da.fill(ds,temptablename); return ds; 定义修改类public dataset updatedatabase(dataset changeddataset,string tablename) this.myconnection=new sqlconn

25、ection(connectionstring); this.da=new sqldataadapter(this.strsql,this.myconnection); this.da.update(changeddataset,tablename); return changeddataset; 5.4.2 学生登陆界面linkdatabase link=new linkdatabase(); string sendtablename= 用户清单 ; this.ds=link.selectdatabase(sendstrsql,sendtablename); this.mytable=ds.

26、tables0; for (int i=0;imytable.rows.count;i+) this.myrow=mytable.rowsi; if(myrow0.tostring().trim()=this.textbox1.text.tostring().trim()&myrow4.tostring().trim()=this.textbox2.text.tostring().trim() blcanlogin=true; struser=myrow0.tostring().trim(); strdepartment=myrow1.tostring().trim(); strqx=

27、myrow5.tostring ().trim (); if (strqx= 老师) form4 fim1=new form4(); fim1.show(); this.hide(); else form3 fim1=new form3(); fim1.show(); this.hide(); return; messagebox.show(你的输入有误 !); return; 5.4.3 修改密码代码:for (int i=0;imytable.rows.count;i+) this.myrow=mytable.rowsi; if(myrow0.tostring().trim()=this.

28、textbox1.text.tostring().trim()&myrow4.tostring().trim()=this.textbox2.text.tostring().trim() string struser = textbox1.text.tostring (); string strpass = textbox2.text.tostring (); string connstring=workstation id=localhost;integrated security=sspi;database=xscj;sqlconnection conn = new sqlconn

29、ection(connstring); conn.open(); sqlcommand cmd = new sqlcommand(); cmd.commandtype =system.data .commandtype .text ; cmd.commandtext =update 用户清单set 密码=+this.textbox3 .text+ where 学号=+struser+; cmd.connection = conn; try cmd.executenonquery (); conn.close(); catch(exception er) messagebox.show (er.

30、tostring (); return; messagebox.show ( 密码修改成功 ,提示); textbox1.text=; textbox2.text=; textbox3.text=; textbox4.text=; return; 5.4.4 学生个人信息自动显示个人成绩datagrid1.datasource=this.scoretable; string sql=select a.学号 ,a.姓名 ,a.专业,c.课程名 ,b.成绩 from 用户清单a,学生课程b, 课 程c where(a. 学 号 =b. 学 号 )and(b. 课 程 号 =c. 课 程 号 )an

31、d(a. 学 号=+form1.struser+); stringconnstring=workstationid=localhost;integrated security=sspi;database=xscj; sqlconnection conn = new sqlconnection(connstring); conn.open(); da=new sqldataadapter(sql,conn); this.scoretable.clear(); da.fill(this.scoretable); 根据班级(专业)查询string sql=select a.学号,a.姓名,a.专业,

32、c.课程名 ,b.成绩 from 用户清单a,学生课程b,课程c where(a. 学 号 =b. 学 号 )and(b. 课 程 号 =c. 课 程 号 )and(c. 课 程 名like %+textbox1.text.trim() +%)and(a.专业 like %+textbox2.text.trim()+%); string connstring=workstation id=localhost;integrated security=sspi;database=xscj; sqlconnection conn = new sqlconnection(connstring); co

33、nn.open(); da=new sqldataadapter(sql,conn); this.scoretable.clear();/ 清空表格,重新填充数据da.fill(this.scoretable); textbox1.text=; textbox2.text=; if(this.scoretable.rows.count=0) messagebox.show( 查询的课程或专业不存在,提示); return; 5.4.5 管理员界面成绩修改代码:if(this.cjtable.rows.count=0) messagebox.show( 该门课程或该学生成绩单为空,提示,mess

34、ageboxbuttons.ok,messageboxicon.stop); return; if(textbox6.text.trim()=) messagebox.show(必须输入学生成绩,提示,messageboxbuttons.ok,messageboxicon.stop); return; string connstring=workstation id=localhost;integrated security=sspi;database=xscj; sqlconnection conn = new sqlconnection(connstring); conn.open();

35、sqlcommand cmd=conn.createcommand(); string studentnum=datagrid1datagrid1.currentcell.rownumber,0.tostring().trim(); cmd.commandtext=update 学生课程set 成绩 =+textbox6.text.trim()+ where 编号=+studentnum+; cmd.executenonquery(); this.cjtable.clear(); da.fill(this.cjtable); messagebox.show( 你以成功修改该生成绩 ,提示);

36、成绩删除代码: if(this.cjtable.rows.count=0) return; string deletexh=datagrid1datagrid1.currentcell.rownumber,1.tostring().trim(); string deletekch=datagrid1datagrid1.currentcell.rownumber,4.tostring().trim(); string deletebh=datagrid1datagrid1.currentcell.rownumber,0.tostring().trim(); string msg=是否确认删除已选

37、编号 :+deletebh+ ?; dialogresult result=messagebox.show(msg,删除成绩,messageboxbuttons.okcancel); if(result=dialogresult.ok) string connstring=workstation id=localhost;integrated security=sspi;database=xscj; sqlconnection conn = new sqlconnection(connstring); conn.open(); sqlcommand cmd=conn.createcommand

38、(); cmd.commandtext=delete from 学 生 课 程where ( 学 号 =+deletexh+)and(课 程 号=+deletekch+)and(编号=+deletebh+); cmd.executenonquery(); this.cjtable.clear(); da.fill(this.cjtable); messagebox.show( 成功删除信息 ,提示); 添加成绩代码:判断学生成绩是否存在string sendstrsql = select * from 学生课程 ; linkdatabase link=new linkdatabase(); s

39、tring sendtablename= 学生课程 ; this.ds=link.selectdatabase(sendstrsql,sendtablename); this.mytable=ds.tables0; for (int i=0;imytable.rows.count;i+) this.myrow=mytable.rowsi; if(myrow1.tostring().trim()=this.textbox4.text.tostring().trim()&myrow2.tostring().trim()=kch.tostring() messagebox.show( 该生的

40、该门成绩以存在 ,提示); 添加string comm1 = insert into 课程 (课程名 ) values(课程名); this.sqlcommand6 = new system.data.sqlclient.sqlcommand (); this.sqlcommand6.commandtype = system.data.commandtype.text ; this.sqlcommand6.commandtext = comm1; this.sqlcommand6.connection = conn; this.sqlcommand6.parameters.add( 课程名 ,

41、system.data.sqldbtype.char ); this.sqlcommand6.parameters0.value = this.textbox9.text ; this.sqlcommand6 .executenonquery (); string sql1=select c.课程号 from 课程 c where 课程名 =+this.textbox9.text+; this.sqlcommand6.commandtext = sql1; sqldatareader read1 = this.sqlcommand6.executereader(); int courseid

42、= 0 ; if(read1.read() courseid = read1.getint32(0); read1.close(); string commm1 = insert into 学生课程(课程号 ,学号,成绩) values(课程号 ,学号,成绩); this.sqlcommand7 = new system.data.sqlclient.sqlcommand (); this.sqlcommand7.commandtype = system.data.commandtype.text ; this.sqlcommand7.commandtext = commm1; this.sq

43、lcommand7.connection = conn; this.sqlcommand7.parameters.add( 课程号 ,system.data.sqldbtype.int ); this.sqlcommand7.parameters0.value =courseid; this.sqlcommand7.parameters.add( 学号,system.data.sqldbtype.char ); this.sqlcommand7.parameters1.value = this.textbox4.text ; this.sqlcommand7.parameters.add( 成

44、绩,system.data.sqldbtype.char ); this.sqlcommand7.parameters2.value = this.textbox10.text ; this.sqlcommand7 .executenonquery (); string commn1 = select * from 用户清单 ; this.sqlcommand8 = new system.data.sqlclient.sqlcommand (); this.sqlcommand8.commandtype = system.data.commandtype.text ; this.sqlcommand8.commandtext = commn1; this.sqlco

温馨提示

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

评论

0/150

提交评论