高校学报管理信息系统课程设计实验报告

更新时间:2023-03-08 06:14:38 阅读量: 综合文库 文档下载

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

分类号 编 号

华北水利水电学院

North China Institute of Water Conservancy and Hydroelectric Power

实 验 报 告

课程 软 件 工 程

题目 高校学报管理信息系统

院 系 信息工程学院 专 业 计算机科学与技术

小 组 长

小组成员1

小组成员2 小组成员3 小组成员4 小组成员5 小组成员6

指 导 教 师 白 娟 2013年 1月 10 日

华北水利水电学院 软件工程 实验报告

2012~2013学年 第 一 学期 2011 级 计算机 专业

小组成员1:分工:主要对这个系统进行跟踪开发,监督各项任务如期完成,参照系统设计,建造数据库,统一字段,进行用户注册权限管理模块编码实现,并参与整合课程设计报告工作

小组成员2: 分工:主要任务是进行需求分析工作,整理需求分析说明书,并参与稿件校对部分编码工作,对测试人员提出的问题做进一步修改,并参与整合课程设计报告工作

小组成员3: 分工:主要任务是进行概要设计工作,整体概要设计说明书,并参与编码调试工作,对测试工作提出的问题做进一步修改

小组成员4: 分工:主要任务是进行详细设计工作,整理详细设计说明书,并参与稿件评审部分编码调试工作,对测试工作提出的问题做进一步修改

小组成员5: 分工:主要任务是进行编写测试用例,进行测试工作,并参与经费管理部分编码调试工作,对测试工作提出的问题做进一步修改

小组成员6: 分工:主要任务是进行编写测试用例,进行测试工作,并参与统计报表部分编码调试工作,对测试工作提出的问题做进一步修改

一、 实验题目:

高校学报管理信息系统

二、 实验内容:

系统功能和模块划分:

这次实验开发一个高校学报管理系统,它主要功能包括刊用稿件的组稿、审稿、校对、终审、发行等多个环节、涉及的信息资源包括稿件信息、作者信息、审稿人信息、评审结果、编委终审结论等。经过小组共同分析,将整个系统划分为9个模块:1系统管理,又划分为系统初始化、用户口令管理,添加用户等;2、稿件信息,负责稿件相关信息的录入、编辑、删除;3、作者信息,负责作者个人信息的录入、编辑、删除;4、审稿人信息,负责审稿人个人信息的录入、编辑;5、评审信息,负责稿件评审结果的录入、编辑;6、编委会终审信息,记录编委会终审结论;7、编辑排版信息,记录论文编辑、排版、校对等信息;8、统计报表,负责各类信息的统计,显示;9、经费管理,用于各种经费的预算、支出、汇总等工作。

开发环境:

操作系统Window 7,数据库SQL Server2005,visual stdio 2005,开发语言C#。 实现技术:

统计模块中由于要满足各种要求下的统计,通过利用SQL语句实现了简单的智能查询。

1 需求分析说明书

1. 引言

1.1 编写目的

(1)进一步定制软件开发的细节问题,希望能使本软件开发工作具体一些。

(2)本文档供用户、设计人员、开发人员参考,为使用户、软件开发者及分析人员对该软件的初始规定有一个共同的理解。

(3)说明了本产品的各项功能需求、性能需求和数据要求,明确标识各功能的实现过程,阐述实用背景及范围,提供客户解决问题或达到目标所需的条件或权能,提供一个度量和遵循的基准。

1.2 项目背景

(1)根据目前掌握的情况,全国有条件的编辑部正在集中力量开发适合本部门的管理信息系统,部分编辑部的现代化办公方式已经很成熟,也取得了显著的成绩,走在了全国的前列。表现在编辑部已基本实现无纸办公,每个编辑都配备电脑,完全是在计算机上从事组稿、编辑加工、排版及各项编辑事务工作。在大连地区来看,有少数编辑部也开发了计算机管理信息系统,这种管理模式还未明显形成,但这是一种发展的必然趋势今天,管理信息系统已应用到各行各业,学报管理工作也应与时俱进,充分利用计算机快捷、简便、处理数据迅速的功能,辅助编辑部完成日常工作,并为决策提供信息支持。因此,这一课题有着十分实用的价值。

高校学报编辑的工作主要包括对刊用稿件的组稿、审稿、编辑加工、终审、排版、校对、发行等多个环节,涉及的信息资源包括稿件信息、作者信息、审稿人信息、评审结果、编委会终审结论、编辑排版信息等。具体还有一些细节工作:稿件的送审、回复结果登记;对编辑排版结果需要进行毛校、一校、二校和三校多次校对后才能正式出版发行。与此相关还有大量的统计、汇总工作要做,这就要求所开发的系统具有较为丰富的查询、统计功能,以方便用户。

1.3 定义

(1) 数据流图:是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。

(2) 数据字典:用来定义数据流图中各个成分的具体含义。

(3) 实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。

1.4 参考资料

(1) 实用软件工程学/庄晋林,杨志宏主编.—北京:中国水利水电出版社,2009 (2) 数据库系统概论/王珊,萨师煊.—4版.—北京:高等教育出版社,2006.5

(3) 数据库原理与SQL Server 2005应用教程/程云志等编著.—北京:机械工业出版社,2006.8

2. 任务概述

2.1 目标

(1) 减少人力成本和管理费用;

(2) 提高信息的准确性和信息的安全; (3) 改进管理和服务;

(4) 良好的人机交互界面,操作简便; (5) 避免或尽早剔除早期错误。

2.2 运行环境

(1) 操作系统:Windows xp

(2) 支持环境:Microsoft Visual Studio 2005 (3) 数据库:Microsoft SQL Server 2005

2.3 条件与限制

开发时间比较紧,机器限制,开发人员的经验少,是开发系统中主要的问题。管理不完善,设计时没能全得到考虑,都会影响本项目的开发进程。

3. 数据描述

3.1 静态数据 N 1 作者 稿件 N 编写

M M

终审 审查

校对 N 1 N Address 编委会 Phone 专家

工作人员 E-mail N N Birthday 作者 N

