编一个统计程序需要什么?

编一个统计程序需要什么?,第1张

简单的统计程序 只需要用excel写vba程序即可,入门上手相对于其他编程语言来说会比较简单,比如不需要装各种环境开发工具数据库等。只需要装带宏功能的完整excel,网络上关于vba的资源也很多。

#include<iostream>

#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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12016656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存