这个爱心捐款包含添加和查找功能,需要有捐款人的捐款时间 姓名 金额 捐款形式 备注;
执行程序会自动在D盘根下生成 1.txt 文件,想找到自己做完的文件去D盘找就ok了;
注意:在D盘下的 1.txt 文档中添加要保证每一个人占一行,捐款时间顶格写,以后的每一项要空一格写入;
#include <iostream>
using namespace std;
#include <fstream>
#include <cstdlib>
#include <cstring>
#define FILE_IN "D:\\1.txt"
#define FILE_OUT "D:\\1.txt"
class Person
{
public:
char day[20];
char name[20];
long double money;
char type[10];
char ps[100];
void print()
{
cout<<" 捐款日期:"<<day<<" 姓名:"<<name<<" 捐款金额:"<<money<<" 捐款形式:"<<type<<" 备注:"<<ps<<endl<<endl<<endl;
}
}jl[10000];
int z;
int jc(int x,int y)
{
int sum=1;
for(int i=0;i<x;i++)
{
sum*=y;
}
return sum;
}
void add() //添加功能
{
Person a;
ofstream output(FILE_OUT,ios::app);
cout<<" 没有信息项填“0”!"<<endl;
cout<<"请输入捐款日期(格式例:2016.7.8):";cin>>a.day;output<<a.day<<' ';
cout<<"请输入姓名:";cin>>a.name;output<<a.name<<' ';
cout<<"请输入金额:";cin>>a.money;output<<a.money<<' ';
cout<<"请输入捐款形式(含有微信支付--现金--银行转账):";cin>>a.type;output<<a.type<<' ';
cout<<"备注(限50个字):";cin>>a.ps;output<<a.ps<<' ';
output<<endl;
output.close();
cout<<endl<<endl;
}
void search() //查找功能
{
char sname[20];
cout<<"请输入你要查找的姓名:";
cin>>sname;
char b[200];
int t=0;
ifstream input;
input.open(FILE_IN,ios::in);
int i,k,l,p,y,j,g;
while(!input.eof()) //将文件中的每一行分离出来
{
input.getline(b,sizeof(b));
for(i=0;i<strlen(b);i++) //从这个for循环开始,每一个for循环将每一项分离出来
{
if(b[i]==' ')
{
for(int j=0;j<i;j++)
{
jl[t].day[j]=b[j];
}
break;
}
}
for(k=i+1;k<strlen(b);k++)
{
if(b[k]==' ')
{
for(j=i+1,g=0;j<k;j++,g++)
{
jl[t].name[g]=b[j];
}
break;
}
}
for(l=k+1;l<strlen(b);l++)
{
if(b[l]==' ')
{
for(j=k+1;j<l;j++)
{
jl[t].money+=(double)(b[j]-'0')*jc((l-j-1),10);
}
break;
}
}
for(p=l+1;p<strlen(b);p++)
{
if(b[p]==' ')
{
for(j=l+1,g=0;j<p;j++,g++)
{
jl[t].type[g]=b[j];
}
break;
}
}
for(y=p+1,g=0;y<strlen(b);y++,g++)
{
jl[t].ps[g]=b[y];
}
t++;
} //到这结束 将所有项分离完
int len,len1,js;
int aaa=1; //一个开关,如果没有就变 aaa=0
for(i=0;i<t-1;i++) //从分离出的姓名进行循环,查找
{
len=strlen(sname);
len1=strlen(jl[i].name);
if(len1>len)
{
len=len1;
}
js=0;
for(y=0;y<len;y++)
{
if(sname[y]==jl[i].name[y])
js++;
}
if(js==len)
{
cout<<"序号:"<<i+1;
jl[i].print();
aaa=0;
}
}
if(aaa)
{
cout<<"没有这位朋友!"<<endl;
}
z=t;
cout<<"现在的总捐款人数:"<<z-1<<endl<<endl<<endl;
}
int main()
{
cout<<" *+--------+*"<<endl;
cout<<" |爱心捐款|"<<endl;
cout<<" __+--------+__"<<endl;
cout<<" 添加请按“1”"<<endl;
cout<<" 查找请按“2”"<<endl;
cout<<" 结束操作请按“0”"<<endl<<endl;
cout<<"------------------------------------------------------------"<<endl;
cout<<" 您的选择是:";
int k;
cin>>k;cout<<endl;
while(1)
{
switch(k)
{
case 1:add();break;
case 2:search();break;
case 0:exit(0);break;
}
cout<<"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"<<endl;
cout<<" *+--------+*"<<endl;
cout<<" |爱心捐款|"<<endl;
cout<<" __+--------+__"<<endl;
cout<<" 添加请按“1”"<<endl;
cout<<" 查找请按“2”"<<endl;
cout<<" 结束操作请按“0”"<<endl<<endl;
cout<<"------------------------------------------------------------"<<endl;
cout<<" 您的选择是:";
cin>>k;cout<<endl;
}
}

1745

被折叠的 条评论
为什么被折叠?



