基于C++的渔船信息安全系统设计_第1页
基于C++的渔船信息安全系统设计_第2页
基于C++的渔船信息安全系统设计_第3页
基于C++的渔船信息安全系统设计_第4页
基于C++的渔船信息安全系统设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录 第1章 绪论11.1 论文背景及课题来源11.2 本课题在国内外的发展状况11.3 应解决的问题及系统开发意义2第2章 开发工具及相关技术介绍32.1 C+语言的特点32.2 Access 2007的特点32.3 MFC技术介绍4第3章 系统需求分析53.1系统可行性分析53.2 系统任务描述53.3系统功能分析63.3.1 系统的功能需求63.3.2 系统数据流图63.3.3 系统数据分析7第4章 系统设计104.1 系统总体结构设计104.2 系统数据库设计124.3系统功能模块设计154.3.1管理员登录模块15第5章 功能实现165.1 系统主要模块代码165.1.1 管理员登

2、陆界面及其主功能界面165.2 系统测试235.2.1 系统测试的特点235.2.2 系统测试的内容245.3系统维护26第6章 结论27参考文献28致 谢29第1章 绪论1.1 论文背景及课题来源管理信息系统(MIS,Management Information System),是一个由人、计算机等组成的能进行信息的收集、传送、储存、维护和使用的系统,能够实测企业的各种运行情况,并利用过去的历史数据预测未来,从企业全局的角度出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现其规划目标。这里给出的定义强调了管理信息系统的功能和性质,也强调了管理信息系统中的计算机对企业管理而言只是一种工

3、具。管理信息系统是信息系统的重要分支之一,经过30多年的发展,已经成为一个具有自身概念、理论、结构、体系和开发方法的覆盖多学科的新学科。渔船信息管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,而且信息不能有效及时的传达,对于渔业管理部门来说,渔船信息安全管理包括船只的名称、建造时期、船籍、船身参数等。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦,消耗大量时间,而且经常出错,甚至是数据的丢失,给广大用户带来很多不便。为了给渔业管理部门更好的管理渔业,我们于是决定开发一套渔业信息安全管理系统,帮助渔业管理部门从繁琐的工作中解放出来。1.2 本课题在国内外的发展状况渔船

4、信息安全管理系统是渔业管理不可缺少的部分,它能够让管理部门便捷、高效、省时的管理捕鱼船只及其工作人员,因此渔船信息安全系统能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长,将产生大量的文件和数据,这对于用户查找、更新和维护都带来了不少的困难。为指导各级渔业部门科学合理地进行渔船监管信息系统平台的建设和整合,实现渔船动态监管信息系统平台建设的安全,高效,稳定和互联互通,更好的提升渔船监管的信息化水平和服务渔船能力,最大程度发挥平台在渔业生产,安全管理的辅助决策作用,推进渔船动态监管信息系统建设。农

5、业部渔政指挥中心于2010年8月颁布渔船动态监管信息系统平台技术规范(试行)指导渔业管理。1.3 应解决的问题及系统开发意义目前我国市场经济发展迅速,渔业规模规模不断扩大,很多不法分子无视法律法规,给我国渔业的发展带来诸多问题。虽然相关的法律法规不断完善,但是不法分子仍然利用隐蔽的手段和技术进行各种违法违规的渔业活动。因此,如何利用科学的的技术手段管理渔业的相关信息具有非常重要的现实意义。但是渔船管理在信息管理系统中还存在着以下问题:(1)信息的交流不及时,不利于改善服务质量。 (2)数据的查询不方便,不能提高工作效率。对渔船实行信息化的规范管理,可以及时地掌握渔船及渔民的工作信息,有针对性的

6、对渔船进行监管,提高服务质量,同时可以节省渔业管理部门大量的人力,物力和财力,极大的提高工作效率。这样就要求渔业管理部门对渔船进行简单、高效、信息化的管理,其中最好的办法是用计算机操作的渔船信息安全系统来实现对渔船相关信息的管理,这就为我们设计渔船信息安全系统提供了市场需要。而我们设计的渔船信息安全系统在现代渔业发展不可或缺的重要部分,是渔业管理部门管理渔船及渔民的一种高效的方式。随着渔业规模的不断发展,渔船数量以及渔民素质的不断变化,渔业管理中会出现很多问题,例如渔船的维修,渔民的培训,相关渔船的违规记录,渔场禁渔期的管理等等。这些工作的工作量庞大,数据多。但一直以来人们使用传统人工的方式管