Sex Author_ID

管 Author_Name 管管理

理 理

1 Limit 工作人员 Sex 1 1 Worker_ID 管理员 E-mail

Worker_Name Phone Draft_ID 稿件 Author Birthday Address

Draft_Name TypeName

DraftComeDate PublishDate

Draft_ID

Final_Result TypeName

ReplyDate3

Judge_Per1 SendDate3

评审信息 SendDate1 Final_Per

ReplyDate1 ReplyDate2

Result1 Result2 SendDate2 Judge_Per2

3.2 动态数据

第一层数据流图: 4 5 2 3 1

用户 稿件 出版 用户 稿件 编委会 投稿 校对 发行 评审 终审

稿件评审、终审、校对数据流图: 2.7 作者 信息 2.4 编辑 不合格稿件 作者 信息 D1 作者信息 录入 2.1 合格稿件 2.3 稿件 1 稿件信息 作者 稿件 投稿 稿件 2.5 2.2 管理 3 评审 D2 稿件信息 稿件 评审 编委会 信息 D4 终审结果 结果 终审 录入 审稿人 录入 2.6 稿件 5 4 编委会 信息 出版 稿件 D3 评审结果 编辑 D6 出版发行结果 发行 校对 用户 报表统计数据流图:

6.2

输出

显示 用户

D5 校对结果 2.8 评审 结果 编辑 用户 D1 作者信息 D2 稿件信息 6.1 报表 统计 D3 评审结果 D4 终审结果 D6 出版发行结果 D7 审稿人信息

2.9 审稿人 信息 录入 2.10 审稿人 信息 编辑

3.3 数据词典

(1)数据流条目:

编号:1;

数据流名:稿件信息; 组成:Draft_ID(稿件编号)+Draft_Name(稿件名称)+Author(作者)+TypeName(类型)+DraftComeDate(来稿日期); 来源:作者; 去向:稿件评审。

编号:2;

数据流名:作者信息;

组成:Author_ID(作者编号)+Author_Name(作者姓名)+Address(地址)+Birthday(出生日期)+E-mail(电子邮件地址)+Sex(性别)+Phone(联系电话); 来源:作者信息录入;

去向:作者信息-数据存储。

编号:3;

数据流名:评审结果; 组成:Draft_ID(稿件编号)+Judge_Per1(一审审稿人)+SendDate1(一审送审日期)+ReplyDate1(一审回复信息)+Result1(一审结果)+Judge_Per2(二审审稿人)+SendDate2(二审送审日期)+ReplyDate2(二审回复信息)+Result2(二审结果)+Final_Per(三审审稿人)+SendDate3(三审送审日期)+ReplyDate3(三审回复信息)+Final_Result(三审结果); 来源:评审结果录入;

去向:评审结果-数据存储。

(2)数据存储条目:

编号:D1;

数据存储名:作者信息;

组成:Author_ID(作者编号)+Author_Name(作者姓名)+Address(地址)+Birthday(出生日期)+E-mail(电子邮件地址)+Sex(性别)+Phone(联系电话); 存储方式:按作者编号从小到大排列; 存储频率:每次录入作者信息时。

编号:D2;

数据存储名:稿件信息; 组成:Draft_ID(稿件编号)+Draft_Name(稿件名称)+Author(作者)+TypeName(类型)+DraftComeDate(来稿日期);

存储方式:按稿件编号从小到大排列; 存储频率:每天录入稿件信息时。

编号:D3;

数据存储名:评审结果; 组成:Draft_ID(稿件编号)+Judge_Per1(一审审稿人)+SendDate1(一审送审日期)+ReplyDate1(一审回复信息)+Result1(一审结果)+Judge_Per2(二审审稿人)+SendDate2(二审送审日期)+ReplyDate2(二审回复信息)+Result2(二审结果)+Final_Per(三审审稿人)+SendDate3(三审送审日期)+ReplyDate3(三审回复信

息)+Final_Result(三审结果);

存储方式:按稿件编号从小到大排列; 存储频率:每次录入评审结果时。

(3)数据结构条目:

数据结构名:稿件信息; 组成:Draft_ID(稿件编号)+Draft_Name(稿件名称)+Author(作者)+TypeName(类型)+DraftComeDate(来稿日期);

含义说明:每个稿件的情况的简介。

数据结构名:作者信息;

组成:Author_ID(作者编号)+Author_Name(作者姓名)+Address(地址)+Birthday(出生日期)+E-mail(电子邮件地址)+Sex(性别)+Phone(联系电话); 含义说明:每位作者的情况的简介。

数据结构名:评审结果; 组成:Draft_ID(稿件编号)+Judge_Per1(一审审稿人)+SendDate1(一审送审日期)+ReplyDate1(一审回复信息)+Result1(一审结果)+Judge_Per2(二审审稿人)+SendDate2(二审送审日期)+ReplyDate2(二审回复信息)+Result2(二审结果)+Final_Per(三审审稿人)+SendDate3(三审送审日期)+ReplyDate3(三审回复信息)+Final_Result(三审结果);

含义说明:每次评审结果的情况的简介。

(4)数据项条目:

数据项名:Author_Name(作者姓名); 取值范围:字符串,15字节; 取值含义:作者的姓名信息; 位置:作者表。

数据项名:Address(地址); 取值范围:字符串,40字节; 取值含义:作者的地址信息; 位置:作者表。

数据项名:Birthday(出生日期); 取值范围:字符串,10字节; 取值含义:作者的出生日期信息; 位置:作者表。

数据项名:E-mail(电子邮件地址); 取值范围:字符串,20字节;

取值含义:作者的电子邮件地址信息; 位置:作者表。

数据项名:Phone(联系电话); 取值范围:字符串,15字节; 取值含义:作者的联系电话信息; 位置:作者表。

数据项名:Sex(性别); 取值范围:男、女;

取值含义:作者的性别信息; 位置:作者表。

数据项名:Draft_Name(稿件名称); 取值范围:字符串,20字节; 取值含义:稿件的名称信息; 位置:稿件表。

