项目实训:储蓄综合业务平台全解析(附思路框架+源码)

  • 项目:储蓄综合业务平台全解析
  • 项目简介:开发一套银行储蓄柜台的综合业务平台,包括储蓄柜台最常使用的开户、销户、存款、取款、查询等功能
  • 开发工具:Dev C++
  • 知识点:C语言、数据结构
  • 主要技术:结构体的访问、文件的读写

模块划分
在这里插入图片描述整个项目的代码分为两部分组成:

  • bank.h: 设置一个头文件用于函数的声明与结构体的定义
  • bank.c:主程序

程序执行效果图
在这里插入图片描述

/*
文件名:bank.h
@author:suoyue_zhan
@公众号:钥道不止 
函数的声明与结构体的定义
*/ 

//显示欢迎信息
void welcome();
 
//系统主菜单
void mainmenu();
 
//开户
void openAnAccount();
 
//销户
void closeAnAcount();
 
//存款
void deposit();
 
//取款
void withdraw();
 
//查询
void query();
   
//显示所有账户
void queryall();

//转账 
void transferAccount();

//退出提示
void close(); 

//查找一个账户在数组中的位置
int findAnAccount(int accNumber);
 
//显示一个账户的信息
void dispAnAccount(int i);
 
//生成账号
int createAccNumber();
 
//把数据从文件中读到结构体数组中
int readDate();
 
//把结构体数组中的数据写入文件
int writeDate();
 
//检查录入的户名.密码.存入金额格式是否合法。返回值: 0:合法;1:非法。
//flag: 0:用户名;1:密码;2:存入金额。checkstr: 需要检查的项目。
int checkInput(int flag, char *checkStr);
 
//去除右空格
char *rightTrim(char *str);
 
//得到键盘录入的户名
void getaccName(char accName[]);
 
//得到键盘录入的密码
void getaccPWD(char accPWD[]);
 
//得到键盘录入的金额
double getcash(int flag);
 
//得到键盘录入的账号
int getaccNumber(int flag);

#define N_MAXREC_NO 100		//文件最大行数
#define MAXLINE 256			//行最大长度
 
//数据文件记录结构
struct record
{
	int accNumber;		//账号
	char accName[9];	//户名
	char accPWD[7];		//密码
	double balance;		//余额
	char flag[2];		//销户标志
};
 
//自定义数据类型
typedef struct record RECORD;
 
//结构体数组
RECORD rs[N_MAXREC_NO];
 
//最后一个账户在结构体中的位置
int maxAccount = -1;

主程序bank.c,此处只给出框架,由于代码较多,在未清晰的了解程序的框架前不建议查看完整代码,若只是要应付课设那在下也…( •̀ ω •́ )y
在清晰的了解程序的框架后可于微信搜索公众号“钥道不止”或“suoyue_zhan”或文末直接扫码关注并在后台回复“储蓄综合业务”即可获取完整代码

/*
文件名:bank.c 
@author:suoyue_zhan
@公众号:钥道不止 
@项目:储蓄综合业务平台
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>

#include "bank.h"

//主函数 
int main(){
	char userName[9];		//存储操作者用户名"admin" 
	char userPWD[7];		//存储操作者密码"admin" 
	int i;
	welcome();
	for(i = 0; i < 3; i++){		//登陆验证:3次机会 
		printf("\n");
		printf("请输入您的用户名:");
		scanf("%s", userName);
		fflush(stdin);			//清空输入缓冲区 ,确保不影响后面的数据读取 
		
		printf("\n请输入您的密码:");
		scanf("%s",userPWD);
		fflush(stdin);
	
		if ((strcmp(userName,"admin")==0) && (strcmp(userPWD,"admin")==0)){		//用户名和密码正确,显示主菜单
			mainmenu();
		}
		else{
			if (i < 2){	//用户名或密码错误,提示用户重新输入
				printf("用户名或密码错误,请重新输入!");
			}
			else{		//连续三次输错用户名或密码,退出系统
				printf("用户名或密码错误,退出系统!");
				return 0; 
			}
		}
	}	
	printf("\n感谢使用本系统!!!\n");
	return 0;
}

//显示欢迎信息
void welcome(){

}

//系统主菜单
void mainmenu(){
	int choice;
	choice = -1;
	do{
		printf("\n");
		printf("+-----------------------------------+\n");
		printf("|  存款 请按:1       销户 请按:5  |\n");
		printf("|  取款 请按:2       信息 请按:6  |\n");
		printf("|  查询 请按:3       转账 请按:7  |\n");
		printf("|  开户 请按:4       退出 请按:0  |\n");
		printf("+-----------------------------------+\n");
		
		printf("请输入您的选择:");
		scanf("%d", &choice);		
		fflush(stdin);
	
		switch(choice){
			case 0:
				close(); 
				exit(0);
			case 1:
				deposit();
				break;
			case 2:
				withdraw();
				break;
			case 3:
				query();
				break;
			case 4:
				openAnAccount();
				break;
			case 5:
				closeAnAcount();
				break;
			case 6:			
				queryall();
				break;
			case 7:
				transferAccount();
				break;
			default:
				printf("\n无效选项!");
				break;
			}
	}while(choice != 0);
}

//开户
void openAnAccount(){
	
}

//显示一个账户的信息
void dispAnAccount(int i){

}

//生成账号
int createAccNumber(){

}

//获取键盘录入的账户名
void getaccName(char accName[]){

}

//获取键盘录入的密码
void getaccPWD(char accPWD[]){

}

//获取键盘录入的金额
double getcash(int flag){

}	

//检查录入的户名.密码.存入金额格式是否合法
int checkInput (int flag, char *checkStr){

}

//存款
void deposit(){

}

//得到键盘录入的账号
int getaccNumber(int flag){
	
} 

//查找一个账户在数组中的位置
int findAnAccount(int accNumber){
	
}

//去除右空格
char *rightTrim(char *str){

}

//把数据从文件中读到结构体数组中
int readDate(){

}

//取款
void withdraw(){

}

//把结构体数组中的数据写入文件
int writeDate(){

}
 
//查询
void query(){	

}

//销户
void closeAnAcount(){
	
}

//显示所有账户
void queryall(){

}

//转账 
void transferAccount(){

}
 
//退出提示
void close(){

}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章