商务销售统计课程设计

上传人:ca****in 文档编号:47630052 上传时间:2021-12-25 格式:DOCX 页数:14 大小:307.50KB
收藏 版权申诉 举报 下载
商务销售统计课程设计_第1页
第1页 / 共14页
商务销售统计课程设计_第2页
第2页 / 共14页
商务销售统计课程设计_第3页
第3页 / 共14页
资源描述:

《商务销售统计课程设计》由会员分享,可在线阅读,更多相关《商务销售统计课程设计(14页珍藏版)》请在装配图网上搜索。

1、一、题目商品销售统计程序。编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。二、任务和要求程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息

2、,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。三、问题分析:按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作。在修改数据的函数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据,所以就必须要有一个switch语句;在商品信息显示函数的实现时,由于中间要有一个购买函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个变量。关于switch语句的运

3、用在这个程序这可能要多次使用,主要在一个函数拥有多个变量或变量函数。四、算法的设计这个程序我是采用类以及函数的调用来写的。先写一个tong类,在tong类中声明所需要的函数,class tongtong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set(); /商品信息录入 void Alter(); /商品信息修改 void list(); /商品信息显示 void Display(); float Checkout(int quantity); /单个商品小结void Total(); /总计 voi

4、d buy(); /商品买入 在写了两个操作函数。在主函数中分别调用所需要的函数。在存储数据方面,我声明了一个指针数组*Si,将输入的商品信息数据按照一一对应方式存储的。在tong类中一共包括十一个函数,分别为构造函数、析构函数以及各种功能函数。在Set函数中通过输出语句的提示输入各种数据,并将输入的数据储存到定义的指针数组中,等一种商品数据信息输入完毕后,会弹出一个提示语句询问是否继续输入商品信息,可根据个人意愿输入Y(或y表示继续输入)N(或n表示中断输入),若输入Y(或y)则调用本函数,进行数据输入;若输入N(或n)弹出一个提示语句询问是否进行其他操作,在根据个人意愿输入正确的字符来进行

5、相应的操作。Delete函数是进行对原始数据(即商品信息)进行删除。先根据输出语句的提示输入您要删除的商品名称,商品名称输入后通过if语句判断是否存在这种商品:若不存在则会出现这种商品不存在的提示语句,并同时出现一个提示是否进行其他操作提示语句;若存在则会进行对该商品删除的操作并提示删除成功。Alter函数是对输入的商品信息进行修改的。函数运行时,会首先出现一个提示语句,提示管理者输入所要修改的商品名称,再通过一个for语句将该商品的所有信息调出,同时出现另一个提示语句,供管理者选择所要修改商品项,再通过switch语句供管理者输入所要修改的具体的商品信息,并将管理者修改的信息存入相应的商品信

6、息库中(即该商品在原始输入数据时分配的储存空间中),一个商品信息修改完成后同样会出现一个询问是否继续修改的语句。List函数是将输入的所有商品信息显示在屏幕上,根据提示语句将所有的输入或是修改的商品信息显示在操作屏幕上。buy函数是消费者对屏幕上显示的商品进行购买的函数。该函数在运行时,会首先出现一个提示语句,提示消费者输入需要购买的商品名称和购买数量,输入完毕后会调用Checkout、Display、Total,进行相应的操作。Checkout函数是一个小记函数,主要将消费者购买的每一种商品进行一个初步计费并显示在屏幕上,这个函数主要是为total函数服务的。 Total函数则是总计函数,是

7、将消费者购买的所有商品进行计费,并将消费者需要支付的费计算出来显示在屏幕上。Display函数是将Checkout函数中各种商品费用进行累加,在将累加的结果返回给Total函数。在主函数的运行过程中会出现一个提示语句将整个程序分成两个部分,分别为商品信息管理和商品销售管理。在商品信息管理部分,主要运行Set、Alter三个函数(这三个函数是通过switchy语句封装在caozuoa这个子函数中的),而在商品销售统计部分,则运行list、buy两个函数(这两个函数是通过switch语句封装在caozuob这个子函数中的)。五、上机调试过程这个程序我是经过在VC+6.0 环境上调试通过的

8、。在调试过程中我主要遇到了一下几个问题。1.在进行收费总计的函数调试时,我发现每一次运行,最后的sum值总是零,出现错误的部分函数结构如下:cout<<"要结束商品买入请按'N/n',其继续买入请按'Y/y': "<<endl; cin>>GoOn; if(GoOn='Y'|GoOn='y') int quantity; cout<<"请输入商品代码:"<<endl; cin>>code>>name; cou

9、t<<"请输入商品数量:"<<endl; cin>>quantity;sum+=Checkout(quantity); cout<<"你购买的商品为:"<<endl; Display(); else if(GoOn='N'|GoOn='n')break; cout<<"-"<<endl; cout<<"你应该付 "<<sum<<"元!"<&

10、lt;endl; cout<<"你实际付(元): " cin>>factly; cout<<"应该找回你 "<<factly-sum<<"元!"<<endl; /找零。 通过观察我在sum+=Checkout(quantity)后面加了一个输出语句cout<<“sum=” <<Sum<<endl后进行调试发现仍然无法输出正确的sum值,观察发现sum+=Checkout(quantity)是在if语句中的,只有继续购买才会调用,

11、所以在if语句外加了一个sum+=Checkout(quantity)语句。在这个程序中,我是用一个指针数组来存储输入的数据的,在后面函数的数据调用中,我没有用指针指向来提取输入的数据,导致在数据输出时,出现数据输出混乱:例如将cout<<setw(15)<<left<<sk->code写为cout<<setw(15)<<left<<code。这个程序的实现过程很麻烦,特别是商品信息输入这部分的实现,在每一次的运行中,都要重新输入数据,在今后碰到类似问题时,我要建一个文件,将要输入的商品信息储存在里面,在该程序中应该

12、创建一个链表,便于数据的提取。六、测试结果及其分析测试用的输入输出数据以及运行结果的截屏图如下:请选择您的操作:商品信息管理系统(M)商品销售系统(S)m商品信息录入(请输入0) 删除信息(请输入1) 修改信息(请输入2):0请输入商品代码及名称:q qw请输入计量单位:jin请输入商品单价:1.2请输入商品数量:100信息录入成功!是否继续录入?(y or n)请输入商品代码及名称:a as请输入计量单位:jin请输入商品单价:12请输入商品数量:120信息录入成功!是否继续录入?(y or n)您想继续进行其他操作吗?(y/n)y请选择您的操作:商品信息管理系统(M)商品销售系统(S)m*

13、-菜单选项-商品信息录入(请输入0) 修改信息(请输入1) 1请输入您所修改的商品名称:as你想要修改:代码及名称(请按1)、计量单位(请按2)、单价(请按3)、数量(请按4)3请输入单价:2.2 (将输入的原始数据:单价为12修改为2.2)数据修改成功!是否继续修改?(y/n)您想继续进行其他操作吗?(y/n)y请选择您的操作:商品信息管理系统(M)商品销售系统(S)s*-菜单选项-*-*显示商品信息(请输入0) 商品买入(请输入1)0=所有商品信息清单=货品代码=货品名称=货品价格=货品数量=计量单位q qw 1.2 100 jina as 2.2 120 jin您想继续进行其他操作吗?(

14、y/n)y请选择您的操作:商品信息管理系统(M)商品销售系统(S)s*-菜单选项-*显示商品信息(请输入0) 商品买入(请输入1)1请输入你想购买的商品的代码及名称:q qw请输入您想购买的商品的数量:12货品代码=货品名称=货品价格=购买数量=计量单位=小计(元)=q qw 1.2 12 jin 14.4要结束商品买入请按'N/n',其继续买入请按'Y/y':n你应该付 14.4元!你实际付(元): 20应该找回你 5.6元!您想继续进行其他操作吗?(y/n)n其截屏图如下:调试分析:在起始阶段,出现提示语句,询问进入哪部分操作,输入字符m,进入商品信息管理部

