失物查询系统

更新时间:2024-06-20 12:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖南农业大学课程设计报告

失物查询系统设计与实现

课 程: 院、 系

专 业: 班 级: 组 长: 组 员:

指导教师: 起止日期:

2013 年 12 月 29 日

目 录

1 问题定义报告 ....................................................................................................................... 1 1.1项目名称: ..................................................................................................................... 1 1.2背 景: ..................................................................................................................... 1 1.3项目目标: ..................................................................................................................... 1 1.4项目范围: ..................................................................................................................... 1 1.5开发条件: ..................................................................................................................... 1 1.6初步设想: ..................................................................................................................... 1 2 可行性分析报告 ................................................................................................................... 2 2.1 引言 ................................................................................................................................ 2 2.1.1 摘要 ......................................................................................................................... 2 2.1.2 编写目的 ................................................................................................................. 2 2.1.3 背景 ......................................................................................................................... 2 2.2 开发意义 ........................................................................................................................ 3 2.3对现有系统的分析 ......................................................................................................... 3 2.4 本系统可行性分析 ........................................................................................................ 3 2.4.1 技术方面的可行性 ................................................................................................. 3 2.4.2 经济方面的可行性 ................................................................................................. 3 2.4.3 社会方面的可行性 ................................................................................................. 3 2.5 结论 ................................................................................................................................ 4 3 需求分析报告 ....................................................................................................................... 4 3.1 系统需完成那些工作 .................................................................................................... 4 3.2分析建模 ......................................................................................................................... 4 3.2.1 数据流图 ................................................................................................................. 4 3.2.2 数据字典 .................................................................................................................. 4 3.3其他需求 ......................................................................................................................... 5 4概要设计说明书 .................................................................................................................... 6

1

4.1 引言 ................................................................................................................................ 6 4.2 任务概述 ........................................................................................................................ 6 4.3 软件模块结构图 ............................................................................................................ 6 4.4 运行设计 ........................................................................................................................ 7 5 详细设计说明书 ................................................................................................................... 7 5.1 程序流程图 .................................................................................................................... 7 5.2 主要模块 ........................................................................................................................ 7 5.2.1查询模块 .................................................................................................................. 7 5.2.2 登录模块 ................................................................................................................. 8 5.2.3 登记模块 ................................................................................................................. 8 5.2.4 修改状态模块 ......................................................................................................... 8 5.3 功能 ................................................................................................................................ 8 5.4 性能 ................................................................................................................................ 8 5.5 输入 ................................................................................................................................ 8 5.6 输出 ................................................................................................................................ 8 5.7 程序设计语言选择 ........................................................................................................ 9 5.7.1 C#及其特点 ........................................................................................................... 9 5.8 人机界面设计 ................................................................................................................ 9 6 程序源代码说明书 ............................................................................................................. 11 6.1 程序源代码 .................................................................................................................. 11 6.1.1 主界面代码: ....................................................................................................... 11 6.1.2 登录 页面代码: ................................................................................................. 11 6.1.3 登记/修改 页面代码: ........................................................................................ 13 6.1.4 查询 页面代码: ................................................................................................. 16 6.2 注意事项 ...................................................................................................................... 17 7 测试分析报告 ..................................................................................................................... 21 7.1 什么是测试 .................................................................................................................. 21 7.2 测试目的 ...................................................................................................................... 21 7.3单元测试 ....................................................................................................................... 21

2

7.3.1 主页面测试 ........................................................................................................... 21 7.3.2查询模块测试 ........................................................................................................ 22 7.3.3 登录模块测试 ....................................................................................................... 22 7.3.4 登记模块测试 ........................................................................................................ 25 7.3.5 修改状态模块测试 ................................................................................................ 27 7.4 其他测试 ...................................................................................................................... 29 7.5程序中的问题 ............................................................................................................... 29 7.6 总结 .............................................................................................................................. 30 7.7 参考资料 ...................................................................................................................... 31

3

1 问题定义报告

1.1项目名称:

失物查询系统 1.2背 景:

由于现在大学生中丢东西的现象屡见不鲜,很多人丢了东西不知道要到哪里去寻找,有些人捡到别人丢了的东西不知道要怎么还给失主,所以物归原主的情况很少。 1.3项目目标:

建立一个清晰,便于管理的,能进行失物登记,便于丢失东西的同学查询是否失物已被拾到并交到失物管理部门,从而帮助同学们更快的找回自己的东西 1.4项目范围:

现有设备及相关知识 1.5开发条件:

开发语言:C#

