⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 051150053.cpp

📁 简单的银行帐户管理,本程序是一个实现银行帐务管理的简单程序
💻 CPP
字号:
#include<stdio.h>
#include<string.h>
 struct bankdata   /*定义一个结构体*/
{ int num;
char name[20];
float balance;
}
create(FILE *ptr)   /*创建具有结构体的空文档*/
{ int  num;
struct bankdata data={-1,"NONAME",0};
for(num=0;num<=15;num++)
{ fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);    /*移动文件指针*/
fwrite(&data,sizeof(struct bankdata),1,ptr);      /*写文件*/
 } 
}
view(FILE *ptr)      /*查看文档内容*/
{int num;
struct bankdata data;
clrscr();         /*清屏函数*/
for(num=0;num<=15;num++)
{ fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);     /*移动文件指针*/
fread(&data,sizeof(struct bankdata),1,ptr);        /*读文件*/
printf("%-10d%-16s%-10f\n",data.num,data.name,data.balance);
 }
}
 add(FILE *ptr)          /*添加一个帐目*/
{int num;
 struct bankdata data;
printf("Enter new account number(0-15):\n");
scanf("%d",&num);           /*提示用户输入帐号*/
fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);     /*移动文件指针*/
fread(&data,sizeof(struct bankdata),1,ptr);         /*读文件*/
if(data.num!=-1)
printf("Account %d already contains information.\n",num);
else
{ printf("Enter name.\n");
scanf("%s",data.name);
printf("Enter balance.\n");
scanf("%f",&data.balance);
data.num=num;         /*提示用户输入信息并存储*/
}
fseek(ptr,data.num*sizeof(struct bankdata),SEEK_SET);     /*移动文件指针*/
fwrite(&data,sizeof(struct bankdata),1,ptr);         /*写文件*/
}
 delete(FILE *ptr)       /*删除一个帐目*/
{ int num;
 int  num2;
int num1[16]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; /*定义数组变量并赋初值*/
char name1[20];
char name2[20];     /*定义数组变量*/
struct bankdata blankdata={-1,"NONAME",0};
struct bankdata data;
printf("Enter delete name.\n");
scanf("%s",name1);
 for(num=0;num<=15;num++)
{ fseek(ptr,num*(sizeof(struct bankdata))+sizeof(int),SEEK_SET);   /*移动文件指针*/ 
fread(name2,20,1,ptr);       /*读文件*/
if(strcmp(name1,name2)==0) num1[num]=num;
}
for(num=0,num2=0;num<=15;num++)  
{ if (num1[num]!=-1)
 { fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);    /*移动文件指针*/ 
   fread(&data,sizeof(struct bankdata),1,ptr);      /*读文件*/
  printf("%-10d%-16s%-10f\n",data.num,data.name,data.balance);
  num2++; 
 }
}
if (num2>1)
{ printf("Which account do you want to delete?\n");
  scanf("%d",&num);
  fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);    /*移动文件指针*/ 
  fwrite(&blankdata,sizeof(struct bankdata),1,ptr);    /*写文件*/
}
if(num2==1)
{fseek(ptr,data.num*sizeof(struct bankdata),SEEK_SET);    /*移动文件指针*/
 fwrite(&blankdata,sizeof(struct bankdata),1,ptr);     /*写文件*/
 }
 if(num2==0) printf("There is no your name.\n");
}
 modify(FILE  *ptr)         /*修改帐目*/
{ int num;
  int num2;
  int num3[16]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
  float num1;
  char  name1[20];
  char  name2[20];
  struct  bankdata  data;
  printf("Enter modify name.\n");
  scanf("%s",name1);
 for(num=0;num<=15;num++)
{ fseek(ptr,num*(sizeof(struct bankdata))+sizeof(int),SEEK_SET);   /*移动文件指针*/
  fread(name2,20,1,ptr);          /*读文件*/
  if(strcmp(name1,name2)==0) num3[num]=num;
}
  for(num=0,num2=0;num<=15;num++)
{ if(num3[num]!=-1)
 {fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);       /*移动文件指针*/
  fread(&data,sizeof(struct bankdata),1,ptr);          /*读文件*/
  printf("%-10d%-16s%-10f\n",data.num,data.name,data.balance);
  num2++;
 }
}
if(num2>1)
{ printf("Which account do you want to modify?\n");
  scanf("%d",&num);
  fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);      /*移动文件指针*/
  fread(&data,sizeof(struct bankdata),1,ptr);           /*读文件*/
  printf("Enter charge(+)or payment(-)\n");
  scanf("%f",&num1);
  data.balance+=num1;
  fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);       /*移动文件指针*/
  fwrite(&data,sizeof(struct bankdata),1,ptr);          /*写文件*/
}
if(num2==1)
 {printf("Enter charge(+)or payment(-)\n");
 scanf("%f",&num1);
 data.balance+=num1;
 fseek(ptr,data.num*sizeof(struct bankdata),SEEK_SET);     /*移动文件指针*/
 fwrite(&data,sizeof(struct bankdata),1,ptr);           /*写文件*/
}  
 if(num2==0) printf("There is no your name.\n");
}
main()
 {FILE *fptr;                          /*定义文件指针*/
  int choice=0;
  if((fptr=fopen("d:\\account.txt","r++"))==NULL)    /*打开文件并判断文件打开状况*/
  printf("File couldn't be opened.\n");            /*提示出错信息*/
 else
{ while(choice!=5)                      /*当用户选择不是退出时*/
  {printf("\nEnter your choice\n"        /*菜单*/
  "0-create account\n"
  "1-view account\n"
  "2-add account\n"
  "3-delete account\n"
  "4-modify account\n"
  "5-quit\n");
  scanf("%d",&choice);            /*提示用户选择功能*/
  switch(choice)                /*根据用户选择调用不同的功能函数*/
 { case 0:create(fptr);
   break;
   case 1:view(fptr);
    break;
   case 2:add(fptr);
     break;
   case 3:delete(fptr);
     break;
   case 4:modify(fptr);
     break;
    } 
  } 
}
  fclose(fptr);              /*关闭文件*/
   getch();
   return(0);
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -