1、摘 要本文详细地讲述了开发一个基于Web的通用BBS(Bullitin Board System)网站系统所用到的技术和方法。其中运用了ASP技术(Avtive Server Page)、ADO技术(ActiveX Data Object)、MS Access数据库技术、RegExp技术(Regular Expression 正则表达式)、VBScript及JavaScript脚本语言技术等等,并从几个不同的方面来对上述技术的实现方法进行了讨论。关键字学生综合测评 C# 角色引 言计算机技术的迅速发展,引发了社会生产力的迅速发展,社会的巨大变化,社会信息化成为必然趋势。随着计算机技术的进步和人
2、们对计算机系统需求的提高,对管理系统也相应提高了。信息系统的开发不仅仅是一个应用程序的编写过程,最重要的是在系统分析和系统设计的阶段所做的的工作,工资管理系统是基于PowerBuilder9.0系统开发的应用程序,它针对有关目标设计系统开发背景,运行环境等进行分析,通过数据库需求分析、系统功能模块设计等实现系统及功能模块。目 录第一章学生综合测评系统概述11.1系统的主要功能11.2方法概要11.3学生综合测评管理系统的现状分析2第二章系统开发选用平台32.1 数据库系统的选择原则32.2 系统开发工具的选择3第三章系统基本理论43.1 系统开发梗概43.2 系统开发的步骤4第四章系统设计54
3、.1 系统功能模块图54.2 功能说明6第五章详细设计及实现75.1 数据库及表的设计75.2 数据库关系图95.3 系统模块设计105.3.1 主窗口的设计105.3.2 数据输入135.3.3 查询165.3.4 数据初始化和数据备份175.3.5 打印195.3.6 用户管理功能20第六章系统运行与维护216.1 系统运行216.1.1 数据库的连接216.1.2 系统运行216.2 系统维护21第七章系统评价227.1 系统的特点227.2 系统的缺点227.3 将来可能提出的要求22参 考 文 献23 23第一章 学生综合测评系统概述1.1 系统的主要功能学生日常综合测评管理系统的主
4、要任务是用计算机对各种学生信息进行日常的管理,如查询、修改、增加、删除、备份等,迅速准确地完成各种 学生日常信息的统计计算和汇总工作,快速打印出汇总的报表,针对系统服务对象的具体要求,设计了学生日常管理系统。学生日常管理系统主要有以下几大功能:(1)对学生信息的变动进行处理。一个系的学生不会是一成不变的,总是在不断的变化:有出、有入。因此,设计系统是应考虑到这些情况。(2)对学生的操行及违纪进行计算、修改。可以对学生信息进行个别、部分和批量修改,即总的操行分等等。(3)查询统计功能。要求既可以单项查询,比如查看某个学生的操行情况等;也可以查询全班学生的操行情况等。(4)报表打印功能。每月进行班
5、级评比时,要求能够打印本月的班级表。(5)数据初始化功能。在初次使用本系统时,里面的数据是系统自带的数据,所以要使用该功能清除系统里的数据。(6)数据备份功能。很多时候在录入数据后,担心系统的可靠性,就利用该功能把数据库里的数据保存为*bak的格式。1.2 方法概要本学生日常综合测评管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类、报表以及一个主菜单组成,有项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单或总表单调用系统的各项功能。1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装
6、和可重用性,便于程序的维护与扩展。2、所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。3、类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性
7、质相同的对象的程序描述,概括了对象的共同性质和数据。4、面向对象设计的核心是类的设计。5、设计的工资管理系统也是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类或直接调用PB提供的基类,编制程序时,由这些类派生出相应的对象,所派生出的对象继承了其父类所有的功能,而且具有很好的封装性,这样就可利用派生出的对象像搭积木一样来设计自己的程序。打个比方,就比如要制造一台机器,首先要制造各种零件的模具,然后用制造好的模具生产出所需的零件,所有这些做完后,剩下的就只是如何把这些零件组装起来,这样一台机器就很容易制造出来了。实际编程也是如此。每个表单都是由一定数量的对象按某一种方式
8、组合在一起的,程序编制的核心是类的设计。1.3 学生综合测评管理系统的现状分析为了适应现代化社会的发展,管理系统就应运而生了,目的很简单就使为使现代管理中排除复杂和不准确性,并且适应现代发展。系统开发后,可以对工资进行管理、查询、打印等一系列的功能的实现。便于工作效率的提高。第二章 系统开发选用平台2.1 数据库系统的选择原则数据库选择的原则很简单,主要目的就是为了系统做服务的,当然最简单的任务就是简单易于操作,且要具有可以随时修改的功能,最重要的一点就是数据库要对数据的操作要准确,还要尽可能的精确。这些都是数据库选择的最基本要求。因此本系统选择了SQL作为系统的数据库。SQL数据库是在大学期
9、间学习的最为透彻的数据库之一,并且也符合上述的条件,因此,学生综合测评管理系统选择此数据库作为系统数据库。2.2 系统开发工具的选择纵观现今市场上的一大批的开发工具,可以说另人眼花缭乱,很难做出取舍,有些易于操作,但不是很适合学生综合测评管理系统,有些适合,但是开发起来较为复杂和困难。因此开发工具的选择也是同样的重要,要选择便于上手操作容易的开发工具。Visual Studio 2005虽然现在不多使用,但是,对于学生综合测评管理系统来说,不可以说很好的开发工具。因为它具备一系列的功能,简单、易操作,并且不失大方。作为学生综合测评管理系统毕竟不是供娱乐的软件,因此不可以做得太过于花哨,更应该接
10、近于朴实大方。所以,学生综合测评管理系统利用Visual Studio 2005开发是再好不过的工具了。第三章 系统基本理论3.1 系统开发梗概学生综合测评管理系统顾名思义,就是对学生综合测评的管理,其实所要实现的功能就是对学生日常信息进行管理,要实现的功能就是对学生日常有关信息的录入、查询、修改,数据的初始化、数据的备份。每个过程都是需要精密的设计的3.2 系统开发的步骤(1)系统的构思。基于以上的原因,所以对系统进行构思,目的就是利于社会发展,符合工作的需要。(2)系统的设计。鉴于系统所要实现的功能,产生了学生日常信息的录入、查询、修改,数据初始化,数据备份,基本信息打印。(3)数据库的建
11、立。根据系统需要,需要建立八张表:班级评估信息表、班级信息表、班级考勤信息表、参数设置表。员工信息表、员工工资表、员工密码表的主键都是员工编号。(4)各个窗体的建立。窗体又很多,登陆窗口,主窗口,各个查询、修改窗口,打印窗口,数据初始化、备份窗口。(5)系统的测试。当把系统完成后,要对系统进行测试,测试是否可用和是否存在错误。(6)系统的维护。如果测试结果没有出现问题,那么就是系统产生后的维护问题了。系统维护是很重要的方面,当系统出现问题时就要利用系统维护来维护数据了。这个包括数据初始化和数据备份。系统开发步骤从大体上可以分为这些,以上进行的是对开发步骤的简要分析,开发过程中肯定要比这个所说的
12、要细,因为根据不同的需要要进行一些改变,如果不改变是不适应实际应用中的要求的,每个单位大小能力都不同,自然需要根据自己的能力来进行不同的开发。第四章 系统设计4.1 系统功能模块图如图所示学生日常综合测评管理系统数据查询数据维护数据录入报表打印退出操行录入考勤录入辅导员分班级评比假条录入操行查询考勤明细学生考勤汇总班级评比班级信息学生考勤学生操行班级评比班级信息修改用户添加修改数据备份恢复数据初始化学生信息修改退出4.2 功能说明登陆窗口的功能是让使用者选择进入系统,学生,教师和管理员进入的系统是相同同的,只要输入用户名、密码就可以直接进入,管理员进入系统就可以进行全部操作,教师进入系统可以查
13、询班级信息以及给学生录入成绩,学生进行对自己信息的查询。管理员进入系统后可以看到菜单上显示又录入、查询、批量修改、打印、数据初始化、数据备份、退出。录入菜单是对学生操行、辅导员加分、违纪、奖励、考勤等信息的录入。查询,包括对班级整体信息和学生个人的操行及奖惩的查询。修改中包括对学生操行信息和的修改,从而自动更新操行总分。还有对管理员密码的修改。打印菜单的功能是打印班级评比信息、学生个人操行详细信息等,其中可以对打印进行设置。数据初始化是针对每学期初对学生操行进行初始化。数据备份,对系统中已经存在的数据进行备份,以防不测事件发生。数据初始化和数据备份是系统的维护方面的功能。学生进入系统后,输入自
14、己的用户名和密码后进入系统,毕竟员工不是管理员,只可针对自己的信息进行查询。第五章 详细设计及实现5.1 数据库及表的设计数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分。下面就详细介绍利用SQL2005对数据库的设计。表1:用户表 如图5-1所示图5-1 用户表用户表中用户名、密码及角色都不能为空,且用户名是主键要非空且唯一。表2:班级信息表 如图5-2所示图5-2 班级信息表班级信息表中班级编号是主键要非空且唯一,而且在学生信息表中是外键,故两者之间的数据类型要一致。表3:学生信息表 如图5-3所示图5-3 学生信息表学生信息表中
15、可以看出虽然只有学号一个是主键不能为空,也看到了其他的不是主键的也不能为空、表4:班级考勤详细表 如图5-4所示图5-4 班级考勤详细表班级考勤信息表中不是以学号作主键了,而是用考勤序列号作主键,并且设置为自增变量。表5:学生考勤详细表 如图5-5所示图5-5 学生考勤详细表学生考勤信息表中不是以学号作主键了,而是用考勤序列号作主键,并且设置为自增变量。表6:班级评比表 如图5-6所示图5-6 班级评比表表7:学生操行表 如图5-7所示图5-7 学生操行表表8:参数设置表 如图5-8所示图5-8 参数设置表参数设置表主要是为了奖惩项及考勤项设置基本的参数值。5.2 数据库关系图 5.3 系统模
16、块设计5.3.1 主窗口的设计主窗口也就是学生日常综合测评管理系统登陆进入的敞口,其上附着主菜单,想要实现功能通过对菜单的操作实现,也就相当于所有功能的汇总。在主窗口中还体现着整个系统的功能和架构。(1)主界面如图5-9所示:图5-9 主界面代码分析:窗体载入事件里面,给不同用户不同的操作功能private void MainForm_Load(object sender, EventArgs e) if (Roles = 教师) this.tsmCXWrite.Enabled=false; this.tsmKQWrite.Enabled=false; this.tsmClassWrite.E
17、nabled=false; this.tsmPrint.Enabled = false; this.tsmProtect.Enabled = false; this.tsmJTWrite.Enabled = false; if (Roles = 学生) this.tsmWrite.Enabled = false; this.tsmClassSelect.Enabled = false; this.tsmClassEvaluateSelect.Enabled = false; this.tsmPrint.Enabled = false; this.tsmProtect.Enabled = fal
18、se; (2)用户登录界面如图5-10所示:图5-10 用户登录界面代码分析:判断角色以及用户名,密码是否正确。 private void btnLogin_Click(object sender, EventArgs e) if (ValidateInput() int i = 0; string sql = string.Format(select count(*) from Users where UserName=0 and UserPwd=1 and Role=2, txtUserName.Text, txtPwd.Text, cboRole.Text); SqlCommand cm
19、d = new SqlCommand(sql, DBHelper.conn); DBHelper.conn.Open(); i = Convert.ToInt32(cmd.ExecuteScalar(); DBHelper.conn.Close(); if (i = 1) MainForm mainForm = new MainForm(); mainForm.Roles = this.cboRole.Text.Trim(); mainForm.Show(); this.Visible=false; else MessageBox.Show(用户名或密码有误, 提示, MessageBoxBu
20、ttons.OK, MessageBoxIcon.Error); private bool ValidateInput() if (txtUserName.Text.Trim() = ) MessageBox.Show(请输入用户名!, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); txtUserName.Focus(); return false; if (txtPwd.Text.Trim() = ) MessageBox.Show(请输入密码!, 输入提示, MessageBoxButtons.OK, MessageBox
21、Icon.Information); txtPwd.Focus(); return false; if (cboRole.Text.Trim() = ) MessageBox.Show(请选择用户, 选择提示, MessageBoxButtons.OK, MessageBoxIcon.Information); cboRole.Focus(); return false; else return true; 5.3.2 数据输入数据输入窗口是利用菜单中的录入功能来实现的(1)考勤录入界面如图5-11所示图5-11 考勤录入界面代码分析:利用姓名查询,同名的再选学号,写TextBox的TextC
22、hanged事件private void txtStudentName_TextChanged(object sender, EventArgs e) string sql = string.Format(select StudentId from StudentInfo where StudentName=0,txtStudentName.Text.Trim(); cmd = new SqlCommand(sql,DBHelper.conn); DBHelper.conn.Open(); SqlDataReader dr=cmd.ExecuteReader(); while (dr.Read
23、() cboStudentId.Items.Add(dr0); dr.Close(); DBHelper.conn.Close(); (2)辅导员操行录入界面如图5-12所示:图5-12 辅导员操行录入界面代码分析:对一个班级全部学生一起录入,主要进行批量处理private void btnSave_Click(object sender, EventArgs e) string stuid=null; float classHeadScore; string sql = null; foreach (DataGridViewRow dgvr in this.dgvHCWrite.Rows)
24、stuid =Convert.ToString(dgvr.Cells0.Value); classHeadScore=Convert.ToSingle(dgvr.Cells4.Value); sql = string.Format(update StudentCX set ClassHeadScore=0 where StudentId=1,classHeadScore,stuid); cmd = new SqlCommand(sql, DBHelper.conn); DBHelper.conn.Open(); cmd.ExecuteNonQuery(); string sqlCXSum =
25、string.Format(update StudentCX set CaoXingSum=JCSScore+CaoXingScore+DormScore+ClassHeadScore where StudentId=0, stuid); cmd.CommandText = sqlCXSum; cmd.ExecuteNonQuery(); DBHelper.conn.Close(); MessageBox.Show(保存成功!); 5.3.3 查询查询菜单中包括班级信息查询及个人操行等信息查询。(1) 学生操行查询如图5-14所示图5-14 学生操行查询界面代码分析:DataGridView显
26、示基本信息 private void DisplayCXDetail(string stuId) string sqltext, studNo; studNo = this.cboStuId.Text.Trim(); sqltext = string.Format(SELECT SerialNum,StudentId ,StudentName,ClassName,JCItem,JCTime,JCFS FROM studentKQDetail where StudentId=0 , studNo); da = new SqlDataAdapter(sqltext,DBHelper.conn);
27、ds = new DataSet(); da.Fill(ds, cxdetail); this.dgvCXDetail.DataSource =ds.Tablescxdetail; (2) 班级评比查询界面如图5-15所示图5-15 班级评比查询界面代码分析:利用班级信息表把所有班级在Combox里面显示 private void ClassEvaluateSelectForm_Load(object sender, EventArgs e) string sql = select ClassName from ClassEvaluate; cmd = new SqlCommand(sql,D
28、BHelper.conn); DBHelper.conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while(dr.Read() cboClassName.Items.Add(dr0); dr.Close(); DBHelper.conn.Close(); 5.3.4 数据初始化和数据备份作为系统维护的方面,数据初始化和数据备份都是不可缺少的部分。但由于两个窗口类似只例举一个数据备份。(1) 数据初始化如图5-16所示图5-16 数据初始化界面代码分析:将所有数据进行初始化string sqlpwd = string.Format(sel
29、ect Count(*) from Users where Role=管理员 and UserPwd=0, strPwd); /初始化班级评比数据 string sqldate = string.Format(update ClassEvaluate set KouYu=0,ChenPao=0,ZiXi=0,WeiSheng=0,DaHeChang=0,BanBao=0,SumScore=0,Date=0 where Date1,DateTime.Now.ToString(),date); string sqldates = string.Format(delete from ClassKQD
30、etail where Date0,date); /初始化学生考勤考核数据 string sqldate1=string.Format(update StudentCX set Term=null,JCSSCore=0,CaoXingScore=80,DormScore=0,ClassHeadScore=0,CaoXingSum=0,KQSum=0 where Date0,date); string sqldates1 = string.Format(delete from StudentKQDetail where KQTime0, date); /既初始化班级评比数据,又初始化班主任操行加
31、分、宿舍加分 string sqldate2 = string.Format(update ClassEvaluate set KouYu=0,ChenPao=0,ZiXi=0,WeiSheng=0,DaHeChang=0,BanBao=0,SumScore=0,Date=0 where Date1, DateTime.Now.ToString(), date); string sqldates2 = string.Format(delete from ClassKQDetail where Date0,date); string sqldatess2 = string.Format(dele
32、te from StudentKQDetail where KQTime0, date); string sqldatesss2 = string.Format(update StudentCX set Term=null,JCSSCore=0,CaoXingScore=80,DormScore=0,ClassHeadScore=0,CaoXingSum=0,KQSum=0 where Date0,date);(2) 数据备份与恢复如图5-17所示图5-17 数据备份与恢复代码分析:单击数据备份或者数据恢复是要求选择的路径private void btnPathOpen_Click(objec
33、t sender, EventArgs e)/备份数据库的打开按钮 string path = Application.StartupPath;/初始化路径变量 path = path.Substring(0, path.LastIndexOf(binDebug);/为变量赋值 SaveFileDialog saveFileDialog = new SaveFileDialog();/实例化保存对话框 saveFileDialog.InitialDirectory = path;/保存文件的路径为path saveFileDialog.Filter = 备份文件(*.bak)|*.bak; s
34、aveFileDialog.ShowDialog();/显示保存对话框 this.txtBakPath.Text = saveFileDialog.FileName;/在保存文本框内显示所获得文件名 5.3.5 打印在学生日常综合测评管理系统中,一定会带有打印的功能,因为在班级进行评比的同时也会评比的依据,因此,只要有评比,那么打印也是必不可少的功能。5.3.6 用户管理功能管理员有修改密码的能力,也可以增删用户。第六章 系统运行与维护6.1 系统运行当所有窗口都做好后,再其中添加代码完全后,就可以进行系统的测试了,进行测试的时候首先要连接数据库。6.1.1 数据库的连接数据库的连接时要首先建
35、立数据源,点击Database Profiles,然后打开ODB ODBC,再展开Utilities,双击ODBC Administrator建立数据源。建立数据源之后,再ODB ODBC中就可以看见你所建立的数据源名称了。此时,右击ODB ODBC,选择New Profile,选择正确的数据源路径,一切要填的填好之后,右击要连接的数据名称,选connect,如前面显示一个绿色的对号,那么数据源就连接上了;反之,就没有连接上。6.1.2 系统运行系统数据库连接上之后就可以运行了,再PowerBuilder9.0的第二行工具栏中有一个图标 ,点击后就可以运行系统了。如果出现有错误,系统将提示错在
36、什么位置,便于修改。6.2 系统维护每个系统开发出来之后都需要维护,系统如果没有维护,在遭到破坏时将造成不可收回的损失,任何一个系统都会有维护,维护工作也是最复杂最麻烦的工作,没有问题时可以很轻松,有问题时,将会很繁重。因此,系统维护一定要很完善。但是,由于这是小型的系统,在维护方面又比打的系统维护要方便很多,但是还是存在问题的。第七章 系统评价7.1 系统的特点学生日常综合测评管理系统的特点很鲜明,就是利用计算机来管理学生日常生活,并且还具备了学生自主查询的功能,更加大大较快了工作效率,而且在系统中还具备了,初步的系统维护,并且带有打印功能。学生日常综合测评管理系统利用一系列的功能实现了学生
37、操行信息、学生操行的录入,学生操行、班级评比的查询、管理员密码修改、打印学生、班级信息、打印设置、数据初始化、数据备份功能。7.2 系统的缺点学生日常综合测评管理系统虽然说是利用了计算机管理学生日常生活系统,但是,这只是大型系统的雏形,而且开发人员少,周期短等各方面因素造成系统的维护方面并不是很好,而且这个系统比较适合一个系的管理,此次开发的学生日常综合测评管理系统必然存在漏洞或者是没有考虑全面的方面,可是,总得来说,还是可以说是一个完整的系统吧。而且学生日常总管和测评管理系统的保密措施并不是很好,像管理员密码只要能看到谁都可以输入,这在工资管理中并不是很好的方面,按道理应该是处理的更好些,要
38、不系统其实就没有什么安全系数的。7.3 将来可能提出的要求上面也分析了,因为开发系统时各方面的原因,在将来可能会提出进一步晚上系统,将可能发生的问题缩减到最小,并且进一步开发系统,使系统适应各种类型、各种方面的学生管理,并且把系统做到最完美,界面舒服大方。以上也说了,学生综合测评管理系统的安全系数并不是很高,可以任由人进入,因此还是有待于要完善的,比如说,可以增加一个登陆口令,或者是声音识别,再或者是指纹识别。这些功能在以前看起来遥不可及,但是,现在想要实现这些功能也不是不可能的。一旦实现这些功能之后,将会更适应现代各行业的需求,所以,在这方面可以多下点功夫。虽然这些可能提出的要求说起来很简单
39、,但是,实施中还使会遇到很多问题,这有待于充实自身的知识之后才可以完成的目标,当然,还使会希望自己把系统做的更好,更合理。参 考 文 献1 陈会安 ASP网页制作彻底研究2000/102 林金霖 ASP实务经典,中国铁道出版社,1999/123 胡伟 FrontPage 2000 中文版技巧与实例 1999/94 黄敏如,FrontPage2000中文版入门与提高 1999/75 Jeffry Dwight CGI开发使用手册 1999/56 黄斯伟 CSS网页样式设计 1999/57 王春森 程序设计 1999/108 王映雪、肖平、佟秋利 HTML网页制作 1998/109 萨师煊、王珊 数据库系统概论(第二版) 1991/410 赵彤、杨玉 VBScript制作实例 1999/3
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100