收藏 分销(赏)

c专业课程设计图书销售标准管理系统.doc

上传人:人****来 文档编号:2727302 上传时间:2024-06-05 格式:DOC 页数:35 大小:585.54KB
下载 相关 举报
c专业课程设计图书销售标准管理系统.doc_第1页
第1页 / 共35页
c专业课程设计图书销售标准管理系统.doc_第2页
第2页 / 共35页
c专业课程设计图书销售标准管理系统.doc_第3页
第3页 / 共35页
c专业课程设计图书销售标准管理系统.doc_第4页
第4页 / 共35页
c专业课程设计图书销售标准管理系统.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、目录一、 设计目标2二、设计内容2三、设计要求2四、设计过程31、面向对象分析32、数据结构分析73、 系统实施步骤8五、 程序运行结果11六、 设计总结17参考文件17附录18图书销售管理系统一、 设计目标本图书销售管理系统,关键用于小型书店,进行简单图书管理,为了能够愈加好管理书店销售情况和库存情况书店销售管理系统关键功效有:(1)图书入库管理:维护入库图书信息,图书编号、书名、价格等,自动计算库存。(2)图书查询统计:能够依据图书分类、出版社、书名、作者等条件查询图书具体信息。(3)销售管理:销售过图书全部统计在销售列表中,方便统计收入。图书销售后,要统计图书库存,按天天统计销售额、每个

2、月或季度生成报表,并生成畅销书单。二、设计内容(1) 图书信息包含书名、书号、作者、出版社、单价、库存数量、进价、售价、利润;(2)用户登录界面设计(3)信息维护:包含子模块有增加图书信息、删除图书信息、修改图书信息(4 ) 查询功效:可按书名查询、作者查询、或出版社查询(5) 排序功效:能实现按图书销售利润进行排序功三、设计要求(1) 只能使用C+语言,源程序要有合适注释,使程序轻易阅读(2) 最少采取文本菜单界面(假如能采取图形菜单界面愈加好)(3) 学生可自动增加新功效模块(视情况可另外加分)(4) 写出课程设计汇报,具体要求见相关说明文档四、设计过程1、面向对象分析 (1)对象模型设计

3、(2)各个类设计系统中说明了4个类,每个类具体设计以下:1Book类class book /book基类protected:string name;/名称float price; /价格int num; /编号int kucun,xcl,salel; /库存,现存量,销售量public:int getnum()return num; /编号接口函数string getname()/名称接口函数return name;float getprice()return price; /价格接口函数int getkucun()return kucun; /库存量接口函数int getxcl()retur

4、n xcl; /现存量接口函数int getsalel()return salel; /销售量接口函数virtual void input()=0; /输入虚函数virtual void output()=0; /输出虚函数说明:Book类是一个基类,用于定义图书基础信息。比如:其中string getname()是一个接口函数,能取得图书姓名。2Yule(娱乐类)class yule:public book/娱乐派生类public:void input()/输入cinname;cinnum; cinprice;cinkucun;cinsalel;cinxcl;void output()/输出

5、coutYule:endl;coutname num price kucun salel xclendl;void compute()/计算售出剩下函数int counts;cout输入售出图书本数counts;cout售后剩下:name;cinnum; cinprice;cinkucun;cinsalel;cinxcl;void output()coutLearn:endl;coutname num price kucun salel xclendl;void compute1()int counts;cout输入售出图书本数counts;cout售后剩下:endl; kucun=kucun

6、-counts;salel=salel+counts; xcl=xcl-counts;study类用于定义学习类图书信息,它是Book类公有派生类。其中:Compute1()是一个计算售出图书数量和剩下函数,input()和 output()函数是对图书信息输入和输出而且她们是在基类中定义纯虚函数。operate(功效类)typedef vector STRVEC;/定义stl模版容器typedef vector STRVEC1;class operate /定义功效类 STRVEC strvec;STRVEC1 strvec1;public:void search_yulenum(int m

7、)/娱乐类图书按编号查找void search_yulename(string s)/查找娱乐类图书按名称 void del_yulenum(int n)/删除娱乐类图书按编号void del_yulename(string p)/按图书名称删除void add_study()/添加学习类图书基础信息void add_yule()/添加娱乐类图书基础信息void search_studynum(int m)/查找学习类图书编号void search_studyname(string s)/查找学习类图书名称void xiugai_yule(int m)/修改娱乐类图书剩下量void xiuga

8、i_study(int m)/修改学习类图书剩下量void del_studynum(int n)/删除售完图书void del_studyname(string p) /按名称删除图书void show_yule()/显示娱乐类图书void show_study()/显示学习类图书void saleamounts()/计算销售额void changxiao1()/娱乐类图书畅销void changxiao()/学习类图书畅销void save()/娱乐类入库单void save1()/学习类入库单void load()/读取娱乐类文件void load1()/读取学习类文件void Menu

9、()/应用菜单说明:operate类用来实现图书管理系统功效,它是用来查找、添加、删除图书信息基础点信息,对系统进行维护,生成入库单、畅销书和一天销售额。2、数据结构分析书店销售管理系统数据结构:英文名称汉字名称Book 图书类Yule 娱乐类图书Study 学习类图书Strvec 娱乐类STL模版Strvec1 学习类STL模版Operate 运算类search_yulenum 娱乐类编号查找search_yulename 娱乐类书名查找del_yulenum 娱乐类编号删除del_yulename 娱乐类书名删除add_study 添加学习类图书add_yule 添加娱乐类图书search

10、_studynum 学习类编号查询search_studyname 学习类书名查询del_studynum 学习类编号删除del_studyname 学习类书名删除show_yule 显示娱乐类信息show_study 显示学习类信息save 保留娱乐类文件load 显示娱乐类文件Menu 菜单main 主函数Save1 保留学习类文件 Load1 显示娱乐类文件saleamounts 销售量计算xiugai_yule 娱乐类图书修改xiugai_study 学习类图书修改changxiao 娱乐类畅销图书Changxiao1 学习类畅销图书3、 系统实施步骤(1)主页面步骤图图(1) 图(1

11、)主页面步骤图(2)用户登陆简述:用户在图书销售系统里用户登陆并查询图书内容。基础步骤:1 用户:在图书销售系统画面,选择用户登陆,显示图书基础信息,按提醒内容进行查找2 查询:用户在图书销售系统中能查询图书信息;3 显示:用户能在用户界面能看到最近图书;4 结束。步骤图图(2)图(2)用户登录步骤图(3)收银员登陆简述:收银员在图书销售系统里能看到图书信息并能修改出售图书数量。基础步骤:1 收银员:在图书销售系统画面,选择收银员登陆,输入密码,进入收银员界面。2 修改:收银员在图书销售系统中能修改图书售出情况;3 显示:收银员能在用户界面能看到最近录入图书;4 结束。步骤图图(3)图(3)收

12、银员登录步骤图管理员登陆简述:管理员在图书销售系统填加、删除和查找图书信息,并能显示销售额。基础步骤:1 管理员:在图书销售系统画面,选择管理员登陆,输入密码,进入收银员界面。2 添加: 管理员在图书销售系统中能填加图书基础情况;3 删除: 管理员在图书销售系统中能删除图书基础信息;4 查找: 管理员在图书销售系统中能查找图书基础信息。5 销售额:管理员在图书销售系统中能看到销售额输出6 畅销书:管理员在图书销售系统中能查询畅销书7 结束步骤图图(4)图(4)管理员登录步骤图五、 程序运行结果管理员登录在书店开始售书之前先由管理员添加书籍内容,在管理员将需要添加书籍添加完成后用户还有收银员才能

13、实施自己对应功效。选择管理员功效会进入登陆界面;密码输入正确方能进入使用,错误则会返回输入密码界面,直到密码正确,进入使用界面。按1添加娱乐类图书及相关内容添加成功后好能够继续按1添加娱乐类书籍相关内容,也可按5继续添加学习类图书添加完成后可返回主菜单(11选项)收银员登录在主界面按2可进入收银员登录界面,同管理员一样,收银员也一样需要输入密码,密码对方可进入修改界面,在这里收银员能够对图书销售情况进行修改,方便以后对图书销售情况便于管理 输入图书编号(娱乐类/学习类)而且输入将要售出本数,系统将会显示图书(娱乐类/学习类)售后情况用户登录(张海东负责)在主界面选择1能够进入用户使用界面,在这

14、里用户能够看到所以书籍(娱乐类和学习类),并能够根据编号或图书名称查询对应图书具体内容到此用户使用功效结束。当然管理员也有对图书查询功效,对图书销售情况时时了解娱乐类图书查询:学习类图书查询: 销售额显示 在一段时间后书籍可能售完,这么管理员需要将这类书籍删除,以免误导用户,在图书删除后,用户在查询系统中将不会再查询到相关内容 娱乐类图书删除学习类图书删除 管理员在实施完全部步骤后能够选择回到住界面,也能够选择退出系统回到主界面选择:退出系统选择:六、 设计总结(1)完成本课题花了很长时间,真正体会了作为一个程序员辛劳,而且必需含有细心、耐心品质,想要完成一项出色项目,必需精益求精,反复操作和

