系统是我东拼西凑出来的,除了<6>没做出来以外系统运行没有问题。但我还是想知道系统本身的问题有没有多余的东西之类的,希望有缘人能帮忙指出。(万分感谢!PS:当然,要是能教我<6>怎么做就更好了(尺v尺) )
#include<stdio.h>
#include<string.h>
int kyan(); //卡号验证
int SFZ(); //身份证验证
void qukuan(); //取款函数
void cunkuan(); //存款函数
void xiaohu(); //销户函数
void kaihu(); //开户函数
void chaall(); //统计所有用户数
void sfzt(); //单个身份证注册用户总数
char kUser[100][32]; //卡号
char Xm[100][32]; //用户姓名
char Sfzh[100][32]; //用户身份证号
char theday[100][32]; //开卡日期
float YuE[100]; //存款余额
int UserShu=0; //开卡数
int sfzs=0; //身份证号数
void main()
{
int zhiling; //命令
while(1)
{
printf(" ================================================================ \n");
printf("|| ||\n");
printf("|| <1> 取款 <4> 销户 ||\n");
printf("|| <2> 存款 <5> 统计所有用户数 ||\n");
printf("|| <3> 开户 <6> 单个身份证注册用户总数 ||\n");
printf("|| ||\n");
printf("|| ||\n");
printf(" ================================================================ \n");
printf("请输入您的指令: ");
scanf("%d",&zhiling);
printf("\n");
switch(zhiling)
{
case 1: //取款
qukuan();
break;
case 2: //存款
cunkuan();
break;
case 3: //开户
kaihu();
break;
case 4: //销户
xiaohu();
break;
case 5: //统计所有用户数
chaall();
break;
case 6: //单个身份证注册用户总数
sfzt();
break;
}
}
}
void qukuan() //取款
{
int i;
float n;
i=kyan();
printf("请输入您的取款金额: ");
scanf("%f",&n);
if(n<=YuE[i])
{
printf("请取走您的钞票。\n");
YuE[i]=YuE[i]-n;
}
else
printf("您的余额不足,请重新输入。\n");
}
void cunkuan() //存款
{
int i;
float n;
i=kyan();
printf("请输入您的存款金额: ");
scanf("%f",&n);
YuE[i]=YuE[i]+n;
printf("存款成功!");
printf("您的当前余额为: %.2f\n",YuE[i]);
}
void kaihu() //开户
{
int i,n=UserShu,j=0;
float m;
char User[32],xm[32];
char Sfz[32],thedays[32];
printf("请输入您的卡号: ");
getchar();
scanf("%s",User);
for(i=0;i<n+1;i++)
{
if(strcmp(User,kUser[i])==0)
{
printf("该卡号已存在\n");
break;
}
else
{
strcpy(kUser[UserShu],User);
while(j!=1)
{
printf("请输入您姓名: ");
scanf("%s",xm);
printf("请输入您的身份证号: ");
scanf("%s",Sfz);
printf("请输入您的开卡日期: ");
scanf("%s",thedays);
printf("请输入您的存款金额: ");
scanf("%f",&m);
strcpy(Xm[UserShu],xm);
strcpy(Sfzh[UserShu],Sfz);
strcpy(theday[UserShu],thedays);
YuE[UserShu]=m;
j=1;
}
}
UserShu++;
break;
}
}
void xiaohu() //销户
{
int i,n,m;
i=kyan();
m=SFZ();
while(1)
{
printf("您确定要注销您的账户?\n <1>确认 <2>取消 \n");
scanf("%d",&n);
if(n==1)
{
for(;i<UserShu;i++)
{
strcpy(kUser[i],kUser[i+1]);
strcpy(Sfzh[i],Sfzh[i+1]);
YuE[i]=YuE[i+1];
}
}
UserShu--;
printf("销户成功!\n");
m=0;
break;
}
}
void chaall() //统计所有用户数
{
int i;
for(i=0;i<UserShu;i++)
i+1;
printf("总用户数:%d\n",i);
}
void sfzt() //单个身份证注册用户总数
{
int i;
i=SFZ();
printf("总用户数:%d\n",i);
}
int kyan() //卡号验证
{
int m=1,i;
char User[32];
while(m==1)
{
printf("请输入您的卡号: ");
scanf("%s",User);
for(i=0;i<UserShu;i++)
if(strcmp(kUser[i],User)==0)
{
m=0;
break;
}
if(i==UserShu)
printf("该用户不存在,请确认后再输入。 \n");
}
return i;
}
int SFZ()
{
int m=1,i;
char sfz[32];
while(m==1)
{
printf("请输入您的身份证号: ");
scanf("%s",sfz);
for(i=0;i<UserShu;i++)
if(strcmp(Sfzh[i],sfz)==0)
{
m=0;
break;
}
else
printf("您输入的身份证不正确,请重新输入。\n");
}
return i;
}
能教我<6>怎么做吗?(尺v尺)
这个统计所有用户数的函数有问题的,for循环里 i+1; 是干嘛呢?
void chaall() //统计所有用户数
{
int i;
for(i=0;i<UserShu;i++)
i+1;
printf("总用户数:%d\n",i);
}
<6> 单个身份证注册用户总数 ,是想统计用身份证注册的用户数?
同一身份证是可以注册多个账户的,我想通过输入身份证,统计这一个身份证注册了多少个账户。
for循环里 i+1 额,应该是顺手打上去了,回头就改过来。谢谢指出