银行账户信息管理系统

一、题目要求

  1. 以银行账户信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;
  2. 完成软件结构设计和算法设计;
  3. 完成系统的软件开发和测试工作;
  4. 撰写设计说明书;

二、需求分析2.1 产品需求概述

2.1.1 功能简介

本产品的开发意图、应用目标及作用范围:本系统针对银行账户信息的特点以及管理中的实际需求而设计,能够有效的实现账户信息管理的信息化,减轻管理人员地工作负担,达到高效率、规模化管理账户信息、避免人为操作的错误和不规范行为。

产品主要功能概述:

 

 

 

 

 

银行账户管理系统

账户信息录入

录入账户、户主姓名、年龄、性别、联系方式

查询账户信息

在已录入信息中查询指定账户

修改账户信息

在已录入信息中修改指定账户信息

显示所有账户信息

浏览所有已录入账户信息

存取款

给指定账户修改余额

删除账户

在已录入信息中删除指定账户信息

添加账户

添加新账户

2.1.2 运行环境

1.硬件环境:

        最低配置:CPU:Pentium3 800以上或其他的兼容规格,内存:256M以上,硬盘:100GB以上空间

        推荐配置:CPU:Pentium4 1.6G,内存:512M以上,硬盘:100GB以上空间

2.软件环境:

        运用VC++6.0编程环境

2.2 功能需求

        本系统主要功能:账户信息录入;查询账户信息;修改账户信息;显示所有账户信息;存取款;删除账户;添加账户

2.2.1账户信息录入

        录入账户、户主姓名、年龄、性别、联系方式。

2.2.2查询账户

        根据用户所输入的账户,在已录入信息中查询指定账户。

2.2.3修改账户信息

        根据用户所输入的账户,在已录入信息中修改指定账户。

2.2.4显示所有账户信息

        浏览所有已录入信息。

2.2.5存取款

        根据用户所输入的账户,给指定账户修改余额。

2.2.6删除账户

        根据用户所输入的账户,在已录入信息中删除指定账户。

2.2.7添加账户

        添加新账户。

2.3 数据描述

本系统是银行账户信息管理系统,采用VC++6.0编译器作为开发环境,输入输出数据类型主要为char,int数据类型。

4392fcd306194879994502bfa6718251.png

图 1 系统数据描述

 

 

三、概要设计

根据对题目的分析,该系统主要包括,账户信息的录入、浏览、查询、删除、修改、存取款、信息保存文件七个模块,每一个模块对应一个函数。保存函数对其他的函数起辅助作用,主函数控制整个程序的运行,除此外还具有退出功能,可以使程序在一次的运行之中循环执行所有的功能,根据需要终止程序,使程序更加的完美。在程序当中将学生数据记录类型定义为结构体类型,函数每次对账户信息的访问,其数据来源都是“message.txt”文件。

3.1 系统体系结构图

9b47f551ea8c462f8c72ea2d57021c63.png

图 2 系统体系结构

3.1.1 模块描述

模块1:录入信息模块

名称

账户信息录入

标识

new_message

子系统名称

信息录入

添加账户

系统

名称

银行账户管理系统

接口说明

输入

账户各项信息

输出

功能说明

录入账户的相关信息,并保存信息到文件

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

被调用模块

模块2:查询信息模块

名称

查询账户信息

标识

search_message

子系统名称

查询账户信息

系统

名称

银行账户管理系统

接口说明

输入

所查询账户

输出

所输入账户的相关信息

功能说明

查询指定账户的相关信息

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

被调用模块

模块3:修改信息模块

名称

修改账户信息

标识

up_message

子系统名称

修改账户信息

系统

名称

银行账户管理系统

接口说明

输入

要修改的账户

输出

所输入账户的相关信息

功能说明

修改指定账户的相关信息

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

保存信息模块

被调用模块

模块4:浏览所有信息模块

名称

显示所有账户信息

标识

play_message

子系统名称

显示所有信息

系统

名称

银行账户管理系统

接口说明

输入

输出

已保存的所有账户的相关信息

功能说明

浏览所有账户的相关信息

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

被调用模块

模块5:存取款模块

名称

存取款

标识

up1_message

子系统名称

存取款

系统

名称

银行账户管理系统

接口说明

输入

要存取款的账户;存取款后账户余额

输出

所输入账户的相关信息

功能说明

修改指定账户的余额

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

保存信息模块

被调用模块

模块6:删除信息模块

名称

删除账户信息

标识

up2_message

子系统名称

删除账户信息

系统

名称

银行账户管理系统

接口说明

输入

要删除的账户

输出

所输入账户的相关信息

功能说明

删除指定账户的相关信息

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

保存信息模块

被调用模块

模块7:信息保存模块

名称

保存信息

