软件工程大作业.docx
- 文档编号:13085634
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:27
- 大小:213.50KB
软件工程大作业.docx
《软件工程大作业.docx》由会员分享,可在线阅读,更多相关《软件工程大作业.docx(27页珍藏版)》请在冰点文库上搜索。
软件工程大作业
软件工程大作业
题目:
学生档案管理系统
小组成员:
戚盈洁(
王大伟(
王磊(
霍成海(
第一章.系统调查(3
1.1系统调查内容(3
1.2系统调查方法(3
第二章.系统分析(3
2.1系统分析(3
2.2系统调结构图(4
2.3子系统功能描述(4
第三章.系统设计(6
3.1界面设计原则(6
3.2数据库设计(6
3.3代码设计(10
第四章.学生照片管理模块设计(14
4.1ImageFunc模块(14
4.2设计照片管理窗体(16
4.3在学生信息管理窗体中添加照片管理代码(17
第五章.系统测试(18
5.1系统测试项目(18
5.2系统评估(20
第一章.系统调查
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数据库设计
数据流程图DFD(DataFlowDiagram是描述系统数据流程的工具,它将数据独立抽象出来,通用图形方式描述信息的来龙去脉和实际流程。
图4.1数据流程分析图
数据字典(DataDictionary,DD是DBMS中的一个特殊文件,用于存储数据库的一些说明信息,这些说明信息称为元数据(MetaData。
DD是在新的信息系统数据流程图的基础上,进一步定义和描述数据处理过程、外交实体及数据存储(数据库的详细逻辑内容工具。
本系统后台数据库采用MicrosoftSQLServer2000数据库。
建立了一个数据库StudentSys,包括了九个表:
院系班级表Classes、学生基本信息表Students、学生教育经历记录表Experience、学生奖惩表Evaluation、学生学籍变动表Change、课程设置表Lessons、考试成绩表Scores、用户信息表Users。
表1Classes结构
表5Change结构
表6Lessons结构
3.3代码设计
一个高效的软件不仅应该比实现同样功能的软件运行得更快,还应该消耗更少的系统资源。
所以代码的设计就显得非常重要。
考虑到以后对系统更新与维护的可行性与方便性,减少程序员工作量,等各方面的考虑,我们在代码设计过程中遵循科学性,系统性,可扩展性,规范化,人性化,通用性,含义单纯性,容易理解等原则考虑。
以下只列举部分关键代码院系管理
添加院系信息
IfTrim(txtClass=""Then
MsgBox"请输入院系班级名称"
ExitSub
EndIf
WithMyClass
.Class_Name=MakeStr(txtClass
.Describe=MakeStr(txtDescribe
IfModify=FalseThen'插入
If.In_DB(.Class_Name=TrueThen
MsgBoxTrim(txtClass+"已经存在"
ExitSub
EndIf
.UpperId=CurClass.Class_Id
Bh=.Insert
Tmp_Key="a"+Trim(Str(Bh
FrmClassMan.TreeView1.SelectedItem.Image=1
FrmClassMan.TreeView1.SelectedItem.ExpandedImage=2
FrmClassMan.TreeView1.SelectedItem.SelectedImage=3
SetTmpNode=FrmClassMan.TreeView1.Nodes.Add(FrmClassMan.TreeView1.SelectedItem.Key,_tvwChild,Tmp_Key,.Class_Name,4,5
TmpNode.Selected=True
Else'修改
IfCurClass.Class_Name<>Trim(txtClassThen
If.In_DB(Trim(txtClass=TrueThen
MsgBoxTrim(txtClass+"已经存在"
ExitSub
EndIf
EndIf
.UpperId=CurClass.UpperId
.Update(CurClass.Class_Id
IfCurClass.Class_Name<>Trim(txtClassThen
FrmClassMan.TreeView1.SelectedItem.Text=Trim(txtClass
EndIf
CurClass.Class_Name=Trim(txtClass
EndIf
EndWith
UnloadMe
删除院系资料IfTreeView1.SelectedItem.Key="a0"Then
MsgBox"此项不能删除"
ExitSub
EndIf
IfCurClass.HaveSon(CurClass.Class_Id=TrueThen
MsgBoxCurClass.Class_Name+"包含下级院系班级,不能删除"
ExitSub
EndIf
IfMyClass.HaveStudent(CurClass.Class_Id=TrueThen
MsgBoxCurClass.Class_Name+"包含学生,不能删除"
ExitSub
EndIf
IfMsgBox("是否确定要删除"+Trim(TreeView1.SelectedItem.Text,vbYesNo,"请确认"=vbNoThen
ExitSub
EndIf
CallCurClass.Delete(CurClass.Class_Id
TreeView1.Nodes.RemoveTreeView1.SelectedItem.Index
TreeView1_Click
学生信息资料管理
添加学生基本信息资料
WithMyStu
.Student_Name=MakeStr(txtStu_Name
.Sex=ComboSex.Text
.Nationality=MakeStr(txtNationality
IfIsDate(ComboBirth.Text=FalseThen
MsgBox"请选择正确的出生日期"
ExitSub
EndIf
.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
IfIsDate(ComboInDate.Text=FalseThen
MsgBox"请选择正确的入校日期"
ExitSub
EndIf
.InDate=ComboInDate.Text
.Title=MakeStr(txtTitle
.Memo=MakeStr(txtMemo
dd=Date
dd=Format(dd,"yyyy-mm-dd"
t=Time
tt=Trim(Str(Hour(t+":
"+Trim(Str(Minute(t+":
"+Trim(Str(Second(t.Fillin_Time=dd+""+tt
.Class_Id=CurClass.Class_Id
IfModify=FalseThen
.Insert
Else
.Update(CurStu.Student_Id
EndIf
EndWith
FrmStuMan.TmpOk=True
UnloadMe
照片管理
IfButton=1Then
IfFrmPhotoMenu.Visible=TrueThen
UnloadFrmPhotoMenu
EndIf
EndIf
IfButton=2Then
IfCurStu.Student_Id<=0Then
ExitSub
EndIf
FrmPhotoMenu.Left=X+Image1.Left+200'-1610
FrmPhotoMenu.Top=Y+Image1.Top+1900
FrmPhotoMenu.Show
EndIf
DimDiskFileAsString
IfCurStu.Student_Id<=0Then
MsgBox"请选择学生"
UnloadMe
ExitSub
EndIf
CommonDialog1.Filter="BMP文件(*.bmp|*.bmp|JPEG文件(*.jpg|*.jpg|GIF文件(*.gif|*.gif"
CommonDialog1.ShowOpen
DiskFile=CommonDialog1.
IfDiskFile=""Then
MsgBox"请选择照片文件"
UnloadMe
ExitSub
EndIf
CallSaveImage(DiskFile,FrmStuMan.AdoStuDetail
CallShowImage(FrmStuMan.Image1,FrmStuMan.AdoStuDetail
UnloadMe
IfCurStu.Student_Id<=0Then
MsgBox"请选择学生"
UnloadMe
ExitSub
EndIf
FrmStuMan.AdoStuDetail.Recordset.Fields(2.AppendChunk""
FrmStuMan.AdoStuDetail.Recordset.Update
FrmStuMan.Image1.Picture=LoadPicture(""
UnloadMe
学籍管理
添加学籍管理信息资料
FrmChangeEdit.ComboDate.Text=Format(Now,"yyyy-mm-dd"
SelStu.Init
FrmChangeEdit.ComboName.Text=""
FrmChangeEdit.ComboType.ListIndex=ComboType.ListIndex
FrmChangeEdit.ComboClass=""
FrmChangeEdit.txtMemo=""
FrmChangeEdit.Modify=False
FrmChangeEdit.Show1
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.ListIndex
SelectCaseComboType.ListIndex
Case0,1'退学、休学
FrmChangeEdit.txtNewSchool=""
FrmChangeEdit.ComboClass=""
FrmChangeEdit.txtReason=Trim(Adodc1.Recordset.Fields(4
FrmChangeEdit.txtMemo=Trim(Adodc1.Recordset.Fields(5
Case2'转学
FrmChangeEdit.txtNewSchool=Trim(Adodc1.Recordset.Fields(4
FrmChangeEdit.ComboClass=""
FrmChangeEdit.txtReason=Trim(Adodc1.Recordset.Fields(5
FrmChangeEdit.txtMemo=Trim(Adodc1.Recordset.Fields(6
Case3'调班
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
EndSelect
FrmChangeEdit.Modify=True
FrmChangeEdit.Show1
Refresh_Change
第四章.学生照片管理模块设计
4.1ImageFunc模块
ImageFunc模块用来管理与数据库读写图像字段相关的变量和函数。
其中包含两个用户自定义过程:
ShowImage和SaveImage。
因为SQLServer2000的图像字段不能够使用Insert和Update等语句插入和更新,所以本系统中使用GetChunk和AppendChunk方法读取和填写图像字段。
GetChunk方法用来返回大型文本或二进制数据Field对象的全部或部分内容,AppendChunk方法则将数据追加到大型文本、二进制数据Field或Parameter对象中。
ShowImage(包含两个参数,Image1表示用来显示图像的Image控件,Adodc1表示用来提供图像字段的ADOData控件。
ShowImage(过程的代码如下:
PublicSubShowImage(Image1AsImage,Adodc1AsAdodc
ErasebyteChunk(
FieldSize=Adodc1.Recordset.Fields(2.ActualSize
IfFieldSize<=0Then
Image1.Picture=LoadPicture(""
ExitSub
EndIf
'提供一个尚未使用的文件号
SourceFile=FreeFile
'打开文件
OpenTempBinaryAccessWriteAsSourceFile
'计算数据块
NumBlocks=FieldSize\BlockSize
LeftOver=FieldSizeModBlockSize'得到剩余字节数
'分块读取图像数据,并写入到文件中
IfLeftOver<>0Then
ReDimbyteChunk(LeftOver
byteChunk(=Adodc1.Recordset.Fields(2.GetChunk(LeftOver
PutSourceFile,,byteChunk(
EndIf
Fori=1ToNumBlocks
ReDimbyteChunk(BlockSize
byteChunk(=Adodc1.Recordset.Fields(2.GetChunk(BlockSize
PutSourceFile,,byteChunk(
Nexti
CloseSourceFile
'将文件装入到Image1控件中
Image1.Picture=LoadPicture(TempFile
'删除临时文件
Kill(TempFile
EndSub
SaveImage(也包含两个参数,ImageFile表示图像的文件名,Adodc1表示用来存储图像字段的ADOData控件。
ShowImage(过程的代码如下:
PublicSubSaveImage(ByValImageString,Adodc1AsAdodc
IfAdodc1.Recordset.BOF=TrueOrAdodc1.Recordset.EOF=TrueThen
ExitSub
EndIf
IfImageFile=""Then
ExitSub
EndIf
'提供一个尚未使用的文件号
SourceFile=FreeFile
'打开文件
OpenImageBinaryAccessReadAsSourceFile
'得到文件长度
=LOF(SourceFile
'判断文件是否存在
If=0Then
CloseSourceFile
MsgBoxDiskFile&"无内容或不存在!
"
Else
NumBlocks=\BlockSize'得到数据块的个数
LeftOver=ModBlockSize'得到剩余字节数
Adodc1.Recordset.Fields(2.Value=Null
ReDimbyteData(BlockSize'重新定义数据块的大小
Fori=1ToNumBlocks
GetSourceFile,,byteData('读到内存块中
Adod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 作业