软件工程大作业_第1页
软件工程大作业_第2页
软件工程大作业_第3页
软件工程大作业_第4页
软件工程大作业_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

软件工程大作业题目:学生档案管理系统精品资料小组成员:戚盈洁() 王大伟()王磊()霍成海()目录第一章 . 系统调查 .51.1 系统调查内容.51.2 系统调查方法.5第二章 . 系统分析 .62.1系统分析 .62.2系统调结构图.72.3子系统功能描述.7第三章 . 系统设计 .103.1界面设计原则.103.2数据库设计 .113.3代码设计 .17第四章 . 学生照片管理模块设计.254.1 imagefunc模块 .254.2设计照片管理窗体.294.3在学生信息管理窗体中添加照片管理代码.31第五章 . 系统测试 .325.1系统测试项目.325.2系统评估 .37第一章 .系统调查1.1 系统调查内容学校各院系基本概况:院系名称,专业设置,课程设置,课时安排,学生人数,学生班级数等。学校资源条件调查,包括计算机配备,网络支持条件等。各院系专业设置概况:现有开设专业及规划中开设专业设置,专业开设课程, 各课程授课教师与成绩处理。学校各部门(学生处、教务处、档案管理室、各院系)对学生基本情况的需求与掌握,对学生基本信息的处理方式与业务流程。学校各部门、单位、教师、学生对系统的其他要求和希望。1.2 系统调查方法通过对部分高校学生档案管理人员的访问,了解到目前大部分高校的档案管理工作存在工作效率低,成本高,保密性差,查询困难等问题。大部分工作人员都提出需要一个具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点的现代化信息管理系统。 为解决此问题我们决定开发一个既方便又操作简单,功能较为齐全的学生档案管理系统。第二章 .系统分析2.1 系统分析1 系统开发的总体任务是学生档案管理的系统化和规范化。2 系统开发的目标是使档案管理工作科学化和规范化,提高安全系数。3 系统功能树本系统主要功能是实现学生基本情况的管理。学生档案管理系统院系信息管理学生信息管理学生奖惩管理学生学籍管理课程信息管理系统用户管理图 3.1 学生档案管理系统功能模块运行是权限输入数据库文件否判断错误继续退出正确主界面院学学学课系针对各个模块不同的表实现添加记录、修改记录、删除记录,以及查询显示记录等功能2.2 系统调结构图系生生生程统信信奖学信用息息惩籍息户管管管管管管理理理理理理学学学退转课考生生生学学程试基照主休调设成本片要学班置绩信信教管管管管息息育理理理理管管经理理历管理图 3.2 学生档案管理系统结构图2.3 子系统功能描述院系管理由创建院系及班级信息,修改院系班级记录,删除院系班级记录,查看院系班级数据四部分组成。创建院系与班级信息。主要是院系名称,班级专业名称,院系具体描述,班级介绍,院系编号由数据库系统自动编号,不显示在前台程序。修改院系与班级记录。可对院系或班级名称,描述,介绍等记录进行修改。删除院系与班级记录。可选择删除院系或班级,如果所选院系或班级已含有数据记录,如含有专业班级资料,或学生资料, 则必须先将其所含有的记录资料删除,才能成功完成操作。查询院系与班级资料。在院系管理的主界面查看已有院系及班级记录。2) 学生信息管理由创建、修改、删除学生信息资料,添加、修改、删除学生教育经历,添加与删除学生照片组成。学生信息资料创建,将刚入学的学生资料添加到数据库中加以保存。信息资料由学生编号、姓名、照片、性别、民族、生日、政治面貌、籍贯、身份证号、学生证号、家庭电话、居住住址、邮政编码、入校日期、职务、所在院系编号、备注和填表时间组成。基于保护数据记录安全性考虑学生编号由数据库系统自动生成,不显示在前台程序。院系编号亦不在学生信息管理界面显示,只在后台数据库显示。添加、 修改、删除学生教育经历,创建并管理所选择学生过去的教育经历,曾就读与某校,任何职务。添加、删除学生照片。为所选择学生添加个人照片,如需更新照片,只需再次添加,既可覆盖原有照片数据记录。3) 奖惩信息管理由添加学生奖惩信息,修改奖惩信息,删除奖惩信息,浏览学生奖惩信息组成。添加、 修改学生奖惩信息,设置学生奖励或处罚资料,奖励与处罚项目使用备选项,亦可再加以具体说明。删除奖惩信息。奖励与惩罚记录分开显示,选择某条奖惩记录,将其删除。4) 学生学籍信息管理由添加、修改、删除学生退学、转学、休学、调班等学籍信息组成。添加、修改学生学籍信息资料。通过在院系表中选择目标班级,可选择学生姓名, 删除学生学籍变更数据记录。学生调班成功后,系统敬爱能够自动更新该学生在院系班级表,学生基本信息表中的相关数据记录。5) 课程管理由创建、修改、删除课程信息,学生课程成绩信息组成。创建、修改课程信息,可创建或修改新课程名称,授课教师,课时设置,课程类型。删除课程信息。选择某个课程记录,可将其所包含的所有信息删除。学生课程成绩信息,由添加、修改、 删除课程成绩信息组成。设置院系学生中学生课程成绩信息。6) 系统管理由创建用户,修改用户,删除用户,浏览用户信息组成。创建用户。该功能只对系统管理员开放,使用系统管理员身份登陆后可创建起他用户。修改、 删除用户。 该权限只对系统管理员开放。非系统管理员只能对自己的用户名和密码进行修改。第三章 .系统设计3.1 界面设计原则一个好的应用程序不仅要有强大的功能,还要有美观实用的用户界面。用户界面是应用程序的一个重要组成部分,一个应用程序的界面往往决定了该程序的易用性与可操作性,一个美观的界面的美观和用户亲和性是应用软件成功的首要条件。界面设计具有一般性的原则, 最为重要的有: 界面要具有一致性;常用操作要有捷径;提供简单的错误处理;提供信息反 馈;操作可逆。我们在设计界面时充分从一致性、友好性、交互性、信息子最小量原则、易用性、数据输入等方考虑,遵循以下原则操作简单,易学,易掌握;界面美观,操作舒适;快速反应,响应合理;语言规范,语义一致。一致性,在同一界面中,所有的菜单选择、命令输入、数据显示和其他功能应保持风格的一致性。信息最小量原则。 人机界面设计要尽量减少用户记忆负担,采用有助于记忆的设计方案。用户界面应能对用户的决定做出及时的响应,提高对话、 移动的思考的效率,最大可能的减少击键次数,缩短鼠标移动距离,避免使用户产生无所适从的感觉。人机界面应该提供上下文敏感的求助系统,让用户及时获得帮助,尽量用简短的动词和动词短语提示命令。操作可逆。 操作应该可逆, 对于不具备专业知识的操作人员非常有用,可逆的动作可以是单个的操作,也可以是一个相对独立的操作序。界面设计过程(略)3.2 数据库设计开始重试否失败是用户登录失败超过3 次退出程序成功用户管理模块学生档案管理模块读取用户类型管理自己的用户信息院系信息管理普通用户学生信息管理学生奖惩管理admin 用户学生学籍管理1、管理自己的用户信息2、管理普通用户的用户信考试成绩管理数据流程图dfd(data flow diagram)是描述系统数据流程的工具,它将数据独立抽象出来,通用图形方式描述信息的来龙去脉和实际流程。图 4.1 数据流程分析图数据字典( datadictionary,dd )是 dbms 中的一个特殊文件,用于存储数据库的一些说明信息,这些说明信息称为元数据(meta data )。dd 是在新的信息系统数据流程图的基础上,进一步定义和描述数据处理过程、外交实体及数据存储(数据库)的详细逻辑内容工具。本系统后台数据库采用microsoftsqlserver2000数据库。建立了一个数据库studentsys ,包括了九个表:院系班级表classes 、学生基本信息表students 、学生教育经历记录表experience 、学生奖惩表evaluation 、学生学籍变动表change 、课程设置表lessons 、考试成绩表scores 、用户信息表users 。表 1 classes结构编字段名称数据类型字 段 大说明号小1class_idint4院系编号2class_namevarchar40院系名称3describevarchar400院系职能描述4upperidint2上级院系编号表 2 students结构编字段名称数据字 段 大说明号类型小1student_idint4学生编号2student_namvarc0姓名ehar3photoimag16照片e4sexharvarc2性别5nationalityharvarc40民族6birthvarc20生日har7political_partvarc40政治面貌yhar8family_placeharvarc60籍贯9id_cardvarc20身份证号har1badgeidvarc40学生证号0har1home_phonevarc30家庭电话1har1residencevarc100居住地址2har1postcodevarc10邮政编码3har1indatevarc20入校日期4har1class_idsmali2所在院系编号5nt61titleharvarc20职务1memovarc200备注7 har1fillin_timevarc20填报时间(日期 +时间)8 har表3 experience结构编号字段名称数据类型字段说明大小1expidint4编号2student_idint4学生编号3start_datechar10开始日期4end_datechar10终止日期5schoolvarchar50学校 /单位名称6titlevarchar20职务表4 evaluation结构编号字段名称数 据 类字段大小说明1evaid型int4奖惩记录编号2evadatechar10奖惩日期3student_idint4学生编号4evatypebit1奖 惩 类 型 ( 0表示奖励,1 表示处罚)5 memovarcha200奖惩说明t6 evacontentchar20奖惩内容表 5 change结构编号字段名称数据类型字段大小说明1changeidint4学籍变动编号2dstudent_iint4学生编号3changetytinyint1学籍变动类型 ( 1pe表示退学,2表示休学, 3 表示转学, 4 表示调班)4changedchar10学籍变动日期ate5oriclassint4原班级编号6newschovarchar50转入学校名称ol7newclassint4转入班级编号8reasonvarchar200学籍变动原因9 memovarchar200备注表 6 lessons结构编号1字段名称lessonid数据类型int字段大小4说明课程编号2melessonnavarchar100课程名称3termvarchar20课程设置的学期4teachervarchar20授课老师5hourstinyint1课时6lessontyvarchar20课程类型(必修pe课,选修课)表 7 scores结构编号字段名称数据类型字段大小说明1lessonidint4课程编号2dstudent_iint4学生编号3scoretinyint1考试分数表 8 users结构编号字段名称数据类型字段大小说明1usersnavarchar40用户名2mepwdvarchar40密码3usertypevarchar10用户类型3.3 代码设计一个高效的软件不仅应该比实现同样功能的软件运行得更快,还应该消耗更少的系统资 源。所以代码的设计就显得非常重要。考虑到以后对系统更新与维护的可行性与方便性,减少程序员工作量, 等各方面的考虑, 我们在代码设计过程中遵循科学性,系统性,可扩展性, 规范化,人性化,通用性,含义单纯性,容易理解等原则考虑。以下只列举部分关键代码院系管理添加院系信息if trim(txtclass) = thenmsgbox 请输入院系班级名称 exit subend ifwith myclass.class_name = makestr(txtclass).describe = makestr(txtdescribe) if modify = false then 插入if .in_db(.class_name) = true thenmsgbox trim(txtclass) + 已经存在 exit subend if.upperid = curclass.class_id bh = .inserttmp_key = a + trim(str(bh) frmclassman.treeview1.selecteditem.image = 1frmclassman.treeview1.selecteditem.expandedimage = 2frmclassman.treeview1.selecteditem.selectedimage = 3settmpnode=frmclassman.treeview1.nodes.add(frmclassman.treeview1.selecteditem.key, _ tvwchild, tmp_key, .class_name, 4, 5)tmpnode.selected = trueelse 修改if curclass.class_name trim(txtclass) then if .in_db(trim(txtclass) = true thenmsgbox trim(txtclass) + 已经存在 exit sub end ifend if.upperid = curclass.upperid.update (curclass.class_id)if curclass.class_name trim(txtclass) then frmclassman.treeview1.selecteditem.text = trim(txtclass)end ifcurclass.class_name = trim(txtclass) end ifend with unload me删除院系资料if treeview1.selecteditem.key = a0 then msgbox 此项不能删除exit sub end ifif curclass.haveson(curclass.class_id) = true thenmsgbox curclass.class_name + 包含下级院系班级,不能删除 exit subend ifif myclass.havestudent(curclass.class_id) = true thenmsgbox curclass.class_name + 包含学生,不能删除 exit subend ifif msgbox( 是否确定要删除 + trim(treeview1.selecteditem.text), vbyesno, 请确认 ) = vbno thenexit subend ifcall curclass.delete(curclass.class_id) treeview1.nodes.remove treeview1.selecteditem.index treeview1_click学生信息资料管理添加学生基本信息资料with mystu.student_name = makestr(txtstu_name).sex = combosex.text.nationality = makestr(txtnationality)if isdate(combobirth.text) = false then msgbox 请选择正确的出生日期 exit subend if.birth = combobirth.text.political_party = makestr(txtpolitical_party).family_place = makestr(txtfamily_place).id_card = makestr(txtid_card).badgeid = makestr(txtbadgeid).home_phone = makestr(txthomephone).residence = makestr(txtresidence).postcode = makestr(txtpostcode)if isdate(comboindate.text) = false then msgbox 请选择正确的入校日期 exit subend if.indate = comboindate.text.title = makestr(txttitle).memo = makestr(txtmemo) dd = datedd = format(dd, yyyy-mm-dd)t = timett = trim(str(hour(t) + : + trim(str(minute(t) + : + trim(str(second(t).fillin_time = dd + + tt.class_id = curclass.class_id if modify = false then.insert else.update (curstu.student_id) end ifend withfrmstuman.tmpok = true unload me照片管理if button = 1 thenif frmphotomenu.visible = true then unload frmphotomenuend ifend ifif button = 2 thenif curstu.student_id = 0 then exit subend iffrmphotomenu.left = x + image1.left + 200 - 1610 frmphotomenu.top = y + image1.top + 1900 frmphotomenu.showend ifdim diskfile as stringif curstu.student_id = 0 then msgbox 请 选 择 学 生 unload meexit sub end ifcommondialog1.filter= bmp 文件 (*.bmp)|*.bmp|jpeg文件 (*.jpg)|*.jpg|gif文件(*.gif)|*.gifcommondialog1.showopendiskfile = commondialog1.filename if diskfile = thenmsgbox 请选择照片文件unload me exit subend ifcall saveimage(diskfile, frmstuman.adostudetail)call showimage(frmstuman.image1, frmstuman.adostudetail) unload meif curstu.student_id = 0 thenmsgbox 请选择学生 unload meexit sub end iffrmstuman.adostudetail.recordset.fields(2).appendchunk frmstuman.adostudetail.recordset.update frmstuman.image1.picture = loadpicture()unload me学籍管理添加学籍管理信息资料frmchangeedit.combodate.text = format(now, yyyy-mm-dd) selstu.initfrmchangeedit.comboname.text = frmchangeedit.combotype.listindex = combotype.listindex frmchangeedit.comboclass = frmchangeedit.txtmemo = frmchangeedit.modify = false frmchangeedit.show 1 refresh_change修改学籍管理信息资料frmchangeedit.oriid = adodc1.recordset.fields(0) frmchangeedit.combodate.text = trim(adodc1.recordset.fields(1) selstu.student_id = adodc1.recordset.fields(2)selstu.getinfo (selstu.student_id)frmchangeedit.comboname.text = trim(adodc1.recordset.fields(3) frmchangeedit.combotype.listindex = combotype.listindexselect case combotype.listindexcase 0, 1 退学、休学frmchangeedit.txtnewschool = frmchangeedit.comboclass = frmchangeedit.txtreason = trim(adodc1.recordset.fields(4)frmchangeedit.txtmemo = trim(adodc1.recordset.fields(5) case 2转学frmchangeedit.txtnewschool = trim(adodc1.recordset.fields(4)frmchangeedit.comboclass = frmchangeedit.txtreason = trim(adodc1.recordset.fields(5) frmchangeedit.txtmemo = trim(adodc1.recordset.fields(6)case 3调班frmchangeedit.txtnewschool = frmchangeedit.comboclass = trim(adodc1.recordset.fields(5) curclass.getinfo (adodc1.recordset.fields(4) frmchangeedit.txtreason = trim(adodc1.recordset.fields(6) frmchangeedit.txtmemo = trim(adodc1.recordset.fields(7)end select frmchangeedit.modify = true frmchangeedit.show 1 refresh_change第四章 .学生照片管理模块设计4.1 imagefunc模块imagefunc模块用来管理与数据库读写图像字段相关的变量和函数。其中包含两个用户自定义过程:showimage和 saveimage 。因为 sqlserver2000的图像字段不能够使用insert 和 update等语句插入和更新,所以本系统中使用getchunk和 appendchunk方法读取和填写图像字段。getchunk方法用来返回大型文本或二进制数据field对象的全部或部分内容,appendchunk方法则将数据追加到大型文本、二进制数据field 或 parameter对象中。showimage ()包含两个参数,image1表示用来显示图像的image 控件, adodc1表示用来提供图像字段的ado data控件。 showimage()过程的代码如下:public sub showimage(image1 as image, adodc1 as adodc) erase bytechunk()fieldsize = adodc1.recordset.fields(2).actualsizeif fieldsize = 0 then image1.picture = loadpicture() exit subend if提供一个尚未使用的文件号sourcefile = freefile打开文件open tempfile for binary access write as sourcefile 计算数据块numblocks = fieldsize blocksizeleftover = fieldsize mod blocksize 得到剩余字节数分块读取图像数据,并写入到文件中if leftover 0 thenredim bytechunk(leftover)bytechunk() = adodc1.recordset.fields(2).getchunk(leftover) put sourcefile, , bytechunk()end iffor i = 1 to numblocksredim bytechunk(blocksize)bytechunk() = adodc1.recordset.fields(2).getchunk(blocksize) put sourcefile, , bytechunk()next iclose sourcefile将文件装入到image1控件中image1.picture = loadpicture(tempfile) 删除临时文件kill (tempfile) end subsaveimage()也包含两个参数,imagefile表示图像的文件名,adodc1表示用来存储图像字段的 ado data控件。 showimage()过程的代码如下:public sub saveimage(byval imagefile as string, adodc1 as adodc)if adodc1.recordset.bof = true or adodc1.recordset.eof = true then exit subend ifif imagefile = then exit subend if提供一个尚未使用的文件号sourcefile = freefile打开文件open imagefile for binary access read as sourcefile 得到文件长度filelength = lof(sourcefile)判断文件是否存在if filelength = 0 then close sourcefilemsgbox diskfile & 无内容或不存在! elsenumblocks = filelength blocksize 得到数据块的个数leftover = filelength mod blocksize 得到剩余字节数adodc1.recordset.fields(2).value = nullredim bytedata(blocksize) 重新定义数据块的大小for i = 1 to numblocksget sourcefile, , bytedata() 读到内存块中adodc1.recordset.fields(2).appendchunk bytedata()写入 fldnext iredim bytedata(leftover) 重新定义数据块的大小get sourcefile, , bytedata() 读到内存块中adodc1.recordset.fields(2).appendchunk bytedata() 写入 fld close sourcefile 关闭源文件adodc1.recordset.update end ifend sub4.2 设计照片管理窗体对学生照片管理的模式与其他信息不同,需要单独地处理。这一小节中, 将设计一个菜单式的窗体,当用户右击image 控件时,将弹出此窗体,允许用户设置照片。创 建 一 个 新 窗 体 , 并 参 照 “选 择 部 门 ”窗 体 设 置 窗 体 的 属 性 , 新 窗 体 名 称 为frmphotomeun。为了使用户能够方便地选择图像文件,在窗体frmempsel中将使用到commodialog控件。 commodialog控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以为选择颜色和字体等操作。选择“工程”菜单中的“部件”命令,打开“部件”属性对话框。在控件列表中,查找并选择microsoft common dialog control 6.0,单击“确定”按钮,commondialog控件将出现在工具箱中。将 commondialog控件添加到窗体frmphotomeun中,当用户单击“设置照片”菜单项时,将触发label1_click事件,对应的代码如下:private sub label1_click()dim diskfile as string如果没有选择学生,则返回if curstu.student_id = 0 then msgbox 请 选 择 学 生 unload meexit sub end if使用 commondialog控件读取图像文件commondialog1.filter= bmp 文件 (*.bmp)|*.bmp|jpeg文件 (*.jpg)|*.jpg|gif文件(*.gif)|*.gifcommondialog1.showopendiskfile = commondialog1.filename if diskfile = thenmsgbox 请选择照片文件unload me exit subend if存储并显示照片call saveimage(diskfile, frmstuman.adostudetail)call showimage(frmstuman.image1, frmstuman.adostudetail) unload meend sub当用户单击“删除照片”菜单项时,将触发label2_click事件,对应的代码如下:private sub label2_click()if curstu.student_id = 0 then msgbox 请 选 择 学 生 unload meexit sub end if使用 appendchunk 的方法删除图像frmstuman.adostudetail.recordset.fields(2).appendchunk frmstuman.adostudetail.recordset.upd

温馨提示

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

评论

0/150

提交评论