15、分,再根据提示,输入字符0,进入商品信息输入部分,按照提示输入的数据被储存在指针数组中,一个完整的商品信息录入后,就会出现一个询问是否继续输入的语句,按此方法输入几种商品信息后,终止商品信息的输入,在按照提示语句进入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示语句的提示下输入字符s进入商品销售管理部分,在此部分,输入字符0 进入商品信息显示部分,将显示在第一部分输入以及修改后的所有商品信息,以供消费者选择,退出后再进入商品买入部分,根据提示输入正确的字符或字符串,购买您所需的商品,结束购买后会出现商品消费总计,输出消费者所需付的费用并根据实际付的费用计算出找零。在测试与调试过程

16、中,我是按照屏幕提示进行操作,输入符合程序编排的数据,一步一步进行调试的。参考文献:1郑莉 等编著C+语言程序设计(第三版)北京:清华大学出版社2郑莉 等编著C+语言程序设计(第三版)学生用书北京:清华大学出版社3李春葆 等编著C+程序设计学习与上机实验指导 北京:清华大学出版社4范辉 等编著Visual C+6.0程序设计简明教程 高等教育出版社5李龙澍C+程序设计实训教程北京:清华大学出版社 6洪国胜 等编著 C+ Builder程序设计轻松上手北京:清华大学出版社7严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。8胡学钢等数据结构算法设计指导北京:清华大学出版

17、社,1999年 第1版。附录:#include <stdio.h>#include <stdlib.h>#include <conio.h>#define null 0 #include<iostream>#include <iomanip> #include<string> /控制字符串的头文件using namespace std;class tongpublic:tong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set();

18、/商品信息录入 void Alter(); /商品信息修改 void list(); /商品信息显示 void Display(); float Checkout(int quantity); /单个商品小结void Total(); /总计 void buy(); /商品买入 private :char code20;char name20;char danwei20;double price;int quantity;tong:tong()tong:tong(char co20,char n20,char dw20,double pr,int qu)strcpy(code,co);strc

19、py(name,n);strcpy(danwei,dw);price=pr;quantity=qu;tong:tong()tong *s50;int i=0;int j=0;char code20;char name20;char danwei20;double price; int quantity;void tong:Set() /商品信息录入cout<<"请输入商品代码及名称:"<<endl;cin>>code>>name; cout<<"请输入计量单位:"<<endl;cin

20、>>danwei; cout<<"请输入商品单价:"<<endl; cin>>price; cout<<"请输入商品数量:"<<endl;cin>>quantity; j+; si=new tong(code,name,danwei,price,quantity); i+; cout<<"信息录入成功!"<<endl; cout<<"是否继续录入?(y or n)"<<endl; if