7、理各种数据,这种管理方式已不适应当前的渔船管理。因此,开发这样一套渔船信息安全系统软件成为很有必要的事情,而且也是很有效益的。第2章 开发工具及相关技术介绍2.1 C+语言的特点本系统采用了程序设计语言C+,它是在C的基础上发展而来,是一种精确、简单、类型安全、面向对象的语言。C+既可用于面向过程的结构化程序设计, 又可用于面向对象的程序设计, 是一种功能强大的混合型的程序设计语言C+对C的“增强”,表现在六个方面:(1) 类型检查更为严格。(2) 增加了面向对象的机制。(3)增加了泛型编程的机制(template)(4)增加了异常处理(5)增加了运算符重载(6)增加了标准模板库(STL)2.

8、2 Access 2007的特点1.使用Office Fluent用户界面更快地获得更好的结果。2.使用预制的解决方案快速入门。3.针对同一信息创建具有不同视图的多个报表。 4.可以迅速创建表,而无需担心数据库的复杂性。5.使用全新字段类型,实现更丰富的方案。6.直接通过源收集和更新信息。7.通过Microsoft Windows SharePoint Services 共享信息。8.使用Office Access 2007 的富客户端功能跟踪Windows SharePoint Services 列表。9.将数据移动到Windows SharePoint Services,增强可管理性。10

9、.访问和使用多个源中的信息。2.3MFC技术介绍MFC实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎。VC+是Windows下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。MFC是WinAPI与C+的结合。API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC+

10、、Java、Delhpi。编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必要。第3章 系统需求分析3.1系统可行性分析系统的可行性分析是建立在用户的要求和系统调研的基础上进行的,可行性分析的主要工作包括:(1)目标可行性分析本渔船信息安全系统是针对渔业管理而研制开发的,虽然对于全国渔业管理部门来说,本系统肯定有一些细节上的遗漏,但是经过作者对于渔业信息安全管理的深入了解,本系统应该可以和渔船信息管理达到很好的对接7。考虑到不同渔船信息管理体制可能不同,所以本系统在修改、添加功

11、能模块上留有很大的空间,可供使用者进行具体修改。(2)技术可行性分析本系统开发主要包括后台数据库的建立与维护以及前端应用程序的开发与升级。为了达到具体管理体制的要求,满足用户的需求,系统在多方面提供方便的接口,解决了大量的计算自动化,界面轻松可视化强,操作简单方便,可以迅速掌握使用方法。此外,本系统还精心设计输入方式,方便操作人员,有效地减少数据输入的工作量,极大提高用户的工作效率。(3)经济可行性分析经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较。本系统的主要经济投入是在软件的维护上,由于使用的硬件环境要求很低,所以在硬件环境上所需投入很低。而在软件方面

12、,C+运行环境以及Access 2007数据库,在市面上的成本也是相当低廉,操作系统为Windows 98/Windows 2000/Windows XP/Windows VISTA等,均可正常运行。3.2 系统任务描述渔船信息安全系统面向的是渔业管理部门的管理渔船各项信息,是利用信息化进行集中管理而开发的系统。旨在使渔业管理部门能够方便,全面,快捷的行使管理职能。据系统功能的要求,可以将其分为六个主要功能分支,分别为管理员信息管理、渔船信息管理、船员信息管理、渔船违规记录、关于作者、退出系统,可以将系统分解成为几个功能模块来分别设计。对于渔船信息安全系统,根据系统功能分析,本系统只设置有管理