数据库技术:Sql server 2005 1.6初步设想:

系统应具有查询,登记,修改失物信息功能。

1

2 可行性分析报告

2.1 引言 2.1.1 摘要

系统名称:失物查询系统

目 标:建立一个清晰,便于查询、管理的失物查询系统 功 能:查询、登记、修改失物信息 2.1.2 编写目的

说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能选择的各种方案;说明并论证所选定的方案。该软件的可行性分析报告的预期读者主要是指支持该软件开发或者有意开发该软件的相关工作成员。

本文档的预期读者是:设计人员;开发人员;项目管理人员;测试人员;用户; 2.1.3 背景

为了方便失主寻找丢失物品、拾主归还捡拾物品和减轻失物招领中心的管理员的工作负担,以及发扬农大校园拾金不昧的美好品德和提高中国人民的道德水平,我们开发了失物招领管理系统。失主可以通过本软件进入到系统,查询自己丢失的物品是否已被好心人拾到并交给了招领中心;管理员可通过本系统对失物信息方便的进行管理。

a、待开发的软件系统的名称:

失物招领管理系统 b、本项目的开发者

可行性研究,需求分析:罗伟盛 概要设计,详细设计:陈道湘 编 码:刘莹

测 试:杨国力

c、用户

2

湖南农大学校失物管理处,湖南农大学生

2.2 开发意义

当今我国正努力建设和谐社会,政府重视城市居民道德素质的提高,所以,弘扬拾金不昧的优秀传统是政府义不容辞的一项责任。本着为农大学生道德素质以及学校失物管理的更好建设贡献自己的力量而提出了该项目的开发计划,该项目的主要用户包括学校管理部门和学生。同学们可以较快捷地找回自己失物。管理人员也能更好地管理失物。

2.3对现有系统的分析

目前我们学校存在的失物招领系统,就是人工系统,一切工作都由人去管理。而且失物交往的地方也很不统一。失主较难寻回自己的东西。

2.4 本系统可行性分析 2.4.1 技术方面的可行性

失物查询系统开发语言为C#,数据库技术运用了Sql server 2005,符合了开发小组的技术水平,利用现有计算机设备及软件,及自身所学知识,开发小组可以完美开发本系统。另外,失物查询系统的运行所占内存空间少,数据库结构较完善,能很好的运行于现有的各种通用计算机系统。 2.4.2 经济方面的可行性

本系统无需投入额外的设备,所以在经济上本系统的设计是可行的。此外系统对开发的需求以及软硬件要求都不是很高,所以在软硬件的支出成本并不高。我们的系统主要是提供给学校的管理部门。所以本系统在任何一台PC上都可以运行,有很高的经济可行性。 2.4.3 社会方面的可行性

同学们在生活中难免会出现不下心丢失物品的情况。该系统做出,运行之后,能帮助同学们较快的找回失物。对维护个人财产和社会和谐有重要作用。所以该

3

系统的开发运用符合当今社会发展的需求。具有着很强的使用意义和社会可行性。 2.5 结论

系统具备立即开发的可能性,可进入软件开发的下一阶段。

3 需求分析报告

3.1 系统需完成那些工作

首先,本系统要方便查询失物信息。

其次,为防止某些学生随意更改信息,对于信息的管理要设置权限。 最后,管理员能对新的失物信息进行登记,还要能对已领取的物品做个标记。 3.2分析建模

因为本系统需求较为简单,所以采用瀑布模型。 3.2.1 数据流图

3.2.2 数据字典 (1)数据流定义表 数据流定义表 名称:失物信息 来源:管理员 去处:用户 数据流一览表: 要修改的信息 修改失物信息 所有用户 新的失物信息 已登记信息 登记失物信息 查询已登记失管理员 失物列表 已登记的失物信息

4

编号 ① ② ③ 数据流名称 新的失物信息 要修改的信息 已登记的失物信息 来源 管理员 管理员 失物列表 去处 失物列表 失物列表 所有用户 (2) 数据元素定义表 编号 ① ② ③ ④ ⑤ 名称 类型 特征 别名 type feature 类型 string string string Datetime 长度 10 50 50 8 10 捡拾地点 lostlocation’ 捡拾时间 date 状态 status string (3)数据存储定义表 数据存储名称 简述 组成 (4)处理定义表

处理名称 修改状态 查询失物信息 简述 修改物品是否已被领取 状态 组成 listLost 用于登记拾到物品的信息 失物的特点,类型,拾到地点,拾到日期,状态 供所有用户查询已登记的失失物的特点,类型,拾到地物 点,拾到日期,状态