数据项名:TypeName(类型); 取值范围:字符串,10字节; 取值含义:稿件的类别类型信息; 位置:稿件表。

数据项名:DraftComeDate(来稿日期); 取值范围:字符串,10字节; 取值含义:稿件的来稿日期信息; 位置:稿件表。

(5)加工条目:

加工名:稿件评审; 输入数据:稿件信息; 输出数据:评审结果;

加工逻辑说明:输入稿件信息,开始稿件评审,写入稿件表,评审信息表。

加工名:稿件终审; 输入数据:稿件信息; 输出数据:终审结果;

加工逻辑说明:输入稿件信息,开始稿件终审,写入评审信息表。

加工名:作者信息录入; 输入数据:作者信息; 输出数据:作者文件;

加工逻辑说明:输入作者信息,开始作者信息录入,写入作者表。

加工名:稿件信息录入; 输入数据:稿件信息; 输出数据:稿件文件;

加工逻辑说明:输入稿件信息,开始稿件信息录入,写入稿件表。

3.4 数据采集

(1)稿件信息,作者信息,评审结果,采用键盘输入的形式进行录入; (2)稿件原稿,采用扫描机扫描的形式进行录入;

4. 功能需求

4.1 功能划分

本系统可划分为系统管理、稿件信息、作者信息、审稿人信息、评审信息、编委会终审信息、稿件校对、统计报表、经费管理。

其中系统管理又分为统初始化、用户口令管理、数据库备份、恢复三个部分;

统计报表分为稿件统计、作者统计、审稿人统计、稿件评审情况统计、编委会终审情况统计、编辑排版情况统计、出版发行统计、审稿人稿件积压统计八个部分。

经费管理分为评审费、稿费、编辑费、出版发行费、办公费五个部分。

4.2 功能描述

有上述层次方框图可见系统可以划分为9个模块:

1.系统管理,划分为系统初始化、用户口令管理和数据库备份和恢复等; 2.稿件信息,负责稿件相关信息的录入、编辑; 3.作者信息,负责作者个人信息的录入、编辑; 4.审稿人信息,负责审稿人个人信息的录入、编辑; 5.评审信息,负责稿件评审结果的录入、编辑; 6.编委会终审信息,记录编委会终审结论; 7.稿件校对;

8.统计报表,负责各类信息的统计、显示、打印工作; 9.经费管理,用于各种经费的预算、支出、汇总等工作。

5. 性能需求

由于此开发项目针对高校学报,使用频度较高,使用性要求比较高。为防止对信息资料和管理程序的恶意破坏,要求有较为可靠的安全性能。总之,要求稳定、安全、便捷,易于管理和操作。

5.1 数据精确度

在精度需求上,根据使用需求,在各项数据的输入,输出及传输过程中,可以满足各种精度的需求。

5.2 时间特性

在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。 查询速度:不超过10秒;

其它所有交互功能反应速度:不超过3秒; 可靠性:平均故障间隔时间不低于200小时。

5.3 适应性

当用户需求,如操作方式,运行环境,结果精度,数据结构与其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。

6. 运行需求

6.1 硬件接口

考虑到大量数据的备份等要求,需要保持与磁带机和光盘刻录机的接口,这较易实现。

6.2 软件接口

这里,主要考虑软件与操作系统、数据库管理系统的接口,以及局域网和互联网软件之间的数据交换。考虑到文档处理时有可能需要较常用的办公软件。例如Microsoft的Office系列,所以应尽量实现它们之间的数据格式的自动转换。

6.3 故障处理

内部故障处理:在开发阶段可以随即修改数据库里的相应内容。

外部故障:对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错,有错误提示,重试。

7. 其他需求

能快速恢复系统和故障处理,方便系统升级和扩充,故障恢复时间不超过5小时。

学报管理系统的概要设计

1. 引言

1.1编写目的

在前一阶段,已经将用户对本系统的需求做了详细的阐述。本阶段在需求分析的基础上,对学报管理系统做比较概括的设计,明确将要开发的系统应该具有的功能,确定如何把该系统划分成若干个模块、各个模块之间的接口以及模块之间传递的信息,并完成数据库的设计。在该概要设计说明中将对在本阶段中对系统所做的所有概要设计进行详细的说明。 本报告的预期读者是用户、投稿人以及相关项目组的所有成员和将来有可能使用本系统的相关人员。

1.2背景

说明:

a .高校学报管理信息系统

b.项目任务提出者:高校学报编辑部 项目开发者:

用户:高校学报编辑部

1.3定义

学报管理: 所谓学报管理,就是对刊用的组稿,审稿,编辑加工、终审、排版、校对、发行等多个环节,涉及的信息资源包括稿件信息、作者信息、审稿人信息、评审结果信息等。谋求投稿人与 编辑部之间的相互适应,把事情做得更好这一目标所进行的管理活动。

1.4参考资料

[1]《软件工程》(第二版)邓良松、刘海岩、陆丽娜 西安电子科技大学出版社 [2]《软件工程导论》 张海藩 清华大学出版社

2. 总体设计

2.1概述

2.1.1需求规定

学报工作是一项集组稿、审稿、编辑、出版、发行等于一身的系统工作。编辑部面临着人员少、事务繁多、工作量大等问题,而且现在的以手工为主的落后的管理方式和工作方式史加重了编辑人员的负担。以稿件登记为例,编辑部收到作者投稿件后,要进行手工登记,将稿件的信息如稿件编号、篇名、作者姓名、作者单位、联系方式等记录在登记本上,所有来稿都登记在一起。这种工作方式存在很多弊端登记信息不直观,查询稿件困难大,费时间,难以掌握某篇稿件的现行状态,不便于统计阶段性工作,不便于把握稿件的总体情况,作效率,等等。为提高编辑工作效率,实现学报管理工作的现系现代化,规范化,高效化,必须借助速度快、信息储存量大的计算机辅助完成编辑部的常事务工作。

2.1.2运行环境

硬件要求:PI 133以上的处理器,最低32M内存,300M以上硬盘剩余空间 运行环境:win7/winxp

总体设计