标识

save_message

子系统名称

保存信息

系统

名称

银行账户管理系统

接口说明

输入

输出

功能说明

保存信息

运行环境

运行于VC++6.0编程坏境之下

调用关系说明

调用模块

被调用模块

修改信息模块;存取款模块;删除信息模块;

四、详细设计

4.1 系统主要函数说明   

函数名称

函数功能

new_message

录入账户的相关信息

search_message

查询指定账户的相关信息

up_message

修改指定账户的相关信息

up1_message

浏览所有账户的相关信息

up2_message

修改指定账户的余额

play_message

删除指定账户的相关信息

save_message

保存信息

 

4.1.1 函数new_message

【功能】

录入账户的相关信息

【参数】

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【返回值】

【算法描述】

61add5f041894706948f2d9a2d2fc565.png

图 3 录入函数算法流程

 

4.1.2 函数search_message

【功能】

查询指定账户的相关信息

【参数】

参数名称

类型

含义

struct.num

char

账户

【返回值】

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

4.1.2 函数search_message

【功能】

查询指定账户的相关信息

【参数】

参数名称

类型

含义

struct.num

char

账户

【返回值】

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【算法描述】

8bc8c7b0d62b4e8eb40498a39d04978f.png

图 4 查询函数算法流程

 

4.1.3 函数up_message

【功能】

修改指定账户的相关信息

【参数】

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【返回值】  

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【算法描述】

f650ae220b4240ed90758295780abc5a.png

图 5 修改函数算法流程

 

4.1.4 函数up1_message

【功能】

修改指定账户的余额

【参数】

参数名称

类型

含义

struct.money

char

余额

【返回值】  

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【算法描述】

a0736a84b8434a54bd7a9c72bc8419a9.png

图 6 存取款函数算法流程

 

4.1.5 函数up2_message

【功能】

删除指定账户

【参数】

参数名称

类型

含义

struct.num

char

账户

 

【返回值】  

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【算法描述】

7b391d0393b24038bc12f5d8abb4516f.png

图 7 删除函数算法流程

 

4.1.6 函数play_message

【功能】

浏览所有账户的相关信息

【参数】

【返回值】  

参数名称

类型

含义

struct.num

char

账户

struct.name

char

姓名

struct.money

char

余额

struct.age

char

年龄

struct.sex

char

性别

struct.tel

char

联系方式

【算法描述】

输出所有已保存账户的相关信息

4.1.7 函数save_message

【功能】

保存信息

【参数】

【返回值】

【算法描述】

    保存储存在结构体中的所有信息到文件

五、程序代码

#include<stdio.h> 
#include<conio.h>                                       
#include <stdlib.h>                                     
#include<string.h>  
#define MAX 100

//函数声明 
void new_message();        //信息录入函数 
void search_message();     //信息查询函数_按账户查询
void up_message();         //信息修改函数
void up1_message();        //存取款函数
void up2_message();        //信息删除函数 
void play_message();       //显示信息函数 
void save_message();       //信息保存函数

struct message{             //定义账户信息 
	char num[MAX];         //账户
	char name[MAX];        //姓名
	char money[MAX];       //余额  
	char age[MAX];         //年龄 
	char sex[MAX];         //性别 
	char tel[MAX];         //联系方式 
};
message mes[MAX]; 

int main()
{
	int p; 
	do{
		printf("------------------------------------------------\n\n");
		printf("                银行账户管理系统                \n\n");
		printf("------------------------------------------------\n\n");
		printf("1--账户信息录入          2--查询账户信息\n3--修改账户信息          4--显示所有账户信息\n");
		printf("5--存款                  6--取款\n7--删除账户              8--添加账户\n");
		printf("0--退出系统\n\n");
		printf("请输入:"); 
		fflush(stdin);         
  	    scanf("%d",&p);
	
		switch(p){
			case 1:{system("cls");new_message();break;}            //调用信息录入函数
			case 2:{system("cls");search_message();break;}        //调用信息查询函数_按账户查询
			case 3:{system("cls");up_message();break;}             //调用信息修改函数
			case 4:{system("cls");play_message();break;}           //调用显示信息函数
			case 5:{system("cls");up1_message();break;}            //调用存取款函数
			case 6:{system("cls");up1_message();break;}            //调用存取款函数
			case 7:{system("cls");up2_message();break;}            //调用信息删除函数 
			case 8:{system("cls");new_message();break;}            //调用信息录入函数 
			default: system("cls");
		}
		
		if(p==0) break;                                            //退出系统 
	} while(1);    //死循环 
 } 

