1 背景与可行性分析1.1 背景分析在校园中经常会出现各种各样的寻物启事,学生们丢的东西各式各样,其中不乏雨伞、钱包及证件等重要物品,尤其是证件丢失问题比较严重,由于办取证件的时间比较长,流程比较繁琐,所以丢失之后便会给丢失者造成巨大的麻烦。
为了方便失主寻找丢失物品,拾主归还捡拾物品和减轻失物招领中心的管理员的工作负担。
我决定开发一个失物招领系统,失主可以通过网络进入到本系统,查询自己丢失的物品是否已被好心人拾到并交给了招领中心;管理员可通过本系统对失物信息、报失信息、留言等信息方便地进行管理。
1.2 可行性分析①管理可行性学校重视信息技术的应用,对信息系统建设大力支持,学校各类基层业务人员对信息化也持积极态度。
同时,为了迎接新系统的到来,系统所需各类人员大多需要继续充实相关知识,这可以通过系列培训解决。
②经济可行性学校具有强大的网络系统、网络架构和网络管理能力,同时学校相关领导高度学校的信息化建设。
另外,失物招领系统比较简单,开发和维护费用都不高,对学校而言,完全可以承受。
系统投入运行后,将更方便进行失物招领,更易于查询,能够减轻学校员工的负荷,方便广大学生们寻回失物,提高效率,直接和间接带来一定的经济效益,造福于广大学生。
③技术可行性学校网络科学技术雄厚,失物招领系统比较简单,开发技术上不存在难题。
④结论根据以上可行性分析,学校可以立即开始失物招领系统开发。
在整个系统开发过程中,需要针对不同人员有的放矢地进行培训。
在系统分析过程中,需要进行管理方式变革、组织结构调整、业务流程重组。
2 系统分析2.1 组织结构职能分析2.1.1组织结构图2.1.2职能分析§管理员:①报失者向失物招领中心提供报失信息,管理员进行报失物品信息的添加、修改和删除工作;②捡拾者向失物招领中心提供捡拾物品信息,管理员进行捡拾物品信息的添加、修改和删除工作;③负责将失物招领信息和报失物品信息进行部分公开和统计用户在留言板的留言;④用户管理:由管理员进行增加或删除用户,并授予用户相应权限;⑤对数据库信息不定期进行维护。
§捡拾者:向失物招领系统管理员提供所捡拾物品的相关信息,如失物的名称、特点、捡拾地点、捡拾时间、领取状态(默认为未领取)、捡拾人信息(姓名及联系方式)、对应的存储地点及时间等。
§报失者:向失物招领系统管理员提供所报失物品的相关信息,如失物的名称、特点、丢失地点、丢失时间、报失人信息(姓名及联系方式)、对应的存储地点及时间等。
2.2 业务流程分析2.2.1业务流程图管理员失主捡拾者进入首页用户登录检查用户名与密码是否输入正确显示登录成功信息失物查询失物信息登记信息板留言相关信息录入数据库显示相关提示进入首页管理员登录检查管理员用户名与密码是否输入正确显示登录成功信息更新新增失物与寻回失物信息将失主与捡拾者信息配对查看信息板并回复捡到物品用户登录检查用户名与密码是否输入正确显示登录成功信息捡拾物品信息查询捡拾物品信息登记号和密码。
管理员登录成功之后,将对新增失物和已寻回的失物信息进行更新,并从数据库中调取新增的失物信息与失主信息,进行配对,然后查看信息板上面的留言信息,并整理发布到系统公告栏。
管理员登录之后更新的所有信息将保存进数据库并显示相关提示。
£ 报失者端:报失者在进入该系统之后,首先显示的是登录界面。
报失者需键入自己的账号和密码信息,点击登录之后,系统会自动检测输入的信息准确性,若准确无误,则系统提示并显示登录成功的信息,并进入下一业务环节;若出现错误,则提示报失者重新输入账号和密码。
报失者登录成功之后将要进行的业务包括——失物查询、失物信息登记、信息板留言等。
所有这些信息都将保存进数据库并显示相关提示。
£ 捡拾者端:捡拾者在进入该系统之后,首先显示的是登录界面。
捡拾者需键入自己的账号和密码信息,点击登录之后,系统会自动检测输入的信息准确性,若准确无误,则系统提示并显示登录成功的信息,并进入下一业务环节;若出现错误,则提示捡拾者重新输入账号和密码。
捡拾者登录成功之后将要进行的业务包括——捡拾物品信息登记、捡拾物品信息查询等。
所有这些信息都将保存进数据库并显示相关提示。
2.3数据流程分析2.3.1数据流图2.3.1.1登陆数据流图开始输入用户名及密码用户信息检测数据库检测用户信息是否正确确认用户登录结束出错信息重新输入是否2.3.1.2查询数据流图2.4 数据库设计2.4.1 E-R 图绘制根据实际业务分析,该失物招领系统E-R 模型如下:开始查询信息输入信息查询数据库记录信息结束信息输出2.4.2关系模式设计以上E-R图,可以转换为以下关系模式:用户(用户名、用户权限、密码)失物信息(丢失(捡拾)时间、详情描述、发布时间)详情描述(类型、发布时间、丢失(捡拾)时间、详情描述、联系人信息)搜索结果(丢失(捡拾)时间、类型、发布时间、记录数量、详情描述)2.4.3数据库表设计本系统采用SQL-Sever数据库设计表,根据功能模块的划分及相关信息的分类可以建立4个表,分别为用户信息表(user_info)、失物招领信息表(pick_info)、失物报失信息表(lost_info)、留言信息表(leaveword_info)。
表格信息如下:3 系统设计3.1系统功能结构分析3.1.1系统总功能划分模块图3.1.2系统子功能模块分析3.1.2.1管理端子功能模块管理端子系统主要是给失物招领中心管理员提供的功能,它分为登录管理、报失信息管理、失物信息管理、信息公布管理与用户管理,管理员必须首先通过登录认证之后才能实现以下功能。
£ 功能模块图:£ 功能模块描述:①登录管理:登录管理负责管理端的登录,管理端的人员(管理员)登录到管理端必须经过登录界面,输入自己的用户名和密码,然后系统判断这个用户的权限,然后再允许其实现其他功能。
活动图如下:②报失信息管理:£ 主要工作:完成报失信息的添加、修改和删除工作;£ 执行者:管理员£ 前置条件:管理员已登录系统;£ 后置条件:若信息维护成功,则数据库中的报失信息库随之变化,此时用户可以对报失信息进行查询;£ 基本路径:a) 进入报失信息管理界面,首先展示已有的报失信息;b) 点击每项信息可以详细浏览报失物品的信息,同时也可对信息进行修改;c) 添加信息时,输入报失物品名称、特点、丢失地点、时间、报失人信息(姓名、联系方式)、报失时间(以天计);d) 可删除选择的信息。
③失物信息管理:£ 主要工作:完成捡拾物品信息的添加、修改和删除等工作;£ 执行者:管理员;£ 前置条件:管理员已登录系统;£ 后置条件:若信息维护成功,则数据库中的失物信息库随之变化,此时用户可以对失物信息进行查询;£ 基本路径:a) 进入失物信息管理界面,首先展示已有的失物信息;b) 点击每项信息可以详细浏览失物的信息,同时也可对信息进行修改;c) 添加信息时,输入失物信息进行添加,输入失物的名称、特点、捡拾地点、时间、领取状态(置为未领取)、捡拾人信息(姓名及联系方式)、对应的存储地点及存储时间(以天计);d) 可删除选择的信息。
④信息公布管理:£ 主要工作:输出部分失物信息,提供查询和用户留言等功能,部分失物信息公布之后,用户可以查询到失物的名称、特点及丢失时间地点等相关信息;£ 执行者:管理员;£ 前置条件:管理员已登录系统;£ 后置条件:若信息发布成功后,则数据库中的信息随之变化,失者可通过网络看到部分失物信息,也可对这些失物进行查询以及在留言板上留言;£ 基本路径:a) 进入失物管理界面对失物信息进行管理;b) 系统自动调用数据库的信息,显示相关信息;c) 管理员可点击某项信息(包括留言信息)对其进行增删改;d) 提供信息查询功能。
⑤用户管理:£ 主要工作:进行权限管理,在用户界面对用户进行添加与删除工作;£ 执行者:管理员;£ 前置条件:管理员已登录系统;£ 后置条件:若用户信息维护完成,则用户的相应信息将记录到数据库中;£ 基本路径:a) 进入用户管理界面,显示目前的系统用户;b) 点击不同的用户,可显示这个用户的信息;c) 可增加用户,也可删除用户。
3.1.2.2用户端子功能模块报失者报失时可在查询系统中输入自己所要报失的物品的相关信息(如名称、特点、丢失地点等信息),然后进行查询即可,若有,则会显示失物信息;若无,则会对信息进行登记。
捡拾者可将捡拾物品交给管理员并提供相关信息(如捡拾地点、时间等),由管理员对捡拾物品的信息进行录入。
用户端的主要功能是报失、失物信息查询、留言等。
£ 功能模块图:£ 功能模块描述:①报失:£ 主要工作:系统提供失主报失信息栏,对报失信息进行录入;£ 执行者:失主;£ 前置条件:失主已登录进入系统;£ 后置条件:可对物品进行报失;£ 基本路径:a) 失者登录到系统,显示部分失物信息、留言信息等;b) 选择报失栏,填写报失信息。
②查询:£ 主要工作:查询分为普通查询和高级检索,方便失主对物品信息的查询;£ 执行者:失主;£ 前置条件:失主已登录进入系统;£ 后置条件:对部分物品信息进行查询;£ 基本路径:a) 失者登录到系统,显示部分失物信息、留言信息等;b) 选择查询项目,浏览相关信息。
③留言:£ 主要工作:失主在留言板上留言;£ 执行者:失主;£ 前置条件:失主已登录进入系统;£ 后置条件:在留言板上进行留言;£ 基本路径:a) 失者登录到系统,显示部分失物信息、留言信息等;b) 打开留言板输入留言信息。
3.2 输入输出设计3.2.1输入设计系统采用两种输入方式,键盘输入方式和校园卡识别方式。
对于报失者和捡拾者本人信息(姓名、专业班级等)的数据输入,可采用校园卡识别的方式自动输入到系统。
3.2.2输出设计以屏幕输出的方式进行输出。
3.3界面设计系统界面设计应简洁、统一。
4 系统实施部分4.1程序框图图4.1.1登录界面图4.1.2管理端界面图4.1.3失主端界面4.1.4失物展厅界面4.2 源程序代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 失物招领系统{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void btnLogin_Click(object sender, EventArgs e){string connStr = "server=.;database=失物招领系统DB;Integrated Security=True;";if (radioButton2.Checked == true){using (SqlConnection conn = new SqlConnection(connStr)){string sql = "select userPassword,times from LibraryUser where userName = @name";using (SqlCommand cmd = new SqlCommand(sql, conn)){cmd.Parameters.AddWithValue("@name", textBox1.Text); conn.Open();using (SqlDataReader dr = cmd.ExecuteReader()){if (dr.Read()){string pwd = dr["userPassword"].ToString(); int times = Convert.ToInt32(dr["times"]);dr.Close();if (times == 3){MessageBox.Show("重试次数超过3次");}else{string update = "";if (pwd == textBox1.Text){update = "update LibraryUser set times = 0 where userName='" + textBox1.Text + "'";}else{MessageBox.Show("密码错误!还剩" + (3 - times - 1) + "次输入机会");update = "update LibraryUser set times = times + 1 where userName='" + textBox1.Text + "'";}mandText = update;cmd.ExecuteNonQuery();}}else{MessageBox.Show("用户名不存在");}}}}}else{MessageBox.Show("请选择权限");}}private void pictureBox1_Click(object sender, EventArgs e){}private void label1_Click(object sender, EventArgs e){}private void textBox1_TextChanged(object sender, EventArgs e) {if (textBox1.Text == ""){button1.Enabled = false;MessageBox.Show("请输入用户名","警告");}elsebutton1.Enabled = true;}private void textBox2_TextChanged(object sender, EventArgs e) {if (textBox2.Text == ""){button1.Enabled = false;MessageBox.Show("请输入密码", "警告");}elsebutton1.Enabled = true;}private void button1_Click(object sender, EventArgs e){if (radioButton1.Checked == true){if (textBox1.Text == "admin" & textBox2.Text == "123456"){管理端 f = new 管理端();f.Show();}elseMessageBox.Show("用户名错误或密码错误\n请重新输入");}else if (radioButton2.Checked == true){if ((textBox1.Text == "xiaohong" || textBox1.Text == "xiaoming" || textBox1.Text == "xiaohua" || textBox1.Text == "xiaoli") & textBox2.Text == "123456"){失主端 n = new 失主端();n.Show();}elseMessageBox.Show("用户名错误或密码错误\n请重新输入");}}private void button2_Click(object sender, EventArgs e){}private void radioButton1_CheckedChanged(object sender, EventArgs e) {}}}4.3模拟运行数据①使用管理员账号密码(账号:admin;密码:123456)登录系统,界面如下,之后便进入管理员系统界面。