(1)处理流程

组稿审稿加工稿件 印刷发行 学报主体工作业务流程图

学报主体工作的实际情况是:来稿后手工登记,记录稿件各项信息。稿件经初审后要送专家评审。在选择审稿专家时,多根据稿件的学科领域和编辑的经验确定审稿专家。通过评审的稿件即进入编辑加工和校对阶段。每期出版后,按时向校内外发行,并做付费、存档等工作。

2.2总体结构和模块外部设计 系统总体结构设计:

系统信息分类在进行系统设计时,应根据总体规划和各项功能的具体要求,将MIS领域的数据分成以下几类: 系统管理类:

该类主要包括稿件信息、作者信息、审稿人信息等。 财务管理信息类

该类主要包括审稿费管理、稿酬管理、发表费管理、印刷出版费管理、征订及发行费管理等。 报表评价信息类

该类包括统计报表管理、综合评价管理等。 稿件评审信息类

该类包括稿件送审、稿件恢复、稿件校对等。

学报管理信息系统 系统总体结构设计图

财务信息管理 报表评价管理 学报管理系统 稿件评审管理 系统管理 2.3结构

2.3.1该系统的模块结构图:

学报信息管理系统 系统管理 稿件信息 作者信息 审稿人信息 稿件评审 稿件校对 统计报表 经费管理 奖惩信息维护 奖惩信息查询 稿件送审 评审回复 员工就职 评审回复 员工调动 员工离职 员工调动查询 修改密码 费用管理 费用统计

2.4功能需求与程序的关系 登稿件录 信息添加 √ √ √ √ 稿件评审统计 √ √ 稿件人统计 √ √ 出版发行统计 评发评审审行回复费 费 信息 出版评审发行选择 查询 √ √ 终身选择 √ 用户登录 员工信息 审稿人信息维护 稿件评审 作者信息 经费信息管理 √ √ √ √

3. 接口设计

3.1外部接口

在vs的windows窗体应用程序的引用中,添加引用,因为需要导出sql格式的文件。

3.2内部接口

模块间的接口是通过函数调用建立的,应用程序在运行期间始终保持着与数据库的联系。通过

应用程序与数据库的耦合以记录数据,在应用程序内部,Form窗体只负责显示,一切数据操作都由后台的各个类实现,包括对数据库的操作。

4 运行设计

4.1运行模块组合

若是管理员登录该系统,则可对系统内的所有模块进行操作,而若是普通员工登录,则只能进行发表、查询、退稿和其他关于查询的模块进行操作。

4.2运行时间

在软件的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。硬件对运行时间有最大的影响,当设备负载量大时,对操作反应将受到很大的影响。所以尽量采用高性能主机,充分发挥软件性能。在应用程序方面,尽量建立存储过程来对数据库进行操作,加快系统对数据的操作速度,以减少系统的反应时间。

5 系统数据结构设计

5.1数据库数据结构设计

稿件费用表稿件类别表稿件信息表工作人员表评审信息表校对表用户标作者信息表 该系统使用数据库对数据进行管理,使用的数据库表如下:

员工信息表、部门信息表、职位信息表、密码权限表、基本工资表、实际工资表、实际工资查询表、奖惩信息表、员工调动信息表、员工考勤信息表、员工职位信息表

具体如下:

1. 稿件费用表: 字段名称 数据类型 主键 允许空 Draft_ID char(10) √ JudegeCharge char(18) DraftCharge nvarchar(50) EditCharge nchar(2) PublishCharge datetime √ OfficeCharge nvarchar(50) √ PublishDate nvarchar(50) √ 2.校对表: 字段名称 数据类型 主键 允许空 Draft_ID nvarchar(50) √ Proof_Name Char(10) √ Proof_Name Proof_Time Char(20) Proof_Result Char(10) 3.用户表: 字段名称 数据类型 主键 允许空 Staff_ID char(10) √ Staff_Name char(20) Password Char(20) Limit Char(10) 4.工作人员表: 字段名称 数据类型 主键 允许空 Worker_ID Varchar(50) √ Worker_Name Varchar(50) Sex Varchar(50) √ Birthday datetime √ Phone Varchar(50) √ Address Varchar(50) √ Email Varchar(50) √ Limit Int 5.稿件信息表

6.1出错信息 字段名称 Draft_ID Draft_Name Author TypeName PublishDate DraftComeDate 数据类型 Varchar(50) Varchar(50) Varchar(50) Varchar(50) datetime datetime 主键 允许空 √ √ √ 6. 系统出错处理设计

出错类型 错误提示 系统错误 数据库错误 造成原因 指系统与数据建立连接时,连接失败 输入错误 输入数据错误 指用户所填写的数据不合规定

6.2补救措施

周期性地进行数据库备份,同时要进行数据库操作的日志记录,当系统故障发生时可以将最新备份的数据库进行还原然后根据数据库操作日志将数据库还原成最新状态,尽量降低系统故障造成的损失。

安全保密设计

为了保护数据,本系统从硬件环境,软件系统,程序设计和组织管理制度四个方面综合考虑其安全保密性。

(1)对于硬件系统,采用RAID5磁盘阵列和移动硬盘,将数据交叉存放在各磁盘阵列上,如果阵列中的某个成员出现鼓掌,可通过其他部分予以恢复,除了采用RAID5技术外,本系统采用移动硬盘作日常备份,采用光盘作月备份,最大程度地保护数据的安全。 配备在线式UPS,定期对服务器,网络通信设备等进行监控。

(2)对于软件系统,采用Access数据库,通过账号及口令使用后台的数据与前台的操作分离,防止普通用户对数据库进行直接操作。当出现整个系统彻底破坏时,可以通过系统重新安装整个系统,然后将备份的全部数据库复到新系统中。

(3)在程序设计过程中,设置查询用户,数据录入员,部门管理和数据库系统管理员四级用

户体系,根据用户级别分别授予相应的操作权限,同时,对用户口令采取高强度的加密算法进行保护,另外,设置流水账,个人明细账,部门明细账等方式存放各种操作过程信息,为系统提供多条审计线索,确保每一笔数据操作都有据可查,保证数据操作的合法性和安个性。

