软件工程课程设计报告

时间:2024.4.20

                         滨江学院

软件工程课程设计报告

( 20## -- 20## 年度第  2 学期)

课程名称:      软件工程课程设计       

  题    目:      个人通讯录管理系统    

院    系:      滨江学院计算机系      

班    级:      动漫(2)班              

学    号:      20102359059            

姓    名:                         

指导教师:                      

设计周数:                         

          

日期:2012 年 5 月 24  日


摘要:

个人通讯录管理系统是针对系统服务对象的具体要求设计的,能够输入所有人员的相关信息,实现人员的分类管理和查询。

本系统运用VB 6.0及SQL Server2000实现,主要设计了以下几大功能:

(1)新建、修改、删除通讯录记录

(2)能根据姓名进行模糊查询

(3)能根据电话查询某人

(4)方便的浏览逐条记录

一、课程设计的目的与要求

一、设计内容及要求

◆  建立通讯录信息,信息包含编号、姓名、年龄、电话和学校等;

◆  能够提供添加、查找和修改通讯录信息的功能;

◆  能够提供按姓名查询;

◆  将通讯录保存在文件中;

能够按表格方式输出通讯录信息

二、设计正文

1.    概述

1.1课题题目:学生选课系统

1.2系统的主要目标:

密码表用于记录用于登录系统的用户名及密码;person用于记录个人的基本通信信息。

1.3 系统的开发环境及运行环境:

操作系统:  Windows XP Pro SP2

建模工具:  Rational Rose 2003

数据库系统:SQL Server2000

开发工具:  Visual Studio 2005

Web服务器:IIS+ASP.NET 2.0平台

2.    系统需求分析

本系统运用VB 6.0及SQL Server2000实现,拥有1个登录窗体,1个主窗体,1个查询窗体,一个注册窗体。

登录窗体里可以由单击事件调用注册窗体,登录成功后进入主窗体,主窗体实现信息的录入及各个功能。

本系统在SQL Server2000数据库里设计了2个数据表:

密码表:(用户名,密码)   用于记录注册过的用户名及密码

person(手机,姓,名,地址,所在组,邮件,公司,职位)

系统总体设计

3.1 设计问题域子系统

用户实体:

 

图2.1 用户实体及其属性

2.个人通信信息的E-R模型:

                                  

图2.2 个人通信信息实体的E-R模型

2.3  关系模型

本系统设计了2个实体,密码实体,person实体,两个实体不存在联系。

因此可将本系统的E-R模型转化为下述关系模型:

密码表:(用户名,密码)

person(手机,姓,名,地址,所在组,邮件,公司,职位)

2.4         表结构设计

本系统在SQL Server2000数据库里共设计了3个数据表来记录数据:密码表,person。

1.密码表:

表2.1密码表的结构

2.person:

表2.2 person的结构

3  系统各功能模块的详细设计

3.1  登录界面

输入正确的用户名及密码即可登陆系统,若连续3次输入错误的密码则窗口自动关闭。

图3.1 登录界面

代码:

Private Sub CmdLand_Click()

Static miCount As Integer

Dim sqlstr As String

sqlstr = "Select * From 密码表 where 用户名=  '" & Text1 & " '"

Adodc1.RecordSource = sqlstr

Adodc1.Refresh

If Adodc1.Recordset.BOF Then

 MsgBox "用户名错误,重新输入", vbExclamation, "警告"

 Text1.Text = ""

 Text1.SetFocus

Else

 If Adodc1.Recordset.Fields("密码") = Text2 Then

  Form1.Show

  Unload Me

 Else

  MsgBox "密码错误,重新输入", vbExclamation, "警告"

  Text2.Text = ""

  Text2.SetFocus

 End If

End If

miCount = miCount + 1

If miCount = 3 Then Unload Me

End Sub

Private Sub Command1_Click()

 Form4.Show

End Sub

Private Sub Command2_Click()

 Unload Me

End Sub

3.2         主窗体界面

在本窗口实现信息的浏览,新建,删除以及修改,按确定执行操作,按取消则放弃操作。

图3.2 系统主窗体

代码:

Private Sub CmdAdd_Click()

Adodc1.Recordset.AddNew

CmdAdd.Enabled = False

CmdDel.Enabled = False

CmdChange.Enabled = False

CmdOk.Enabled = True

CmdEsc.Enabled = True

CmdFirst.Enabled = True

CmdPre.Enabled = True

CmdNext.Enabled = False

CmdLast.Enabled = False

Text1.Locked = False

Text2.Locked = False

Text3.Locked = False

Text4.Locked = False

Text5.Locked = False

Text6.Locked = False

Text7.Locked = False

Text8.Locked = False

Text1.SetFocus

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdChange_Click()

CmdAdd.Enabled = False

CmdDel.Enabled = False

CmdChange.Enabled = False

CmdOk.Enabled = True

CmdEsc.Enabled = True

Text1.Locked = False

Text2.Locked = False

Text3.Locked = False

Text4.Locked = False

Text5.Locked = False

Text6.Locked = False

Text7.Locked = False

Text8.Locked = False

Text1.SetFocus

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdDel_Click()

x = MsgBox("确定要删除当前记录吗?", vbYesNo + vbQuestion, "确认")

If x = vbYes Then

 Adodc1.Recordset.Delete

 Adodc1.Recordset.MoveNext

 If Adodc1.Recordset.EOF Then

  Adodc1.Recordset.MoveLast

 End If

Else

 Adodc1.Refresh

End If

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdEsc_Click()

Adodc1.Refresh

CmdAdd.Enabled = True

CmdDel.Enabled = True

CmdChange.Enabled = True

CmdOk.Enabled = False

CmdEsc.Enabled = False

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdFind_Click()

 Form2.Show

End Sub

Private Sub CmdFirst_Click()

Adodc1.Recordset.MoveFirst

CmdFirst.Enabled = False

CmdPre.Enabled = False

CmdNext.Enabled = True

CmdLast.Enabled = True

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdLast_Click()

Adodc1.Recordset.MoveLast

CmdFirst.Enabled = True

CmdPre.Enabled = True

CmdNext.Enabled = False

CmdLast.Enabled = False

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdN_Click()

Dim n As Integer

n = Text9.Text

Adodc1.Recordset.Move n

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdNext_Click()

Adodc1.Recordset.MoveNext

CmdFirst.Enabled = True

CmdPre.Enabled = True

If Adodc1.Recordset.EOF Then

 Adodc1.Recordset.MoveLast

 CmdNext.Enabled = False

 CmdLast.Enabled = False

End If

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdOk_Click()

Adodc1.Recordset.Update

CmdAdd.Enabled = True

CmdDel.Enabled = True

CmdChange.Enabled = True

CmdOk.Enabled = False

CmdEsc.Enabled = False

Text1.Locked = True

Text2.Locked = True

Text3.Locked = True

Text4.Locked = True

Text5.Locked = True

Text6.Locked = True

Text7.Locked = True

Text8.Locked = True

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub CmdPre_Click()

Adodc1.Recordset.MovePrevious

CmdNext.Enabled = True

CmdLast.Enabled = True

If Adodc1.Recordset.BOF Then

 Adodc1.Recordset.MoveFirst

 CmdFirst.Enabled = False

 CmdPre.Enabled = False

End If

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

Private Sub Form_Load()

CmdFirst.Enabled = False

CmdPre.Enabled = False

CmdNext.Enabled = True

CmdLast.Enabled = True

CmdAdd.Enabled = True

CmdDel.Enabled = True

CmdChange.Enabled = True

CmdOk.Enabled = False

CmdEsc.Enabled = False

Label9.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount

End Sub

3.3         查询界面

选择要查询的条件,输入查询的信息,按下查询按钮即可显示查询结果,按下返回按钮返回上级窗口。

图3.3 查询界面窗体

代码:

Private Sub CmdBack_Click()

 Form1.Show

 Unload Me

End Sub

Private Sub CmdFind_Click()

Dim str As String

str = " Select * From person "

str = str & "Where person." & Combo1.Text & " Like '" & Text1 & "% '"

Adodc1.RecordSource = str

Adodc1.Refresh

End Sub

Private Sub Form_Load()

Combo1.AddItem "姓"

Combo1.AddItem "名"

Combo1.AddItem "手机"

Combo1.AddItem "地址"

Combo1.AddItem "公司"

Combo1.AddItem "所在组"

Text1.Text = ""

End Sub

3.4  注册界面

输入要创建的用户名,然后输入两次相同的密码,即可在密码表中增加新的用户及密码,用来登录系统。

图3.4 用户注册窗体

代码:

Private Sub Command1_Click()

Dim sqlstr As String

If Text1 = "" Then

 MsgBox "请输入用户名!", vbExclamation, "确认密码"

 Text1.SetFocus

 Exit Sub

Else

 sqlstr = "select * from 密码表 where 用户名= '" & Text1 & " '"

 Adodc1.RecordSource = sqlstr

 Adodc1.Refresh

 If Adodc1.Recordset.EOF = False Then

 MsgBox "用户名已存在,请重新输入!", vbExclamation, "检验用户名"

  Text1 = ""

  Text1.SetFocus

  Exit Sub

 End If

End If

If Text2 <> Text3 Then

 MsgBox "二次输入的密码不一致,请重新输入", vbExclamation, "检验密码"

 Text2 = ""

 Text3 = ""

 Text2.SetFocus

 Exit Sub

ElseIf Text2 = "" Then

 MsgBox "密码不能为空!", vbExclamation, "检验密码"

 Text2.SetFocus

 Else

 Adodc1.Recordset.AddNew

 Adodc1.Recordset.Fields("用户名") = Trim(Text1)

 Adodc1.Recordset.Fields("密码") = Trim(Text2)

 Adodc1.Recordset.Update

 Me.Hide

 MsgBox "成功注册新用户!", vbInformation, "添加用户"

End If

End Sub

Private Sub Command2_Click()

 Unload Me

End Sub

3.    系统测试

在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。然后在完成所有模块后,我们将各子模块集成起来,再对它进行系统测试,找出系统设计或编码上的错误,以及验证系统是否实现了指定的功能。最后找几个其他的同学再对系统进行黑盒子测试,验证系统是否满足用户的功能需求。

在测试的过程,特别是在集成测试之后,发现了许多问题及功能缺陷,最后经过修改调试后都解决了。比如,有一个问题是,在删除教师用户之后,系统里还剩有许多与该教师有关的冗余记录,造成系统混乱。在进行了分析之后,发现是因为在删除教师用户时,没有对与他所关联的记录进行删除造成的,在添加了对其关联记录的级联删除之后,问题得到了解决。

三、课程设计总结或结论

通过一周时间的努力,终于完成了本次VB数据库课程设计,这次课程设计让我学到了很多东西,比如对整体结构的设计,对细节的把握以及对全局的掌控等。经过几天的自学、查阅书籍、自我摸索及实践,让我掌握了VB数据库设计的基本思想,也学会了对VB 6.0的基本使用。同时我也对VB有了更深入的了解,对VB事件驱动的编程机制有了更熟练的运用。要做一个项目,首先要学会根据实际的问题抽象出概念模型和系统中各个实体的E-R模型;然后将其进行转化为与之相应的关系模型;再由此模型进行数据库的设计以及数据库的检测;有了这几道工序作铺垫,才能够尽善尽美地去编写程序代码来实现系统具体的功能。

总之,这次VB课程设计让我收获颇多,相信这对于我今后工作和学习上的帮助也是不可估量的。

四、参考文献

[1] 刘志妩,张焕君,马秀丽等著. 基于VB和SQL的数据库编程技术.

北京:清华大学出版社. 2008

[2] 杨志强著. Visual Basic 6.0 程序设计教程. 北京:高等教育出版社. 2008

[3] 赵斯思著. Visual Basic 数据库编程与实例. 北京:人民教育出版社. 2009

更多相关推荐:
《软件工程》课程设计个人报告

软件工程课程设计报告海天一色网上书店软件工程课程设计个人报告题目网上书店学院名称信息科学与工程学院专业班级计算机092班报告人姓名梁宏报告人学号20xx01051413承担角色网页设计员同组组长安文龙同组其他成...

软件工程课程设计报告

滨江学院软件工程课程设计报告(20**--20**年度第一学期)课程名称:软件工程课程设计题目:个人电子相册的设计与实现院系:计算机科学与技术系班级:软件工程(3)班学号:***姓名:**指导教师:***设计周…

软件工程课程设计报告 之 总结性报告

总结性报告1.时间飞Q20xx项目从拟定好课题起,经过问题定义,可行性研究,需求分析,概要设计,详细设计,主要编程,分布测试,总体测试,到整体装配完成历时一个半月。2.人员主程序员(组长):王昌帅辅程序员:司吉…

软件工程课程设计报告

福建农林大学金山学院课程设计报告课程名称:软件工程课程设计题目:旅游信息管理系统姓名:系:信息与机电工程系专业:计算机科学与技术专业承担角色:辅助程序员20##年12月9日课程设计结果评定目录1.课程设计概述.…

《软件工程》课程设计报告模板

软件工程课程设计报告课程设计题目电子科技大学中山学院组长其他成员指导教师实验地点完成起止日期116计算机学院班级1目录一系统可行性研究报告31引言32现行系统调查33新系统概述34可行性综合评述35方案选择46...

软件工程课程设计总结

专业:08计本2班姓名:张敬宇学号:20806032039在我们整个软件工程过程中,我体会到了许多,也学到了许多。在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由3个成员组成,在相互商量后我们也确定了…

软件工程课程设计实验报告

重庆邮电大学软件工程课程设计实验报告网上选课系统姓名雷雷学号专业计算机科学与技术班级0410801指导老师邹洋教室S331A时间一实验题目网上选课系统主要功能描述系统首先维护校内所有课程的信息课程分为研究生本科...

数据库软件工程网络(综合)课程设计指导书

20xx年1月数据库软件工程网络综合课程设计指导书1页共31页数据库软件工程网络综合课程设计指导书湖州师范学院信息与工程学院20xx年1月20xx年1月数据库软件工程网络综合课程设计指导书2页共31页目录一适用...

软件工程课程设计测试分析报告

测试分析报告玩具出租管理系统测试分析报告作者完成日期修改情况记录测试分析报告目录1引言111编写目的112背景113参考资料12测试概要23测试结果及发现331测试11332测试22333测试33334测试44...

Glzoxy软件工程课程设计报告

秋风清秋月明落叶聚还散寒鸦栖复惊评分软件工程课程设计报告新闻管理系统的设计专业计算机科学与技术姓名班级学号完成日期指导教师1题目新闻管理系统设计与实现2系统分析21问题定义为了实现网站新闻的动态管理使得对信息的...

软件工程课程设计报告(个人)20xx

软件工程课程设计报告个人课程设计题目研究生教务管理系统专业信息与计算科学班级报告人姓名学号课程教师实验指导教师实验地点完成起止日期正文一课程设计概述目的任务参考资料1项目的目的根据研究生管理部门的要求面向针对研...

软件工程课程设计报告书模板

课程设计报告书校园卡管理系统班级学号姓名指导教师娜某某大学四方学院20xx年6月22日一问题定义校园卡管理系统是一套针对大学校园食堂饮食交费一般消费等方面的信息管理系统它包括了同学在校内消费各方面内容刷卡消费查...

软件工程课程设计报告(25篇)