• 大小: 14KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: C/C++
  • 标签:

资源简介

活期储蓄账目管理系统,实现储户开户、销户、存入、支出等活动。其主要要求是能比较迅速地找到储户的账户,实现存款、取款,还要能比较简单、迅速地实现插入和删除,以实现开户和销户的需要: (1)实现储户开户。开户时需要填写登记卡,记录储户信息(包括姓名和账号),并设置开户余额为0。 (2)实现储户销户。需要先找到储户的账户信息,然后将其删除。 (3)向某账户存款。需要找到账户信息,然后修改账户的余额(原来的余额 + 存入金额)。 (4)从某账户取款。需要找到账户信息,然后修改账户的余额(原来的余额 − 取出金额)。 (5)排序显示所有账户信息。根据账号对所有账户信息排序。 (6)查询某账户余额。找到要查找的账户,然后显示账户余额。 (7)查询某账户交易记录。找到要查询的账户,然后显示该账户的交易记录。 (8)所有账户及其交易信息存储至文件,程序运行时从文件中读入。

资源截图

代码片段和文件信息

#include  
#include 
#include 
#define initnumber 10001 //开户账号
typedef struct account{
    int account;          //账户号 
    char username[9];     //户名 
    char password[6];    //密码 
    float balance;       //余额 
    int status;          //账户状态 
}Elem;
void display(Elem *x);          //显示
int save(Elem* elem);           //保存
float getmoney1(); //金额限制1
float getmoney2(float i); //金额限制2
Elem* getN(int number); //获取账号
void Exit(); //退出
void deposit(); //存款
void withdraw(); //取款
void openAcount(); //开户
void closeAcount(); //销户
void query(); //查询
void QueryAll(); //查询全部
void record();                  //交易记录 
void mainmenu(); //系统菜单
void display(Elem *x) { //显示
    char *zt;
if(x->status==0)
        zt=“正常“;
    else
        zt=“销户“;
printf(“\t\t\t+----------------------------------------------+\n“);
printf(“\t\t\t|    帐号|    户名|    密码|      余额|    状态|\n“);    
    printf(“\t\t\t|%8d|%8s|%8s|%10.1f|%8s|\n“x->accountx->usernamex->passwordx->balancezt);
}
int save(Elem* elem){
    Elem* nap=(Elem*)malloc(sizeof(Elem));
    int flag=0count=0;
    FILE *fp;
    fp=fopen(“bank““rb+“);
    if(fp!=NULL){
        while(!feof(fp)){
            count=fread(napsizeof(Elem)1fp);
            if(count>0){
                if(elem->account==nap->account){
                    fseek(fp-((long)sizeof(Elem))1);
                    fwrite(elemsizeof(Elem)1fp);
                    flag=1;
                    break;
                }
            }
        }
        fclose(fp);
    }
    return flag;
}

float getmoney1(){ //金额限制1
    float money=-1;
    while(1){
        scanf(“%f“&money);
        fflush(stdin);
        if(money<=0){
            printf(“您输入的金额小于等于0!请从新输入......\n“);
            continue;
        }else
            break;
    }
    return money;
}
float getmoney2(float i){ //金额限制2
    float money=-1;
    while(1){
        scanf(“%f“&money);
        fflush(stdin);
        if(money<=0){
            printf(“您输入的金额小于等于0!请从新输入......\n“);
            continue;
        }
        else{
            if(money<=i)   break;
            else{
                printf(“您的帐号余额已经不足您本次的取款!\n“);
                getchar();
                mainmenu();
            }
        }
    }
    return money;
}

Elem* getN(int number){ //获取账号
    Elem *elem=(Elem*)malloc(sizeof(Elem));
    Elem *tmp=(Elem*)malloc(sizeof(Elem));
    int flag=0count=0;
    FILE *fp;
    fp=fopen(“bank““rb“);
    if(fp!=NULL){
        while(!feof(fp)){
            count=fread(tmpsizeof(Elem)1fp);
            if(count>0){
                if(tmp->account==number){
                    flag=1;
                    break;
                    
                }
            }
        }
        fclose(fp);
        if(flag){
            elem->account=tmp->account;
            strcpy(elem->usernametmp->us

评论

共有 条评论