邮局订阅管理系统

更新时间:2023-11-23 06:56:01 阅读量: 教育文库 文档下载

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

课程设计说明书

课程设计名称: 嵌入式课程设计

课程设计题目: 邮局订阅管理系统

学 院 名 称: 信息工程学院

专业:计算机科学与技术 班级:

学号: 姓名:

评分: 教师:时招军、叶水生

2014 年 6 月 25 日

1

目 录

1 问题定义....................................................................................................................................... 3

1.1课题背景 ............................................................................................................................ 3 1.2 课题的目的及意义 ........................................................................................................... 3 2 可行性研究 ................................................................................................................................... 4

2.1 经济可行性 ....................................................................................................................... 4 2.2 技术可行性 ....................................................................................................................... 4 2.3 操作可行性 ....................................................................................................................... 4 3 需求分析....................................................................................................................................... 5

3.1系统功能模块概述和分析 ................................................................................................ 5 3.2 数据流程图 ....................................................................................................................... 5 3.3 UML用例图 ........................................................................................................................ 5 3.4系统开发技术简介 ............................................................................................................ 6

3.4.1 Qt ........................................................................................................................... 6 3.4.2 SQLite ................................................................................................................... 7

4 系统设计....................................................................................................................................... 9

4.1 系统功能结构图 ............................................................................................................... 9 4.2 功能模块分工 ................................................................................................................... 9

4.2.1 组员分工 ............................................................................................................... 9 4.2.2 我的模块 ............................................................................................................... 9 4.3 数据库设计 ..................................................................................................................... 10

4.3.1 邮局订阅管理系统E-R图 ................................................................................. 10 4.3.2 数据表的结构 ..................................................................................................... 12

5 系统实现..................................................................................................................................... 14

5.1 系统构成 ......................................................................................................................... 14 5.2 个人核心代码 ................................................................................................................. 14 6 系统测试..................................................................................................... 错误!未定义书签。

6.1 测试用例 ......................................................................................................................... 20 6.2 测试结果 ......................................................................................................................... 20 7 总结 ............................................................................................................................................ 20 8 参考文献..................................................................................................................................... 23

2

1 问题定义

1.1课题背景

随着internet的普及和电子商务的兴起,邮局订阅管理系统是Internet电子商务在报刊销售行业发展的必然结果,这种新型的报刊销售形式,与传统利用书店进行销售的方式相比拥有许多优势:一是降低了销售成本;二是利用网络作为交易平台,改变传统的交易方式,使得交易活动不受空间和时间的限制;三是信息的传递更迅速灵活,新报刊信息上传后,客户可以立即看到,交易马上可以从网上进行,从而大大提高了交易的效率。正是由于这些优势,邮局订阅管理系统才能得以迅速地发展。邮局订阅管理系统的主要功能是利用网站作为交易平台,将报刊的一些基本信息以网站的形式发布到Internet中,客户可以通过Internet登录邮局订阅管理系统来查看报刊信息并提交订单订购,实现在线交易。

1.2 课题的目的及意义

在客户进行报刊订阅过程中,经常会遇到期刊信息受到限制,客户只能通过上门咨询、电话沟通等方式进行各种信息的获取,受一定的时间与物理空间的局限并且成本较高。而本系统可以帮助人们认识到网络在现代社会生活中的重要作用,以少量的时间和资金建立邮政门户网站来方便客户的订阅,以此来是客户的经济活动变得更灵活、更主动也更便捷。

《邮局订阅管理系统》不仅可以大量减少人力、物力,降低了成本,而且突破了时间和空间的限制,使得报刊交易活动可以在任何时间、任何地点进行,实现24小时营业,不需要营业员,可以被设置成一个自动售货机。

鉴于互联网的优势以及对国内外相关邮局订阅管理系统现状的研究分析,本次课程设计以QT/E,Sqlite为开发平台,通过对邮局的报刊订阅业务进行分析,调查,设计该邮局的报刊订阅管理系统。

3

2 可行性研究

2.1 经济可行性

本系统使用软件开发工具QT/E。数据库用的是Sqlite这些都是免费的而且该系统能稳定的运行在WINDOWS操作系统上, 这样整个系统的软件成本得到很大程度的节约,只需要投入人力成本,在系统运行环境中,软硬件都无需做巨大投资,只利用现有计算机设备即可。因此在经济上可行的。

2.2 技术可行性

本系统采用的是QT/E开发,Windows 7操作系统,用C++语言进行前台网页界面设计以及后台控制,完成数据的添加、修改、删除、查询等功能。由于QT/E功能强大,而Sqlite灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用QT/E是开发轻平台的极佳选择从而说明本系统在技术方面可行。

硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。

2.3 操作可行性