13、员流程页面,实现上述六个个框架的功能。下面分析管理员流程页面。打开程序登录页面,如果登录成功,则进入相应的功能页面,依次为管理员信息管理,渔船信息管理,船员信息管理,渔船违规记录,关于作者,退出系统。3.3系统功能分析3.3.1 系统的功能需求经过调研与可行性分析,出于渔业管理部门的工作需要,设计了这套渔船信息安全系统,本系统主要考虑渔业管理部门管理需要,渔船信息安全系统主要包括:(1)对渔船的所有信息的录入和增、删、改、查询等功能的实现。(2)对渔船船员的信息管理,包括增、删、改、查询等功能的实现,这些也是渔船信息的基本组成部分。(3)在具有了所有的基本资料信息后,需要实现实质性的渔船信息管

14、理。主要的管理业务包括:渔船信息和船身参数管理、船员信息管理、渔船违规记录管理等。这样就可以便于渔业管理部门进行全面的了解和管理了。3.3.2 系统数据流图根据了解和分析现有的系统,概括对本系统的认识,并描绘未来物理系统的概貌形成系统流程图7船员管理员船长违规处理入职申请船员信息违规表船员信息违规记录违规信息违规信息库申请处理图1 系统数据流图3.3.3 系统数据分析在仔细调查小区物业管理系统过程的基础上,总结出该系统需要满足以下系统数据的需求:(1)系统管理员资料。包括管理员用户名和管理员密码。管理员信息用户名密码图2 管理员信息实体图渔船信息编号船名船长姓名船籍建造年份航区主机功率总长型宽

15、型深吨位吃水总线间长图3渔船信息实体图船员信息船龄电话Email住址所在渔船编号船员编号姓名性别图4 船员信息实体图渔船违规记录发生时间肇事渔船编号编号事故简介处理方案 图5渔船违规记录实体图下面列出本系统的总体E-R图:经分析设计,各实体间联系如图所示:n船员违规信息管理管理员1船员所属退出系统nnn违规图6 总体E-R图第4章 系统设计4.1 系统总体结构设计考虑到信息数据在安全性的特殊要求,该渔船信息安全系统的工作流程需用户登录通过权限判断,即需要输入登陆口令方能进入主系统界面。本系统数据库采用Access 2007,开发平台采用vc。本系统只包含管理员操作模块。管理员操作模块如下:(1

16、)通过“管理员信息管理”/“添加管理员信息”模块添加管理员信息。(2)通过“渔船信息管理”/“添加渔船信息”模块,添加渔船信息。(3)通过“船员信息管理”/“添加船员信息”模块,添加船员信息。(4)通过“渔船违规记录”/“添加违规记录”模块,编辑渔船违规信息。(5)通过“管理员信息管理”/“删除管理员信息”模块删除管理员信息。(6)通过“渔船信息管理”/“删除渔船信息”模块删除渔船信息。(7)通过“船员信息管理”/“删除船员信息”模块删除船员信息。(8)通过“渔船违规记录”/“删除渔船违规记录”模块删除渔船违规记录。(9)通过“管理员信息管理”/“修改管理员信息”模块修改管理员信息。(10)通

17、过“渔船信息管理”/“修改渔船信息”模块修改渔船信息。(11)通过“船员信息管理”/“修改船员信息”模块修改船员信息。(12)通过“管理员信息管理”/“查询管理员信息”模块查询管理员信息。(13)通过“渔船信息管理”/“查询渔船信息”模块查询渔船信息。(14)通过“船员信息管理”/“查询船员信息”模块查询船员信息。(15)通过“渔船违规记录”/“查询违规记录”模块查询违规记录。在系统功能分析的基础上,根据程序的特点,渔船信息安全系统的功能结构框架图如下渔船信息安全系统管理员登陆管理员信息管理船员信息管理渔船信息管理渔船违规记录管理员信息管理添加管理员信息查询管理员信息修改管理员信息删除管理员信

18、息船员信息管理添加船员信息查询船员信息修改船员信息删除船员信息违规记录渔船信息删除违规记录查询违规记录添加违规记录删除渔船信息修改渔船信息查询渔船信息添加渔船信息4.2 系统数据库设计数据库在一个系统中的地位极其重要,而数据库设计就是要在一个给定的应用环境中,通过一系列的逻辑设计和物理设计,构造出恰当的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。下面就列出系统中的个别具体数据库表:表1:本系统所用到的基本信息表及用途表名用途manager管理员信息管理表illegalInformation渔船违规记录信息管理表boat渔船信息管理表sailor船员信息管理表2:管理员