15、实践。(2)在做了本课程设计以后,我对C+了解更深了,很多知识得到了巩固,部分不懂知识也逐步明了!这其中关键是对指针使用收获很多,在指针使用过程中,对指针指向和对各函数中指针赋值会影响到整个程序运行;还有就是对文件输入输出流了解得更透彻了,知道了打开一个文件后必需还要对其关闭,不然程序无法运行,对多种文件输入输出控制符全部能基础融会贯通。 (3)即使本课题已完成,可是还是存在部分问题,比如说界面还不够好看,为了用户用得舒适,界面是很关键。参考文件郑莉等编著.C+语言程序设计.清华大学出版社 郑莉等编著.C+语言程序设计习题和试验指导.清华大学出版社 张基温编著.C+程序设计基础例题和习题.高等

16、教育出版社 黄明等编著.面向对象程序设计习题详解.机械工业出版社 附录 源代码:#include #include #include #include using namespace std; const int Maxr=100;const int Maxb=100;const int Maxbor=5;class Reader private: int tag; int no; char name10;int borbookMaxbor; public: Reader() char *getname() return name; int gettag() return tag; int g

17、etno() return no; void setname(char na) strcpy(name,na); void delbook() tag=1; void addreader(int n,char *na) tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid) for(int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid) for(int

18、 i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp() cout setw(5) no setw(10) name借书编号:; for(int i=0;iMaxbor;i+) if(borbooki!=0) cout borbooki |; cout endl; ; class RDatabase private: int top; Reader readMaxr;public: RDatabase() Reader s; top=-1; fstream file(reader.txt,i

19、os:in); while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); void clear() top=-1; int addreader(int n,char *na) Reader *p=query(n); if (p=NULL) top+; readtop.addreader(n,na); return 1; return 0; Reader *query(int readerid) for (int i=0;i=top;i+) if (readi.getno()=

20、readerid & readi.gettag()=0) return &readi; return NULL; void disp() for (int i=0;i=top;i+) readi.disp(); void readerdata();RDatabase() fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(readi); file.close(); ; void RDatabase:readerdata() c

21、har choice; char rname20; int readerid; Reader *r; while (choice!=0) cout *欢迎使用图书销售管理系统终极版*” choice; switch (choice) case 1: cout readerid; cout rname; addreader (readerid,rname); break; case 2: cout readerid; r=query(readerid); if (r=NULL) cout *用户* endl; break; cout rname; r-setname(rname); break;

22、 case 3: cout readerid; r=query(readerid); if (r=NULL) cout 该图书不存在 delbook(); break; case 4: cout readerid; r=query(readerid); if (r=NULL) cout 该图书不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout输入错误,请从新输入:;break; class Book private: int tag;int no;char name20;int onshel

23、f; public: Book() char *getname() return name; int getno() return no; int gettag() return tag; void setname(char na) strcpy(name,na); void delbook() tag=1; void addbook(int n,char *na) tag=0; no=n; strcpy(name,na); onshelf=1; int borrowbook() if (onshelf=1) onshelf=0; return 1; return 0; void retboo

24、k() onshelf=1; void disp() cout setw(6) no setw(18) name setw(10) (onshelf=1? 缺货) endl; ; class BDatabase private: int top; Book bookMaxb; public: BDatabase() Book b; top=-1; fstream file(book.txt,ios:in); while (1) file.read(char *)&b,sizeof(b); if (!file) break; top+; booktop=b; file.close(); void

25、 clear() top=-1; int addbook(int n,char *na) Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,na); return 1; return 0; Book *query(int bookid) for (int i=0;i=top;i+) if (booki.getno()=bookid &booki.gettag()=0) return &booki; return NULL; void bookdata();void disp() for (int i=0;i=top;i+) if (bo

26、oki.gettag()=0) booki.disp(); BDatabase() fstream file(book.txt,ios:out); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close(); ; void BDatabase:bookdata() char choice; char bname40; int bookid; Book *b; while (choice!=0) cout nnnttt图 书 维 护 endl choice; s

27、witch (choice) case 1: cout 输入图书编号: bookid; cout 输入图书书名: bname; addbook(bookid,bname); break; case 2: cout 输入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书缺货 endl; break; cout 输入新书名: bname; b-setname(bname); break; case 3: cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书缺货 delbook();

28、break; case 4: cout 读入图书编号: bookid; b=query(bookid); if (b=NULL) cout 该图书不存在disp(); break; case 5: disp(); break; case 6: clear(); break; default:cout输入错误,请从新输入:; void main() char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!=0) cout endlendl ch

29、oice; switch (choice) case 1: cout readerid; cout bookid; r=ReaderDB.query(readerid);if (NULL=r) cout 不存在该图书,不能买书 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能买书borrowbook()=0) cout 该图书已售完,不能买书borrowbook(b-getno(); break; case 2: coutreaderid; cout bookid; r=ReaderDB.query(readerid); if (r=NULL) cout 不存在该图书,不能买书 endl; break; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书,不能买书 retbook(); r-retbook(b-getno(); break; case 3: BookDB.bookdata(); break; case 4: ReaderDB.readerdata(); break; default:cout输入错误,请从新输入:;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服