商场销售管理系统-C++课程设计_第1页
商场销售管理系统-C++课程设计_第2页
商场销售管理系统-C++课程设计_第3页
商场销售管理系统-C++课程设计_第4页
商场销售管理系统-C++课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

****大学程序设计课程设计报告商场销售管理系统学号姓名日期 目录……………….3………….3………….4……….5…………….6……………….7…….13…….13……………14…………….15本系统旨在实现一个小型的商城销售管理系统,对于一个小型的商场或销售店铺来说,实施本系统不仅可以减少工作人员数量,降低本钱,而且可以大大提高工作效率,降低工作强度,方便卖家记录商品流通信息,统计销售情况,分析市场需求,帮助卖家更好的管理商场,以获取跟多的利润。程序主要实现进货管理、商品根本信息查询与修改、利润计算与销售统计、库存管理等及一些辅助功能。该程序的主要功能有 可对商品信息进展查看、按一定规则排序及商品查找,其中具体信息包括商品名称,编号,进货本钱价,销售价,进货总量,销售量,可以对库存,已获得利润,总体本钱价等进展计算 可实现对商品信息的进展修改,添加,删除等功能,并进展文件的操作储存,以更好的保护信息,能有效的管理好商品信息的隐秘性。 该程序实现了一下清屏,清空文件,操作提示等善后辅助功能,能帮助用户更好的应用该程序,使程序的功能最大化实现。三.程序运行平台该程序是用制做的,使用运行该程序,具体操作是:翻开,菜单栏里点文件→翻开工作区→找到“〞这个文件→翻开,或者在资源管理器中双击该文件,此时,VC++6.0会自动翻开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。商城销售管理系统商城销售管理系统进入系统退出系统商品信息查看显示全部内容进入系统退出系统商品信息查看显示全部内容商品查找显示商品信息按销量排序按利润排序商品根本信息名称编号本钱单价销量库存总量利润商品管理修改数据创立新表增加商品删除商品文件存档从文件中提取数据其它辅助功能使用说明及帮助等其它辅助功能使用说明及帮助等有关商品信息的类//存储商品信息classGoodsInfo{public:char*name;//商品名称intnumber;//商品编号floatcost_p;//本钱单价floatunit_p;//销售单价intnum_all;//共计商品件数intnum_now;//现存商品件数intnum_sell;//已售出商品件数floatcost_all;//进货总计本钱价floatprofit;//已销售商品获得的利润GoodsInfo*next;//指向下一个商GoodsInfo();//构造函数GoodsInfo(char*a,intb,floatc,floatu,intall,intsell);//重载构造函数voidoperator=(constGoodsInfo&right);//重载=voidsetInfo(char*a,floatc,floatu,intall,intsell);//数据载入char*getname(){returnname;}//返回姓名用于查找显示商品信息voidAmend(GoodsInfo*);voidshow(GoodsInfo*);~GoodsInfo(){delete[]name;}商品类链表classGoodList:publicGoodsInfopublic:GoodList();//构造函数,指针初始化~GoodList();//析构函数,释放GoodsInfo*head;//头指针GoodsInfo*p;//活动指针1GoodsInfo*p2;//活动指针2(指向最后一个)voidcreate();//创立函数voidshowinfo(GoodsInfo*);//显示GoodsInfo*search();//查找voidsaveInfo();//信息存档voidgetInfo();//上传信息voidaddInfo(GoodsInfo*); //添加数据voidsort();//按销量显示voidmenu();voiddelete_();//删除节点菜单:所有函数均封装在商品类及商品链表类中(GoodsInfo和GoodList)信息存储在类GoodsInfo中,类中定义了3个GoodsInfo指针,一个是*head,作为链表的头指针,另一个是*p,作为活动指针,一个*p2,指向链表的尾节。在不同的类的成员函数中都可使用,为了防止该活动指针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里还定义了一些临时指针。此函数为是创立商品信息数据,构成商品信息表是使用,用于让用户批量添加商品。按照程序的提示,可依次添加商品信息,按‘Y’继续,其他建则停顿,返回主菜单。此时链表创立成功,*head指向链表的头,p2指向尾。可用于后续函数的操作。跟创立有一样的用途,用于添加商品信息,不同的是添加只能用于已有原链表存在的情况下。但这个不能批量添加,一次只能添加一个,并且存放在原链表尾节点的后一个,形成一个新的链表。顾名思义,此函数用于查找商品信息。在原始信息过多的时候,可以通过查找〔按商品编号和商品名称两钟方式〕查看自己想看的商品详细信息。假设不存在该商品,程序则自动输出未找到,然后返回主菜单。假设查找到该商品,函数返回该节点的指针,并用单个显示函数显示出来。此函数是基于查找函数之上的。在查找到需要修改的单元后,选择自己需要修改的工程。函数会询问是否需要继续修改,Y继续,其他键则返回主菜单。删除和修改一样,基于查找函数之上,用于删除不需要的节点。操作方法也和前面类似。此函数用于批量显示商品信息。该函数以表格的型式显示,明了清晰,有助于比拟。7.排序排序是基于显示函数的一个函数。该函数用选择排序法,以两种〔按销量和按利润〕方法排序显示,有助于商家比照比拟分析哪种商品的销量好利润高,便于管理和优化商城的盈利。8.上传当需要输入数据过多过大时,可以通过上传函数,直接把文件中的数据读到程序中并形成链表,然后再继续后续操作。这个和创立函数具有差不多的功能,不过一个是从键盘读入,一个是从文件中读入。文件上传成功后,函数会自动显示成功,然后跳到主菜单进展其他工程。9.存档上传和存档是文件和程序的两个接头。在数据操作过程中为防止数据丧失,可边操作变保存,在退出程序之前,程序也会自动弹出询问是否需要保存,这是比拟人性化的一点,以免造成不可估量的后果。保存成功后会自动输出成功字样,并退出或继续程序。存档和上传合并利用,下一次运行程序时,可以直接上传上次所保存的数据然后继续操作,就不需要工作人员一个一个慢慢输入了。清屏是一个辅助函数,为了清晰界面方便操作美化外观。退出程序是会自动询问是否保存文件,然后调用析构函数,释放链表去除数据,然后平安退出。七、比拟有特色的地方有特色的函数指的是实现地较为巧妙的类的构造函数、成员函数、析构函数等函数,也可以是指针处理的函数,文件处理的函数等比拟有特色的函数,能表达巧妙构思即可。特别是运算附的重载,大大减小了代码的数量,简洁了程序。还有就是文件操作方面,比拟合理和人性化。在文件编写的时候我此次采用的是txt储存数据,虽然有助于使用者查看数据,但是在面对一串庞大数据是,dat文件的效率明显会高很多。还有就是由于学得不够深,程序的功能总体来说还比拟少,有待以后更深层的学习后完善。比方界面方面的处理,和对每天销售情况的记录等等。商品流通的具体过程等该程序都没有记录。需要改良的地方还有很多。九、心得体会通过这次课程设计,我清楚的认识到了C++是一门很庞大的并且很有实用价值的一门学科,它一种非常简洁高效的语言。类的特色在这次编程过程中有了充分的体会。就以前所学的C语言而言,我明显感觉到C++在编写这种比拟复杂的程序时的优势,他的重载函数运算符的等操作也是一大有点。模块的分块化,当需要用到某个函数时再进展调用,大大增强了程序的可读性,而且代码也更加合理清晰。就拿这次我所写的商场销售管理系统来说,商品类的操作是一个整体,写在一个中.cpp,文件里面同时也可以另外写到一个.h的头文件里面,在写程序的时候再进展调用。课程设计真的很能锻炼人,平时上课都是讲的根底知识,上机也只是编写的小程序,不能把知识融会贯穿。然而这次课设是编写的一个小系统,把所学的知识都联系起来了,在刚刚看到要求时是觉得有很大的难度的,毕竟是第一次编写一个商场销售管理系统。但是想到有志者事竞成,只要敢于思考敢于尝试,按步骤一步一步来也是能编写出程序的。于是我首先把程序类图先画了出来,把程序根本构造勾勒出来,化整为零,一个一个小功能慢慢写起,写完一个在主函数中验证一个看是否正确,通过后在进展下一个,逐步实现。而后编写主函数,菜单等,完善功能。因为我刚刚入门c++,根本工还缺乏,能力还很弱,所以在写的过程中遇到很多困难,有些以前很熟悉的代码也忘了,于是我开场翻阅以前的书籍,边对照边回忆,终于完成了。特别是在文件操作方面尤为薄弱,我意思到了自己的弱点。由于自己的缺乏,以后学习还要更加努力,不懂时多问教师多向同学学习。作为一个计算机专业的学生,计算机语言是我们的根本功,我们应该扎实自己的根底,才能更快更好的开展。#ifndefLIST_H#defineLIST_H#include"GOODSINFO.H"classGoodList:publicGoodsInfopublic:GoodList(); //构造函数,指针初始化~GoodList(); //析构函数,释放GoodsInfo*head;//头指针GoodsInfo*p; //活动指针1GoodsInfo*p2; //活动指针2(指向最后一个)voidcreate();//创立函数voidshowinfo(GoodsInfo*);//显示GoodsInfo*search();//查找voidsaveInfo();//信息存档voidgetInfo();//上传信息voidaddInfo(GoodsInfo*); //添加数据voidsort();//按销量显示voidmenu();voiddelete_(); //删除节点#endif//存储商品信息#ifndefGOODSINFO_H#defineGOODSINFO_HclassGoodsInfo{public:char*name;//商品名称intnumber;//商品编号floatcost_p; //本钱单价floatunit_p; //销售单价intnum_all; //共计商品件数intnum_now; //现存商品件数intnum_sell; //已售出商品件数floatcost_all; //进货总计本钱价floatprofit; //已销售商品获得的利润GoodsInfo*next; //指向下一个商GoodsInfo();//构造函数GoodsInfo(char*a,intb,floatc,floatu,intall,intsell);//重载构造函数voidoperator=(constGoodsInfo&right);//重载=voidsetInfo(char*a,floatc,floatu,intall,intsell);//数据载入char*getname(){returnname;}//返回姓名用于查找 //显示商品信息voidAmend(GoodsInfo*);voidshow(GoodsInfo*);~GoodsInfo(){delete[]name;}#endif#include<iostream>usingnamespacestd;#include"GOODSINFO.H"#include<string.h>GoodsInfo::GoodsInfo()//构造函数name=newchar[21];number=cost_p=unit_p=num_all=num_now=num_sell=cost_all=profit=0;next=NULL;GoodsInfo::GoodsInfo(char*a,intb,floatc,floatu,intall,intsell)//重载构造函数strcpy(name,a);number=b;cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;voidGoodsInfo::operator=(constGoodsInfo&right)//重载=strcpy(name,);number=right.number;cost_p=right.cost_p;unit_p=right.unit_p;num_all=right.num_all;num_sell=right.num_sell;num_now=right.num_now;cost_all=right.cost_all;profit=fit;voidGoodsInfo::setInfo(char*a,floatc,floatu,intall,intsell)//数据载入strcpy(name,a);cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;voidGoodsInfo::show(GoodsInfo*h)//显示if(h==NULL)cout<<"NULL!\n";else{cout<<"-----------------------------------\n"<<"商品名:"<<h->name<<endl;cout<<"编号:"<<h->number<<endl<<"本钱:"<<h->cost_p<<endl<<"销售单价:"<<h->unit_p<<endl<<"销量:"<<h->num_sell<<endl<<"库存:"<<h->num_now<<endl<<"已获得利润:"<<h->profit<<endl;voidGoodsInfo::Amend(GoodsInfo*h)//修改信息{intF;charS;cout<<"~~~~~~~~~~~~~~~~~~\n"<<"^2.商品本钱单价^"<<endl<<"^3.商品销售单价^"<<endl<<"^4.进货数量^"<<endl<<"^5.销售数量^"<<endl<<"~~~~~~~~~~~~~~~~~~\n";do{cout<<"请选择需要修改的工程编号:"<<endl;cin>>F;switch(F)case1:{cout<<"~~~~~~~~~~~~~~~~~~~~\n"<<"|请输入修改后的名称|\n"cin.ignore();cin.getline(h->name,21);break;}case2:{cout<<"~~~~~~~~~~~~~~~~~~~~~~~\n"<<"|请输入修改后的本钱价:\n"cin>>h->cost_p;break;}case3:{cout<<"请输入修改后的销售单价:";cin>>h->unit_p;break;}case4:{cout<<"请输入修改后的进货量:";cin>>h->num_all;break;}case5:{cout<<"请输入修改后的销售量:";cin>>h->num_sell;break;}h->cost_all=h->cost_p*(h->num_all);h->num_now=h->num_all-(h->num_sell);h->profit=(h->unit_p-(h->cost_p))*h->num_sell;cout<<"是否需要继续修改?";cin>>S;while(S=='Y');#include<iostream>usingnamespacestd;#include<string>#include<iomanip>#include<fstream>#include"LIST.H"GoodList::GoodList() //构造函数p=newGoodsInfo[sizeof(GoodsInfo)];head=NULL;p2=NULL;p->next=NULL;GoodList::~GoodList() //析构函数while(head!=NULL){p=head;head=p->next;delete[]p;voidGoodList::create() //创立{intn=0;charf='Y';cout<<"请输入商品信息:"<<endl;while(f=='Y'){n+=1;if(n==1)head=p;else{p=newGoodsInfo[sizeof(GoodsInfo)];p2->next=p;cout<<"商品名称:";if(n==1)cin.ignore();cin.getline(p->name,21);cout<<"商品编号:";cin>>p->number;cout<<"本钱价:";cin>>p->cost_p; cout<<"销售价:";cin>>p->unit_p;cout<<"共计商品件数:";cin>>p->num_all;cout<<"已售出商品件数:";cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p->cost_p*(p->num_all);p->profit=((p->unit_p)-(p->cost_p))*(p->num_sell);p2=p;cout<<"是否继续输入?〔输入‘Y’继续〕";cin>>f;cin.ignore();if(head!=NULL)p2->next=NULL;//P2指向最后一个voidGoodList::showinfo(GoodsInfo*h) //显示信息{cout<<setw(10)<<"商品名称"<<setw(10)<<"编号"<<setw(8)<<"进价"<<setw(8)<<"售价"<<setw(8)<<"销量"<<setw(8)<<"库存"<<setw(12)<<"已得利润"<<endl;while(h!=NULL)cout<<setw(10)<<h->name<<setw(10)<<h->number<<setw(8)<<h->cost_p<<setw(8)<<h->unit_p<<setw(8)<<h->num_sell<<setw(8)<<h->num_now<<setw(12)<<h->profit<<endl;h=h->next;GoodsInfo*GoodList::search()//查找if(head==NULL){cout<<"数据为空!\n";returnNULL;}else{GoodsInfo*h;h=head;intf;cout<<"~~~~~~~~~~~~~~~~\n"<<"请选择查找方式:\n"<<"1.按商品编号\n" <<"2.按商品名称"<<endl<<"~~~~~~~~~~~~~~~~\n";cin>>f;switch(f){case1: intx,y;cout<<"请输入需查找的商品编号:";cin>>x;while(h!=NULL&&(x!=(y=h->number)))h=h->next;if(x==y)returnh;lse{cout<<"没有找到该商品!\n";returnNULL;}case2: {charx[21];intc;cout<<"请输入需查找的商品名称:";cin.ignore();cin.getline(x,21);while(h!=NULL&&(c=strcmp(x,h->name))!=0)h=h->next;if(c==0) returnh;else{cout<<"没有找到该商品!\n";returnNULL;}voidGoodList::saveInfo()//存档fstreamFile;("GoodsInformation.txt",ios::out|ios::binary);if(!File){ cout<<"文件翻开失败!\n";exit(0);p=head;GoodsInfoX;File<<"商品名称 编号 进价 售价 总量 销量 库存 已得利润 \n";while(p!=NULL){ X=*p;File<<X.name<<" "<<X.number<<" "<<X.cost_p<<" "<<X.unit_p<<" "<<X.num_all<<" "<<X.num_sell<<" "<<X.num_now<<" "<<X.profit<<endl;p=p->next;cout<<"文件保存成功!\n";voidGoodList::getInfo()//上传{ fstreamFile;("GoodsInformation.txt",ios::in);if(!File){ cout<<"文件翻开失败!\n";exit(0);chars[81];GoodsInfoh;(s,81);intn=0;while(!())if(())break;n+=1;if(n==1) head=p;else{ p=newGoodsInfo[sizeof(GoodsInfo)];p2->next=p;>>fit;*p=h;p2=p;cout<<"上传显示完毕!"<<endl;voidGoodList::addInfo(GoodsInfo*h)//添加{ cout<<"请输入商品信息:"<<endl;p=newGoodsInfo[sizeof(GoodsInfo)];h->next=p;cin.ignore();cout<<"商品名称:";cin.getline(p->name,21);cout<<"商品编号:";cin>>p->number;cout<<"本钱价:";cin>>p->cost_p;cout<<"销售价:";cin>>p->unit_p;cout<<"共计商品件数:";cin>>p->num_all;cout<<"已售出商品件数:";cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p->cost_p*(p->num_all);p->profit=((p->unit_p)-(p->cost_p))*(p->num_sell);p2=p;p2->next=NULL;voidGoodList::delete_()//删除节点{ if(head==NULL)cout<<"NULL!\n";elsecout<<"请输入需要删除的商品编号:";intn;GoodsInfo*h;cin>>n;h=head;while(h->next!=NULL&&h->number!=n){ p=h;h=h->next;if(h->number==n)charF;cout<<"是否确定删除该节点?";cin>>F;if(F=='Y'){ if(h==head)head=h->next;elsep->next=h->next;delete[]h;cout<<"删除成功!\n";elsecout<<"未找到该节点!\n";voidGoodList::sort()//按销量排序显示GoodsInfo*h1,*h2,t;intn;if(head==NULL)cout<<"NULL!\n";else{ intF;cout<<"~~~~~~~~~~~~~~~~\n"<<"请选择排序方式:\n"<<"1.按销量降序排列\n"<<"2.按利润降序排列\n"<<"~~~~~~~~~~~~~~~~\n";cin>>F;switch(F)case1:for(h1=head;h1->next!=NULL;h1=h1->next){ n=h1->num_sell;for(h2=h1->next;h2!=NULL;h2=h2->next){ if((h2->num_sell)>(h1->num_sell))n=h2->num_sell;if(n!=h1->num_sell){t=*h2;*h2=*h1;*h1=t;}}break;case2:for(h1=head;h1->next!=NULL;h1=h1->next){ n=h1->profit;for(h2=h1->next;h2!=NULL;h2=h2->next){ if((h2->profit)>(h1->profit))n=h2->profit;if(n!=h1->profit){t=*h2;*h2=*h1;*h1=t;}}break;showinfo(head);voidGoodList::menu()//菜单cout<<endl<<endl<<" ----------------------------------------------\n"<<" |************商场销售管理系统***************|\n"<<" |-------------------------------------------|\n"<<" ||\n"<<" |------------------*菜单*-------------------|\n"<<" ||\n"<<" |1.创立2.添加3.修改|\n"<<" ||\n"<<" |4.显示5.存档6.查找|\n"<<" ||\n"<<" |7.上传8.排序9.清屏|\n"<<" ||\n"<<" |10.删除0.退出|\n"<<" ---------------------------------------------\n"cout<<"***请选择操作***:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论