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

📄 keshe.cpp

📁 利用C++编写的银行存储管理系统! 这是我们课程设计的 可能还要稍作修改
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <ctype.h>
#include <string.h>
#define NULL 0
struct person
{
     int accounts;                                                    //开户帐号
     char name[10];                                                   //姓名
     float money;                                                     //开户的金额
};
struct tran
{
     int number;
     char trantype;
     float money1;
};
void Addperson();                                                     //=====函数声明============
void Exchange();
void Dispaly();
void Collect();
void Delperson();
void main()                                                           //=====main()函数==========
{
     int choose;
     while(choose!=6)
     {
         printf("\t\t==============================================\n");
         printf("\t\t*       银 行 活 期 帐 户 储 蓄 管 理        *\n");
		 printf("\t\t==============================================\n");
         printf("\t\t*           1、追  加  新  帐  户            *\n");
         printf("\t\t*           2、存  款  /   取  款            *\n");       
         printf("\t\t*           3  汇              总            *\n");
		 printf("\t\t*           4、注  销  老  帐  户            *\n");
         printf("\t\t*           5、清              屏            *\n");
		 printf("\t\t*           6、退              出            *\n");
         printf("\t\t==============================================\n");
         printf("请选择您要进行的操作:");
         scanf(" %d",&choose);
     switch(choose)
     {
     case 1:
         Addperson();break;
     case 2:
         Exchange(); break;
     case 3:
         Collect();break;
     case 4:
         Delperson(); break;
     case 5:
          system("cls");break;
	 default:
         exit(0);
     }
     }
}
void Addperson()
{
     FILE *fp;
     char flag='y';
     struct person people[10];
	 int i,n;
     if((fp=fopen("file1.txt","w"))==NULL)
     {
         printf("\n=======    您的操作有误,请重新输入!    =======\n");
         getchar();
         return;
     }
     while(flag=='y')
     {         
		 printf("请您输入您要新开帐户数:");
		 scanf("%d",&n);
		 for(i=0;i<n;i++)
		 {
			 system("cls");
			 printf("\n 输入帐号:");
			 scanf("%d",&people[i].accounts);
			 printf("\n 请输入户主姓名:");
			 scanf("%s",&people[i].name);
			 printf("\n 请输入开户的金额:");
			 scanf("%f",&people[i].money);
			 fwrite(&people[i],sizeof(struct person),1,fp);
			 getchar();
			 printf("\n 是否继续(y/n)?:");
			 scanf(" %c",&flag);
		 }
     }
     fclose(fp);
}
void Exchange()
{
     FILE *fp1,*fp2;
     char flag='y',letter,flag1;
     struct person people;
     struct tran people2;
     int size=sizeof(struct person);
     if((fp1=fopen("file1.txt","a+f"))==NULL)
     {
         printf("\n=======    您的操作有误,请重新输入!    =======\n");
         getchar();
         exit(0);
     }
     if((fp2=fopen("trans.dat","a+f"))==NULL)
     {
         printf("\n=======    您的操作有误,请重新输入!    =======\n");
         getchar();
         return;
     }
     while(flag=='y')
     {
         system("cls");
         printf("\n请输入您的帐号:");
         scanf("%d",&people2.number);
         letter='n';
         flag1='n';
         rewind(fp1);
         while((fread(&people,size,1,fp1))==1 && letter=='n')
         {
               if(people.accounts==people2.number)
               {
                   letter='y';
                   break;
               }
         }
         if(letter=='y')
         {
               while(flag1=='n')
               {
                   printf("\n 请选择您的交易方式  存款/取款(D/W)?:");
                   scanf(" %c",&people2.trantype);
                   if(people2.trantype!='D'&&people2.trantype!='d'&&people2.trantype!='w'&&people2.trantype!='W')
                   {
                       printf("\n=======    您的操作有误,请重新输入!    =======\n");
                   }
                   else
                   {
                       flag1='y';
                   }
               }
                   flag1='n';
                   while(flag1=='n')
                   {
                       printf("\n 请输入您要存款/支取的金额:");
                       scanf("%f",&people2.money1);
                       if(people2.trantype=='w'||people2.trantype=='W')
                       {
                             if(people2.money1>people.money)
                             {
                                 printf("\n *** 您的余额为:%.2f. \n***金额不足!重新输入 ***",people.money);
                             }
                             else
                             {
                                 people.money-=people2.money1;
                                 flag1='y';
                             }
                       }
                       else
                       {
                             people.money+=people2.money1;
                             flag1='y';
                       }
                   }
                   fwrite(&people,sizeof(struct tran),1,fp2);
                   fseek(fp1,(long)(-size),1);
                   fwrite(&people,size,1,fp1);
               }
               else
               {
                   printf("\n    **** 该帐号不存在! ****\n");
               }
               printf("\n 是否继续交易?y/n:");
               scanf(" %c",&flag);
         }
         fclose(fp1);
         fclose(fp2);
         getchar();
     }
void Collect()
{
     struct person people2[10];
	 int i;
     FILE *fp;
     fp=fopen("file1.txt","r");
     if(fp!=NULL)
     {     
         printf("%-15s%-15s%-15s\n","帐号","姓名","金额");
		 for(i=0;i<10;i++)
         while(fread(&people2[i],sizeof(struct person),1,fp))                //fread(buffer,size,count,fp);
         {
               printf("\n%-15d",people2[i].accounts);
               printf("%-15s",people2[i].name);
               printf("%-15.2f\n",people2[i].money);
         }
     }
     fclose(fp);
}
void Delperson()
{ 
	FILE *fp;
    char flag='y';int number;
    while(flag=='y')
    {
		 int i,j;
		 if((fp=fopen("file1.txt","r"))==NULL)
		 {
			 printf("\n=======    您的操作有误,请重新输入!    =======\n");
			 getchar();
			 return;
		 }
		 struct person people3[20];
         system("cls");
         printf("\t请输入要注销的帐户号:");
         scanf("%d",&number);
		 for(j=0,i=0;!feof(fp);i++,j++)
		 {
			 fseek(fp,i*sizeof(struct person),0);
			 fread(&(people3[j]),sizeof(struct person),1,fp);
			 if(people3[j].accounts==number)
			 {
				 j--;
				 printf("\n\t该帐户已经成功注销!\n");
			 }
		 }
		 if(i==j)
			 printf("\n\t 对不起!您的帐号输入错误或不存在该帐户!\n");
		 fclose(fp);
		 fp=fopen("file1.txt","w");       
		 for(j=j-1,i=0;j>=0;i++,j--)			 
			 fwrite(&(people3[j]),sizeof(struct person),1,fp);
		 fclose(fp);
         printf("\n 是否继续注销帐户(y/n)?:");
         scanf(" %c",&flag);
		 getchar();
     }   
}

⌨️ 快捷键说明

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