目前,大多数计算机都能运行该系统,该系统的安装、调试、运行不会改变原计算机系统的设置和布局,并且系统界面简单,提示信息完整,由相关人员指导便能够方便的操作此软件。

4

3 需求分析

3.1系统功能模块概述和分析

近年来我国信息产业发展迅速,手工管理方式在报纸订阅管理等需要大量

事务处理的应用中已显得不相适应,采用IT技术提高服务质量和管理水平势在必行。面对各种媒体的强势竞争,因此,邮局必须提高其工作效率,改善其工作环境。这样,管理信息化势在必行。 《邮局订阅管理系统》主要功能如下:

① 数据显示:显示所有报刊的基本信息(报刊代号,报刊名称,报刊分

类,出版社,报刊半年价,报刊全年价等基本信息); ② 用户管理:登录、退出、查询、修改个人信息;

③ 订阅管理:添加、删除、修改、查询订阅订单; ④ 注册管理:注册用户,完善用户信息。

3.2 数据流程图

操作信息 用户 操作结果信息 邮局订阅管理系统 图 3-1 数据流程图

3.3 UML用例图

本系统的UML用例图如图3-2所示:

图3-4 UML用例图

5

3.4系统开发技术简介

3.4.1 Qt

Qt是一个跨平台的C++应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器。Qt使用标准的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏。通过语言绑定,其他的编程语言也可以使用Qt。Qt是自由且开放源代码的软件,在GNU宽通用公共许可证条款下发布。所有版本都支持广泛的编译器,包括GCC的C++编译器和Visual Studio。

Qt具有多种优势:首先,它优良的跨平台特性,可以支持很多种操作系统;然后,Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的;再次,Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能;最后,支持 2D/3D 图形渲染,支持 OpenGL,大量的开发文档和XML 支持。

Qt还有很多特点:

无障碍环境应用程序:无障碍环境需要无障碍兼容的应用程序、辅助技术、以及辅助工具之间的合作。应用程序通常不会直接沟通辅助工具,而是通过一个辅助技术,这是一个应用程序和工具之间信息交流的桥梁。用户界面元素相关信息,例如按钮和滚动条,使用辅助技术来显示。Qt支持Windows上的Microsoft Active Accessibility(MSAA)和Mac OS X上Mac OS X Accessibility。

无障碍兼容的应用程序称为AT-Servers,而辅助工具被称为AT-Clients。Qt应用程序通常会是一个AT-Server,但特别的程序也可能如同AT-Client方式工作。

国际化:Qt的字体引擎能够在同一时间正确的显示各种不同的书写系统。并且Qt内部使用Unicode编码来存储文字。

Qt的多国语言支持技术,可以让应用程序中的文字全部使用英文撰写,能够在完全不需修改程序的状况下,改变整个应用程序中的文字为另一个语系的文字,并能够协助处理不同语言的单、复数问题。

6

独立的翻译文件使得新增支持语言相当容易,同时翻译文件(.ts)为XML格式可以直接编辑或使用Qt Liguist进行翻译,可让无程序开发能力的翻译者亦能独自完成翻译。Qt附带的工具程序就能够自动抽取需要翻译的文字产生翻译文件。

多线程:Qt的线程支持是独立于平台的线程类型,采用信号与槽机制,实现类型安全的线程间通讯。这使得它易于开发具可移植性的多线程Qt应用程序。并能充分利用多核架构,获得最佳运行性能,还能根据可用的处理器内核数自动调整使用的线程数。多线程程序设计也是一个执行耗时操作而不会冻结用户界面的有效典范。

语言绑定:除了C++外,Qt还为其它多种计算机语言提供了应用程序接口。

3.4.2 SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 能够真正表现 SQLite 优越性能的领域是 Web 站点,可以使用 SQLite 管理应用程序数据、快速应用程序原型制造和培训工具。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,它将为那些以前无法提供用作持久数据的后端的数据库的应用程序提供了高效的性能。现在,没有必要使用文本文件来实现持久存储。SQLite 之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQL。这一点对于对于小型设备空间的应用程序来说尤其重要。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。

7

它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。 SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,同时它还支持事务处理功能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。

嵌入式数据库对于加快应用程序开发也很重要,尤其是在用于数据库抽象层(例如PEAR::DB或ezSQL)时。最后,SQLite 正在积极开发中,未来一定会有新的功能,会对开源社区更有用。

8

4 系统设计

4.1 系统功能结构图

邮局订阅管理系统功能结构如图4-1所示。

显示报刊基本信息 注册用户

完善信息

登 录

退 出

查询修改个人信息

添加订阅信息

修改订阅信息

删除订阅信息

查询订阅订单

数据显示

注册管理

用户管理

订阅管理

邮局订阅管理系统管理

图 4-1网上购物系统功能结构图

4.2 功能模块分工

组员:谢碧玲 母丹红

4.2.1 组员分工