void new_message()          //信息录入函数 
{
	int i=0;
    char ch;
    
    FILE *fp;               //打开文件*追加 
	if((fp=fopen("message.txt","a"))==NULL) {printf("File open error!\n");exit(0);}
	   
    do{
    	printf("------------------------------------------------\n\n");
		printf("                银行账户管理系统                \n\n");
		printf("------------------------------------------------\n\n");
		printf("账户信息录入!\n\n输入第%d个账户的信息\n",i+1); 
        printf("\n输入账户:"); 
        fflush(stdin);                        //清空缓冲区,防止影响输入 
        gets(mes[i].num); 
        strcpy(mes[i].money,"0");
		printf("\n输入户主姓名:"); 
        fflush(stdin);         
        gets(mes[i].name);
        printf("\n输入户主年龄:"); 
        fflush(stdin);         
        gets(mes[i].age);
        printf("\n输入户主性别:"); 
        fflush(stdin);         
        gets(mes[i].sex);
        printf("\n输入户主联系方式:"); 
        fflush(stdin);         
        gets(mes[i].tel);
        printf("\n\n");
		fprintf(fp,"\n%s %s %s %s %s %s\n",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);     //保存信息 
        i++;        
        printf("是否继续输入?(Y/N)\n"); 
        fflush(stdin); 
        ch=getch();       	
	}while(ch!='n'&&ch!='N');
    fclose(fp); 
    printf("账户信息已保存在message.txt中!\n"); 
    system("pause"); 
    system("cls"); 
}

void search_message()       //信息查询函数_按账户查询
{
	int i;
	char ch[1];
	char as; 
	
	FILE*fp;            //打开文件*只读 
	if((fp=fopen("message.txt","r"))==NULL) {printf("File open error!\n无数据文件!\n");exit(0);}
	
	for(i=0;i<MAX;i++){fscanf(fp,"%s %s %s %s %s %s",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);}     //储存所有已录入信息到结构数组中//
	fclose(fp);
	
	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	printf("输入要查询的账户:"); 
   	fflush(stdin); 
   	gets(ch); 
   	for(i=0;i<MAX;i++) { if(strcmp(ch,mes[i].num)==0)  break; } 
	
	if(strcmp(ch,mes[i].num)==0){
		printf("\n查询成功!\n");
		printf("----------------------------------\n");
		printf("账户:%s\n",mes[i].num);
		printf("姓名:%s\n",mes[i].name);
		printf("余额:%s\n",mes[i].money);
		printf("年龄:%s\n",mes[i].age);
		printf("性别:%s\n",mes[i].sex);
		printf("联系方式:%s\n",mes[i].tel);
	}
	else printf("没有找到该账户信息!!\n");
		
	printf("\n按任意键返回主菜单!"); 
   	system("pause"); 
   	system("cls");
} 

void up_message()           //信息修改函数
{
	int i;
	int n=0;
	char ch[5];
	char as; 
	
	FILE*fp;            //打开文件*只读 
	if((fp=fopen("message.txt","r"))==NULL) {printf("File open error!\n");exit(0);}
    for(i=0;i<MAX;i++){fscanf(fp,"%s %s %s %s %s %s",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);}     //储存所有已录入信息到结构数组中//
	fclose(fp);
	
	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	printf("请输入要修改信息的账户:"); 
    fflush(stdin); 
    gets(ch); 
    	
    for(i=0;i<MAX;i++){if(strcmp(ch,mes[i].num)==0) break;}   //筛选所查询账户 
    	
    if(strcmp(ch,mes[i].num)==0){
		printf("****************************************\n");
		printf("账户:%s\n",mes[i].num);
		printf("姓名:%s\n",mes[i].name);
		printf("余额:%s\n",mes[i].money);
		printf("年龄:%s\n",mes[i].age);
		printf("性别:%s\n",mes[i].sex);
		printf("联系方式:%s\n",mes[i].tel);
			
		printf("\n0-返回主菜单\n1-姓名    2-年龄\n3-性别    4-联系方式\n");
		printf("\n请输入要修改的信息(0--4):");
		fflush(stdin);
		scanf("%d",&n);
			
		switch(n)  {
			case 1: { fflush(stdin);printf("请输入:");gets(mes[i].name); break; }
			case 2: { fflush(stdin);printf("请输入:");gets(mes[i].age) ; break; }
			case 3: { fflush(stdin);printf("请输入:");gets(mes[i].sex) ; break; }
			case 4: { fflush(stdin);printf("请输入:");gets(mes[i].tel) ; break; }
			case 0: { system("pause");system("cls");break;}
		}
			
		if(n!=0) {printf("信息修改成功!\n");save_message();} 
	}
	else{
		printf("没有找到该账户信息!!\n");
		printf("\n按任意键返回主菜单!"); 
		system("pause");
		system("cls");	
	}
	
	
	
} 

void play_message()         //显示信息函数
{
	int i;
	
	FILE*fp;            //打开文件
	if((fp=fopen("message.txt","r"))==NULL) {printf("File open error!\n");exit(0);}
	for(i=0;i<MAX;i++){fscanf(fp,"%s %s %s %s %s %s",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);}   //储存所有已录入信息到结构数组中//

	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	
	for(i=0;i<MAX&&mes[i].num[0];i++){
		printf("第%d个账户\n",i+1);
		printf("账户:%s\n",mes[i].num);
		printf("姓名:%s\n",mes[i].name);
		printf("余额:%s\n",mes[i].money);
		printf("年龄:%s\n",mes[i].age);
		printf("性别:%s\n",mes[i].sex);
		printf("联系方式:%s\n\n",mes[i].tel);
	}
	
	fclose(fp);
	printf("\n按任意键返回主菜单!"); 
	system("pause"); 
    system("cls"); 
}

void up1_message()          //存取款函数
{
	int i;
	char ch[MAX];
	
	FILE*fp;                //打开文件 
	if((fp=fopen("message.txt","r"))==NULL) {printf("File open error!\n");exit(0);}
	for(i=0;i<MAX;i++){fscanf(fp,"%s %s %s %s %s %s",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);}  //储存所有已录入信息到结构数组中//
	fclose(fp);
	
	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	
	printf("请输入账户:"); 
    fflush(stdin); 
    gets(ch); 
    for(i=0;i<MAX&&mes[i].num[0];i++) {if(strcmp(ch,mes[i].num)==0) break;}   //筛选所查询账户 
    	
    if(strcmp(ch,mes[i].num)==0){
		printf("****************************************\n");
		printf("1.账户:%s\n",mes[i].num);
		printf("2.姓名:%s\n",mes[i].name);
		printf("3.余额:%s\n",mes[i].money);
		printf("4.年龄:%s\n",mes[i].age);
		printf("5.性别:%s\n",mes[i].sex);
		printf("6.联系方式:%s\n",mes[i].tel);
		
		printf("请输入余额:");
		gets(mes[i].money);
		
		save_message();
	}
	else{
		printf("没有找到该账户信息!!\n");
		printf("\n按任意键返回主菜单!"); 
		system("pause");
		system("cls");	
	}	
} 

void up2_message()          //信息删除函数 
{
	int i=0;
	int n=0;
	char ch[2];
	
	FILE*fp;                //读取文件 
	if((fp=fopen("message.txt","r"))==NULL) {printf("File open error!\n");exit(0);}
	for(i=0;i<MAX;i++){fscanf(fp,"%s %s %s %s %s %s",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel);}
	fclose(fp);
	
	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	printf("请输入账户:"); 
    fflush(stdin); 
    gets(ch); 
    for(i=0;i<MAX&&mes[i].num[0];i++){if(strcmp(ch,mes[i].num)==0) break;}   //筛选所查询账户 
    
    if(strcmp(ch,mes[i].num)==0){
		printf("****************************************\n");
		printf("1.账户:%s\n",mes[i].num);
		printf("2.姓名:%s\n",mes[i].name);
		printf("3.余额:%s\n",mes[i].money);
		printf("4.年龄:%s\n",mes[i].age);
		printf("5.性别:%s\n",mes[i].sex);
		printf("6.联系方式:%s\n",mes[i].tel);
		
		printf("确认删除请按1!");
		scanf("%d",&n);
		
		if(n==1){		
			for(;i<MAX&&mes[i].num[0];i++){
				strcpy(mes[i].num,mes[i+1].num); 
				strcpy(mes[i].name,mes[i+1].name);
				strcpy(mes[i].money,mes[i+1].money);
				strcpy(mes[i].age,mes[i+1].age);
				strcpy(mes[i].sex,mes[i+1].sex);
				strcpy(mes[i].tel,mes[i+1].tel);
			} 
			save_message();
		}
	}
	else printf("没有找到该账户信息!!\n");
	printf("\n按任意键返回主菜单!"); 
	system("pause"); 
    system("cls");	
}

void save_message()         //信息保存函数 
{
	int i;
	FILE *fp;            //打开文件 
	if((fp=fopen("message.txt","wb"))==NULL) {printf("File open error!\n");exit(0);}
	
	for(i=0;i<MAX;i++){fprintf(fp,"\n%s %s %s %s %s %s\n",mes[i].num,mes[i].money,mes[i].name,mes[i].age,mes[i].sex,mes[i].tel); }
	fclose(fp);
	
	system("pause"); 
    system("cls");
	
	printf("------------------------------------------------\n\n");
	printf("                银行账户管理系统                \n\n");
	printf("------------------------------------------------\n\n");
	
	printf("\n信息保存成功!\n"); 
	system("pause"); 
    system("cls");
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jc.MJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值