基于c的渔船信息安全系统设计论文毕设论文.docx
《基于c的渔船信息安全系统设计论文毕设论文.docx》由会员分享,可在线阅读,更多相关《基于c的渔船信息安全系统设计论文毕设论文.docx(27页珍藏版)》请在冰豆网上搜索。
基于c的渔船信息安全系统设计论文毕设论文
目录
第1章绪论1
1.1论文背景及课题来源1
1.2本课题在国内外的发展状况1
1.3应解决的问题及系统开发意义2
第2章开发工具及相关技术介绍3
2.1C++语言的特点3
2.2Access2007的特点3
2.3MFC技术介绍4
第3章系统需求分析5
3.1系统可行性分析5
3.2系统任务描述5
3.3系统功能分析6
3.3.1系统的功能需求6
3.3.2系统数据流图6
3.3.3系统数据分析7
第4章系统设计10
4.1系统总体结构设计10
4.2系统数据库设计12
4.3系统功能模块设计15
4.3.1管理员登录模块15
第5章功能实现16
5.1系统主要模块代码16
5.1.1管理员登陆界面及其主功能界面16
5.2系统测试23
5.2.1系统测试的特点23
5.2.2系统测试的内容24
5.3系统维护26
第6章结论27
参考文献28
致谢29
第1章绪论
1.1论文背景及课题来源
管理信息系统(MIS,ManagementInformationSystem),是一个由人、计算机等组成的能进行信息的收集、传送、储存、维护和使用的系统,能够实测企业的各种运行情况,并利用过去的历史数据预测未来,从企业全局的角度出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。
这里给出的定义强调了管理信息系统的功能和性质,也强调了管理信息系统中的计算机对企业管理而言只是一种工具。
管理信息系统是信息系统的重要分支之一,经过30多年的发展,已经成为一个具有自身概念、理论、结构、体系和开发方法的覆盖多学科的新学科。
渔船信息管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,而且信息不能有效及时的传达,对于渔业管理部门来说,渔船信息安全管理包括船只的名称、建造时期、船籍、船身参数等。
而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦,消耗大量时间,而且经常出错,甚至是数据的丢失,给广大用户带来很多不便。
为了给渔业管理部门更好的管理渔业,我们于是决定开发一套渔业信息安全管理系统,帮助渔业管理部门从繁琐的工作中解放出来。
1.2本课题在国内外的发展状况
渔船信息安全管理系统是渔业管理不可缺少的部分,它能够让管理部门便捷、高效、省时的管理捕鱼船只及其工作人员,因此渔船信息安全系统能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间长,将产生大量的文件和数据,这对于用户查找、更新和维护都带来了不少的困难。
为指导各级渔业部门科学合理地进行渔船监管信息系统平台的建设和整合,实现渔船动态监管信息系统平台建设的安全,高效,稳定和互联互通,更好的提升渔船监管的信息化水平和服务渔船能力,最大程度发挥平台在渔业生产,安全管理的辅助决策作用,推进渔船动态监管信息系统建设。
农业部渔政指挥中心于2010年8月颁布《渔船动态监管信息系统平台技术规范(试行)》指导渔业管理。
1.3应解决的问题及系统开发意义
目前我国市场经济发展迅速,渔业规模规模不断扩大,很多不法分子无视法律法规,给我国渔业的发展带来诸多问题。
虽然相关的法律法规不断完善,但是不法分子仍然利用隐蔽的手段和技术进行各种违法违规的渔业活动。
因此,如何利用科学的的技术手段管理渔业的相关信息具有非常重要的现实意义。
但是渔船管理在信息管理系统中还存在着以下问题:
(1)信息的交流不及时,不利于改善服务质量。
(2)数据的查询不方便,不能提高工作效率。
对渔船实行信息化的规范管理,可以及时地掌握渔船及渔民的工作信息,有针对性的对渔船进行监管,提高服务质量,同时可以节省渔业管理部门大量的人力,物力和财力,极大的提高工作效率。
这样就要求渔业管理部门对渔船进行简单、高效、信息化的管理,其中最好的办法是用计算机操作的渔船信息安全系统来实现对渔船相关信息的管理,这就为我们设计渔船信息安全系统提供了市场需要。
而我们设计的渔船信息安全系统在现代渔业发展不可或缺的重要部分,是渔业管理部门管理渔船及渔民的一种高效的方式。
随着渔业规模的不断发展,渔船数量以及渔民素质的不断变化,渔业管理中会出现很多问题,例如渔船的维修,渔民的培训,相关渔船的违规记录,渔场禁渔期的管理等等。
这些工作的工作量庞大,数据多。
但一直以来人们使用传统人工的方式管理各种数据,这种管理方式已不适应当前的渔船管理。
因此,开发这样一套渔船信息安全系统软件成为很有必要的事情,而且也是很有效益的。
第2章开发工具及相关技术介绍
2.1C++语言的特点
本系统采用了程序设计语言C++,它是在C的基础上发展而来,是一种精确、简单、类型安全、面向对象的语言。
C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言
C++对C的“增强”,表现在六个方面:
(1)类型检查更为严格。
(2)增加了面向对象的机制。
(3)增加了泛型编程的机制(template)
(4)增加了异常处理
(5)增加了运算符重载
(6)增加了标准模板库(STL)
2.2Access2007的特点
1.使用OfficeFluent用户界面更快地获得更好的结果。
2.使用预制的解决方案快速入门。
3.针对同一信息创建具有不同视图的多个报表。
4.可以迅速创建表,而无需担心数据库的复杂性。
5.使用全新字段类型,实现更丰富的方案。
6.直接通过源收集和更新信息。
7.通过MicrosoftWindowsSharePointServices共享信息。
8.使用OfficeAccess2007的富客户端功能跟踪WindowsSharePointServices列表。
9.将数据移动到WindowsSharePointServices,增强可管理性。
10.访问和使用多个源中的信息。
2.3MFC技术介绍
MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。
VC++是Windows下开发人员使用的专业C++SDK(SDK,StandardSoftWareDevelopKit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。
MFC是WinAPI与C++的结合。
API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC++、Java、Delhpi。
编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要。
第3章系统需求分析
3.1系统可行性分析
系统的可行性分析是建立在用户的要求和系统调研的基础上进行的,可行性分析的主要工作包括:
(1)目标可行性分析
本渔船信息安全系统是针对渔业管理而研制开发的,虽然对于全国渔业管理部门来说,本系统肯定有一些细节上的遗漏,但是经过作者对于渔业信息安全管理的深入了解,本系统应该可以和渔船信息管理达到很好的对接[7]。
考虑到不同渔船信息管理体制可能不同,所以本系统在修改、添加功能模块上留有很大的空间,可供使用者进行具体修改。
(2)技术可行性分析
本系统开发主要包括后台数据库的建立与维护以及前端应用程序的开发与升级。
为了达到具体管理体制的要求,满足用户的需求,系统在多方面提供方便的接口,解决了大量的计算自动化,界面轻松可视化强,操作简单方便,可以迅速掌握使用方法。
此外,本系统还精心设计输入方式,方便操作人员,有效地减少数据输入的工作量,极大提高用户的工作效率。
(3)经济可行性分析
经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较。
本系统的主要经济投入是在软件的维护上,由于使用的硬件环境要求很低,所以在硬件环境上所需投入很低。
而在软件方面,C++运行环境以及Access2007数据库,在市面上的成本也是相当低廉,操作系统为Windows98/Windows2000/WindowsXP/WindowsVISTA等,均可正常运行。
3.2系统任务描述
渔船信息安全系统面向的是渔业管理部门的管理渔船各项信息,是利用信息化进行集中管理而开发的系统。
旨在使渔业管理部门能够方便,全面,快捷的行使管理职能。
据系统功能的要求,可以将其分为六个主要功能分支,分别为管理员信息管理、渔船信息管理、船员信息管理、渔船违规记录、关于作者、退出系统,可以将系统分解成为几个功能模块来分别设计。
对于渔船信息安全系统,根据系统功能分析,本系统只设置有管理员流程页面,实现上述六个个框架的功能。
下面分析管理员流程页面。
打开程序登录页面,如果登录成功,则进入相应的功能页面,依次为管理员信息管理,渔船信息管理,船员信息管理,渔船违规记录,关于作者,退出系统。
3.3系统功能分析
3.3.1系统的功能需求
经过调研与可行性分析,出于渔业管理部门的工作需要,设计了这套渔船信息安全系统,本系统主要考虑渔业管理部门管理需要,渔船信息安全系统主要包括:
(1)对渔船的所有信息的录入和增、删、改、查询等功能的实现。
(2)对渔船船员的信息管理,包括增、删、改、查询等功能的实现,这些也是渔船信息的基本组成部分。
(3)在具有了所有的基本资料信息后,需要实现实质性的渔船信息管理。
主要的管理业务包括:
渔船信息和船身参数管理、船员信息管理、渔船违规记录管理等。
这样就可以便于渔业管理部门进行全面的了解和管理了。
3.3.2系统数据流图
根据了解和分析现有的系统,概括对本系统的认识,并描绘未来物理系统的概貌形成系统流程图[7]
图1系统数据流图
3.3.3系统数据分析
在仔细调查小区物业管理系统过程的基础上,总结出该系统需要满足以下系统数据的需求:
(1)系统管理员资料。
包括管理员用户名和管理员密码。
图5渔船违规记录实体图
下面列出本系统的总体E-R图:
经分析设计,各实体间联系如图所示:
第4章系统设计
4.1系统总体结构设计
考虑到信息数据在安全性的特殊要求,该渔船信息安全系统的工作流程需用户登录通过权限判断,即需要输入登陆口令方能进入主系统界面。
本系统数据库采用Access2007,开发平台采用vc。
本系统只包含管理员操作模块。
管理员操作模块如下:
(1)通过“管理员信息管理”/“添加管理员信息”模块添加管理员信息。
(2)通过“渔船信息管理”/“添加渔船信息”模块,添加渔船信息。
(3)通过“船员信息管理”/“添加船员信息”模块,添加船员信息。
(4)通过“渔船违规记录”/“添加违规记录”模块,编辑渔船违规信息。
(5)通过“管理员信息管理”/“删除管理员信息”模块删除管理员信息。
(6)通过“渔船信息管理”/“删除渔船信息”模块删除渔船信息。
(7)通过“船员信息管理”/“删除船员信息”模块删除船员信息。
(8)通过“渔船违规记录”/“删除渔船违规记录”模块删除渔船违规记录。
(9)通过“管理员信息管理”/“修改管理员信息”模块修改管理员信息。
(10)通过“渔船信息管理”/“修改渔船信息”模块修改渔船信息。
(11)通过“船员信息管理”/“修改船员信息”模块修改船员信息。
(12)通过“管理员信息管理”/“查询管理员信息”模块查询管理员信息。
(13)通过“渔船信息管理”/“查询渔船信息”模块查询渔船信息。
(14)通过“船员信息管理”/“查询船员信息”模块查询船员信息。
(15)通过“渔船违规记录”/“查询违规记录”模块查询违规记录。
在系统功能分析的基础上,根据程序的特点,渔船信息安全系统的功能结构框架图如下
4.2系统数据库设计
数据库在一个系统中的地位极其重要,而数据库设计就是要在一个给定的应用环境中,通过一系列的逻辑设计和物理设计,构造出恰当的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。
下面就列出系统中的个别具体数据库表:
表1:
本系统所用到的基本信息表及用途
表名
用途
manager
管理员信息管理表
illegalInformation
渔船违规记录信息管理表
boat
渔船信息管理表
sailor
船员信息管理
表2:
管理员信息表,主要用来管理与管理员相关的数据。
主键:
编号(ID),
表2管理员信息表
名称
数据类型
说明作用
是否为空
大小
Id
自动编号
管理员编号
否
20
Name
文本
登录名
否
20
Password
文本
密码
否
20
表3:
渔船信息管理表,主要用来管理渔船信息数据。
主键:
(ID)
表3渔船信息管理表
名称
数据类型
说明作用
是否为空
大小
id
文本
编号
否
20
boatname
文本
船名
否
40
captain
文本
船长
否
20
boatAddress
文本
船籍
否
100
buildingTime
文本
建造时间
否
100
capacity
文本
核载船员数量
否
200
long
文本
总长
否
1000
wide
文本
宽
否
1000
high
文本
深
否
100
verticalLine
文本
垂线间长
否
100
draught
文本
吃水
否
100
tonnager
文本
吨位
否
100000
mainPower
文本
主机功率
否
10000
navigationArea
文本
航区
否
100
screwNum
文本
已有船员数量
200
表4:
船员信息表,主要用来管理船员信息的数据。
主键:
(Id)
表4船员信息管理表
名称
数据类型
说明作用
是否为空
大小
id
文本
船员编号
否
20
sailorName
文本
船员名称
否
20
Sex
文本
性别
否
20
personalId
文本
身份证号
否
20
telephone
文本
电话
否
20
workAge
文本
船龄
否
20
boatId
文本
所在渔船编号
否
20
address
文本
家庭住址
否
40
email
文本
邮箱
否
20
表5:
渔船违规记录信息管理表,主要用来管理渔船违规记录的数据。
主键:
(Id)
表5渔船违规记录信息管理表
名称
数据类型
说明作用
是否为空
大小
id
自动编号
编号
否
20
boatName
文本
渔船名字
否
40
boatId
文本
渔船编号
否
20
time
文本
发生时间
否
40
reason
文本
发生事由
否
200
result
文本
处理方案
否
500
以下为数据库关系图:
图7数据库关系图
4.3系统部分功能模块设计
4.3.1管理员登录模块
第5章功能实现
5.1系统主要模块代码
5.1.1管理员登陆界面及其主功能界面
输入管理员的用户名和相应的密码。
系统自动判别用户名与密码是否正确,即系统将自动从数据库中的管理员信息表中判断是否存在相同的用户名和密码。
如果匹配则进入系统,如果不匹配,则提示管理员不存在或密码有误。
管理员系统登陆界面如下:
图9管理员登录界面
进入管理员界面后,可以通过“渔船信息管理”模块下的“添加渔船信息”功能添加渔船信息等。
其界面如下:
图10添加渔船信息界面
添加渔船信息相关代码如下:
voidCAddBoatInformationDialog:
:
OnAddFishingVessel()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
if(m_boatAddress==""||m_boatId==""||m_boatName==""||m_buildDay==""||m_buildMonth==""||m_buildYear==""
||m_capacity==""||m_captain==""||m_draught==""||m_hight==""||m_long==""||m_mainPower==""||m_navigationArea==""
||m_tonnager==""||m_verticalLine==""||m_wide=="")
{
//提示信息
MessageBox("请填写完整所有信息!
请正确输入!
","警告",MB_ICONEXCLAMATION|MB_OK);
}
elseif((m_buildYear+m_buildMonth+m_buildDay).GetLength()!
=8)
{
MessageBox("输入建造时间的格式错误,正确写法:
年4位如2013,月两位如03,日两位如01!
请正确输入!
","警告",MB_ICONEXCLAMATION|MB_OK);
m_buildYear="";
m_buildMonth="";
m_buildDay="";
UpdateData(false);
}
else
{
UpdateData(true);
CoInitialize(NULL);
HRESULThr;
try
{
//创建Connection对象
hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
//连接数据库
hr=m_pConnection->Open("DRIVER={MicrosoftAccessDriver(*.mdb)};uid=;pwd=;DBQ=E:
\\FishingVesselSafetyIS\\database\\渔船安全信息系统.mdb","","",adModeUnknown);
}
}
//捕捉异常
catch(_com_errore)
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
//显示连接失败信息
AfxMessageBox(errormessage);
}
m_pRecordset.CreateInstance("ADODB.Recordset");
//用于下面的open函数
_variant_tRecordsAffected;
//用于比较输入的名字
CStringstrNum;
//用于标记该船是否存在
boolisExistence=false;
//打开数据库中的boat表
m_pRecordset->Open(_bstr_t("SELECT*FROMboat"),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
while(!
m_pRecordset->rsEOF)
{
strNum=(char*)(_bstr_t)(m_pRecordset->GetCollect("id"));
if(strNum==m_boatId)
{
isExistence=true;
break;
}
m_pRecordset->MoveNext();
}
if(isExistence)
{
MessageBox("该编号船已存在,请核实后输入!
","警告",MB_ICONEXCLAMATION|MB_OK);
//清空要输入的数据
m_boatId=_T("");
UpdateData(false);
}
else
{
//合成时间
CStringstrDate;
strDate=m_buildYear+m_buildMonth+m_buildDay;
//该船数据不存在,可以向数据库中添加记录,注意使用AddNew()后要用Update()提交数据,两者需一起使用。
m_pRecordset->AddNew();
m_pRecordset->PutCollect("id",_variant_t(m_boatId));
m_pRecordset->PutCollect("boatAddress",_variant_t(m_boatAddress));
m_pRecordset->PutCollect("boatName",_variant_t(m_boatName));
m_pRecordset->PutCollect("captain",_variant_t(m_captain));
m_pRecordset->PutCollect("capacity",_variant_t(m_capacity));
m_pRecordset->PutCollect("draught",_variant_t(m_draught));
m_pRecordset->PutCollect("hight",_variant_t(m_hight));
m_pRecordset->PutCollect("long",_variant_t(m_long));
m_pRecordset->PutCollect("mainPower",_variant_t(m_mainPower));
m_pRecordset->PutCollect("navigationArea",_variant_t(m_navigationArea));
m_pRecordset->PutCollect("verticalLine",_variant_t(m_verticalLine));
m_pRecordset->PutCollect("wide",_variant_t(m_wide));
m_pRecordset->PutCollect("buildingTime",_variant_t(strDate));
m_pRecordset->PutCollect("to