19、信息表,主要用来管理与管理员相关的数据。主键:编号(ID),表2 管理员信息表名称数据类型说明作用是否为空大小Id自动编号管理员编号否20Name文本登录名否20Password文本密码否20表3:渔船信息管理表,主要用来管理渔船信息数据。主键:(ID)表3 渔船信息管理表名称数据类型说明作用是否为空大小id文本编号否20boatname文本船名否40captain文本船长否20boatAddress文本船籍否100buildingTime文本建造时间否100capacity文本核载船员数量否200long文本总长否1000wide文本宽否1000high文本深否100verticalLine

20、文本垂线间长否100draught文本吃水否100tonnager文本吨位否100000mainPower文本主机功率否10000navigationArea文本航区否100screwNum文本已有船员数量200表4:船员信息表,主要用来管理船员信息的数据。主键:(Id)表4 船员信息管理表名称数据类型说明作用是否为空大小id文本船员编号否20sailorName文本船员名称否20Sex文本性别否20personalId文本身份证号否20telephone文本电话否20workAge文本船龄否20boatId文本所在渔船编号否20address文本家庭住址否40email文本邮箱否20表5:渔

21、船违规记录信息管理表,主要用来管理渔船违规记录的数据。主键:(Id)表5 渔船违规记录信息管理表名称数据类型说明作用是否为空大小id自动编号编号否20boatName文本渔船名字否40boatId文本渔船编号否20time文本发生时间否40reason文本发生事由否200result文本处理方案否500以下为数据库关系图: 图7数据库关系图4.3系统部分功能模块设计开始输入用户名与密码查询数据库是否有这条记录?提示用户名或密码错误进入管理员操作界面否是结束图8 管理员登录模块流程图4.3.1管理员登录模块第5章 功能实现5.1 系统主要模块代码5.1.1 管理员登陆界面及其主功能界面输入管理员

22、的用户名和相应的密码。系统自动判别用户名与密码是否正确,即系统将自动从数据库中的管理员信息表中判断是否存在相同的用户名和密码。如果匹配则进入系统,如果不匹配,则提示管理员不存在或密码有误。管理员系统登陆界面如下:图9 管理员登录界面进入管理员界面后,可以通过“渔船信息管理”模块下的“添加渔船信息”功能添加渔船信息等。其界面如下:图10添加渔船信息界面添加渔船信息相关代码如下:void CAddBoatInformationDialog:OnAddFishingVessel() / TODO: Add your control notification handler code hereUpda

23、teData(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=""|

24、m_navigationArea=""|m_tonnager=""|m_verticalLine=""|m_wide="")/提示信息MessageBox("请填写完整所有信息!请正确输入!","警告" ,MB_ICONEXCLAMATION|MB_OK);else if(m_buildYear+m_buildMonth+m_buildDay).GetLength()!=8)MessageBox("输入建造时间的格式错误,正确写法:年4位如2013,月两位如03,日

25、两位如01!请正确输入!","警告" ,MB_ICONEXCLAMATION|MB_OK);m_buildYear=""m_buildMonth=""m_buildDay=""UpdateData(false);elseUpdateData(true);CoInitialize(NULL);HRESULT hr; try /创建Connection对象 hr=m_pConnection.CreateInstance("ADODB.Connection");if(SUCCEEDED(hr

26、) /连接数据库hr = m_pConnection->Open("DRIVER=Microsoft Access Driver (*.mdb);uid=;pwd=;DBQ=E:FishingVesselSafetyISdatabase渔船安全信息系统.mdb","","",adModeUnknown); /捕捉异常catch(_com_error e) CString errormessage; errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage()