3.3其他需求

界面需求:用户界面要简洁,易于操作。

性能需求:数据从数据库中读出,精确度较高,时间上也较快捷。至于适应性,只要装有这个系统的电脑都能使用。

安全需求:为了防止数据库中有虚假的信息,所以在进行数据录入的时候要验证管理员身份,只有管理员能对数据进行修改。

5

4概要设计说明书

4.1 引言

本文档为“失物招领概要设计说明书”,编写此说明书是为实现系统的功能而进行的系统概要设计说明。

本说明书的预期读者为客户、业务或需求分析人员、项目管理人员、软件设计人员、测试人员、用户文档编写者 4.2 任务概述

失物查询系统是当前和谐学校创建之所需。面对现在生活的各个方面都在向信息化方面发展。而现在校园中同学们每当自己丢失物品后不知道怎么去寻找该去哪里寻找,捡到的东西也不知道该把捡到的东西怎么还给失主。通过该系统能解决物品丢失的问题,为同学们生活带来更多的方便,更好的创建和谐校园。 4.3 软件模块结构图

N1:新的失物信息 N2:要添加的信息 U1:要修改的信息 U2:修改成功后的信息 Q1:查询命令 Q2:查询到的结果

6

4.4 运行设计

作为一个需要方便快捷的系统,它的界面必须要简单,易于操作。编程语言采用C#能较好的实现这一点。用户能根据界面及提示来完成相应的操作,取得想要的信息。

5 详细设计说明书

5.1 程序流程图

5.2 主要模块 5.2.1查询模块

查询模块主要供查询使用,后台连接到数据库,读取数据库信息,把读取出

来的信息显示给用户。

7

5.2.2 登录模块

该模块用于验证管理员身份,在登录界面输入的账户和密码经过代码判断身份后给出相应响应。 5.2.3 登记模块

该模块用于接受管理员输入新的失物信息,并且把该信息写入数据库。 5.2.4 修改状态模块

该模块用于接受管理员输入要修改的信息,并且在数据库中内容做相应修改。

5.3 功能

通过与查询模块相结合,用于对文档信息的读取、手动增加和修改失物招领系统中失物招领系统中失物信息,失主招领信息以及其他信息,并通过成信息入模块,将各种信息录入系统中,综上失物招领管理的统一化和平台化。 5.4 性能

该模块对于管理员完全开放,并且具有对其更重信息有相应的录入修改权限,系统支持录入,普通用户只能查询。 5.5 输入

失物的登记信息 失物的修改信息 管理员登录的信息 5.6 输出

数据库中已有的失物信息

8

5.7 程序设计语言选择

本系统要作为一个操作方便,便于使用的系统,那么必须要建立一个良好的用户界面,在程序设计语言中,C#提供了良好的窗体设计界面,程序员能很容易的建立起用户界面。 5.7.1 C#及其特点

C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。它吸收了C++、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时(Common Language Runtime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有: 语言简洁;保留了C++的强大功能。快速应用开发功能。语言的自由性。强大的Web服务器控件。支持跨平台。与XML相融合。 5.8 人机界面设计

首先用户得选择自己将要进行的操作:(主界面)

9

若选择登记/修改按钮,则跳转到一个登录界面用于验证管理员身份:

登录成功,则进入 登记/修改 页面:

若用户在开始界面或是输入界面选择了查询状态的按钮,则进入查询显示页面:

10

6 程序源代码说明书

6.1 程序源代码 6.1.1 主界面代码:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient;

namespace LostQuery {

public partial class Main : Form {

public Main() {

InitializeComponent(); }

// “登记/修改” 按钮的响应

private void btn_input_Click(object sender, EventArgs e) {

Login login = new Login(); login.Show(); }

//“查询”按钮的响应

private void btn_query_Click(object sender, EventArgs e) {

Query query = new Query(); query.Show(); } } }

6.1.2 登录 页面代码:

using System;

11

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms;

namespace LostQuery {

public partial class Login : Form {

public Login() {

InitializeComponent(); }

//“登录”按钮添加响应

private void btn_login_Click(object sender, EventArgs e) {

//判断是否输入为空

if (this.tb_account.Text == \ || this.tb_password.Text == \) {

MessageBox.Show(\请输入用户名和密码\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);

this.tb_account.Focus(); this.tb_password.Focus(); } else {

//用户名和密码输入正确

if (this.tb_account.Text == \ && this.tb_password.Text == \) {

Input input = new Input(); input.Show(); this.Visible = false; }

//用户名或密码不正确 else {

MessageBox.Show(\对不起,你输入的用户名或密码不正确,不能进行登记\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);

12

this.tb_account.Focus(); this.tb_password.Focus(); } } }

//“清除”按钮添加响应

private void btn_clear_Click(object sender, EventArgs e) {

tb_account.Clear(); tb_password.Clear(); } } }