母丹红:数据显示,用户管理 谢碧玲:订阅管理,注册管理 4.2.2 我的模块

●订阅管理:添加、删除、修改、查询订阅订单; ●注册管理:注册用户,完善用户信息。

9

4.3 数据库设计

4.3.1 邮局订阅管理系统E-R图 1.用户信息实体

管理员信息实体包括:用户账号、用户密码、姓名、住址、电话、部门、订阅数量。用户信息实体的E-R图如图4-2所示。

订阅数量 用户密码 用户账号 部门 用户 姓名 电话 住址 图4-2 用户信息实体E-R图

2.报刊信息实体包括:报刊代号、报刊名称、报刊类别、出版社、出版时间、半价、全价。报刊信息实体的E-R图如图4-3所示。

10

图4-3 报刊信息实体E-R图

3.部门信息实体

部门信息实体包括:部门号、部门名称。部门信息实体的E-R图如图4-4所示。

部门号

部门信息

部门名称

图4-4 部门信息实体E-R图

4.报刊类别信息实体

报刊类别信息实体包括:类别号、类别名称。课程信息实体的E-R图如图4-5所示。

图4-5 报刊类别信息实体的E-R图

11

4.3.2 数据表的结构

数据库在整个管理系统中占据非常重要的地位,数据库结构设计的好坏直接影响着系统的效率和实现。本实例采用SQLite数据库,下面介绍数据库中的数据表结构。

本系统数据库表如下:

(1)users表用来存储用户的信息,该表的结构如表4-1所示。

表4-1 users表结构 字段名 数据类型 是否为空 是否主键 默认值 描述 uId TEXT NO YES 用户账号 uName TEXT NO NO NULL 姓名 uPassword TEXT NO NO NULL 用户密码 uAddress TEXT NO NO NULL 地址 uNumber TEXT NO NO NULL 电话号码 uDepartment TEXT YES NO NULL 部门 uQuantity TEXT YES NO NULL 数量 (2) subscribe表用来存储订阅的信息,该表的结构如表4-2所示。

表4-2 subscribe表结构 字段名 sId uId jId sNumber sYear sTotal 数据类型 INTEGER TEXT TEXT INTEGER TEXT TEXT 是否为空 NO NO NO YES YES YES 是否主键 YES YES YES NO NO NO 默认值 NULL NULL NULL 描述 订阅号 用户账号 报刊号 份数 订阅年数 总金额 (3) journal表用来存储报刊信息,该表的结构如表4-3所示。

表4-3 journal表结构 字段名 jId cName cKind jPress jPretime jHarfprice jwholeprice 数据类型 INTEGER TEXT TEXT TEXT TEXT REAL REAL 是否为空 NO NO YES NO NO NO NO 是否主键 YES NO NO NO NO NO NO 默认值 NULL NULL NULL NULL NULL NULL 描述 报刊号 报刊名称 报刊类别 出版社 出版时间 半价 全价 (4) department表用来存储部门信息,该表的结构如表4-4所示。

12

表4-4 department表结构 字段名 dId dName 数据类型 INTEGER TEXT 是否为空 NO NO 是否主键 YES NO 默认值 NULL 描述 部门号 部门名称 (5) classification表用来存储报刊类别信息,该表的结构如表4-5所示。

表4-5 classification表结构 字段名 cId cName 数据类型 INTEGER TEXT 是否为空 NO NO 是否主键 YES NO 默认值 NULL 描述 报刊类别号 报刊类别名称

13

5 系统实现

5.1系统构成

各个输入界面,显示界面,用于信息的输入输出以及显示如表5-1所示: 表5-1

addindent alterindent indent journal mainwindow register subscribe userinfo usersubscription 增加订单 修改订单信息 订单信息 报刊信息 登录页面 用户注册 订阅报刊 用户信息管理 用户登入页面 5.2 个人部分核心代码

1 添加订单

用户增添订单信息,如图5-1所示。

如图5-1 用户增添订单信息

14

核心代码如下所示:

void Subscription::on_subscibe_clicked() {

if(ui->year->text().isEmpty()||ui->Copies->text().isEmpty()||ui->rental->text().isEmpty()) {

QMessageBox::about(0,tr(\),tr(\)); } else {

QSqlQuery query(global::db);

query.exec(\ * from subscribe\);

int sum=0;

while(query.next()) {

sum++; }

sum=sum+1;

int mark=ui->mark->currentIndex()+1; //query.exec(\

into

subscribe

values(\+ui->year->text()+\ query.prepare(\

into

subscribe(sId,uId,jId,sNumber,sYear,sTotal) values(?,?,?,?,?,?)\); query.bindValue(0,sum); query.bindValue(1,global::uid); query.bindValue(2,mark);

query.bindValue(3,ui->Copies->text()); query.bindValue(4,ui->year->text());

15

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

Top