(4)在组织管理制度上,制订明确的数据操作规程和数据安全管理制度,在直接对数据库进行操作时,必须有两个以上人员的共同操作才能进行,可将系统管理员口令分为两段,分别进行管理,定期检查和清除计算机及网络环境中的各种计算机病毒,每日对业务数据库备份。

6.3系统维护设计

维护方面主要为对数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。

高校学报管理信息系统的详细设计

1.引言

1.1.编写目的

本文档是在概要设计基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。

本文档的预期读者是系统开发人员,以及使用该系统的用户和维护该系统的人员。

1.2.背景

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

华北水利水电学院学学报信息管理系统

b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络: 项目任务提出者:华北水利水电学院 项目开发者:

用户:华北水利水电学报编辑部

1.3.定义

学报管理: 所谓学报管理,主要包括对刊用稿件的组稿、审稿、编辑加工、终审、排版、校对、发行等多个环节,涉及到的信息资源包括稿件信息、作者信息、审稿人信息、评审结果、编委会终审结论、编辑排版信息等等。

SQLSERVER2005:开发系统使用的数据库名称

1.4.参考资料

[1]《实用软件工程学》 庄晋林 杨志宏 中国水利水电出版社 [2]《软件工程导论》 张海藩 清华大学出版社

2.总体设计

2.1需求概述

高校学报编辑的工作主要包括对刊用稿件的组稿、审稿、编辑加工、终审、排版、校对、发行等多个环节,涉及到的信息资源包括稿件信息、作者信息、审稿人信息、评审结果、编委会终审结论、编辑排版信息等等。具体还有一些细节工作则更为烦琐,诸如:稿件的送审、回复结果登记;对编辑排版结果需要进行毛校、一校、二校和三校多次校对后才能正式出版发行。与此相关还有大量的统计、汇总工作要做,这就要求所开发的系统具有较为丰富的查询、统计功能,以方便用户。

2.2软件结构

学报信息管理系统 系统管理 稿件信息 作者信息 审稿人信息 稿件评审 稿件校对 统计报表 经费管理 奖惩信息维护 奖惩信息查询 稿件送审 评审回复 员工就职 评审回复 员工调动 员工离职 员工调动查询 修改密码 费用管理 费用统计

学报管理信息系统软件结构

3.程序描述

3.1.系统管理模块 3.1.1功能

系统管理主要对该系统的各类使用人员的账户信息进行管理,主要由超级管理员的来完成。账户基本信息主要包括:姓名、性别、出生日期、手机号、电子邮件和地址,该系统的各类使用人员按权限大小依次为:超级管理员、审稿人、普通工作人员、作者。由超级管理员对各类使用人员的账户信息进行统一管理,主要包括对账户信息的添加、删除、修改和查询等操作。

3.1.1性能

该部分主要是对员工信息的查询和维护,所以对精度要求不高。但是对于时间特性要求较高,因为用户要查询,并要对查询出来的信息进行维护,所以系统响应时间要短,一般为1-2秒。因此在此段程序里,从数据库里查询员工信息的时候可以用存储过程,以节约时间。

3.1.1输入项

该系统中各类使用人员账户的基本信息,包括:姓名、性别、出生日期、手机号、电子邮件和地址

3.1.1输出项

更新后的账户信息

3.1.1流程逻辑

其流程图如下:

开始超级管理员登录浏览账户信息账户分类管理超级管理员账户管理审稿人账户管理普通员工账户管理作者账户结束 3.2稿件处理模块

3.2.1.功能

稿件处理模块主要完成对稿件的处理,首先由作者向系统提交稿件信息,稿件信息主要包括稿件编号、稿件名称、作者、类别和来稿日期,然后由审稿人进行一审、二审、终审,通过终审的稿件将由普通工作人员进行毛校、一校、二校,最后由普通工作人员将校对过的稿件出版发行。

3.2.1.性能

由于这些程序都是对数据库的操作,所以在精度上没有过多的要求,所要求的就是对时间特性的,需要响应时间短,一般为1-2秒,为此可以将一些频繁的操作用存储过程来实现,比如说查询功能。

3.2.1.输入项

源稿件信息,包括:稿件编号、稿件名称、作者、类别和来稿日期

3.2.1.输出项

待出版发行的稿件

3.2.1.流程逻辑

其流程图如下:

开始作者登录作者注册登录成功?T输入稿件信息F稿件送审F终审 通过?T稿件校对出版发行结束

3.3统计报表模块

3.3.1功能

统计报表模块主要对系统中各类信息进行统计,由超级管理员来完成,主要包括作者统计、稿件统计、审稿人统计、出版发行统计。

3.3.1性能

对精度没有要求,但是对时间上要求还是要响应时间短,一般为1-2秒,为此,可以把一些频繁的操作用存储过程来实现,比如说是查询。

3.3.1输入项

各类信息的基本信息,包括:稿件信息、作者信息、审稿人信息、评审信息、费用信息。

3.3.1输出项

统计分类后的各类信息

3.3.1流程逻辑

其流程图如下:

开始超级管理员登录信息分类作者统计稿件统计审稿人统计出版发行统计结束 3.4费用管理模块

3.4.1功能

费用管理模块主要是对各类费用信息进行管理,主要包括对费用信息的浏览和统计,费用统计包括,评审费统计、稿费统计、出版发行费统计、办公费统计。

3.4.1性能

对精度没有要求,但是对时间上要求还是要响应时间短,一般为1-2秒,为此,可以把一些频繁的操作用存储过程来实现,比如说是查询。

3.4.1输入项

所有费用信息

3.4.1输出项

统计分类后的费用信息

3.4.1流程逻辑

其流程图如下:

开始超级管理员登录浏览经费信息经费分类统计评审费统计稿费统计出版发行费统计办公费结束 4.核心代码

using System;

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

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

