资源简介
C语言银行管理系统,没事自己写的,练习使用,不足之处大家指正。谢谢~
代码片段和文件信息
/****************************************************
* 银行管理系统 *
* *
* 使用注意:1.修改FILEPATH路径 *
* 2.可以将db.txt中内容删掉 *
* 3.本系统默认的管理员:账户 密码 *
* 123 admin123 *
*****************************************************/
#include
#include
#include
#define ID_START 10000
#define PS_NUMBER 100
#define PWD_RESET “123456“
#define FILEPATH “F:\\MyC\\db.txt“
struct person{
int id;
char name[20];
char pwd[6];
float money;
int state;
}pps[PS_NUMBER];
int ps_num; //ps中元素的实际数量
void inputPerson();
void writeIntoFile();
void mainMenu();
void personalMenu();
void adminMenu();
void queryPerson();
/*账户id创建*/
void makeId(){
int lastId=ID_START;
FILE *fp=fopen(FILEPATH“r“);
fseek(fp0SEEK_END);
if(ftell(fp)!=0){
fseek(fp-46SEEK_CUR);
fscanf(fp“%d“&lastId);
lastId++;
}
fclose(fp);
p.id=lastId;
printf(“创建账户成功,账户为%d\n“p.id);
}
/*是否继续开户控制*/
void createContinue(){
char ifContinue;
printf(“\n是否继续创建账户?n(否)\\y(是):“);
fflush(stdin);
scanf(“%c“&ifContinue);
if(ifContinue==‘y‘){
inputPerson();
}else{
if(ifContinue==‘n‘){
mainMenu();
}else{
printf(“输入错误,请重新输入...\n“);
createContinue();
}
}
}
/*开户信息输入*/
void inputPerson(){
system(“cls“);
p.money=0.0f; //float double 类型会出错,必须先初始化一个值,才能使用输入
printf(“请输入用户的信息:\n“);
printf(“姓名:“);
scanf(“%s“p.name);
if(strlen(p.name)>6){
printf(“姓名过长,请重新输入...\n“);
inputPerson();
}
makeId();
char passCheck[6];
printf(“密码:“);
scanf(“%s“p.pwd);
printf(“确认密码:“);
scanf(“%s“passCheck);
while(strcmp(p.pwdpassCheck)!=0){
printf(“两次密码输入不一致,请重新输入...\n“);
printf(“密码:“);
scanf(“%s“p.pwd);
printf(“确认密码:“);
scanf(“%s“passCheck);
}
if(strlen(p.pwd)>6){
printf(“密码过长,请重新输入...\n“);
inputPerson();
}
printf(“存入的金额:“);
scanf(“%f“&p.money);
p.state=1;
writeIntoFile();
createContinue();
}
/*保存一条记录*/
void writeIntoFile(){
FILE *fp=fopen(FILEPATH“r+“);
fseek(fp0SEEK_END);
fprintf(fp“%-10d“p.id);
fprintf(fp“%-10s“p.name);
fprintf(fp“%-10s“p.pwd);
fprintf(fp“%-13.2f“p.money);
fprintf(fp“%-1d“p.state);
fprintf(fp“%s““\n“);
fclose(fp);
}
/*读取所有记录*/
void readAllFromFile(){
FILE *fp=fopen(FILEPATH“r“);
//ps的实际大小
fseek(fp0SEEK_END);
if(ftell(fp)/46 ps_num=ftell(fp)/46;
}else{
ps_num=PS_NUMBER;
}
//读取数据到ps
fseek(fp0SEEK_SET);
for(int i=0;i fseek(fp46*iSEEK_SET);
fscanf(fp“%d“&ps[i].id);
fseek(fp46*i+10SEEK_SET);
fscanf(fp“%s“ps[i].name);
fseek(fp46*i+20SEEK_SET);
fscanf(fp“%s“ps[i].pwd);
fseek(fp46*i+30SEEK_SET);
fscanf(fp“%f“&ps[i].money);
fseek(fp46*i+43SEEK_SET);
fscanf(fp“%d“&ps[i].sta
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 230 2009-08-15 13:49 银行管理系统\db.txt
文件 23504 2009-08-20 09:12 银行管理系统\dbTest.cpp
目录 0 2009-08-20 09:13 银行管理系统
----------- --------- ---------- ----- ----
23734 3
相关资源
- STC8G1K08A红外遥控点灯
- C语言的嵌入式汇编基本使用.docx(2页
- stm32f103c8t6开发板原理图+pcb
- Arduino 敲琴MIDI电子琴 程序报告.docx
- CAN实验
- LCD驱动芯片ST7701SI SPI接口底层驱动配
- 显示屏操作(stm32f103c8t6(SAN))
- USB CAN Tool 源代码(LabVIEW 2011环境)
- Proteus 8.6仿真STM32F103C6
- atmega128 串口通讯(RS485.c)
- C语言嵌入式Modbus协议栈,支持主站和
- stm32 +w5500 裸机 远程升级 自动dns pi
- 永磁同步电机的FOC控制算法
- arduino I2C设备扫描并串口返回地址(
- Proteus仿真:LCD液晶屏显示.rar
- STM32 PCB封装库 全系列 全网不好找
- 基于STM32F407的W5500 tcpserver(官网例程
- 步进电机调速原理.c
- tm1650+stm32f103源码(board_tm1650.c)
- 颜色识别形状识别STM103嵌入式代码
- 基于STM32的音频信号采样与FFT分析
- 汽车电子编程规范(Unlock-MISRA C 2012)
- cheat engine 7.2源码
- 基于STM32F103C8T6主控板使用BH1750检测光
- cubeMX设计实现stm32f407上的CAN及485的通
- stm32 BootLoader程序(main.c)
- 新编Windows API参考大全.doc
- CrySearch内存搜索器源码
- com组件(共907页)
- WINcc与海康威视摄像头
评论
共有 条评论