21、(getch()='y') Set(); else return;void tong:Alter() /商品信息修改 cout<<"请输入您所修改的商品名称:"<<endl; cin>>name; for(int h=0;h<i;h+) if(strcmp(name,sh->name)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; cout<<"你想要修改:代码及名称(请按1)、计量单

22、位(请按2)、单价(请按3)、数量(请按4)"<<endl; cin>>n; switch(n) case 1: cout<<"请输入商品代码及名称:"<<endl; cin>>newcode>>newname; sh->code20=newcode; sh->name20=newname; cout<<"数据修改成功!" break; case 2: cout<<"请输入计量单位:"<<endl; cin

23、>>newdanwei; sh->danwei20=newdanwei; cout<<"数据修改成功!" break; case 3: cout<<"请输入单价:"<<endl; cin>>newprice; sh->price=newprice; cout<<"数据修改成功!" break; case 4: cout<<"请输入数量:"<<endl; cin>>newquantity; sh-&

24、gt;quantity=newquantity; cout<<"数据修改成功!" break; else cout<<"你所要修改的人的信息不存在,请修正后在更改!"<<endl; cout<<"是否继续修改?(y/n)"<<endl; if(getch()='y')Alter(); else return ; void tong:list() /商品信息显示cout<<"="<<endl; cout<<

25、"=所有商品信息="<<endl; cout<<"="<<endl; cout<<"货品代码=货品名称=货品价格=货品数量=计量单位"<<endl; if(i=0) cout<<"系统中没有录入商品信息或该商品信息已被删除!"<<endl;for(int k=0;k<i;k+) cout<<setw(15)<<left<<sk->code<<setw(15)<<

26、left<<sk->name<<setw(15)<<left<<sk->price<<setw(15)<<left<<sk->quantity<<setw(15)<<left<<sk->danwei<<endl; void tong:buy() /商品买入cout<<"请输入你想购买的商品的代码及名称:"<<endl;cin>>code>>name;cout<<

27、"请输入您想购买的商品的数量:"<<endl;cin>>quantity;Checkout(quantity);Display();Total();void tong:Display() int k;cout<<"货品代码=货品名称=货品价格=购买数量=计量单位=小计(元)="<<endl; for( k=0;k<1;k+)cout<<setw(15)<<left<<sk->code<<setw(15)<<l sum+=Checkout

28、(quantity);eft<<sk->name <<setw(15)<<left<<sk->price <<setw(15)<<left<<quantity <<setw(15)<<left<<sk->danwei <<setw(15)<<left<<quantity*sk->price<<endl; float tong:Checkout(int quantity) /单个商品小结 int k=0;f

29、loat sum(0.0); sum=sk->price * quantity; return sum; void tong:Total() /总结帐 float sum = 0; float factly; char GoOn; while(1)cout<<"要结束商品买入请按'N/n',其继续买入请按'Y/y': "<<endl; cin>>GoOn; if(GoOn='Y'|GoOn='y') int quantity; cout<<"请输入

30、商品代码:"<<endl; cin>>code>>name; cout<<"请输入商品数量:"<<endl; cin>>quantity;sum+=Checkout(quantity); cout<<"你购买的商品为:"<<endl; Display(); else if(GoOn='N'|GoOn='n')break; cout<<"-"<<endl; sum+=Check

31、out(quantity); cout<<"你应该付 "<<sum<<"元!"<<endl; cout<<"你实际付(元): " cin>>factly; cout<<"应该找回你 "<<factly-sum<<"元!"<<endl; /找零。 void caozuoa(int p) tong t;switch(p) case 0:t.Set();break; case 1:t

32、. Alter ();break; case 8:exit(0);break;void caozuob(int p) tong t;switch(p) case 0:t.list();break; case 1:t.buy();break; case 8:exit(0);break;void main()int a; char w; cout<<"*"<<endl; cout<<"n"<<endl; cout<<"*-欢迎进入商品销售统计系统-*"<<endl;

33、cout<<"n"<<endl; cout<<"*"<<endl;do cout<<"请选择您的操作:商品信息管理系统(M)商品销售系统(S)"<<endl; cin>>w; cout<<"*-菜单选项-*"<<endl; cout<<"*-*"<<endl; cout<<"n"<<endl; if(w='M

34、9;|w='m')cout<<"商品信息录入(请输入0) 修改信息(请输入1) :"<<endl; cin>>a; caozuoa(a); else if(w='S'|w='s') cout<<"显示商品信息(请输入0) 商品买入(请输入1)"<<endl; cin>>a; caozuob(a); else cout<<"请输入'M'、'm'或'S'、's'"<<endl; cout<<"您想继续进行其他操作吗?(y/n)"<<endl; cin>>w;while(w='y');12.25.202106:4406:44:2721.12.256时44分6时44分27秒12月. 25, 2125 十二月 20216:44:27 上午06:44:272021年12月25日星期六06:44:27

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!