小型音像店管理系统设计呕心沥血整理版.docx
《小型音像店管理系统设计呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《小型音像店管理系统设计呕心沥血整理版.docx(20页珍藏版)》请在冰豆网上搜索。
小型音像店管理系统设计呕心沥血整理版
摘要
我做的音像店管理系统是用vc++开发出来用于管理音像的出租的系统.该系统用于音像出租或销售店,方便出租、还回、查找等操作,可以自定义音像,方便新增新音像、管理音像、管理顾客.提供完善的出租和还回操作,完全独立的数据库系统,数据管理提供:
音像管理,顾客维护。
数据查找提供:
租借情况,音像查找,顾客查找。
系统界面美观,操作简单。
虽然还有不足,但基本的功能都能完成,能满足音像店主的需要.
第一章开发音像店管理系统的意义及需求分析
在今天的这个信息时代,利用计算机来管理一些小型的商店,已经成为一种趋势。
那么音像制品的出租管理能不能也利用计算机来完成呢?
下面就是我的分析.
1.1开发音像店管理系统的意义
音像制品出租的管理是一个常见的问题,其特点是数据之间的关系简单,但数据量较大。
大多数管理者管理音像都是采用人工的方式。
随着音像的增多,经营业务也不断增加,经营者不得不雇越来越多的店员来管理这些事务,这样作的代价毫无疑问是成本的增加,这也是经营者最不愿意看到的情况.若用人工进行管理,不便于数据的汇总统计及各种数据分析,给管理员和顾客都带来麻烦,影响商店的效益;而如果采用计算机管理,运用已编制好的程序,对影碟信息、顾客信息、职员信息采取信息化管理,将是非常的方便和快捷.
运用小型音像店管理系统,可以很方便的查找顾客的姓名、编号、借碟信息,影碟的增加、删除、更新、查找等功能,既节省人力,又节省开支,管理上又操作方便;同时避免音像店音像制品管理的随意性,使得管理工作规范化、系统化、程序化,提高信息处理的速度和准确性,对于减轻工作人员的劳动量、提高劳动热情和服务质量,具有重要的现实意义.
1.2需求分析
小型音像店管理系统中,基本需求即影碟维护模块、顾客维护模块和出租、返还影碟功能,其基本功能为:
1.可以新增、删除、更新、查找影碟信息;
2.可以新增、删除、更新、查找用户信息;创建音像商店拥有的影碟清单;
3.出租、返还影碟;
4.显示某张特定影碟的具体信息;
5.检查某张影碟是否在商店中;
6.维护顾客的数据信息;
7.检查某位顾客的借碟情况;
8.显示所有影碟信息;
9.显示所有顾客信息;
第二章 可行性分析报告与项目概要
可行性分析报告是决策前必不可少的关键环节,为决策提供科学依据,并作为进一步开展工作的基础.音像店管理系统的开发同样需要一个明确的可行性分析报告来指导,才能针对需求进行开发。
2.1。
可行性分析
随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。
信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。
同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。
音像店的管理是一个常见的问题,其特点是数据之间的关系简单,但数据量较大。
传统的人工进行管理,存在低效、易出错等缺点,不便于数据的汇总统计及各种数据分析。
之后又出现了EXCEL作为数据库的管理系统,但其缺点很快就显示出来,那就是数据管理的不便与灵活性较差。
开发音像店管理系统就是为了让管理者减少重复工作,提高信息管理的效率和准确度.
随着计算机的普及以及相关技术的发展,开发一个音像店管理系统的时机已经成熟。
2。
2。
项目概述
系统主要完成对音像店管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
并最终实现一个能够满足音像店管理的信息系统。
此系统的开发具有很强的实用性。
主要包括以下功能:
1、影碟维护
主要是对影碟的基本操作,如新增,修改,删除,查找。
2、顾客维护
对顾客操作有新增,修改,删除,查找.
3、管理员管理
由管理员输入帐号密码进行对系统的使用,进行音像管理、顾客维护以及影碟的出租与归还工作。
第三章 音像店管理系统的系统分析
对于一个项目的开发来说,首先应该对其系统进行一个清楚的分析。
根据先前进行的需求分析我们可以知道本系统需要具有的功能,现在就应该进行系统分析,将这些功能进一步落实。
3。
1系统流程分析
根据需求分析,我们可以知道这个音像店管理系统所需的功能是:
影碟的编号、入库、更改、删除以及查询功能;顾客的编号、信息入库、更改、删除和查询功能;影碟的出租、归还功能中需要将相应的顾客信息和影碟信息相连接,由此标记出具体的那张影碟是否在架、那位顾客手中借有拿张影碟等功能。
这些都是音像店最基本的功能需求,我做的音像店管理系统应该至少包含以上这些功能。
下面将以上功能分类:
1.影碟维护:
新增(包括编号及影碟名)、更改、删除、查询等(影碟是否在架,信息在此查询);
2.顾客维护:
新增(包括编号及顾客姓名)、更改、删除、查询等(顾客借碟情况,信息在此查询);
3.租碟:
输入顾客编号、输入影碟编号,如果该影碟在架,则借碟成功,同时将该碟记为已租,将该碟编号记在该顾客备注栏里;该影碟已租,借碟失败.
4.还碟:
输入顾客编号、输入影碟编号,还碟成功,同时将该碟记为在架,并清除该顾客的备注记录。
3。
2系统流程图
对于有逻辑关系的系统来说,图是最能变现其间各元素之间关系的,有了明确的系统分析,才能指导我们的工作。
对小型管理系统来说,要画出一个清晰明了的系统分析图并不困难,下面,我就根据需求分析画出了一份流程图.
图3。
2。
1音像店管理系统流程分析图
第四章 音像店管理系统模块设计
通常进行对一个系统进行开发时,为了对其更精确地把握,要将其分成几个模块,先进行模块设计,将一个较大的工程分成几个子工程.这样将复杂的问题简单化,能有助于问题的处理以及合理的分工.
4。
1系统主模块设计
为了增强系统的安全性,我特地新增了管理帐号登陆模块,用户有三次机会输入帐号和密码,若三次均输入错误,则退出系统,这样就保证了系统不被处管理员外的其他人随意改动.代码如下:
voidmain()
{
constu=123,p=321;
inti=0;
intusername,password;
cout〈〈"\n\n\n\n\t*********************************************\n”;
cout<〈”\n\n\n\t\t\t欢迎使用音像店管理系统”〈cout〈〈”\n\n\n\t**********************************************\n";
begin:
cout<〈”\n\t\t\t请输入管理帐号:
”;
cin〉>username;
cout〈<”\n\t\t\t请输入系统密码:
”;
cin>>password;
if(username==u&&password==p)
{
cout〈〈”\n\n\n恭喜你,登陆成功!
"〈〈endl;
zhuye();
}
else
{
if(++i<3)
{
cout<〈”\n帐号或密码输入错误,请重新输入."〈〈endl;
gotobegin;
}
else
{
cout〈〈”\n已三次输入错误,系统自动退出\n”<〈endl;
}
}
return;
}
系统正确登录后,进入到系统主界面,首页要美观,布局要合理、有秩序,不但要包含系统的主要模块名称,还要使用方便,基于以上几点,在首页中主要以菜单的形式表现系统的内容和功能,用菜单给命令分组,使用户能够更方便、更直观的访问这些命令。
在主界面中,主要包括了租碟、还碟、影碟维护、顾客维护等.主界面上,用户可以直接进行出租和归还音像的操作。
租碟、还碟两个模块基本相似,日常操作时,输入顾客姓名,租碟、还碟,系统会提示是否操作成功。
4。
2影碟维护模块设计
影碟维护模块负责完成新影碟的入库操作、影碟信息查找、影碟信息更改和删除影碟信息的功能。
下面进入新增影碟子模块.
新影碟的信息由管理员录入,然后将这些信息存入影碟信息库中.管理员可以提供影碟编号并对影碟进行查找,并根据查找到的记录,进行信息维护或者信息删除.每个操作都有反馈信息,以显示影碟维护的相关操作是否成功完成。
4.2。
1、影碟租借管理
当音像店新到一批影碟时,需要更改影碟维护数据库,可以在影碟维护中选择新增影碟,根据提示输入影碟编号和碟名,系统自动提示新增成功,返回影碟维护模块.
4。
2.2、更改影碟
更改影碟同样在影碟维护中,更改时需要先输入原来影碟的编号及碟名,然后再进行更改,更改后,会提示更改是否成功。
4。
2。
3、删除影碟
删除影碟模块也要输入影碟编号及碟名,删除后该影碟信息会自动在后台数据库中影碟资料里删除,系统自动提示删除操作是否成功。
需要注意的是有一个全部删除指令,是为了方便管理员对影碟进行管理,但为了防止管理员不小心点错,我又在全删是新增了一个提示信息,确定是否要全部删除,选择返回就不会进行全删操作。
4.2。
4、查找影碟
查找影碟完成了查找影碟功能.可以凭影碟的编号对影碟进行查找。
该功能和更改影碟和删除影碟模块介绍常相似,在此不再赘述。
查找影碟下面还有一个显示功能,可以将所有影碟的信息都显示出来,编号、碟名以及是否在架等等。
4。
2。
5管理员操作
管理员是使用本系统的主角,系统登录时需要管理员正确输入系统编号和密码,如三次输入错误则系统自动退出,不能进行相关操作。
4.2.6顾客维护
顾客维护模块和影碟维护模块一样,都是包含新增、更改、删除、查找等四个模块。
顾客的信息由管理员录入,例如顾客编号、姓名,然后将这些信息存入顾客信息库中。
管理员可以根据关键词并对顾客进行查找,并根据查找到的记录,进行信息维护或者信息删除。
每个操作都有反馈信息,以显示影碟维护的相关操作是否成功完成。
以下将介绍新增顾客模块,当音像店有新顾客加入时,需要在系统中新增新顾客信息,得在此界面新增“顾客编号"、“顾客姓名"等信息,系统会自动新增到后台数据库的顾客表中。
并且提示新增操作是否成功.更改,删除,查找等三个子模块和上述新增顾客模块类似。
4.2.7信息记录
对影碟信息和顾客信息的记录,我使用了两个file打开文件,避免了重复劳动,保证了管理效率。
打开文件是我以前没有接触过的内容,在此学到了它的用法:
如果open函数只有文件名一个参数则是以一个普通文件进行打开:
file1。
open(”c:
config。
sys");〈=〉file1。
open("c:
config。
sys”,ios:
:
in|ios:
:
out,0);另外,fstream还有和open()一样的构造函数,在定义的时候就可以打开文件了:
fstreamfile1(”c:
config。
sys");fstream有两个子类:
ifstream(inputfilestream)和ofstream(outputfilestream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。
ifstreamfile2("c:
pdos。
def”);//以输入方式打开文件
ofstreamfile3("c:
x。
123”);//以输出方式打开文件
所以,在实际应用中,根据需要的不同,选择不同的类来定义:
如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。
包含:
需要在文件中包含#include〈fstream> 后面可以加usingnamespacestd;程序里就可以直接用fstream类及其函数了。
或者在具体使用时用std:
:
来标识,如:
std:
:
fstreamfile1;
第五章类的设计
类是C++的精髓,是其优越于C语言的最显著特点,方便且清晰明了,面向对象,简单易懂。
因此,类的设计可谓是C++程序设计的重中之重。
5.1类的具体设计清单
根据需求分析,我总结出了这个系统需要的类,主要是以下一些:
影碟类(Video)
顾客类(Customer)
每个类还需要相应的有一个数据库,用来记录以及存储各种信息。
以上类具有以下数据成员:
Video//影碟类
{
private:
no//影碟编号
name//影碟名
onshelf//是否在架
public:
setname//设置影碟名
delvideo//删除影碟
addvideo//增加影碟
borrowvideo//租碟操作
retvideo//还碟操作
disp//输出影碟
};
Customer//顾客类
{
private:
no//顾客编号
name//顾客姓名
borvideo//所租影碟
public:
setname//设置姓名
delvideo//设置删除标记
addcustomer//增加顾客
borrowvideo//租碟
retvideo//还碟
disp//输出顾客信息
};
5.2UML类图
图5.2。
1音像店管理系统UML类图
5。
3类的部分代码
在整个管理系统设计中,根据需求分析,一共有两类:
顾客类,影碟类。
顾客类中,设置有姓名、编号、增加、删除等操作,部分代码如下:
classCustomer
{
private:
inttag;//删除标记
intno;//顾客编号
charname[100];//顾客姓名
intborvideo[Maxbor];//所租影碟
public:
Customer(){}
char*getname(){returnname;}//获取姓名
intgettag(){returntag;}//获取删除标记
intgetno(){returnno;}//获取顾客编号
voidsetname(charna[])//设置姓名
{
strcpy(name,na);
}
voiddelvideo(){tag=1;}//设置删除标记
voidaddcustomer(intn,char*na)//增加顾客
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;iborvideo[i]=0;
}
voidborrowvideo(intvideoid)//租碟
{
for(inti=0;i〈Maxbor;i++)
{
if(borvideo[i]==0)
{
borvideo[i]=videoid;
return;
}
}
}
intretvideo(intvideoid)//还碟
{
for(inti=0;i〈Maxbor;i++)
{
if(borvideo[i]==videoid)
{
borvideo[i]=0;
return1;
}
}
return0;
}
voiddisp()//读出顾客信息
{
cout〈〈setw(5)<〈no〈〈setw(10)〈[”;
for(inti=0;iif(borvideo[i]!
=0)
cout<〈borvideo[i]〈<”|";
cout〈〈”]”〈〈endl;
}
};
影碟类中,设置有碟名、编号、增加、删除、更新的数据,部分代码如下:
classVideo
{
private:
inttag;//删除标记
intno;//影碟编号
charname[100];//影碟名
intonshelf;//是否在架
public:
Video(){}
char*getname(){returnname;}//获取姓名
intgettag(){returntag;}//获取删除标记
intgetno(){returnno;}//获取影碟编号
voidsetname(charna[])//设置影碟名
{
strcpy(name,na);
}
voiddelvideo(){tag=1;}//删除影碟
voidaddvideo(intn,char*na)//增加影碟
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
intborrowvideo()//租碟操作
{
if(onshelf==1)
{
onshelf=0;
return1;
}
return0;
}
voidretvideo()//还碟操作
{
onshelf=1;
}
voiddisp()//输出影碟
{
cout<〈setw(6)〈〈"编号”〈〈setw(10)〈〈”碟名”<〈setw(10)<<”备注”〈〈endl;
cout<〈〈(onshelf==1?
”在架”:
"已租”)〈}
};
在整个类的代码实现中,遇到了很多问题,经过同学们之间的讨论和各种资料的查阅,最终完成了系统的组成和调试,并实现了各个部分的功能。
第六章 系统的实现
经过两个多星期的研究,我独立完成了我的小型管理系统综合实训,我的音像店管理系统也能够正常使用了.下面就一起来看看成果吧!
6。
1系统开发环境:
VisualC++6。
0
MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统.它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称.这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著.
VisualC++6.0集成了MFC6.0,于1998发行.发行至今一直被广泛地用于大大小小的项目开发
6.2系统测试:
测试能帮我发现一些编译器查找不出来的非语法错误,经过详细的系统测试与修改,我的音像店管理系统已经能正常工作了.下面就拿几张最能体现系统功能的截图来说明一下。
图6。
2。
1
在顾客维护中选择“显示",就能列出所有顾客的编号、姓名、借碟信息等,如图6。
2。
1所示,1号顾客借了2号碟,顾客2借了3号碟.
图6。
2。
2
在影碟维护中选择显示,即能列出所有影碟的编号、碟名以及在架情况等信息。
如图6。
2.2所示,1号碟在架,2号和3号碟已租,由图6。
2。
1可知2号碟在1号顾客手中,3号碟在2号顾客手中。
图6。
2。
3
在主界面选择租碟,可以进行租碟操作。
如图6。
2.3所示,1号顾客想租3号碟,但是3号碟已租,所以借碟失败。
结束语:
三周的实训很快就过去了,这三周让我收获了很多,找到了很多我在C++学习上的薄弱环节,增加了我的知识,开阔了我的眼界。
经过三周的小型音像店管理系统的实训,让我们对面向对象设计的方法有了一定的认识:
从最开始的需求分析,到类图说明、类的具体设计清单,再到类的实现代码、测试代码,最后再测试代码及完善代码。
通过应用c++面向对象的封装、继承和多态技术,数据存储技术等,通过同学之间的相互探讨,最后完成了实训任务,让我充分体会到了C++面向对象的优点,也增加了我们的实训经验.同时培养了我系统、完整、具体的完成一个小型管理系统项目所需的工作能力,通过信息收集处理、方案决策、制定行动计划、实施计划任务和自我检查评价的能力训练,锻炼了我在今后的职场应有的团队工作能力。
在学习的过程中,我认真负责,充分发挥自己的主观能动性、创造性来解决技术与工作中的问题,培养了我的责任意识与合作意识,在答辩中了解到了其他同学各种各样的程序,学到了很多解决问题的方法,让我体会到了,学无止境。
这学期虽然马上就要结束了,我们的C++课也即将告一段落,但是这并不代表我就能放弃对C++的学习。
这是一门博大精深的学科,需要我不断的去研究、去探索、去创新.
主要参考文献
1、《C++语言程序设计(第3版)》,郑莉等编著,清华大学出版社,2003年
2、《C++成粗设计简明教程》,王晓东等编著,中国水利水电出版社,2006年
3、《C++应用与开发案例教程》,徐立等编著,清华大学出版社,2005年
4、《C++程序设计语言》(特别版)Stroustrup,B著,裘宗燕译,机械工业出版社2002年
5、《C++PrimerPlus(第五版)》StephenPrata著,人民邮电出版社,2005年
6、XX文库