商务销售统计课程设计.docx
- 文档编号:27617011
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:21
- 大小:362.08KB
商务销售统计课程设计.docx
《商务销售统计课程设计.docx》由会员分享,可在线阅读,更多相关《商务销售统计课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
商务销售统计课程设计
一、题目
商品销售统计程序。
编写商品销售统计程序,商品的信息有:
商品的名称,计量单位(重量或件),单价。
所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。
客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。
二、任务和要求
程序分为两个部分:
第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。
程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。
第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。
此时。
程序计算出应付钱款数并显示。
三、问题分析:
按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作。
在修改数据的函数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据,所以就必须要有一个switch语句;在商品信息显示函数的实现时,由于中间要有一个购买函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个变量。
关于switch语句的运用在这个程序这可能要多次使用,主要在一个函数拥有多个变量或变量函数。
四、算法的设计
这个程序我是采用类以及函数的调用来写的。
先写一个tong类,在tong类中声明所需要的函数,classtong{
tong();
tong(charco[20],charn[20],chardw[20],doublepr,intqu);
~tong();
voidSet();//商品信息录入
voidAlter();//商品信息修改
voidlist();//商品信息显示
voidDisplay();
floatCheckout(intquantity);//单个商品小结
voidTotal();//总计
voidbuy();//商品买入
在写了两个操作函数。
在主函数中分别调用所需要的函数。
在存储数据方面,我声明了一个指针数组*S[i],将输入的商品信息数据按照一一对应方式存储的。
在tong类中一共包括十一个函数,分别为构造函数、析构函数以及各种功能函数。
在Set函数中通过输出语句的提示输入各种数据,并将输入的数据储存到定义的指针数组中,等一种商品数据信息输入完毕后,会弹出一个提示语句询问是否继续输入商品信息,可根据个人意愿输入Y(或y表示继续输入)N(或n表示中断输入),若输入Y(或y)则调用本函数,进行数据输入;若输入N(或n)弹出一个提示语句询问是否进行其他操作,在根据个人意愿输入正确的字符来进行相应的操作。
Delete函数是进行对原始数据(即商品信息)进行删除。
先根据输出语句的提示输入您要删除的商品名称,商品名称输入后通过if语句判断是否存在这种商品:
若不存在则会出现这种商品不存在的提示语句,并同时出现一个提示是否进行其他操作提示语句;若存在则会进行对该商品删除的操作并提示删除成功。
Alter函数是对输入的商品信息进行修改的。
函数运行时,会首先出现一个提示语句,提示管理者输入所要修改的商品名称,再通过一个for语句将该商品的所有信息调出,同时出现另一个提示语句,供管理者选择所要修改商品项,再通过switch语句供管理者输入所要修改的具体的商品信息,并将管理者修改的信息存入相应的商品信息库中(即该商品在原始输入数据时分配的储存空间中),一个商品信息修改完成后同样会出现一个询问是否继续修改的语句。
List函数是将输入的所有商品信息显示在屏幕上,根据提示语句将所有的输入或是修改的商品信息显示在操作屏幕上。
buy函数是消费者对屏幕上显示的商品进行购买的函数。
该函数在运行时,会首先出现一个提示语句,提示消费者输入需要购买的商品名称和购买数量,输入完毕后会调用Checkout、Display、Total,进行相应的操作。
Checkout函数是一个小记函数,主要将消费者购买的每一种商品进行一个初步计费并显示在屏幕上,这个函数主要是为total函数服务的。
Total函数则是总计函数,是将消费者购买的所有商品进行计费,并将消费者需要支付的费计算出来显示在屏幕上。
Display函数是将Checkout函数中各种商品费用进行累加,在将累加的结果返回给Total函数。
在主函数的运行过程中会出现一个提示语句将整个程序分成两个部分,分别为商品信息管理和商品销售管理。
在商品信息管理部分,主要运行Set、Alter三个函数(这三个函数是通过switchy语句封装在caozuoa这个子函数中的),而在商品销售统计部分,则运行list、buy两个函数(这两个函数是通过switch语句封装在caozuob这个子函数中的)。
五、上机调试过程
这个程序我是经过在VC++6.0 环境上调试通过的。
在调试过程中我主要遇到了一下几个问题。
1.在进行收费总计的函数调试时,我发现每一次运行,最后的sum值总是零,出现错误的部分函数结构如下:
cout<<"要结束商品买入请按'N/n',其继续买入请按'Y/y':
"< cin>>GoOn; if(GoOn=='Y'||GoOn=='y'){ intquantity; cout<<"请输入商品代码: "< cin>>code>>name; cout<<"请输入商品数量: "< cin>>quantity; sum+=Checkout(quantity); cout<<"你购买的商品为: "< Display(); } elseif(GoOn=='N'||GoOn=='n') break; } cout<<"----------------------------------------------------"< cout<<"你应该付"< "< cout<<"你实际付(元): "; cin>>factly; cout<<"应该找回你"< "< } 通过观察我在sum+=Checkout(quantity)后面加了一个输出语句cout<<“sum=”< 在这个程序中,我是用一个指针数组来存储输入的数据的,在后面函数的数据调用中,我没有用指针指向来提取输入的数据,导致在数据输出时,出现数据输出混乱: 例如将cout< 这个程序的实现过程很麻烦,特别是商品信息输入这部分的实现,在每一次的运行中,都要重新输入数据,在今后碰到类似问题时,我要建一个文件,将要输入的商品信息储存在里面,在该程序中应该创建一个链表,便于数据的提取。 六、测试结果及其分析 测试用的输入输出数据以及运行结果的截屏图如下: 请选择您的操作: 商品信息管理系统(M)商品销售系统(S) m 商品信息录入(请输入0)删除信息(请输入1)修改信息(请输入2): 0 请输入商品代码及名称: qqw 请输入计量单位: jin 请输入商品单价: 1.2 请输入商品数量: 100 信息录入成功! 是否继续录入? (yorn) 请输入商品代码及名称: aas 请输入计量单位: jin 请输入商品单价: 12 请输入商品数量: 120 信息录入成功! 是否继续录入? (yorn) 您想继续进行其他操作吗? (y/n) y 请选择您的操作: 商品信息管理系统(M)商品销售系统(S) m *---------------------菜单选项-------------------- 商品信息录入(请输入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 ===================所有商品信息清单======================== 货品代码=======货品名称======货品价格======货品数量======计量单位 qqw1.2100jin aas2.2120jin 您想继续进行其他操作吗? (y/n) y 请选择您的操作: 商品信息管理系统(M)商品销售系统(S) s *---------------------菜单选项--------------------* 显示商品信息(请输入0)商品买入(请输入1) 1 请输入你想购买的商品的代码及名称: qqw 请输入您想购买的商品的数量: 12 货品代码=======货品名称======货品价格======购买数量======计量单位=====小计(元)== qqw1.212jin14.4 要结束商品买入请按'N/n',其继续买入请按'Y/y': n 你应该付14.4元! 你实际付(元): 20 应该找回你5.6元! 您想继续进行其他操作吗? (y/n) n 其截屏图如下: 调试分析: 在起始阶段,出现提示语句,询问进入哪部分操作,输入字符m,进入商品信息管理部分,再根据提示,输入字符0,进入商品信息输入部分,按照提示输入的数据被储存在指针数组中,一个完整的商品信息录入后,就会出现一个询问是否继续输入的语句,按此方法输入几种商品信息后,终止商品信息的输入,在按照提示语句进入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示语句的提示下输入字符s进入商品销售管理部分,在此部分,输入字符0进入商品信息显示部分,将显示在第一部分输入以及修改后的所有商品信息,以供消费者选择,退出后再进入商品买入部分,根据提示输入正确的字符或字符串,购买您所需的商品,结束购买后会出现商品消费总计,输出消费者所需付的费用并根据实际付的费用计算出找零。 在测试与调试过程中,我是按照屏幕提示进行操作,输入符合程序编排的数据,一步一步进行调试的。 参考文献: [1].郑莉等编著《C++语言程序设计(第三版)》北京: 清华大学出版社 [2].郑莉等编著《C++语言程序设计(第三版)学生用书》北京: 清华大学出版社 [3].李春葆等编著《C++程序设计学习与上机实验指导》北京: 清华大学出版社 [4].范辉等编著《VisualC++6.0程序设计简明教程》高等教育出版社 [5].李龙澍《C++程序设计实训教程》北京: 清华大学出版社 [6].洪国胜等编著《C++Builder程序设计轻松上手》北京: 清华大学出版社 [7].严蔚敏等《数据结构(c语言版)》北京: 清华大学出版社,1997年4月第1版。 [8].胡学钢等《数据结构算法设计指导》北京: 清华大学出版社,1999年第1版。 附录: #include #include #include #definenull0 #include #include #include usingnamespacestd; classtong { public: tong(); tong(charco[20],charn[20],chardw[20],doublepr,intqu); ~tong(); voidSet();//商品信息录入 voidAlter();//商品信息修改 voidlist();//商品信息显示 voidDisplay(); floatCheckout(intquantity);//单个商品小结 voidTotal();//总计 voidbuy();//商品买入 private: charcode[20];charname[20];chardanwei[20];doubleprice;intquantity; }; tong: : tong(){} tong: : tong(charco[20],charn[20],chardw[20],doublepr,intqu){ strcpy(code,co); strcpy(name,n); strcpy(danwei,dw); price=pr; quantity=qu;} tong: : ~tong(){} tong*s[50]; inti=0; intj=0; charcode[20];charname[20];chardanwei[20];doubleprice;intquantity; voidtong: : Set()//商品信息录入 { cout<<"请输入商品代码及名称: "< cin>>code>>name; cout<<"请输入计量单位: "< cin>>danwei; cout<<"请输入商品单价: "< cin>>price; cout<<"请输入商品数量: "< cin>>quantity; j++; s[i]=newtong(code,name,danwei,price,quantity); i++; cout<<"信息录入成功! "< cout<<"是否继续录入? (yorn)"< if(getch()=='y') Set(); elsereturn; } voidtong: : Alter()//商品信息修改 { cout<<"请输入您所修改的商品名称: "< cin>>name; for(inth=0;h if(strcmp(name,s[h]->name)==0){ charnewcode,newname,newdanwei; doublenewprice; intnewquantity; intn; cout<<"你想要修改: 代码及名称(请按1)、计量单位(请按2)、单价(请按3)、数量(请按4)"< cin>>n; switch(n) { case1: {cout<<"请输入商品代码及名称: "< cin>>newcode>>newname; s[h]->code[20]=newcode; s[h]->name[20]=newname; cout<<"数据修改成功! "; }break; case2: { cout<<"请输入计量单位: "< cin>>newdanwei; s[h]->danwei[20]=newdanwei; cout<<"数据修改成功! "; }break; case3: { cout<<"请输入单价: "< cin>>newprice; s[h]->price=newprice; cout<<"数据修改成功! "; }break; case4: { cout<<"请输入数量: "< cin>>newquantity; s[h]->quantity=newquantity; cout<<"数据修改成功! "; }break; } } else cout<<"你所要修改的人的信息不存在,请修正后在更改! "< } cout<<"是否继续修改? (y/n)"< if(getch()=='y') Alter(); elsereturn; } voidtong: : list()//商品信息显示 { cout<<"=========================================================="< cout<<"===================所有商品信息==================="< cout<<"=========================================================="< cout<<"货品代码=======货品名称======货品价格======货品数量======计量单位"< if(i==0) cout<<"系统中没有录入商品信息或该商品信息已被删除! "< for(intk=0;k cout< } } voidtong: : buy()//商品买入 { cout<<"请输入你想购买的商品的代码及名称: "< cin>>code>>name; cout<<"请输入您想购买的商品的数量: "< cin>>quantity; Checkout(quantity); Display(); Total(); } voidtong: : Display() { intk; cout<<"货品代码=======货品名称======货品价格======购买数量======计量单位=====小计(元)=="< for(k=0;k<1;k++){ cout< < < < < < } } floattong: : Checkout(intquantity)//单个商品小结 { intk=0; floatsum(0.0); sum=s[k]->price*quantity; returnsum; } voidtong: : Total()//总结帐 { floatsum=0; floatfactly; charGoOn; while (1) { cout<<"要结束商品买入请按'N/n',其继续买入请按'Y/y': "< cin>>GoOn; if(GoOn=='Y'||GoOn=='y'){ intquantity; cout<<"请输入商品代码: "< cin>>code>>name; cout<<"请输入商品数量: "< cin>>quantity; sum+=Checkout(quantity); cout<<"你购买的商品为: "< Display(); } elseif(GoOn=='N'||GoOn=='n') break; } cout<<"----------------------------------------------------"< sum+=Checkout(quantity); cout<<"你应该付"< "< cout<<"你实际付(元): "; cin>>factly; cout<<"应该找回你"< "< } voidcaozuoa(intp){ tongt; switch(p){ case0: t.Set();break; case1: t.Alter();break; case8: exit(0);break; } } voidcaozuob(intp){ tongt; switch(p){ case0: t.list();break; case1: t.buy();break; case8: exit(0);break; } } voidmain() { inta; charw; cout<<"***************************************************"< cout<<"\n"< cout<<"*------------欢迎进入商品销售统计系统-------------*"< cout<<"\n"< cout<<"***************************************************"< do{ cout<<"请选择您的操作: 商品信息管理系统(M)商品销售系统(S)"< cin>>w; cout<<"*---------------------菜单选项--------------------*"< cout<<"*-------------------------------------------------*"< cout<<"\n"< if(w=='M'||w=='m'){ cout<<"商品信息录入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商务 销售 统计 课程设计