6.1.3 登记/修改 页面代码:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient;

using System.Text.RegularExpressions;

namespace LostQuery {

public partial class Input : Form {

public Input() {

InitializeComponent(); }

/*****************************************************************************/ /* 登记新的失物信息模块 */ /*****************************************************************************/

//给确定按钮添加响应

13

private void btnOk_Click(object sender, EventArgs e) {

//失物类型不允许为空 if (this.tbType.Text == \)

MessageBox.Show(\请输入失物类型\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); else {

//把失物信息写入数据库 string connString =

\Security=True\;//新建connection对象

SqlConnection connection = new SqlConnection(connString);

string sqlString = \

listLost(type,feature,lostLocation,date,status) values('\ + tbType.Text.Trim() + \ + tbFeature.Text.Trim() + \ + tbAddress.Text.Trim() + \ +

dateTimePicker1.Value.ToShortDateString() + \未领取')\;//登记的物品状态都设置为未领取 try {

connection.Open();

MessageBox.Show(\打开数据库连接成功\);

SqlCommand command = new SqlCommand(sqlString, connection); int result = command.ExecuteNonQuery(); MessageBox.Show(\添加成功\); }

catch (Exception) {

MessageBox.Show(\打开失败\); } finally {

connection.Close();

MessageBox.Show(\关闭数据库连接成功\); } } }

//“清除”按钮添加响应

private void btnClear_Click(object sender, EventArgs e) {

tbType.Clear();

14

tbFeature.Clear(); tbAddress.Clear(); }

/*****************************************************************************/ /* 修改状态模块 */ /*****************************************************************************/

//“确定”按钮添加响应

private void buttonOK_Click(object sender, EventArgs e) {

//输入为空

if (this.tbGet.Text == \)

MessageBox.Show(\请输入领取编号!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); else {

//判断输入的是不是数字

string isNum = this.tbGet.Text;

Regex reg = new Regex(\); //判断是不是数据,要不是就表示没有选择,则从隐藏域里读出来

Match ma = reg.Match(isNum); if (ma.Success) {

int num = Convert.ToInt32(isNum); //是数字

string connString =

\Security=True\;//新建connection对象

SqlConnection connection = new SqlConnection(connString);

string sqlString = \已领取' where id='\+num+\;

try {

connection.Open();

MessageBox.Show(\打开数据库连接成功\);

SqlCommand command = new SqlCommand(sqlString, connection); int result = command.ExecuteNonQuery(); MessageBox.Show(\状态更改成功\); }

15

catch (Exception) {

MessageBox.Show(\打开失败\); } finally {

connection.Close();

MessageBox.Show(\关闭数据库连接成功\); } } else {

//不是数字

MessageBox.Show(\输入不合法!请输入领取编号!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } } }

//“查询”按钮添加响应

private void buttonQue_Click(object sender, EventArgs e) {

Query query = new Query(); query.Show(); } } }

6.1.4 查询 页面代码:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient;

namespace LostQuery {

16

public partial class Query : Form {

public Query() {

InitializeComponent(); }

private void Query_Load(object sender, EventArgs e) {

//连接数据库 string connString =

\;//新建connection对象

SqlConnection connection = new SqlConnection(connString); string sqlString = \;

//数据库中内容在dataGridView1中显示出来 DataSet ds = new DataSet();

SqlDataAdapter sda = new SqlDataAdapter(sqlString, connection); sda.Fill(ds, \); dataGridView1.DataSource = ds;

dataGridView1.DataSource = ds.Tables[\]; connection.Close(); ds.Dispose(); ds.Dispose(); } }

6.2 注意事项

管理员登录身份只有一个:账号:admin 密码:1234 在数据库的表中,失物类型是必填项。 在修改物品状态时,输入只能接受数字。

17

7 测试分析报告

7.1 什么是测试

在软件开发过程中不可避免会出现插叙哦,测试就是找出这些差错的过程。 7.2 测试目的

更好的发现至今为止尚未发现的错误和缺陷。

所有的测试都要追溯到用户的需求。最严重的错误是导致程序不能满足用户的需求,为了防止这些错误的发生,所以要把软件交给用户之前进行测试。 7.3单元测试 7.3.1 主页面测试

主页面:

选择”查询”后跳转的页面(左图),选择”登记”后跳转的页面(右图)

结论:主页面按钮都响应成功。

21

7.3.2查询模块测试

按下主界面的查询按钮,出现如下显示,对比数据库中内容:

信息一致,说明软件中查询信息能正确显示。 7.3.3 登录模块测试

用白盒测试判断是用户名和密码: 输入条件 账号,密码 账号,密码 账号,密码 账号,密码

输入

admin,1234 ad,1234 admin,12 任意一个为空

编号

1 2 3 4

预期输出

登录成功 登录失败 登录失败 登录失败

1 正确输入(左图)后能跳转到的页面(右图)

22

2,错误的账号,正确的密码:(下面左图)

3, 正确的账号,错误的密码:(下面右图)

23

4,有空输入的情况

24

7.3.4 登记模块测试

因为数据库中定义了物品类型不能为空,所以测试当物品类型为空时的情况:

因为其他信息可不填,则只输入物品类型: 所以只输入物品类型后,按确定,再查询一次

25

当信息填写完整时:

26

测试表明,登记模块基本正确。 7.3.5 修改状态模块测试

因为在这个模块中,只能输入数字。 输入条件 物品编号 物品编号 物品编号 1,

输入

空 非数字 数字

编号

1 2 3

等价类的有效性

无效 无效 有效

预期输出

修改失败 修改失败 修改成功

物品编号为空时:

27

2, 输入为非数字时:

3,

输入为数字后,再查询,也参照数据库 修改前的查询结果:

输入数字后按确定,有提示:

28

再次在系统查询:

到数据库中查询:

经测试,修改状态模块也基本正确。

7.4 其他测试

由于本系统界面较为简单,功能也较为简单,集成测试,确认测试,系统测试及验收测试略。

7.5程序中的问题

经过单元测试,能发现在失物列表中id栏出现了1,2,3,15,16的变化。原因是在编码过程中,程序员直接在数据库的表中删除了编码是测试用的那几行信息。

29

说明如果删除信息这一部分还存在着问题。

7.6 总结

在我们整个软件工程中我体会到了很多,也学会了很多。

在项目进行分组后,我们的项目小组就诞生了。我们小组由4个成员组成,在我们互相商量后也确定了我们组的项目,是做一个失物查询系统。我们随即也进行了分工。

需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后面的项目进展将产生致命的后果,所以在做任何一个项目时,前期的需求调研和需求分析都是必要的,这是在做项目的基本,也是关系成败的重要一环。

对于一个项目,它的需求设计也是非常重要的。在我们失物管理系统开发过程中,遇到了一些问题,出现这些问题都是非常棘手的,我们为了解决这些棘手问题浪费了大量时间,我们不得不在工程代码上改了又改,在数据库里面增表,删表,加数据,减数据,当然,在文档里的修改也要做出也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过互相的沟通讨论,问题也得到了解决。通过总结,我们也意识到,大家在做需求分析和进行需求了解时仅仅考虑了一些基本功能,而至于管理员和客户之间的联系,以及后面的一些基本流程我们都没有进行深究,而导致了后期花费了大量的时间来修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据可里应该怎样建表,也能避免可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进行至关重要。

在这几周的时间里,我还对软件工程有了新的理解。在我以前的理解当中,软件,无非就是一个人或者几个人或一个团队在一起进行编码的工作,以实现所开发出的软件。但现在我明白了,软件工程的作用,就是告诉人们怎么去开发软件和管理软件。具体的讲,它表现在与软件开发和管理有关人员和过程上。所以,软件工程不仅仅是单一的编程问题了。它包括了系统分析-建模-概要设计-详细设

30

计-编码-测试-维护。编码可以理解为编程,这个只占总工程的20%左右。编程只是其中的一小部分。

在这次项目中我完成了许多工作,在后期的项目整合过程中修改了界面和功能结合时出现的bug,还有数据库插入数据及解决数据库集中整合出现的问题。这些工作我都完成了,虽然不能说得上是出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。

当然,在这次项目过程中我也发现了自己的一些问题。在和小组的沟通上不够积极。我希望以此为契机,在将来的项目开发中能做得更好。

7.7 参考资料

[1] 王小科,徐薇等. C#从入门到精通 [M]. 北京:清华大学出版社,2010年7月 [2] 王永皎,廖建军等. Visual C#2005+SQL Server 2005数据库开发与实例[M]. 北京:清华大学出版社,2008年6月

31

本文来源:https://www.bwwdw.com/article/99m3.html

Top