在线音像制品销售系统课程设计说明书1 精品Word格式.docx
- 文档编号:16240277
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:35
- 大小:445.32KB
在线音像制品销售系统课程设计说明书1 精品Word格式.docx
《在线音像制品销售系统课程设计说明书1 精品Word格式.docx》由会员分享,可在线阅读,更多相关《在线音像制品销售系统课程设计说明书1 精品Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
图1系统主要流程图
2.2功能模块:
模块如图2所示:
图2模块图
2.3组织结构
组织结构如图3所示
图3组织结构图
三、详细设计
3.1系统IPO图
音像管理模块完成音像店音像信息相关的操作如图4所示。
IPO图
系统名:
音像制品出租及销售管理系统
制图者:
冯伟强
模块图:
音像管理
日期:
2011-06-23
由下列模块调用:
调用下列模块:
系统主模块
添加音像、修改音像、删除音像、查询音像
输入:
输出:
编号,影片名称,时间长度,导演,发行年度,影片介绍,购买价格,出租价格,影片类型,影片格式,影片语言,总数
音像管理操作是否成功
处理内容:
检查输入信息的合法性后,调用数据库添加、修改、删除或者查询操作并返回结果信息。
图4 音像管理IPO图
客户管理模块完成会员顾客信息相关的操作如图5所示。
客户管理
添加会员、修改会员、删除会员、查询会员
顾客编号,姓名,电话,OICQ,Email
会员管理操作是否成功
图5 音像管理IPO图
操作员管理模块完成系统操作员即员工信息相关的操作如图6所示。
操作员管理
添加、修改、删除和查询操作员
编号,姓名,密码,锁屏密码
操作员管理操作是否成功
图6 操作员管理IPO图
日常操作模块是完成日常业务工作操作的模块如图7所示。
日常操作模块
销售音像、出租音像、归还音像
顾客编号,音像编号,日期
售/借/还操作是否成功
检查输入信息的合法性后,调用数据库修改操作,完成音像的销售、出租或者归还操作,修改数据库信息。
图7 日常操作IPO图
查询模块是完成顾客对库存音像信息、可租音像信息查询的操作如图8所示。
查询模块
查询关键词和关键词的类型
满足条件的查询结果
检查输入信息的合法性后,调用数据库查询操作,完成对音像信息、顾客信息或者租借记录的查询。
图8 查询模块IPO图
用户登录模块是系统用户登录该管理系统进行身份认证的操作如图9所示。
用户登录
用户名、密码。
验证用户名和密码的合法性,并根据用户权限,进入不同的主界面。
图9 用户登陆IPO图
3.2数据库设计
1.概念结构设计
概念模型可以看成是现实世界到机器世界的一个过渡的中间层,是整个数据库设计的关键。
概念结构设计的结果是产生概念模型,将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念型模型。
然后再把概念模型转换为具体机器上的DBMS支持的数据模型。
要对数据词典中的数据存储进行分析,得到系统的关系模型,可以采用实体联系图(简称E-R图)的方法来进行数据结构分析,从而得出概念模型。
E-R图由实体、联系、属性三部分组成。
(1)、实体和属性
实体指客观存在并可相互区分的事物,可以是人、物、实际对象、某些概念、事物本身,也可指事物和事物之间的联系。
属性是实体具有的某一特性。
一个实体可以由若干个属性来描述。
具体到该系统,概念设计得到的实体和对应属性如表10所示:
实体
属性
音像制品
顾客
操作员
系表10 系统实体及其属性表
(2)、实体间联
联系是指现实世界的事物之间的联系。
这种联系反映到信息世界中,就分为两类,一类是实体内部的联系,另一类是实体之间的联系。
两个实体之间的联系可分为三类:
1)一对一的联系(1:
1)
2)一对多的联系(1:
n)
3)多对多的联系(n:
m)
本系统包括的联系如表11所示:
实体一
实体二
联系名称
联系类别
备注
音像
租借
M:
N
对应租借日志表
表11 系统联系表
2.逻辑结构设计
逻辑结构设计的任务是根据DBMS的特征把概念模型转换为相应的逻辑结构。
概念设计所得到的E-R模型,是独立与DBMS的,这里的转换就是把表示概念结构的E-R图转换为层次模型或网状模型或关系模型的逻辑结构。
E-R图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模型,如何确定这些关系模式的属性和码。
E-R模型转换为关系模型的一般转换规则包括以下两条:
(1)、实体类型的转换
将每个实体类型转换为一个关系模式,实体的属性即为关系模式的属性,实体标志符即为关系模式的键。
(2)、联系类型的转换
根据不同的情况做不同的处理:
1)若实体间的联系是1:
1的,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)若实体间的联系是1:
N的,可以在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
若实体间的联系是M:
N的,可以将联系也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
根据上述转换规则,得到本系统的关系模式如下:
音像制品:
(音像编号,影片名称,时间长度,导演,发行年度,影片介绍,购买价格,出租价格,影片类型,影片格式,影片语言,总数)
顾客:
(顾客编号,姓名,电话,OICQ,Email)
操作员:
(编号,姓名,密码,锁屏密码)
租借日志:
(顾客编号#、音像编号#、借阅日期、归还日期)
销售日志(顾客编号#、音像编号#、销售日期)
3.数据库表格设计
我在系统中定义的表格都严格地按照范式的思想和要求去完成,数据库中的所有表格都达到了三范式的要求。
针对本系统的特点和需要实现的功能,在对所搜集的数据进行规范化之后,定义了如下9表格,分别是管理员表、客户管理表、客户日志表、演员表、演员格式、影片类型、影片资料、价格自定义表。
通过对这九张表格的操作可以较好地完成系统设计的各项功能,9张表格之间有着不同程度的联系。
(1)、管理员表
管理员表主要用于记录音像店管理操作员的的详细信息,包括姓名、密码、销售总数、级别、解屏密码等相关信息,主要提供管理员对相关信息的管理,在此表中姓名是主键。
管理员可以对管理员信息进行添加、查询、删除、修改等操作。
ID
姓名
密码
销售数量
级别
解屏密码
1
文本
数字
表12 管理员表
(2)、客户表
客户表主要用于记录有客户会员的各类信息,包括客户姓名、客户号、电话、OICQ等。
它主要用来为管理员提供本音像店所有会员的有关信息以进行相关的优惠或者奖励。
客户姓名
客户号
电话
OICQ
表13 客户表
(3)、客户日志表
主要是为操作员提供客户是否已经租借音像制品信息信息,操作员根据这些信息进行操作,就可以在此表中查询日志的相关信息,比如:
客户姓名、影片编号、借出时期。
影片编号
借出时期
日期/时间
表14 客户日志表
(4)、演员表
每一影片都有自己的主要的演员,这个表就为顾客全面的介绍了所有影片的演员,帮助顾客了解和选取自己满意的影片。
演员
表15 演员表
(5)、影片格式表
影片格式表定义了影片的格式,有三种选择:
VCD,DVD,RM。
影片格式
表16 影片格式表
(6)、影片类型表
影片类型表里集中了关于影片类型的信息,包括科幻、动画、喜剧、恐怖、贺岁、警匪、历史、伦理、动作、战争、灾难、爱情等类型。
影片类型
表17 影片类型表
(7)、影片语言表
因为所有影片的语言不是一样的,所以我们设计出了这个表,语言包括中文、英语、日语、法语。
影片语言
表18 影片语言表
(8)、影片资料表
影片资料是总表,基本包括了影片的所有属性,包括:
影片编号、影片名称、时间长度、导演、发行年度、影片介绍等等,顾客根据这些影片资料进行选择影片。
编号
名称
时间
导演
年度
价格
类型
格式
语言
介绍
租价
表19 影片资料表
(9)、价格定义表
主要介绍影片资料的出租以及销售的价格。
购买价格
租出价格
表20 购买价格表
四、编码
#include<
fstream.h>
//包含文件读写
iostream.h>
string.h>
//包含strcmp()字符是否相等
#include<
stdlib.h>
//包含system("
cls"
)清屏
#defineMAX20//下列字符数组的大小
structDate{//日期
charyear[MAX];
//年
charmonth[MAX];
//月
charday[MAX];
//日
};
structGoods{//物品信息
charname[MAX];
//音像名称
charprice[MAX];
//音像价格
charnumber[MAX];
//音像数量
charcost[MAX];
//音像总价
charkind[MAX];
//音像的种类
Dateindate;
//购进日期
Goods*next;
//下一个结点
};
classyinxiangzhipini{//类定义与实现
private:
intlength;
//客户数量
Goods*head;
//列表的头结点
Goods*current;
//当前结点
public:
yinxiangzhipin()//构造函数
{
head=newGoods;
//创建头结点
current=head;
current->
next=NULL;
length=0;
//长度为0
}
voidCreatlist()//创建新的列表
charg='
Y'
;
ints=0;
//初始长度为0;
do{
Goods*temp=newGoods;
//构建新结点信息
length++;
//每加一个结点链表长度增1
temp->
cout<
<
"
请输入音像名称:
"
cin>
>
temp->
name;
请输入音像单价:
price;
请输入音像数量:
number;
cout<
请输入总费用:
cost;
请输入日期(********):
indate.year>
indate.month>
indate.day;
cout<
请输入的种类:
kind;
if(head==NULL){head=temp;
current=temp;
}//head头指针,current尾指针
else{current->
next=temp,current=temp;
}
do{
next?
(YN)"
//是否继续存入新产品
g;
if(g!
='
&
g!
N'
)
{
cout<
\nerror!
!
\n"
}
}while(g!
);
}while(g=='
//判断是否继续插入新结点
五、调试
程序输入与结果输出:
5.1主菜单:
5.2音碟管理子菜单:
5.3查找音碟:
5.4查看音碟库存:
5.5打印音碟详情:
5.6顾客管理子菜单:
5.7显示已有顾客的信息:
5.8注册新顾客
5.9顾客出租一张音碟:
5.10顾客返回一张音碟:
5.11管理员属性子菜单:
5.12重设音碟数量:
5.13增加管理员:
5.14管理员一览:
5.15退出总程序:
六、设计总结
此次课程设计是第一次利用面向对象程序设计思想来编写程序。
在整个过程中并不是十分成功的,但结果还是令人满意的,最终程序还是可以运行了。
不但完成了实验的要求,而且还更加深刻了自己对面向对象编程的思想:
面向对象程序设计是对数据的封装;
范式(模板)的程序设计是对算法的封装。
利用面向对象思想编程是可以简化程序员的懒惰,无论是对象,还是函数,如果你输入有问题,那么都会在编译的时候报告出来,方便你修改,而不是在执行的时候出错,害的你到处去捉虫子。
这就是用面向对象思想编程的好处。
通过此次实验,我学到了许多知识。
程序的成功运行离不开老师的教导,在此,十分感谢课程设计老师的指导!
致谢
在这次课程设计的撰写过程中,我得到了很多人的帮助。
首先,我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次课设的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮过我的同学,他们也为我解决了不少我不太明白的问题。
同时也感谢学院为我提供良好的做课程设计的坏境。
最后,再一次的感谢所有在设计中帮助过我的良师益友和同学。
参考文献
[1]周靖译.C++面向对象程序设计—基础、数据结构与编程思想,清华大学出版
[2]王连相.C/C++程序设计上机指导与测试.北京:
中国铁道出版社,2006
[3]钱能.C++程序设计教程,清华大学出版社,1999
[4]王育坚等.VisualC++程序基础教程,北京邮电大学出版社,2000
[5]陈文宇.面向对象程序设计语言C++机械工业出版社,2004
[6]廉师友.C++面向对象程序设计简明教程,西安电子科技大学出版社,1998
[7]刁成嘉.面向对象C++程序设计,机械工业出版社,2004
[8]江明德.面向对象的程序设计,电子工业出版社,1993
附录(源程序清单)
vector>
fstream>
#include"
VideoType.h"
VideoListType.h"
CustomerType.h"
CustomerListType.h"
AdminstratorType.h"
AdminstratorListType.h"
usingnamespacestd;
intMember=0;
//顾客会员号
intNum=0;
//管理员工作号
//从文件VideoData.txt中读取数据并创建影碟列表
voidcreateVideoList(ifstream&
infile,VideoListType&
videolist)
{
chartitle[50],star1[50],star2[50],producer[50],director[50],productionco[70],ch;
intinstock,videoid;
VideoTypenewvideo;
infile.get(title,50);
infile.get(ch);
while(infile)
{
infile.get(star1,50);
infile.get(ch);
infile.get(star2,50);
infile.get(producer,50);
infile.get(director,50);
infile.get(productionco,50);
infile>
instock;
videoid;
newvideo.setVideoInfo(title,star1,star2,producer,director,productionco,instock,videoid);
videolist.push_back(newvideo);
infile.get(title,50);
}
//从文件CustomerData.txt中读取数据并创建顾客会员列表
voidcreateCustomerList(ifstream&
infile,CustomerListType&
customerlist)
charname[20],ch,str1[50];
intnum,id[50];
CustomerTypenewcustomer;
infile.get(name,20);
Member++;
infile.get(str1,50);
infile>
num;
for(inti=0;
i<
50;
i++)
id[i]=str1[i];
id[i]=id[i]-48;
newcustomer.setCustomerInfo(name,num,id);
customerlist.push_back(newcustomer);
infile.get(name,20);
//从文件AdminstratorData.txt中读取数据并创建管理员列表
voidcreateAdminstratorList(ifstream&
infile,AdminstratorListType&
Adminstratorlist)
charname[20],ch;
intnum;
AdminstratorTypenewadminstrator;
Num++;
newadminstrator.setAdminstratorInfo(name,num);
Adminstratorlist.push_back(newadminstrator);
voidMenu1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在线音像制品销售系统课程设计说明书1 精品 在线 音像制品 销售 系统 课程设计 说明书