《毕业设计学生成绩管理系统设计及介绍1.doc》由会员分享,可在线阅读,更多相关《毕业设计学生成绩管理系统设计及介绍1.doc(29页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)课题学生成绩管理系统类 别毕业设计说明 毕业设计总结 毕业设计论文系 科电子工程系专 业应用电子技术 应用电子技术/应用英语电气自动化技术 电气自动化技术/市场营销计算机应用技术 计算机应用技术/广告设计与策划班 级姓 名完成日期指导教师学生成绩管理系统摘 要学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析如此情况,我们使用Microsoft公司的visualstudio开发工具,利用其提供的各种面向对象的开
2、发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键词:sql2000,c#,数据一致性,信息管理系统。Student achievement management systemAbstractStudent achievement management system is representative information management system (MIS) , whose development mainly consists of two aspect
3、s: 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
4、required. 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,firs
5、t,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. 目 录摘要IAbstrac
6、tII目 录III1 引言11.1 项目开发背景11.2 项目开发的目标11.3 项目提出的意义12 常用的软件开发方法22.1 结构化系统开发方法22.2 原型开发方法32.3 面向对象开发方法42.4 visualstudio开发方法42.5 软件开发方法的选择53 学生成绩管理系统的概述63.1 学生成绩管理系统的简介63.2 学生成绩管理系统的用户需求64 学生成绩管理系统的分析和设计74.1 学生成绩管理系统的需求分析74.2 学生成绩管理系统的数据库设计85学生成绩管理系统的具体实现105.1 开发环境的选择105.2学生成绩管理系统的功能介绍105.3学生成绩管理系统的具体实现1
7、15.4列举部分代码:136 总结20参考文献- 1 -致谢- 2 -1 引言1.1 项目开发背景 几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理.但手工管理具有效率底、易出错、对学校的管理提供决策信息较为困难等缺点.我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生成绩管理系统.采用软件工程的指导方法,选用C/S模式设计的方案,应用SQL Server 2000数据库管
8、理系统,C#程序设计语言,Visual Studio.NET 2003开发工具等开发出来的基于WINDOWS系列的学生学籍管理系统.该系统面向各部门和全体学生,实现对学生成绩情况、学籍情况等的计算机管理。系统支持学生查询自己的学籍信息和成绩信息,还可以修改自己的密码,而教师可以对学生的学籍信息和成绩信息进行添加、删除和修改等的操作,同时本系统支持报表的输出打印功能。减少了部门之间工作的中间环节,提高了跨部门管理的效率。1.2 项目开发的目标 建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化
9、和自动化. 1.3 项目提出的意义 现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力.在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替.如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率. 2 常用的软件开发方法2.1 结构化系统开发方法2.1.1 结构化系统开发的基本思想用系统工程的思想和工程化的方法,按照用户至上的原则,采取结构化、模块化、自顶向下的方法对系统进行分析与设计。2.1.2 结构化系统开发方法的特点1强调用户的参与。2
10、深入调查研究。3使用结构化、模块化方法。4严格按照阶段进行。5开发过程工程化。2.1.3 结构化系统开发方法的阶段划分1 系统规划阶段 根据用户的系统开发要求,初步调查,明确问题,然后进行可行性研究。2 系统分析阶段 系统分析阶段的主要任务是分析业务流程,分析数据与数据流程,提出新系统的逻辑方案。3 系统设计阶段 系统时间阶段的主要任务是总体结构设计和模块设计。根据设计要求选择合适的软硬件设备,进行代码、用户界面、文件、数据库、网络结构的设计。4 系统实施阶段 系统实施阶段的主要任务包括编程、操作人员培训以及数据准备,然后投入试运行。5 系统运行阶段 系统运行阶段的主要任务是进行系统的日常运行
11、管理、评价、审计工作。2.2 原型开发方法2.2.1 原型的概念原型开发方法首先有用户提出开发要求,开发人员识别和归纳用户需求,根据识别、归纳的结果,构造出一个原型,然后同用户一起评价这个原型。如果根本不行,则重新构造原型;如果不满意,则修改原型,直到用户满意为此。原型按照建立的目的不同可分为抛弃型原型和增量渐进型原型。2.2.2 抛弃型原型抛弃型原型主要用于验证软件需求以及设计方案和算法,这是当前使用较广泛的原型。抛弃型原型开发模型如下:决定需求决定需求 决定需求决定需求调整需求图2.2.2.1 抛弃型原型开发模型2.2.3 增量渐进型原型与抛弃型原型不同,建立增量渐进型原型的主要目的是要开
12、发目标系统,而不是为了满足需求和设计验证的需要。2.2.4 原型开发方法的特点1原型方法更符合人们认识事物的规律,因而更容易被人们普遍接受。2原型方法将模拟的手段引入系统分析的初期,沟通了人们的思想,缩短了用户和分析人员之间的距离,解决了结构化方法中最难于解决的一个环节。3允许利用最新的软件工具,使系统开发的时间、费用大大减少,效率、技术等都大大提高。2.3 面向对象开发方法2.3.1 面向对象开发方法的基本思想面向对象的方法认为客观世界是由各种各样的对象组成的,每个对象都有各自的内部状态和运动规律,不同对象之间通过消息传送相互作用和联系就构成了各种不同的系统。2.3.2 面向对象系统的特征1
13、抽象2继承性3多态性4封装性2.3.3面向对象设计的步骤1定义问题。2为现实世界问题域的软件实现一个不严格的概括描述。3按以下子步骤把方法严格化:弄清对象及属性;弄清可能被施于对象的操作;利用表达对象与操作的关系建立每个对象的接口;决定详细设计问题,从而给出对象的实现描述。4递归地重复步骤1到3,以得到完整的设计。面向对象设计方法将数据设计、结构设计和过程设计三类设计元素结合起来。2.4 visualstudio开发方法2.4.1 visualstudio开发方法的基本思想如果在对系统调查后,系统开发过程的每一步都可以形成一定的对应关系,则可以借助于特定的visualstudio工具软件来实现
14、上述一个个的系统开发过程。2.4.2 visualstudio开发方法的特点解决了客观世界到软件系统的直接影射的问题;使结构化方法更加实用;自动检测方法大大提高了软件的质量;使原型方法和面向对象方法付诸实施;简化了软件管理与维护;使开发者从繁琐的分析设计图表和程序编写工作中解放出来;软件成分的可重用性提高;产生出统一的标准化的系统文档;使软件开发的速度得到很大的提高。2.5 软件开发方法的选择综上所说,我这次的系统采用的方法是结构化系统开发方法和原型开发方法相结合。系统开发前采用结构化系统开发方法,系统开发的具体实施采用原型开发方法。3 学生成绩管理系统的概述3.1 学生成绩管理系统的简介学生
15、成绩管理系统对学校加强学生成绩管理有着极其重要的作用.由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,已不能适应时代的发展。 学生成绩管理系统基于Window98的开发研制,该软件针对学生成绩及其数据特点,设计了系统维护子系统、数据处理子系统、报表打印子系统,这几个子系统包括了学生成绩数据管理的主要业务工作,可以全面实现对学生成绩的输入、查询、排序、统计和打印等业务的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而
16、使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。适用于各类大中专院校、中小学校现代化教学的综合管理。3.2 学生成绩管理系统的用户需求要设计一个学生成绩管理系统,其功能包括: 用户设置:管理员增加用户、删除用户、修改密码等工作;成绩输入:根据学生的学号,课程输入该学生的成绩;增加课程:当学生课程发生改变时,可以对该学生的课程信息进行修改;学生成绩表:通过该表单可以实现对学生成绩的添加、编辑、保存、删除等操作,同时显示相关操作的数据显示;学生成绩查询:通过该表单用户可以进行成绩最高查询、总分最高查询、不及格查询、三好学生查询等操作。同时显示相关操作的数据显示;学生成绩排序:让用户对学生成
17、绩进行学号、平均分、单科分排序等操作;4 学生成绩管理系统的分析和设计4.1 学生成绩管理系统的需求分析通过对用户需求的分析,我们可以分析出该学生成绩管理系统大致可以分为四个系统:系统维护子系统、数据处理子系统、报表打印子系统。现在对这三个系统的流程做具体说明:4.1.1 登陆系统修改密码学生信息界面用户登陆管理员界面用户信息维护图4.1.1登陆系统4.1.2子系统按学号查询学生信息按课程查询删除按学号查询添加管理员界面按课程查询修改成绩总查询用户添加用户信息维护用户信息修改用户删除图4.1.2子系统4.1.3 合并图学生信息管理员密码修改退 出按课程按课程添加成绩成绩查询学生成绩用户信息修改
18、成绩成绩排序课程查询登陆系统学生成绩管理系统课程添加用户信息用户信息添加用户信息添加用户信息删除学生管理员图4.1.3合并图4.2 学生成绩管理系统的数据库设计由于考虑到本系统是应用在单机系统上,另外根据其规模,我们只建立起一个数据库,在此数据库基础上建立起如下表: 4.2.1学生课程表表4.2.1 学生课程表4.2.2课程表:表4.2.2 课程表4.2.3用户清单表:表4.2.3 用户清单表5学生成绩管理系统的具体实现5.1 开发环境的选择目前市场上可供选择的开发工具很多,不同的开发工具有各自的特点,适合开发不同的应用系统。下面简单介绍一些常用的软件开发工具。一、传统的程序设计语言如Basi
19、c、C、Pascal、Fortran等二、第四代语言如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学生成绩管理系统的功能介绍功能要求l 用户注册及登陆,用户合法性审核,用户密码修改。l 系统权限管理:管理员可以录入、修改、添加数据,修改一般用户只能查看。l 学生成绩的录入,修改,删除。l 条件查询1)按学号查询某名学生成绩。2)按课程查询学生成绩。3)按专业查询学生成绩。l 排序班级内部:分别按学号,姓名,分数排序。班级外部
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 strSQL;private str
23、ing 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)this.strSQL=tempstrsq
24、l;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 SqlConnection(connectionstring);
25、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.Tables0;for (int i=0;imytable.Rows
26、.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=myrow5.ToString ().Trim ();if (strqx=老师) Form
27、4 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.textBox1.Text.ToString().Trim()&myrow4.ToString().Tri
28、m()=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 SqlConnection(connstring);conn.Open(); SqlCommand cmd = new SqlCo
29、mmand(); cmd.CommandType =System.Data .CommandType .Text ;cmd.CommandText =update 用户清单 set 密码=+this.textBox3 .Text+ where 学号=+strUser+;cmd.Connection = conn; trycmd.ExecuteNonQuery ();conn.Close();catch(Exception er)MessageBox.Show (er.ToString ();return;MessageBox.Show (密码修改成功,提示);textBox1.Text=;te
30、xtBox2.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.课程号)and(a.学号 =+Form1.strUser+);string connstring=workstation id=localhost;integrated security=ssp
31、i;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.专业,c.课程名,b.成绩 from 用户清单 a,学生课程 b,课程 c where(a.学号=b.学号)and(b.课程号=c.课程号)and(c.课程名 like %+textBox
32、1.Text.Trim() +%)and(a.专业 like %+textBox2.Text.Trim()+%);string connstring=workstation id=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);tex
33、tBox1.Text=;textBox2.Text=;if(this.scoreTable.Rows.Count=0) MessageBox.Show(查询的课程或专业不存在,提示); return;5.4.5管理员界面成绩修改代码:if(this.cjTable.Rows.Count=0)MessageBox.Show(该门课程或该学生成绩单为空,提示,MessageBoxButtons.OK,MessageBoxIcon.Stop);return;if(textBox6.Text.Trim()=)MessageBox.Show(必须输入学生成绩,提示,MessageBoxButtons.O
34、K,MessageBoxIcon.Stop);return;string connstring=workstation id=localhost;integrated security=sspi;database=xscj;SqlConnection conn = new SqlConnection(connstring);conn.Open();SqlCommand cmd=conn.CreateCommand();string studentNum=dataGrid1dataGrid1.CurrentCell.RowNumber,0.ToString().Trim();cmd.Comman
35、dText=update 学生课程 set 成绩=+textBox6.Text.Trim()+ where 编号=+studentNum+;cmd.ExecuteNonQuery();this.cjTable.Clear();da.Fill(this.cjTable);MessageBox.Show(你以成功修改该生成绩,提示); 成绩删除代码:if(this.cjTable.Rows.Count=0)return;string deletexh=dataGrid1dataGrid1.CurrentCell.RowNumber,1.ToString().Trim();string delete
36、kch=dataGrid1dataGrid1.CurrentCell.RowNumber,4.ToString().Trim();string deletebh=dataGrid1dataGrid1.CurrentCell.RowNumber,0.ToString().Trim();string msg=是否确认删除已选编号:+deletebh+ ?;DialogResult result=MessageBox.Show(msg,删除成绩,MessageBoxButtons.OKCancel);if(result=DialogResult.OK)string connstring=workst
37、ation id=localhost;integrated security=sspi;database=xscj;SqlConnection conn = new SqlConnection(connstring);conn.Open();SqlCommand cmd=conn.CreateCommand();cmd.CommandText=delete from 学生课程 where (学号=+deletexh+)and(课程号=+deletekch+)and(编号=+deletebh+);cmd.ExecuteNonQuery();this.cjTable.Clear();da.Fill
38、(this.cjTable);MessageBox.Show(成功删除信息,提示);添加成绩代码:判断学生成绩是否存在string sendStrSQL = SELECT * from 学生课程;LinkDataBase link=new LinkDataBase();string sendTableName=学生课程;this.ds=link.selectdatabase(sendStrSQL,sendTableName);this.mytable=ds.Tables0;for (int i=0;imytable.Rows.Count;i+)this.myrow=mytable.Rowsi;
39、if(myrow1.ToString().Trim()=this.textBox4.Text.ToString().Trim()&myrow2.ToString().Trim()=kch.ToString() MessageBox.Show(该生的该门成绩以存在,提示);添加string comm1 = Insert into 课程 (课程名) values(课程名); this.sqlCommand6 = new System.Data.SqlClient.SqlCommand (); this.sqlCommand6.CommandType = System.Data.CommandTyp
40、e.Text ; this.sqlCommand6.CommandText = comm1; this.sqlCommand6.Connection = conn; this.sqlCommand6.Parameters.Add(课程名,System.Data.SqlDbType.Char ); this.sqlCommand6.Parameters0.Value = this.textBox9.Text ; this.sqlCommand6 .ExecuteNonQuery (); string sql1=select c.课程号 from 课程 c where 课程名 =+this.tex
41、tBox9.Text+; this.sqlCommand6.CommandText = sql1; SqlDataReader read1 = this.sqlCommand6.ExecuteReader(); int courseid = 0 ; if(read1.Read()courseid = read1.GetInt32(0);read1.Close();string commm1 = Insert into 学生课程 (课程号,学号,成绩) values(课程号,学号,成绩);this.sqlCommand7 = new System.Data.SqlClient.SqlComman
42、d ();this.sqlCommand7.CommandType = System.Data.CommandType.Text ;this.sqlCommand7.CommandText = commm1;this.sqlCommand7.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(成绩,System.Data.SqlDbType.Char );this.sqlCommand7.Parameters2.Value = this.textBox10.Text ;this.sqlCommand7 .ExecuteNonQuery ();string commn1 = select * from 用户清单;this.sqlCommand8 =