试卷自动生成系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学
专业课程综合设计报告
学院里仁学院
年级专业08计算机2班
学生姓名赵鑫
学号************
指导教师于家新
设计日期2011年9 月26日—
2011年10月14日
专业课程综合设计报告
1、设计任务
以任何一门课程为例,能够以手工或自动方式,将该课程的每道试题录入到系统之中,并且通过设置参数,自动地生成一份试卷。
该试卷的题型可以分为选择题(包括单选和多选)、填空题、简答题、计算题等。
要求使用者能够通过系统,对所需要的题型、每种题型试题的数量、每道题的分值、每道题的难度进行设定,自动地生成一个word版本的试卷,该试卷格式符合一般试卷标准。
2、设计思想
通过用access 数据库录入题库信息,然后通过Visual C++的界面显示出来,用户可以在Visual C++的界面添加试题,删除试题,按照一定的条件搜索试题,可以自动生成试卷和手动生成试卷,并导入word文档现实出来。
2.1 功能需求分析
本系统是题库与试卷生成系统,主要有三方面的功能需求,其分别是:(1)题库管理:为了用户能方便管理庞大的试题题库,实现各种常用或者自定义题型的录入、修改、查询、删除等功能。
(2)手动生成试卷:用户可以对权限范围内的科目进行手动组卷。
选定科目后,选择共需几道大题、试卷的总分值、每道大题的题型、每大题包含小题的数量及每道大题的分值;对于每道大题需进入“选择试题”模块浏览试题库中的对应题型从中手动选择所需试题。
由于题库中题量较大,可以进行搜索查询,亦可将试题导出至word文档进行浏览,选择试题完毕后保存回到“手动组卷”模块。
(以上全部为必须操作)。
组卷后选择是否保存
试卷。
试卷生成后可以将试卷和答案导出至word文档。
再次选定科目后清除上一次的显示结果自动进入下一次的手动组卷模式。
(3)自动生成试卷:用户可以对权限范围内的科目进行自动组卷。
选定科目后,选择共需几道大题、试卷的总分值、每道大题的题型、每大题包含小题的数量及每道大题的分值(以上为必选);对于每道大题可以进入“选择题目范围及难度”模块对题目进行范围和难度的限制(可选)。
组卷后选择是否保存试卷。
试卷生成后可以将试卷和答案导出至word文档。
再次选定科目后清除上一次的显示结果进入下一次的自动组卷模式。
3、设计过程
3.1系统流程分析
本系统有两类用户使用,分别是系统管理员和一般管理员。
系统管理员负责管理系统帐号和系统的其他全部功能;一般管理员不能管理用户但是可以更新维护题库,按需求生成和保存打印试题等。
系统流程如图3-1所示:
图3-1
3.2数据流程分析
该系统的数据流程分为两部分,图3-2为顶层数据流程图,用户由各种类型的试题根据相应需求生成试卷。
图3-3为第二层的数据流程图,是对顶层数据流程的分解,将试卷的生成分为手动生成和自动生成。
图3-2 顶层数据流程图
图3-3 第二层数据流程图
3.3系统设计
3.3.1 系统总体设计目标
本系统是根据题库管理与试卷生成系统的具体需求应用而开发的,能够实现题库管理与试卷生成的工作,系统的开发主要要实现的目标有以下几个方面:
(1)灵活多样的组卷方式,如手工组卷和自动组卷。
(2)既能临时生成试卷,又能直接使用以前生成的试卷,也就是要求能对生成的试卷进行保存,以便下次直接使用,并能删除不再需要的试卷。
(3)试卷的保密性要求,只有授权人员才能生成和查阅试卷。
(4)试卷生成速度不宜太慢。
(5)生成的试卷按照规定的模板输出,并能导出到word文档中。
(6)生成的试卷既可以直接打印,也可以在word中修改和打印。
(7)友好的用户界面。
3.3.2 系统总体功能模块设计
本系统主要功能是为使用者提供一个简单快捷的试题录入、删除、修改、查询、浏览,快速组卷及试卷管理的软件系统。
系统模块分为以下几个部分,如图3-4所示:
图3-4
3.4 结构设计
3.4.1登陆模块设计
(1)登陆模块结构图
该模块包括用户管理模块和用户密码管理模块。
系统启动时调用此模块,要求用户先进行登陆。
登录模块结构如图3-5所示:
欢迎界面
登陆失败三次退出登录
进入主界面
图3-5
(2)界面设计
“登录”界面是用户进入主界面的路径,由三个静态文本框控件和两个Edit Box控件,两个按钮控件和一个Combo Box控件组成。
如图3-6所示:
图3-6
(3)属性设置
三个静态文本框的Caption属性分别为:登录方式、用户名、密码。
Combo Box的Data属性为:系统管理员\n普通管理员\n一般用户。
“密码:”静态文本框对应的Edit Box的Style的Password属性为选中状态。
两个按钮控件的Caption属性分别为:登录系统和取消登录。
(4)功能
在[登录方式]处选择以何种身份登录,在[用户名]和[密码]处键入正确的用户名和密码,确定后进入系统主窗口。
如果键入的用户名或密码错误,系统将出现错误提示,然后重新键入。
输入错误超过三次,自动退出系统。
3.4.2 系统主要模块设计
系统登录成功后进入主系统主窗口,系统主窗口显示了系统的主要功能,如图3-7所示:
图3-7
该界面可以实现试题的查询搜索、试题添加、试题删除、试题修改、试题浏览。
点击自动生成,可以实现根据选题数目、选题类型、计算总分可以自生成一份试卷,导入到word文档中。
3.5数据库模型
数据库设计是在选定的数据库管理系统基础上建立数据库的过程。
所有数据包含在一个access数据库中,数据库名为题库。
设计表如下:用户登录信息表:存储用户的详细信息,包括用户名、用户密码、用户权限和管理科目。
题目类型信息表:存储题目类型的信息,包括题目类型编号和题目类型名称。
科目信息表:存储各个科目的信息,包括科目编号和科目名称。
试题信息表:存储试题的信息,包括试题编号、类型、难度、所属章节、内容和答案。
已组试卷信息表:存储已组试卷的信息,例如试卷编号、方案编号等信息。
成套试卷信息表:存储成套试卷的信息,例如试卷编号、创建人、创建时间等信息。
实体E-R图
本系统的实体有:用户实体、试题实体,各个实体具体的描述E-R图如图3-8、图3-9所示。
图3-8 用户实体E-R图
图3-9 试题实体E-R图
3.5.1数据库的存储结构
本系统采用access 2003 数据库,系统数据库名为题库,数据库题库中包括5个数据表。
(1)用户表Admin,主要用来存储系统管理员的相关信息,表结构如表3-10:
表3-10 Admin表
(2)用户表Teacher,主要用来存储一般管理员的信息,表结构如表3-11:
(3)试题信息表,主要用来存储题库中的试题,表结构如表3-12:
表3-12 试题信息表
(4)题型表,用来存储动态生成试题类型,表结构如表3-13:
表3-13 题型表
(5)课程表,用来存储课程相关信息,表结构如表3-14:
如图3-15所示:
图3-15
3.5.2 连接数据库
点击鼠标右键,点击添加部件,出现如下图3-16界面,选择Microsoft ADO Control 6.0(SP6)和Microsoft Hierarchi FlexGrid Control 6.0。
图3-16
添加这两个部件,将鼠标移至Adodc1,在属性页的通用页面中选中链
接字符串,点击生成,选择想要链接的数据库名称,测试连接,出现链接成功提示。
过程如图3-17所示:
图3-17
回到属性页,选择记录源,将命令类型设置为adCmdTable,,并在表或存储过程名称中选择要链接的表的名称。
如图3-18所示:
图3-18
回到form页面,点击部件MSHFlexGrid1,在其属性窗口DataSource
项选择Adodc1,编译之后即可看出链接成功,如图3-19所示:
图3-19
3.6 程序代码如下:
(1)添加试题:
Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset("试题类型").Value = Text1.Text
Adodc1.Recordset("试题分值").Value = Text2.Text
Adodc1.Recordset("试题难度").Value = Text3.Text
Adodc1.Recordset("试题章节").Value = Text4.Text
End Sub
(2)删除试题
Private Sub Command2_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Adodc1.Refresh
Adodc1.Refresh
MsgBox "记录删除成功!", , "提示"
End Sub
(3)更新试题
Private Sub Command3_Click()
Adodc1.Recordset.Update
Adodc1.Refresh
End Sub
(4)(关闭窗口)
Private Sub Command4_Click()
Unload Me
End Sub
(5)搜索功能
Private Sub Command5_Click()
If Text5.Text <> "" Then
Adodc1.RecordSource = "SELECT * from 试题信息表where " & Combo1.Text & " like " & Text5.Text & "'"
Debug.Print Adodc1.RecordSource
Adodc1.Refresh
Else
MsgBox "没有" & Combo1.Text & "查询的数据", vbInformation + vbCritical, "提示"
End If
End Sub
(6)查看首条记录
Private Sub Command6_Click()
Adodc1.Recordset.MoveFirst
End Sub
(7)查看上一条记录
Private Sub Command7_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
MsgBox "这已是第一条了", vbOKOnly + vbExclamation, "提示"
End If
End Sub
(8)查看下一条记录
Private Sub Command8_Click()
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
MsgBox "这已是最后一条了", vbOKOnly + vbExclamation, "提示"
End If
End Sub
(9)查看末记录
Private Sub Command9_Click()
Adodc1.Recordset.MoveLast
End Sub
(10)实现在复选框中查询关机词的功能
Private Sub Form_Load()
Combo1.AddItem ("试题类型")
Combo1.AddItem ("试题分值")
Combo1.AddItem ("试题难度")
Combo1.AddItem ("试题章节")
Combo1.ListIndex = 0
Text5.Text = ""
End Sub
(11)生成组卷代码
Dim TempRec1 As New ADODB.Recordset
Dim A1 As String
Dim MyWord As Word.Application
Dim WordDoc As Word.Document
Dim BTextBox
Dim MyRange As Word.Range
Dim MyTable As Word.Table
Dim MyCell As Word.Cell
Dim MyCells As Word.Cells
Dim MyCols As Word.Columns
Dim A() As String
Dim B() As String
Dim ColN As Integer
Dim ArrBytes() As Byte
Dim FreeFileNumber As Integer
Dim Lngsize As Long
Set TempRec1.ActiveConnection = DBCon
If Combo1.ListIndex = -1 Then
MsgBox "没有选择试卷名称,不能生成试卷!", vbOKOnly, "提示"
Exit Sub
End If
TempRec1.Open "select id from sjtx where sjbm='" & SjbmArry(Combo1.ListIndex + 1) & "'"
If TempRec1.RecordCount = 0 Then
MsgBox "没有选择试卷题型顺序,不能生成试卷!", vbOKOnly, "提示"
Exit Sub
End If
TempRec1.Close
Load Form13
Form13.Height = 810
Form13.Width = 4680
CenterForm Form13, MDIForm1
Form13.Show
Me.Enabled = False
创建新文档
On Error GoTo ErrorEnd
Start:
Set WordDoc = MyWord.Documents.Add
If Option1.Value Then
With WordDoc.PageSetup
PageHeight = InchesToPoints(11.69)
PageWidth = InchesToPoints(8.27)
End With
End If
If Option2.Value Then
试卷分栏设置
WordDoc.PageSetup.TogglePortrait
With WordDoc.PageSetup
PageHeight = InchesToPoints(11.69)
PageWidth = InchesToPoints(16.54)
End With
WordDoc.PageSetup.TextColumns.SetCount NumColumns:=2
WordDoc.PageSetup.TextColumns.Spacing = CentimetersToPoints(4)
End If
插入试卷名称
= "宋体"
MyWord.Selection.Font.Size = 16
A1$ = Trim(Combo1.Text)
MyWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter MyWord.Selection.TypeText A1$
MyWord.Selection.TypeText Chr(13)
插入科目名称
= "宋体"
MyWord.Selection.Font.Size = 15
A1$ = "《" & Trim(Combo2.Text) & "》" + Chr(13)
MyWord.Selection.Font.Bold = True
MyWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter MyWord.Selection.TypeText A1$
MyWord.Selection.Font.Bold = False
插入注意事项
If TempRec1.State = 1 Then
TempRec1.Close
End If
TempRec1.Open "select Zysx from Sjbt where Sjbm='" & SjbmArry(Combo1.ListIndex + 1) & "'"
If TempRec1.RecordCount = 0 Then
MsgBox "没有找到试卷的注意事项,不能生成试卷!", vbOKOnly, "提示"
GoTo ErrorEnd
End If
A1$ = TempRec1.Fields("Zysx").Value
= "黑体"
MyWord.Selection.Font.Size = 10.5
MyWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft MyWord.Selection.TypeText A1$
= "宋体"
从Sjtx表中提取题型名称、数量、附加说明
If TempRec1.State = 1 Then
TempRec1.Close
End If
TempRec1.Open "select tx.txmc,Sjtx.Fzap,Sjtx.Fjsm from Sjtx,Tx where Sjtx.Txbm=tx.txbm and Sjtx.Sjbm='" & SjbmArry(Combo1.ListIndex + 1) & "' order by sjtx.ID"
If TempRec1.RecordCount = 0 Then
MsgBox "没有找到试卷所属题型,不能生成试卷!", vbOKOnly, "提示"
GoTo ErrorEnd
End If
ColN = TempRec1.RecordCount
If ColN < 12 Then
ReDim A(1 To TempRec1.RecordCount, 1 To 3)
TempRec1.MoveFirst
For i = 1 To TempRec1.RecordCount
A(i, 1) = TempRec1.Fields("Txmc").Value
If TempRec1.Fields("Fzap").Value <> "" Then
A(i, 2) = TempRec1.Fields("Fzap").Value
Else
A(i, 2) = ""
End If
If Trim(TempRec1.Fields("Fjsm").Value) <> "" Then
A(i, 3) = TempRec1.Fields("Fjsm").Value
Else
A(i, 3) = ""
End If
TempRec1.MoveNext
Next
TempRec1.Close
将对应数学数字转换成中文数字
ReDim B(1 To ColN)
TempRec1.Open "select Zwsz from SdZ"
TempRec1.MoveFirst
For i = 1 To ColN
B(i) = TempRec1.Fields("Zwsz").Value
TempRec1.MoveNext
Next
TempRec1.Close
创建表格将对应题目标号填写到表中
Set MyTable = MyWord.Selection.Tables.Add(MyWord.Selection.Range, 2, ColN + 2)
Set MyCols = MyTable.Columns
设置列宽
MyCols(1).Width = 46.5
列宽通过320/列数获取
For i = 1 To ColN
If Option1.Value Then
MyCols(i + 1).Width = 330 \ ColN
End If
If Option2.Value Then
MyCols(i + 1).Width = 370 \ ColN
End If
Next
MyCols(ColN + 2).Width = 50
设置行高
MyTable.Rows(1).Height = 25
MyTable.Rows(2).Height = 25
表格外边框
MyTable.Borders.OutsideLineStyle = wdLineStyleSingle
表格内边框
MyTable.Borders.InsideLineStyle = wdLineStyleSingle
表格居中
MyTable.Rows.Alignment = wdAlignRowCenter
表格中文本对齐方式
垂直居中
MyTable.Rows(1).Cells.VerticalAlignment=wdCellAlignVerticalCenter
MyTable.Rows(2).Cells.VerticalAlignment=wdCellAlignVerticalCenter
水平居中
For k = 1 To ColN + 2
MyTable.Cell(1, k).Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next
Set MyCell = MyTable.Cell(1, 1): MyCell.Select: MyWord.Selection.TypeText "题目"
题目名称从试卷表中的题目类型名称获取
For i = 1 To ColN
SetMyCell=MyTable.Cell(1,i+1):MyCell.Select:
MyWord.Selection.TypeText B(i)
Next
SetMyCell=MyTable.Cell(1,ColN+2):MyCell.Select:
MyWord.Selection.TypeText "总分"
SetMyCell=MyTable.Cell(2,1):MyCell.Select: MyWord.Selection.TypeText "得分"
Set MyCell = Nothing
Set MyTable = Nothing
MyWord.Selection.GoToNext wdGoToLine
MyWord.Selection.TypeText Chr
For i = 1 To ColN
题型阅卷表格和题型说明
= "黑体"
Set MyTable = MyWord.Selection.Tables.Add(MyWord.Selection.Range)MyTable.Borders.OutsideLineStyle = wdLineStyleSingle
MyTable.Borders.OutsideColor = wdColorWhite
MyTable.Borders.InsideLineStyle = wdLineStyleSingle
MyTable.Borders.InsideColor = wdColorWhite
MyTable.Rows(1).Cells(1).Borders.OutsideColor = wdColorBlack
MyTable.Rows(1).Cells(2).Borders.OutsideColor = wdColorBlack
MyTable.Rows(2).Cells(1).Borders.OutsideColor = wdColorBlack
MyTable.Rows(2).Cells(2).Borders.OutsideColor = wdColorBlack
SetMyRange=WordDoc.Range(MyTable.Cell(1,3).Range.Start, MyTable.Cell(2, 3).Range.End)
MyRange.Cells.Merge
For k = 1 To 2
MyTable.Columns(k).Width = 50
Next
MyTable.Rows.Height = 25
If Option1.Value Then
MyTable.Columns(3).Width = 325
End If
If Option2.Value Then
MyTable.Columns(3).Width = 365
End If
Set MyCols = MyTable.Columns
SetMyCell=MyTable.Cell(1,1):MyCell.Select: MyWord.Selection.TypeText "得分"
SetMyCell=MyTable.Cell(2,1):MyCell.Select: MyWord.Selection.TypeText "评分人"
MyTable.Rows.Alignment = wdAlignRowCenter
MyTable.Cell(1, 1).VerticalAlignment = wdCellAlignVerticalCenter
MyTable.Cell(2, 1).VerticalAlignment = wdCellAlignVerticalCenter
MyTable.Cell(1, 3).VerticalAlignment = wdCellAlignVerticalCenter
题号+题型+分值安排
= "宋体"
MyWord.Selection.Font.Size = 10.5
MyWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft If A(i, 3) <> "" Then
SetMyCell=MyTable.Cell(1,3):MyCell.Select: MyWord.Selection.TypeText B(i) & "、" & A(i, 1) & ".(" & A(i, 2) & ")" & Chr(10) & A(i, 3)
Else
SetMyCell=MyTable.Cell(1,3):MyCell.Select: MyWord.Selection.TypeText B(i) & "、" & A(i, 1) & ".(" & A(i, 2) & ")"
End If
Set MyCell = MyTable.Cell(1, 3): MyCell.Select
Set MyCell = Nothing
Set MyTable = Nothing
MyWord.Selection.GoToNext wdGoToLine
MyWord.Selection.GoToNext wdGoToLine
对应题型的试题
If TempRec1.State = 1 Then
TempRec1.Close
End If
按难度系数升序排列试题
TempRec1.Open "select st.stnr from st,sjst where st.stbm=sjst.stbm andsjst.txmc='"&A(i,1)&"'andsjst.Sjbm='"& SjbmArry(Combo1.ListIndex + 1) & "order by sjst.ndxs"
If TempRec1.EOF And TempRec1.BOF Then
Exit Sub
End If
If TempRec1.RecordCount = 0 Then
MsgBox "没有找到相关试题,不能生成试卷,请检查!", vbOKOnly, "提示"
GoTo NoSt
End If
N = TempRec1.RecordCount
TempRec1.MoveFirst
For j = 1 To N
Lngsize = TempRec1.Fields("stnr").ActualSize
ArrBytes = TempRec1.Fields("stnr").GetChunk(Lngsize)
FreeFileNumber = 1
Open App.Path & "\tempst.doc" For Binary As #FreeFileNumber
Put #FreeFileNumber, , ArrBytes
Close #FreeFileNumber
MyWord.Selection.TypeText Str(j)
MyWord.Selection.TypeText "."
MyWord.Selection.InsertFile FileName:=App.Path & "\tempst.doc", ConfirmConversions:=False
MyWord.Selection.Collapse Direction:=wdCollapseEnd
TempRec1.MoveNext
Next
TempRec1.Close
Next
添加页码
WordDoc.Sections(1).Footers(wdHeaderFooterPrimary).PageNumbers.Add PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage:=True
SetMyRange=WordDoc.Sections(1).Footers(wdHeaderFooterPrimary).Ran ge
MyWord.NormalTemplate.AutoTextEntries("第X页共Y 页").Insert Where:=MyRange, RichText:=True
MyRange.ParagraphFormat.Alignment = wdAlignParagraphCenter '段落居中对齐
End If
在第一轧添加试卷左则文本框
MyWord.Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=1
A1 = "学校_________________________班级__________________________ 学号________________________姓名___________________ "
Set BTextBox = WordDoc.Shapes.AddTextbox(msoTextOrientationUpward, 30, 80, 40, 620)
BTextBox.TextFrame.TextRange.Text = A1
BTextBox.Line.ForeColor.RGB = &HFFFFFF
试卷保存
CommonDialog1.DialogTitle = "保存试卷"
CommonDialog1.Filter = "Word文档(*.doc)|*.doc"
CommonDialog1.InitDir = CreateObject("shell.application").NameSpace(5).Self.Path
CommonDialog1.FileName = Combo2.Text & "试卷"
CommonDialog1.ShowSave
If Trim(CommonDialog1.FileName) <> "" Then
WordDoc.SaveAs CommonDialog1.FileName
WordDoc.Close
MsgBox Combo2.Text & "试卷已正确生成", vbOKOnly, ""
Else
WordDoc.SaveAs App.Path + "\Cancel.doc"
DeleteFile App.Path + "\Cancel.doc"
End If
Set WordDoc = Nothing
Unload Form13
Me.Enabled = True
Exit Sub
关闭文档
ErrorEnd:
WordDoc.SaveAs App.Path + "\Cancel.doc"
DeleteFile App.Path + "\Cancel.doc"
WordDoc.Close
Set WordDoc = Nothing
GoTo Start
Exit Sub
NoSt:
WordDoc.SaveAs App.Path + "\Cancel.doc"
DeleteFile App.Path + "\Cancel.doc"
WordDoc.Close
Set WordDoc = Nothing
Unload Form13
Me.Enabled = True
(12)形成word文档
Dim doc1 As Word.Application
Set doc1 = New Word.Application
doc1.Documents.Open ("d:\doc1.doc")
doc1.ActiveDocument.FormFields("text1").Result=Text1.Text
doc1.ActiveDocument.FormFields("text2").Result=Text2.Text
doc1.ActiveDocument.FormFields("text3").Result=Text3.Text
doc1.ActiveDocument.FormFields("text4").Result=Text4.Text
doc1.ActiveDocument.Save
doc1.Documents.Close
Set doc1 = Nothing
4 、心得体会
通过这次的课程设计,学会了access数据库的使用,以及VB的应用,可以做界面,巧妙的将数据库和VB界面联系起来,在软件工程学上更是取得了很大的进步。
对计算机的应用有了更深的认识和了解。
总的来说,设计中遇到了不少的问题,大部分得到了很好的解决,但也有少部分遗留的问题。
首先便是调研的不充分。
由于以前根本未曾接触过软件的整体开发设计,所以在前期的调研中相当不充分,开题也有些盲目,以为把属性和表写得越多越好,这个问题越到后来越严种,而且因为客观的原因耽误了进度,因而对开题做了修改。
其次是软件的编程问题,由于对VB只是了解并不能够灵活运用,所以在设计期间进行了苦读,终于可以基本掌握了常用控件的用法和语句编程。
然后就是从一而终的问题,在开发过程中我遇到了许许多多的问题,很多地方都不明白,经常有打退堂鼓的想法,我经常的请教同学,最后的成果虽然不很完美,但我尽力了,并有所收获。
细想整个系统设计过程中,我所做的不仅仅是本次系统开发工作,更主要的是我在开发过程中学到了许多在大学四年里所未能学到的东西,让我明白在以后的学习中,要不断的完善自己的知识体系结构,而且要注意理论与实践的结合。
最后,感谢答辩的各位老师在百忙之中给予我的系统设计指导和评审。