出版物管理系统设计说明书.docx
- 文档编号:4051066
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:21
- 大小:308.34KB
出版物管理系统设计说明书.docx
《出版物管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《出版物管理系统设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。
出版物管理系统设计说明书
摘要
利用C++的基础知识,用面向对象程序设计的基本思路和方法构建的出版物管理系统,以菜单方式工作,使用数组保存出版物的信息,使用循环来完成,以接受用户的循环操作,只要新增了出版物的相关信息,就可以进行查找、删除等功能。
关键词:
C++,面向对象程序设计,数组
前言
一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,作为计算机应用的一部分,使用计算机中的C++这一编程语言对出版物信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事劳资管理的效率,降低企业的费用支出,这些可以充分突出企业的科学化、正规化管理,同时也是世界接轨的重要条件。
一.系统分析……………………………………………………………4
二.各功能结构图………………………………………………………4
三.部分类及成员函数…………………………………………………7
四.系统测试……………………………………………………………9
五.参考文献……………………………………………………………11
六.设计总结……………………………………………………………11
一.系统分析
利用面向对象的方法以及C++的编程思想来完成系统的设计,要求建立清晰的类层次,应当设计“书,CD,磁带”三个类,每个类含有名字,作者或演唱者,出版社或唱片社,价格,出版日期等相关信息。
由于这三个类又相关的相同内容,故可设计一个含有公共信息的父类。
以菜单方式工作,交互界面友好;设定数组,使用数组保存出版物的信息;建立循环机制,使用循环来完成,以接受用户的循环操作;同时对于不合要求的输入,给出提示,允许再重新输入;设定三个实体结构,允许用户对选择的相应的出版物进行添加、删除,查找等功能。
二.各功能结构图
该系统要求实现对书籍,CD和磁带的储存,查询和删除等功能故要求定义三个类。
类层次:
首先定义一个共有基类basic,包括名字name,作者或演唱者author,出版社或唱片社company,出版日期data,价格prise,以它为父类定义三个子类分别为bookdate,CDdate,tapedate。
实体:
系统及其功能实体为
新增(图):
查询:
图(四)查询功能
删除:
三.部分类及成员函数
1.定义父类和书籍、CD、磁带三个子类:
classbasic{//定义父类
public:
charname[20];
charauthor[10];
charcompany[20];
intprice;
intdate;
voidinput();
voidshow();
}
};
classbookdate:
publicbasic{//定义一个书类
public:
bookdate()
{
strcpy(name,"\0");
strcpy(author,"\0");
strcpy(company,"\0");
price=0;
date=0;
}
voidinput()
{basic:
:
input();}
voidshow()
{basic:
:
show();}
};
classCDdate:
publicbasic{//定义一个CD类
public:
voidinput()
{basic:
:
input();}
};
classtapedate:
publicbasic{//定义一个磁带类
public:
voidinput()
{basic:
:
input();}
};
2.部分成员函数的实现:
voidinput()//录入函数
{
cout<<"请输入名字:
"< cin>>name; cout<<"请输入作者或演唱者: "< cin>>author; cout<<"请输入出版社或唱片: "< cin>>company; cout<<"请输入价格: "< cin>>price; cout<<"请输入出版日期: "< cin>>date; } voidshow()//定义显示信息函数 { cout<<"名字"<<"作者或演唱者"<<"出版社或唱片"<<"价格"'<<"出版日期"< cout< } 四.系统测试 1.系统主菜单显示界面 2.信息操作显示界面 3.信息浏览界面 4.信息查找显示界面 五.参考文献 [1]陈维兴,林小茶.c++面向对象程序设计教程.北京: 清华大学出版社,1996.2004. [2]张国峰.C++程序设计实用教程.北京: 清华大学出版社,1996. [3]张松梅.C++语言教程.电子科技大学出版社,1993. [4]阎龙.C程序员的C++指南.北京航空航天大学出版社,1992. [5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司. 六.设计总结 通过此次VC++编程课程设计,我了解了VisualC++6的安装和基本使用方法,进一步掌握了运用C++及面向对象设计思想方法。 出版物管理系统的设计基本实现了老师所要求的功能,同时在设计过程中,对于遇到的各种实践问题进行了详细的分析,学到了很多知识,但还有许多便捷功能未能实现,因此还需要更多的设计来完善。 界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。 相比之前C语言和数据结构的课程设计,此次课程设计让自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。 附录: 源代码: #include #include #include #include"stdlib.h" classbasic{//定义父类 public: charname[20]; charauthor[10]; charcompany[20]; intprice; intdate; voidinput()//录入函数 { cout<<"请输入名字: "< cin>>name; cout<<"请输入作者或演唱者: "< cin>>author; cout<<"请输入出版社或唱片: "< cin>>company; cout<<"请输入价格: "< cin>>price; cout<<"请输入出版日期: "< cin>>date; } voidshow() { cout<<'\t'<<"名字"<<'\t'<<"作者或演唱者"<<'\t'<<"出版社或唱片"<<'\t'<<"价格"<<'\t'<<"出版日期"< cout<<'\t'< } }; classbookdate: publicbasic{//定义一个书类 public: bookdate() { strcpy(name,"\0"); strcpy(author,"\0"); strcpy(company,"\0"); price=NULL; date=NULL; } voidinput() {basic: : input();} voidshow() {basic: : show();} }; classCDdate: publicbasic{//定义一个CD类 public: CDdate() { strcpy(name,"\0"); strcpy(author,"\0"); strcpy(company,"\0"); price=NULL; date=NULL; } voidinput() {basic: : input();} }; classtapedate: publicbasic{//定义一个磁带类 public: tapedate() { strcpy(name,"\0"); strcpy(author,"\0"); strcpy(company,"\0"); price=NULL; date=NULL; } voidinput() {basic: : input();} }; intmain() { bookdatebook[100];//定义书籍数组 CDdateCD[100];//定义CD数组 tapedatetape[100];//定义磁带数组 intface(); intscreem(); if(face()==1)//书籍 { intx,i=0,n=0; charname1; intscreem(); if(screem()! =1&&screem()! =2&&screem()! =3&&screem()! =4&&screem()! =0) cout<<"您输入的命令错误"< if(screem()==1) { system("cls"); cout<<'\t'<<"请输入书籍信息: "< do { book[i].input(); cout<<"是否再次输入数据【0.否,1.是】: "< cin>>x; i++; n++; }while(x==1); } EXEC: intscreem(); if(screem()==2)//浏览信息 { into; system("cls"); cout<<'\t'<<'\t'<<"***********书籍信息浏览**********"< for(intm=0;m book[m].show(); cout<<"返回上一层请输入1"< cin>>o; gotoEXEC; } else { if(screem()==3)//删除信息 { intq; system("cls"); charname1[20]; cout<<"请输入要删除的书籍名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,book[i].name)==0) {for(intl=i;l { strcpy(book[l].name,book[l+1].name); strcpy(book[l].author,book[l+1].author); strcpy(book[l].company,book[l+1].company); book[l].price=book[l+1].price; book[l].date=book[l+1].date; } p=0; } if(p==1) cout<<"查找不到您输入的书名"< cout<<"返回上一层请输入1"< cin>>q; gotoEXEC; } else//查找信息 { intq; system("cls"); charname1[20]; cout<<"请输入要查找的书籍名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,book[i].name)==0) {book[i].show(); p=0; } if(p==1) cout<<"查找不到您输入的书名"< cout<<"返回上一层请输入1"< cin>>q; gotoEXEC; } } } else {if(face()==2)//CD { intx,i=0,n=0; intscreem(); if(screem()==1) { system("cls"); cout<<'\t'<<"请输入CD信息: "< do { cout< CD[i].input(); cout<<"是否再次输入数据【0.否,1.是】: "< cin>>x; i++; n++; }while(x==1); system("cls"); } EXEC1: intscreem(); if(screem()==2)//CD信息浏览 { inte; system("cls"); cout<<'\t'<<'\t'<<"***********CD信息浏览**********"< for(intm=0;m CD[m].show(); cout<<"返回上一层请输入1"< cin>>e; gotoEXEC1; } else { if(screem()==3)//CD信息删除 { intq; system("cls"); charname1[20]; cout<<"请输入要删除的CD名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,CD[i].name)==0) {for(intl=i;l { strcpy(CD[l].name,CD[l+1].name); strcpy(CD[l].author,CD[l+1].author); strcpy(CD[l].company,CD[l+1].company); CD[l].price=CD[l+1].price; CD[l].date=CD[l+1].date; } p=0; } if(p==1) cout<<"查找不到您输入的CD名"< cout<<"返回上一层请输入1"< cin>>q; gotoEXEC1; } else//CD信息查找 {intk; system("cls"); charname1[20]; cout<<"请输入要查找的CD名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,CD[i].name)==0) {CD[i].show(); p=0; } if(p==1) cout<<"查找不到您输入的CD名"< cout<<"返回上一层请输入1"< cin>>k; gotoEXEC1; } } } else//磁带 { intx,i=0,n=0; intscreem(); if(screem()==1) { system("cls"); cout<<'\t'<<"请输入磁带信息: "< do { cout< tape[i].input(); cout<<"是否再次输入数据【0.否,1.是】: "< cin>>x; i++; n++; }while(x==1); system("cls"); } EXEC2: intscreem(); if(screem()==2) { intu; system("cls"); cout<<'\t'<<'\t'<<"***********磁带信息浏览**********"< for(intm=0;m tape[m].show(); cout<<"返回上一层请输入1"< cin>>u; gotoEXEC2; } else { if(screem()==3)//磁带信息删除 { intq; system("cls"); charname1[20]; cout<<"请输入要删除的磁带名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,tape[i].name)==0) {for(intl=i;l { strcpy(tape[l].name,tape[l+1].name); strcpy(tape[l].author,tape[l+1].author); strcpy(tape[l].company,tape[l+1].company); tape[l].price=tape[l+1].price; tape[l].date=tape[l+1].date; } p=0; } if(p==1) cout<<"查找不到您输入的磁带名"< cout<<"返回上一层请输入1"< cin>>q; gotoEXEC2; } else//磁带信息查找 { intv; system("cls"); charname1[20]; cout<<"请输入要查找的磁带名字: "< cin>>name1; inti,p=1; for(i=0;i if(strcmp(name1,tape[i].name)==0) {tape[i].show(); p=0; } if(p==1) cout<<"查找不到您输入的磁带"< cout<<"返回上一层请输入1"< cin>>v; gotoEXEC2; } } } } return0; } intface() { intb; cout<<'\t'<<"*****************出版物管理系统****************"< cout< cout<<'\t'<<'\t'<<"1.书籍出版物信息--------------1"< cout<<'\t'<<'\t'<<"2.CD出版物信息--------------2"< cout<<'\t'<<'\t'<<"3.磁带出版物信息--------------3"< cout<<'\t'<<'\t'<<"4.退出出版物系统--------------0"< cout<<"请输入选择命令"< cin>>b; system("cls"); if(b! =1&&b! =2&&b! =3) { do{ cout<<"输入错误,请再次输入: "< cin>>b; }while(b==1||b==2||b==3); } returnb; } intscreem() { inta; system("cls"); cout<<'\t'<<"*****************出版物管理系统****************"< cout< cout<<'\t'<<'\t'<<"1.出版物信息添加--------------1"< cout<<'\t'<<'\t'<<"2.出版物信息浏览--------------2"< cout<<'\t'<<'\t'<<"3.出版物信息删除--------------3"< cout<<'\t'<<'\t'<<"4.出版物信息查找--------------4"< cout<<"请输入选择命令"< cin>>a; returna; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出版物 管理 系统 设计 说明书