namespace LJM.PerForm {

public partial class F_AuthorRegister : Form {

public DialogResult registerResult = DialogResult.Cancel;

DataClass.MyDataClass MyClass = new LJM.DataClass.MyDataClass();

public F_AuthorRegister() {

InitializeComponent(); }

//注册提交

private void btnAuthorSubmit_Click(object sender, EventArgs e) {

registerResult = DialogResult.Cancel; //判断符合条件,并录入数据库

if (tbAuthorID.Text != \ & tbAuthorPass.Text != \)//用户名、密码均非空 {

SqlDataReader temDR = MyClass.getcom(\用户表where Staff_ID='\ + tbAuthorID.Text.Trim() + \ + tbAuthorPass.Text.Trim() + \); bool ifcom = temDR.Read();

if (!ifcom)//查找结果为空,该用户尚未注册,符号条件,注册成功 {

//录入数据库 //登陆表tb_User

MyClass.getcom(\用户表values ('\ + tbAuthorID.Text.Trim() + \ + tbAuthorName.Text.Trim() + \ + tbAuthorPass.Text.Trim() + \ + \ + \); //作者表tb_Author

MyClass.getcom(\作者信息表values ('\

+ tbAuthorID.Text.Trim() + \ + tbAuthorName.Text.Trim() + \ + cbAuthorSex.Text.Trim() + \

+ dtpAuthorDateOfBirth.Value + \ + tbAuthorTel.Text.Trim() + \ + tbAuthorEmail.Text.Trim() + \ + tbAuthorAddress.Text.Trim() + \); MessageBox.Show(\注册成功!\\n点击确认进入系统\, \提示\, MessageBoxButtons.OK);

this.Close();

registerResult = DialogResult.OK; }

else//不符合条件,需重新注册 {

registerResult = DialogResult.Retry;

if (MessageBox.Show(\注册失败!\\n请重新注册\, \提示\, MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.Cancel) {

this.Close(); this.Dispose(); Application.Exit(); } } }

else//不符合条件,需重新注册

{

registerResult = DialogResult.Retry;

if (MessageBox.Show(\注册失败!\\n请重新注册\, \提示\, MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.Cancel) {

this.Close(); this.Dispose(); Application.Exit(); } } }

//注册取消

private void btnAuthorCancel_Click(object sender, EventArgs e) {

registerResult = DialogResult.Cancel; this.Close(); } } }

作者信息管理(包括删除、修改、查找功能)

using System;

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

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

namespace LJM.PerForm {

public partial class F_Author : Form {

SqlConnection thisConnection; SqlCommand thisCommand; SqlDataReader thisReader; string sql = \; public F_Author() {

InitializeComponent();

thisConnection = new SqlConnection(

@\ + \); }

//初始化

private void F_Author_Load(object sender, EventArgs e) {

if (LJM.DataClass.MyDataClass.Login_Limit == 3) {

this.btnDel.Enabled = false; } if (LJM.DataClass.MyDataClass.Login_Limit == 1 LJM.DataClass.MyDataClass.Login_Limit == 2) {

this.btnDel.Enabled = false; }

this.lvAuthor.Columns.Add(\作者编号\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\姓名\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\性别\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\出生日期\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\手机\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\, this.lvAuthor.Width / 7 - 1); this.lvAuthor.Columns.Add(\地址\, this.lvAuthor.Width / 7 - 1); thisConnection.Open();

thisCommand = thisConnection.CreateCommand(); sql = \作者信息表\;

if (DataClass.MyDataClass.Login_Limit == 3) {

//作者本人登录,仅显示本人信息

sql = \* from 作者信息表where Author_ID = DataClass.MyDataClass.Login_ID + \; //进行一些功能限制

//..................................................... // }

thisCommand.CommandText = sql;

thisReader = thisCommand.ExecuteReader(); //ListView上显示

lvAuthor.Items.Clear(); while (thisReader.Read()) {

string id = (string)thisReader[\].ToString().Trim();

string name = (string)thisReader[\].ToString().Trim(); string sex = (string)thisReader[\].ToString().Trim();

string Birthday = Convert.ToString(thisReader[\]).ToString().Trim(); string Phone = (string)thisReader[\].ToString().Trim(); string Email = (string)thisReader[\].ToString().Trim(); string Address = (string)thisReader[\].ToString().Trim();

|| '\ + //创建ListView的主项

ListViewItem item = new ListViewItem(id);//添加子项 item.SubItems.Add(name); item.SubItems.Add(sex);

item.SubItems.Add(Birthday); item.SubItems.Add(Phone); item.SubItems.Add(Email); item.SubItems.Add(Address); lvAuthor.Items.Add(item); }

thisReader.Close();//关闭dataReader对象 thisConnection.Close(); this.Text = \作者信息\;

if (lvAuthor.Items.Count > 1) {

this.Text = \作者信息\ + \:\ + lvAuthor.Items[0].Text.Trim(); } }

//显示函数

public void DisplayAll() {

thisConnection.Open();

thisCommand = thisConnection.CreateCommand();

thisCommand.CommandText = sql;// \作者信息表\ thisReader = thisCommand.ExecuteReader(); //ListView上显示

lvAuthor.Items.Clear(); while (thisReader.Read()) {

string id = (string)thisReader[\].ToString().Trim();

string name = (string)thisReader[\].ToString().Trim(); string sex = (string)thisReader[\].ToString().Trim();

string Birthday = Convert.ToString(thisReader[\]).ToString().Trim(); string Phone = (string)thisReader[\].ToString().Trim(); string Email = (string)thisReader[\].ToString().Trim(); string Address = (string)thisReader[\].ToString().Trim(); //创建ListView的主项

ListViewItem item = new ListViewItem(id);//添加子项 item.SubItems.Add(name); item.SubItems.Add(sex);

item.SubItems.Add(Birthday); item.SubItems.Add(Phone); item.SubItems.Add(Email); item.SubItems.Add(Address);

lvAuthor.Items.Add(item); }

thisReader.Close();//关闭dataReader对象 thisConnection.Close(); }

//修改

private void btnEdit_Click(object sender, EventArgs e) {

if (lvAuthor.SelectedIndices != null && lvAuthor.SelectedIndices.Count > 0) {

thisConnection.Open();

thisCommand = thisConnection.CreateCommand();

thisCommand.CommandText = \作者信息表set \

+ \ + tbAuthorID.Text.ToString().Trim() + \ + tbAuthorName.Text.ToString().Trim()

+ \= '\ + comboBox1.Text.ToString().Trim() + \= '\ + dtpAuthorDateOfBirth.Value.ToString().Trim()

+ \= '\ + tbAuthorTel.Text.ToString().Trim() + \= '\ + tbAuthorEmail.Text.ToString().Trim()

+ \ + tbAuthorAddress.Text.ToString().Trim() + \ + \ + tbAuthorID.Text.ToString().Trim() + \; try {

thisReader = thisCommand.ExecuteReader(); }

catch (SqlException ex) {

MessageBox.Show(\此作者不存在\); }

thisReader.Close(); thisConnection.Close(); thisConnection.Open();

thisCommand = thisConnection.CreateCommand(); thisCommand.CommandText = \用户表set \

+ \ + tbAuthorName.Text.ToString().Trim() + \ + \ + tbAuthorID.Text.ToString().Trim() + \; try {

thisReader = thisCommand.ExecuteReader(); }

catch (SqlException ex) {

MessageBox.Show(\此作者不存在\); }

thisReader.Close(); thisConnection.Close(); DisplayAll(); } else

MessageBox.Show(\请先选中要修改的行\);//*/ }

//按号搜索

private void btnSearch_Click(object sender, EventArgs e) {

thisConnection.Open();

thisCommand = thisConnection.CreateCommand();

thisCommand.CommandText = \* from 作者信息表where Author_ID = '\ + tbSearchID.Text.Trim() + \;

thisReader = thisCommand.ExecuteReader(); //ListView上显示

lvAuthor.Items.Clear();

if (thisReader.Read())//查找到了 {

string id = (string)thisReader[\].ToString().Trim();

string name = (string)thisReader[\].ToString().Trim(); string sex = (string)thisReader[\].ToString().Trim();

string Birthday = Convert.ToString(thisReader[\]).ToString().Trim(); string Phone = (string)thisReader[\].ToString().Trim(); string Email = (string)thisReader[\].ToString().Trim(); string Address = (string)thisReader[\].ToString().Trim(); //创建ListView的主项

ListViewItem item = new ListViewItem(id);//添加子项 item.SubItems.Add(name); item.SubItems.Add(sex);

item.SubItems.Add(Birthday); item.SubItems.Add(Phone); item.SubItems.Add(Email); item.SubItems.Add(Address); lvAuthor.Items.Add(item); lvAuthor.Focus();

lvAuthor.Items[0].Selected = true; } else

MessageBox.Show(\未找到此作者\); thisReader.Close(); thisConnection.Close(); }

private void btnDisplay_Click(object sender, EventArgs e)

{

DisplayAll(); }

//当选中某行时 private void lvAuthor_ItemSelectionChanged(object ListViewItemSelectionChangedEventArgs e) {

if (lvAuthor.SelectedIndices != null && lvAuthor.SelectedIndices.Count > 0) {

ListView.SelectedIndexCollection sel = lvAuthor.SelectedIndices; tbAuthorID.Text = lvAuthor.Items[sel[0]].Text.Trim();

tbAuthorName.Text = lvAuthor.Items[sel[0]].SubItems[1].Text.Trim(); comboBox1.Text = lvAuthor.Items[sel[0]].SubItems[2].Text.Trim(); tbAuthorTel.Text = lvAuthor.Items[sel[0]].SubItems[4].Text.Trim(); tbAuthorEmail.Text = lvAuthor.Items[sel[0]].SubItems[5].Text.Trim(); tbAuthorAddress.Text = lvAuthor.Items[sel[0]].SubItems[6].Text.Trim(); if (lvAuthor.Items[sel[0]].SubItems[3].Text.Trim() != \) {

dtpAuthorDateOfBirth.Value

DateTime.Parse(lvAuthor.Items[sel[0]].SubItems[3].Text.Trim()); } } }

sender,

=

测试报告

1. 引言

1.1 编写目的

这份测试分析报告主要是测试学报信息管理系统中各个主要功能的完善性和可用性,以求进一步完善系统的功能,适应用户的需求。

1.2 背景

学报信息管理系统是一个完整的系统,主要包括对刊用稿件的组稿、审稿、编辑、加工、终审、排版、校对、发行等多个环节,涉及的信息资源包括稿件信息、作者信息、审稿人信息、评审结果、编委会终审结论、编辑排版等信息。运行环境就是个人的电脑,而我们进行的测试也是在个人电脑上进行,运行环境与测试环境没有太大差异,对测试结果没有多大的影响。

2. 测试概要

2.1测试人员

本次参与测试的人员是:王伟阁 王娜

2.2测试用例

测试分别针对系统主要功能进行测试,总共有4个测试用例。测试用例如下:

1.添加用户功能测试 项目/系统:学报信息管理系统 测试级别:功能测试 测试案例名称:添加用户功能测试 平台:Windows XP,SQL Severe2005 测试方法:黑盒测试 测试编号:Test-01 测试描述:测试添加用户的界面,功能是否可用。 数据准备:作者编号:123密码:123 前提条件:到注册用户界面 提示/参考:如果出现提示添加成功的对话框,则测试通过;再次添加同一个用户,如果出现提示添加失败的对话框,则测试通过。 步骤 操作/输入数据 预期结果 跳转到注册页面 返回添加失败的信息提示。 可以正常登录。 跳转到登陆界面 返回添加失败的提示。 实际结果/注释 通过/失败 通过 通过 通过 通过 通过 若失败继续的操作 测试问题报告编号: 1. 在主页面点击注册 2. 输入准备的数据,提交 3. 使用添加的数据,进行登录 4. 点击登陆页面 5. 再次添加123用户

2.用户权限的功能测试 项目/系统:高校学报信息管理系统 测试案例名称:用户权限功能测试 测试案例方法:黑盒测试 测试级别:集成测试 平台:Windows XP,SQL Severe2005 测试编号:Test-02 测试描述:测试不同权限的用户所具有的功能 数据准备:普通用户 用户名:l23密码:123 管理员 用户名:aa 密码为admin 前提条件:进入登陆页面 提示/参考:进入主界面,不同权限的用户可以对其权限对应的模块进行操作,则测试通过。 步操作/输入数据 骤 1 打开登录界面 预期结果 进入用户登录界面 实际结果/注释 通过/ 若失败继测试问题失败 续的操作 报告编号: 通过 通过 2 使用普通权限用户进入系统主页面,可以看登录,用户名:123 到系统管理,审稿人信息密码:123 等模块不可用。 3 使用超级用户登录,用户名:aa 密码:aa 进入系统主页面,可以看到系统管理,审稿人信息等所有模块都可用。 通过

3.手机号长度测试 项目/系统:学报信息管理系统 测试案例名称:手机号输入测试 测试级别:集成测试 平台:Windows XP,SQL Severe2005 测试描述:测试手机号长度的限制 数据准备:数据库中限定手机号长度为8到13位 分别输入小于8位、8位、13位、大于13位的手机号 前提条件:进入用户注册页面 提示/参考: 若输入小于8位、大于13位的手机号提示注册失败,输入8到13位的手机号注册成功,则测试通过。

测试案例方法:边界值测试法 测试编号:Test-03

步骤 操作/输入数据 1 2 预期结果 实际结 通过/果/注释 失败 通过 通过 若失败继测试问题报续的操作 告编号: 打开登录界面,点击注册 进入用户注册界面 填入用户信息, 进入系统主页面,可以看到系统管理,审稿人信息等模块不可用。 提示请输入8到13位的手机号 提示注册成功 3 手机号长度测试 T--01:输入小于8位的手机号,例如:656555 T--02:输入8位的手机号,例如:656555 通过 通过 通过 T--03:输入大于8位小提示注册成功 于13位的手机号,例如:656555 T--04:输入13位的手机提示注册成功 号,例如:1589634567856 T—05:输入大于13位的手机号,例如:13258698585269 提示请输入8到13位的手机号 通过 通过 4.职工信息测试: 测试级别:集成测试 数据准备: 前提条件:进入职工信息页 提示/参考:选中要显示的信息,在信息框中可以显示详细信息;选中要删除信息,点击删除,在对应的表中此行信息被删除,则测试通过。 平台:Windows XP,SQL Severe2005 测试编号:Test-04 测试描述:测试对职工信息的显示,查询,修改等功能。

步骤 1 2 3 显示, 删除, 修改 功能 测试 操作/输入数据 打开登录界面,使用aa用户登录 T--01:选中要显示的信息行,点击显示按钮 预期结果 进入系统主界面 实际结 通过/ 果/注释 失败 通过 通过 通过 通过 若失败继续的操作 测试问题报告编号: 点击系统管理,职工信息 进入职工信息页面 在GroupBox中显示作者详细信息 T--02:选中要修改的信息在GroupBox中显行,在GroupBox中修改,示已经修改过的信再次点击修改按钮 息 T--03:选中要删除的信息,点击删除按钮 在GroupBox中已删除该行信息 通过 附:由于其他几个模块的功能基本类似,都是一些显示、添加、删除、注册等功能,所以只做了类似功能的测试。

3. 测试结果

(1)界面按钮位置恰当,用户可以清楚的在界面上找到操作按钮。 (2)系统大部分功能可以实现。

用户只可以用合法的用户名登陆,并实现信息查询修改等功能。 管理员用户可以使用后台功能,修改相应模块的信息。

4. 测试结果分析

4.1 系统缺陷

(1)前台功能较少,多为查看显示信息的功能; (2)页面过于静态,缺少一些动态的效果; (3)系统功能较为单一,无法实现较高级功能;

(4)由于时间比较紧,系统的部分数据库未能建好,功能没有完善。

4.2总结

测试的目的是发现软件中的各种缺陷,以较小的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量, 测试用例是整个软件测试工作的核心,反映了对被测对象的质量要求,就定对被测对象的质量的评估,是软件开发必不可少的阶段。

本次测试用到了静态、动态测试,单元测试,集成测试,回归测试等相关知识,在测试过程中遇到了很多问题,原因有两方面,以方面是数据库方面知识欠缺,还有一方面是测试的一些知识理解不透彻,最终通过小组讨论都得到了解决。由此可见课下还需要不断地对学过的知识回顾温习,并不断地实践运用,这样才能达到熟练掌握。

通过本次课设也锻炼了我们的团结协作能力,虽然遇到了很多问题但是在小组的努力协作下都得到了解决。

实验小结

这次实验的题目和要求,书上已经给的很详细,尤其各模块具体功能。所以重点在于各数据的具体分析和数据库中的表的建立。数据库中的表的设计是这次是课程设计的最重要的内容。它最终经过小组成员之间共同讨论下慢慢确定,虽然中间有不同意见,但都经过谈论后解决。在选择语言是开始大家也有分歧,有人主张用VC++和C++,有人主张C#。两者各有优势前者以前已经做过相关东西大家都有所了解,后者主要理由是大家刚好开始自学C#,通过这次课程设计能够好巩固和掌握C#。最终经过讨论,大家还是决定利用C#,要勇于挑战,使自己学到的东西,得以学以致用。

虽然开始前期,大家做了很多准备但在编写过程中仍遇到很多问题。尤其是数据库中的各表之间的联系,开始设计有些不足但后来经过修改而得以成功,其对编写带来不必要麻烦。正如老师课堂所说的需要求分析是整个工程中最重要的部分,工程的成功与失败都在于开始的分析。

至于界面,最开始做的是用DataGridView这个控件来在界面上显示数据库中数据,后来总感觉这个控件显示起来没有ListView这个控件好看方便。于是后来就又改成了ListView控件来显示数据库中的数据。所有在编程之前我们首先要选择好我们要使用的编程语言以及IDE环境还有要用到的控件等。提前考虑周到了,才能把任务很好的完成。

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

Top