修改C语言程序源码的void add()实现文件存储
本人菜鸟,每次运行都要添加,希望大神在输入用户时可以存储在一个TXT上,下次可以读取,在需要的地方加上指针操作#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define w 1.8/*水1.8元/吨*/
#define e 0.5/*电0.5元/度*/
#define g 2.1/*气2.1元/立方*/
struct user
{
char name[10],ID[20];/*用户的姓名和身份证号码*/
double water,electricity,gas;/*用水(吨)、电(度)量,气量(立方)*/
double money;/*总共的水电费用*/
}
u[100];/*用户最大容量为100*/
/*显示用户信息*/
void display()
{
int n;/*确定当前用户的人数*/
int i;
for(n=0;n<100;n++)
if(u[n].money==0) break;
if(n==0)
printf("系统无用户,需要添加!^_^\n");
else
for(i=0;i<n;i++)
printf("\n编号:%dID:%s",i+1,u[i].ID);
printf("\t姓名:%s\t\n",u[i].name);
printf("\t用水量:%.1f吨",u[i].water);
printf("\t用电量:%.1f度",u[i].electricity);
printf("\t用气量:%.1f立方\t\n",u[i].gas);
}
/*添加用户*/
void add()
{
int n;/*确定当前用户的人数*/
for(n=0;n<100;n++)
if(u[n].money==0) break;
printf("\t\t\t请输入新用户的姓名:");
scanf("%s",u[n].name);
printf("\t\t\t请输入新用户的ID(18位):");
scanf("%s",u[n].ID);
printf("\t\t\t请输入新用户的用水量:");
scanf("%lf",&u[n].water);
printf("\t\t\t请输入新用户的用电量:");
scanf("%lf",&u[n].electricity);
printf("\t\t\t请输入新用户的用气量:");
scanf("%lf",&u[n].gas);
u[n].money=(u[n].water)*w+(u[n].electricity)*e+(u[n].gas);
printf("\n添加成功!\n");
}
/*修改用户信息*/
void alter()
{
char name[10];
int n;/*确定当前用户的人数*/
int i;
printf("\t\t\t请输入您的姓名:");
scanf("%s",name);
for(n=0;n<100;n++)
if(u[n].money==0) break;
for(i=0;i<n;i++)
if(strcmp(u[i].name,name)==0){
int choice=0;
printf("\n\t\t\t1.修改ID\n\t\t\t2.修改用水量\n\t\t\t3.修改用电量\n\t\t\t4.修改用气量\n\t\t\t5.退出\n");
printf("\n\t\t\t请输入您的选择:");
GOTO1:scanf("%d",&choice);
switch(choice)
{
case 1:
printf("\n\t\t\t请输入ID:");
scanf("%s",u[i].ID);
break;
case 2:
printf("\n\t\t\t请输入用水量:");
scanf("%lf",&u[i].water);
break;
case 3:
printf("\n\t\t\t请输入用电量:");
scanf("%lf",&u[i].electricity);
break;
case 4:
printf("\n\t\t\t请输入用气量:");
scanf("%lf",&u[i].gas);
break;
case 5:
break;
default:
printf("\t\t\t输入错误,请重新输入:");
goto GOTO1;
}
printf("\n修改成功!\n");
break;
}
if(i==n)
printf("\n\t\t\t没有此用户,您可以选择注册新用户^_^!\n");
}
/*删除用户*/
void delete_()
{
int n,i=0,j;
for(n=0;n<100;n++)
if(u[n].money==0) break;
display();
printf("\n\t\t\t请输入要删除用户对应的编号:");
scanf("%d",&i);
for(j=i-1;j<n;j++){
strcpy(u[j].name,u[j+1].name);
u[j].electricity=u[j+1].electricity;
strcpy(u[j].ID,u[j+1].ID);
u[j].money=u[j+1].money;
u[j].water=u[j+1].water;
}
u[n-1].money=0;
printf("删除成功!^_^\n");
}
/*用户管理*/
void m_user()
{
int choice=0;
GOTO2:system("cls");
printf("\t\t\t---------------------\n");
printf("\t\t\t| 用户管理^_^ |\n");
printf("\t\t\t---------------------\n\n\n");
printf("\n\t\t\t1.显示用户信息\n\t\t\t2.添加用户\n\t\t\t3.修改用户信息\n\t\t\t4.删除用户信息\n\t\t\t5.退出");
printf("\n\t\t\t请输入您的选择:");
GOTO3:scanf("%d",&choice);
switch(choice)
{
case 1:
display();
system("pause");
goto GOTO2;
case 2:
add();
system("pause");
goto GOTO2;
case 3:
alter();
system("pause");
goto GOTO2;
case 4:
delete_();
system("pause");
goto GOTO2;
case 5:
break;
default:
printf("\t\t\t输入有误,请重新输入:");
goto GOTO3;
}
}
/*收费管理*/
void m_fee()
{
int n,i,choice=0;
double w_sum=0,e_sum=0,g_sum=0;
GOTO4:system("cls");
printf("\t\t\t---------------------\n");
printf("\t\t\t| 收费管理^_^ |\n");
printf("\t\t\t---------------------\n\n\n");
for(n=0;n<100;n++)
if(u[n].money==0) break;
printf("\n\t\t\t1.用户费用信息查询\n\t\t\t2.总水费\n\t\t\t3.总电费\n\t\t\t4.总气费\n\t\t\t5.总费用\n\t\t\t6.退出\n");
printf("\n\t\t\t请输入您的选择:");
GOTO5:scanf("%d",&choice);
switch(choice)
{
case 1:
if(n==00)
printf("\n\t\t\t系统无注册用户!\n");
else
for(i=0;i<n;i++){
printf("\n\t姓名:%s",u[i].name);
printf("\t水费:%.2f元",(u[i].water)*w);
printf("\t电费:%.2f元",(u[i].electricity)*e);
printf("\t气费:%.2f元",(u[i].gas*g));
printf("\t缴纳的总费用:%.2f元\n",u[i].money);
w_sum+=u[i].water*w;
e_sum+=u[i].electricity*e;
g_sum+=u[i].gas*g;
}
system("pause");
goto GOTO4;
case 2:
printf("\n\t\t\t系统用户缴纳的总水费:%.2f元\n",w_sum);
system("pause");
goto GOTO4;
case 3:
printf("\n\t\t\t系统用户缴纳的总电费:%.2f元\n",e_sum);
system("pause");
goto GOTO4;
case 4:
printf("\n\t\t\t系统用户缴纳的总气费:%.2f元\n",g_sum);
system("pause");
goto GOTO4;
case 5:
printf("\n\t\t\t系统用户缴纳的总费用:%.2f元\n",w_sum+e_sum);
system("pause");
goto GOTO4;
case 6:
printf("管理完毕!\n");
break;
default:
printf("\n\t\t\t输入错误,请重新输入:");
goto GOTO5;
}
}
/*主函数*/
void main()
{
GOTO6:system("cls");
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\t\t\t %s\t\t\t\n", asctime (timeinfo) );
int choice=0;
printf("\t\t\t-----------------------------------\n");
printf("\t\t\t| 欢迎进入水电费管理系统^_^ |\n");
printf("\t\t\t-----------------------------------\n\n\n");
printf("\n\t\t\t1.用户管理\n\t\t\t2.收费管理\n\t\t\t3.退出\n");
printf("\n\t\t\t请输入您的选择:");
GOTO7:scanf("%d",&choice);
switch(choice)
{case 1:
m_user();
system("pause");
goto GOTO6;
case 2:
m_fee();
system("pause");
goto GOTO6;
case 3:
break;
default:
printf("\n您的输入有误,请重新输入:");
goto GOTO7;
}
}