27、; /显示连接失败信息AfxMessageBox(errormessage);m_pRecordset.CreateInstance("ADODB.Recordset");/用于下面的open函数_variant_t RecordsAffected;/用于比较输入的名字CString strNum;/用于标记该船是否存在bool isExistence=false;/打开数据库中的boat表m_pRecordset->Open(_bstr_t("SELECT * FROM boat"),m_pConnection.GetInterfacePtr()

28、,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_ICONEXCLAMATIO

29、N|MB_OK);/清空要输入的数据m_boatId = _T("");UpdateData(false);else/合成时间CString strDate;strDate=m_buildYear+m_buildMonth+m_buildDay;/该船数据不存在,可以向数据库中添加记录,注意使用AddNew()后要用Update()提交数据,两者需一起使用。m_pRecordset->AddNew();m_pRecordset->PutCollect("id",_variant_t(m_boatId);m_pRecordset->Put

30、Collect("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(

31、"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"

32、,_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("tonnager",_var

33、iant_t(m_tonnager);m_pRecordset->PutCollect("screwNum",_variant_t("0");m_pRecordset->Update();MessageBox("成功添加船信息!","提示" ,MB_ICONINFORMATION |MB_OK);/清空要输入的数据m_boatAddress = _T("");m_boatId = _T("");m_boatName = _T("");m_bui

34、ldDay = _T("");m_buildMonth = _T("");m_buildYear = _T("");m_capacity = _T("");m_captain = _T("");m_draught = _T("");m_hight = _T("");m_long = _T("");m_mainPower = _T("");m_navigationArea = _T("");m_to

35、nnager = _T("");m_verticalLine = _T("");m_wide = _T("");UpdateData(false);/关闭和释放连接m_pRecordset->Close();m_pConnection->Close();m_pRecordset.Release();m_pConnection.Release();CoUninitialize();(1)删除渔船信息设施功能管理员进入系统后,选择渔船信息管理。进入该模块后,分为四个个小板块:选中删除渔船信息选项,进行相关功能操作。界面如下图:

36、图11删除渔船信息界面其添加代码如下:void CDeleteFishingVesselInformation:OnDeleteBoatInformation() / TODO: Add your control notification handler code here/从控件获取值UpdateData(true);if(m_inputName="")MessageBox("请输入船员编号!","警告" ,MB_ICONEXCLAMATION|MB_OK);elseCoInitialize(NULL);HRESULT hr; tr

37、y /创建Connection对象 hr = m_pConnection.CreateInstance("ADODB.Connection");if(SUCCEEDED(hr) /连接数据库hr = m_pConnection->Open("DRIVER=Microsoft Access Driver (*.mdb);uid=;pwd=;DBQ=E:FishingVesselSafetyISdatabase渔船安全信息系统.mdb","","",adModeUnknown); /捕捉异常catch(_com_

38、error e) CString errormessage; errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage(); /显示连接失败信息AfxMessageBox(errormessage);m_pRecordset.CreateInstance("ADODB.Recordset");/用于下面的open函数_variant_t RecordsAffected;/保存循环从表中读取的名字CString strName=""/标记是否存在该编号的船bool isExistenc

39、e=false;/打开数据库中的manager表m_pRecordset->Open(_bstr_t("SELECT * FROM boat"),m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);while(!m_pRecordset->rsEOF)strName=(char *)(_bstr_t)(m_pRecordset->GetCollect("id");if(strName=m_inputName)if(MessageBox(&qu

40、ot;确定要删除吗?","重要提示!",MB_ICONQUESTION|MB_OKCANCEL)=IDOK)/删除找到的记录m_pRecordset->Delete(adAffectCurrent); AfxMessageBox("删除成功!");elseMessageBox("您已取消删除了!","提示" ,MB_ICONINFORMATION |MB_OK);isExistence=true;break;m_pRecordset->MoveNext(); if(!isExistence)MessageBox("该编号不存在,删除失败!","警告" ,MB_ICONEXCLAMATION|MB_OK);m_inputName=""UpdateData(false);/关闭和释放连接m_pRecordset->Close();m_pConnection->Close();m_pRecordset.Release();m_pConnection.Release();CoUninitialize();5.2 系统测试为了确保本系统能够正常运行,需要在发布之后做

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论