C商品销售统计课程设计.docx
《C商品销售统计课程设计.docx》由会员分享,可在线阅读,更多相关《C商品销售统计课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
![C商品销售统计课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/28/08d195cf-c058-4c2f-8f85-f99024505428/08d195cf-c058-4c2f-8f85-f990245054281.gif)
C商品销售统计课程设计
一、问题描述
目的
在《面向对象程序设计》课程教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。
同时,作为整个实践教学体系一部分,系统培养采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:
1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2)为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。
同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3)编程简练,程序功能齐全,能正确运行。
商品销售统计
问题描述
编写商品销售统计程序,商品的信息有:
商品的名称,计量单位(重量或件),单价。
所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。
客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。
基本要求
程序分为两个部分:
第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。
程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。
第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。
此时。
程序计算出应付钱款数并显示。
实现提示
本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。
二、问题分析:
按照要求这个程序的编写要求,由于包含多种实现要求,所以在编写时需要多个实现函数,这样就要定义一个类或机构体来统筹各个函数以及用链表或指针数组来储存输入的常量数据,并且在各个转换点设置相应的提示语句使整个程序便于操作。
在修改数据的函数实现时,由于一个商品包含多个变量,要想在修改某一个数据后而不影响其他的数据,所以就必须要有一个switch语句;在商品信息显示函数的实现时,由于中间要有一个购买函数的实现,所以商品数量会随着商品的购买而减少,所以要将购买的数量另外定义一个变量。
关于switch语句的运用在这个程序这可能要多次使用,主要在一个函数拥有多个变量或变量函数。
三、算法的设计
这个程序我是采用类以及函数的调用来写的。
先写一个tong类,在tong类中声明所需要的函数,classtong{
tong();
tong(charco[20],charn[20],chardw[20],doublepr,intqu);
~tong();
voidSet();何让自己设计的软件运用到具体的实际工作中,这是一个关键的环节.还有就是程序设计和运行测试中遇到的问题该如何解决,从解决问题中我也学到了许多平时课本上所没有的知识.当然,能够完成这个商品销售统计我自己也感觉很有成就感.
运用到的开发工具和软件技术:
此系统结合商品销售统计的要求,对C++、C语言的学习和应用,主要完成商品销售统计的分析,设计和实现,系统的设计,主控程序设计,并由此设计了类结构和应用程序。
系统运行结果证明,设计的商品销售统计可以满足商品管理者完成管理的日常工作,包括商品销售以及商品信息的管理等
软件还需要哪些改进:
在编写源程序代码的过程中对语言的运用还需要提高,应使写出来的程序更加简洁,易读懂,更加满足实际工作的需要.要想使做出来的程序更好的利用还需根据实际需要在今后的运用中不断的改进和完善.
七、代码附录
#include<>
#include<>
#include<>
#definenull0
#include
#include
#include//控制字符串的头文件
usingnamespacestd;
classtong
{
public:
tong();
tong(charco[20],charn[20],chardw[20],doublepr,intqu);
~tong();
voidSet();//商品信息录入
voidAlter();//商品信息修改
voiddelete1();//商品信息删除
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:
:
delete1()//商品信息删除
{
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')
delete1();
elsereturn;
}
voidtong:
:
list()//商品信息显示
{
cout<<"=========================================================="<cout<<"===================所有商品信息==================="<cout<<"=========================================================="<cout<<"货品代码=======货品名称======货品价格======货品数量======计量单位"<if(i==0)
cout<<"系统中没有录入商品信息或该商品信息已被删除!
"<for(intk=0;k
cout<code<name<price<quantity<danwei<}
}
voidtong:
:
buy()//商品买入
{
cout<<"请输入你想购买的商品的代码及名称:
"<cin>>code>>name;
cout<<"请输入您想购买的商品的数量:
"<cin>>quantity;
Checkout(quantity);
Display();
Total();
}
voidtong:
:
Display()
{
cout<<"货品代码=======货品名称======货品价格======购买数量======计量单位=====小计(元)=="<cout<code
<quantity
<name
<price
<quantity
<danwei
<}
floattong:
:
Checkout(intquantity)//单个商品小结
{
intk=0;
floatsum;
sum=s[k]->price*quantity;
returnsum;
}
voidtong:
:
Total()//总结帐
{
floatsum=0;
floatreal;
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>>real;
cout<<"应该找回你"<"<}
voidcaozuo1(intp){
tongt;
switch(p){
case0:
();break;
case1:
();break;
case2:
();break;
case8:
exit(0);break;
}
}
voidcaozuo2(intp){
tongt;
switch(p){
case0:
();break;
case1:
();break;
case8:
exit(0);break;
}
}
voidmain()
{
inta;
charw;
cout<<"***************************************************"<cout<<"***************************************************"<cout<<"\n"<cout<<"*------------欢迎进入商品销售统计系统-------------*"<cout<<"\n"<cout<<"***************************************************"<cout<<"***************************************************"<do{
cout<<"请选择您的操作:
商品信息管理系统(M)商品销售系统(S)"<cin>>w;
cout<<"*---------------------菜单选项--------------------*"<cout<<"*-------------------------------------------------*"<cout<<"\n"<if(w=='M'||w=='m'){
cout<<"商品信息录入(请输入0)修改信息(请输入1)删除信息(请输入2):
"<cin>>a;
caozuo1(a);
}
elseif(w=='S'||w=='s')
{
cout<<"显示商品信息(请输入0)商品买入(请输入1)"<cin>>a;
caozuo2(a);
}
else
{
cout<<"请输入'M'、'm'或'S'、's'"<cout<<"您想继续进行其他操作吗?
(y/n)"<cin>>w;
}while(w=='y');
}
课程设计评分表
学生姓名班级:
学号:
课程设计题目:
项目内容
满分
实评
选
题
能结合所学课程知识、有一定的能力训练。
符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
10
理论依据充分,数据准确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能体现创造性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范准确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总分
100
指导教师评语:
指导教师签名:
年月日