#include<cstring>
#include<fstream>
#include<stdlib.h>//system("cls")//清屏
#include<conio.h>//getche()
using namespace std
//全局变量
int i=0//已录入商品总个数
char ch//cin>>ch
int n//case(n)
char code[10]
char name[10]
char unit[10]
int amount
float unitprice
float total=0//总价
ofstream f1("./test.txt")
ofstream f2("./sell.txt")//构建输出流,没有文件就建立
class Goods
{
private:
char code[10]//代码
char name[10]//名称
char unit[10]//单位
int amount//总数
float unitprice//单价
public:
Goods()
Goods(char co[10],char na[10],char un[10],int am,float unpr)//构造函数
void f_write()// 录入
void f_change()//改变
void f_delete()//删除
void display()//显示全部商品信息
void s_buy()//买入
}
//构造函数
Goods::Goods(){}
Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)
{
strcpy(code,co)
strcpy(name,na)
strcpy(unit,un)
amount=am
unitprice=unpr
}
Goods *g[50]
//商品信息录入
void Goods::f_write()
{
cout<<"请输入第"<<i+1<<"件商品代码:"<<endl
cin>>code
cout<<"请输入第"<<i+1<<"件商品名称:"<<endl
cin>>name
cout<<"请输入第"<<i+1<<"件商品计量单位:"<<endl
cin>>unit
cout<<"请输入第"<<i+1<<"件商品总数:"<<endl
cin>>amount
cout<<"请输入第"<<i+1<<"件商品单价:"<<endl
cin>>unitprice
g[i]=new Goods(code,name,unit,amount,unitprice)
i++
cout<<"信息录入成功!(继续录入按y,返回上一层按n)"<<endl
cin>>ch
if(ch=='y')
{
f_write()
}
}
//改变商品信息
void Goods::f_change()
{
cout<<"请输入要改变的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"商品信息如下:"<<endl
cout<<"代码 名称 单价 总数 单位"<<endl
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<"\t"<<g[h]->unit<<endl
char newco,newna,newun
int newam
float newunpr
cout<<"你想要修改:1、代码;2、名称;3、单价;4、总数;5、单位。"<<endl
cin>>n
switch(n)
{
case 1:
cout<<"请输入修改后的商品代码:"
cin>>newco
g[h]->code[10]=newco
cout<<"修改成功!"<<endl
break
case 2:
cout<<"请输入修改后的商品名称:"
cin>>newna
g[h]->name[10]=newna
cout<<"修改成功!"<<endl
break
case 3:
cout<<"请输入商品单价:"
cin>>newunpr
g[h]->unitprice=newunpr
cout<<"修改成功!"<<endl
break
case 4:
cout<<"请输入修改后的商品总数:"
cin>>newam
g[h]->amount=newam
cout<<"修改成功!"<<endl
break
case 5:
cout<<"请输入修改后的商品单位:"
cin>>newun
g[h]->unit[10]=newun
cout<<"修改成功!"<<endl
break
}
break
}//if
}//for循环
cout<<"是否继续修改?(y/n)"<<endl
cin>>ch
if(ch=='y')
{
f_change()
}
}
//删除信息
void Goods::f_delete()
{
cout<<"请输入要删除的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
for(int k=hk<ik++)
{
g[k]=g[k+1]
i--
}
}
}
cout<<"删除成功!"<<endl
cout<<"是否继续删除?(y/n)"<<endl
cin>>ch
if(ch=='y')
{
f_delete()
}
}
//打印信息
void Goods::display()
{
system("cls")
cout<<""<<endl
cout<<"-----------全部商品信息如下-------------------"<<endl
cout<<""<<endl
cout<<"代码 名称 单价 总数 单位"<<endl
f1<<""<<endl
f1<<"---------------全部商品信息如下--------------"<<endl
f1<<""<<endl
f1<<"代码 名称 单价 总数 单位"<<endl
if(i==0)
{
cout<<"系统未曾录入任何商品信息,或记录被删除!"
}
for(int k=0k<ik++)
{
cout<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl
f1<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl
}
cout<<endl
}
//买入
void Goods::s_buy()
{
float price=0//单个商品价格
cout<<"请输入想要买的商品代码:"
cin>>code
for(int h=0h<ih++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"请输入想要购买的商品数量:"
cin>>amount//当前要购买的数量
price=amount*g[h]->unitprice
g[h]->amount=g[h]->amount-amount
cout<<endl
cout<<"代码 名称 单价 数量 小计"<<endl
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl
f2<<"代码 名称 单价 数量 小计"<<endl
f2<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl
total=total+price
break
}
}
cout<<"按1继续购买,按2结束。"<<endl
cin>>n
if(n==2)
{
cout<<endl
cout<<"购买结束,总计:"<<total<<"元!"<<endl
}
else
{
s_buy()
}
}
//类外函数
//第一部分 *** 作显示
void f_screen()
{
system("cls")
Goods g
cout<<"按相应键 *** 作:"<<endl
cout<<"0.录入信息1.更改信息2.删除信息3.返回上一层"<<endl
cin>>n
switch(n)
{
case 0:
g.f_write()
if(ch=='n'||ch=='N')
f_screen()
break
case 1:
g.f_change()
if(ch=='n'||ch=='N')
f_screen()
break
case 2:
g.f_delete()
if(ch=='n'||ch=='N')
f_screen()
break
}
}
//第二部分 *** 作显示
void s_screen()
{
Goods g
g.display()
cout<<endl
g.s_buy()
}
//初始屏幕显示
void screen()
{
system("cls")
cout<<""<<endl
cout<<"-----------------商品销售统计系统---------------"<<endl
cout<<""<<endl
f2<<""<<endl
f2<<"----------------商品销售统计系统--------------"<<endl
f2<<""<<endl
cout<<"更改商品信息请按1,进行销售统计请按-1。"<<endl
cin>>ch
if(ch=='1')
{
f_screen()
if(n==3)
screen()
}
else if(ch=='-1')
{
s_screen()
}
else
{
cout<<"输入错误,系统重新启动!"
screen()
}
}
int main()
{
screen()
return 0
}
#include<stdio.h>
void
main()
{
int
i,
n,
reno
float
score[30],
avr,
a,
b,
c
char
name[30][9]
for(i
=
0
i
<
30
i++)
{
printf("%d号的成绩:",
i+1)
scanf("%f",
&score[i])
if(score[i]
<
0)
break
printf("%d号的姓名:",
i+1)
scanf("%s",
name[i])
}
n
=
i
printf("统计不及格人数:\n")
reno
=
0
avr
=
0
for(i
=
0
i
<
n
i++)
{
if(
score[i]
<
60)
{
reno++
printf("%d,
%s\n",
i+1,
name[i])
}
avr
+=
score[i]
}
printf("不及格人数为%d\n\n",
reno)
printf("统计成绩在平均分及平均分之上的学生人数:\n")
avr
/=
nreno
=
0
for(i
=
0
i
<
n
i++)
{
if(score[i]
>=
avr)
{
reno++
printf("%d,
%s\n",
i+1,
name[i])
}
}
printf("成绩在平均分及平均分之上的学生人数为%d\n\n",
reno)
printf("统计各分数段的人数及所占百分比(分数段为<60,60~79,>=80):\n")
a
=
b
=
c
=0
for(i
=
0
i
<
n
i++)
{
if(score[i]
<
60)
a++
else
if(score[i]
>=
80)
c++
else
b++
}
printf("<60:\t%.1f%%\n60~79:\t%.1f%%\n>=80:\t%.1f%%\n",100*a/n,100*b/n,100*c/n)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)