@阿乐今天敲代码没

基于python的活期储蓄账目管理

  • 前言
  • 一、运行结果图
  • 二、扼要代码
    • 1.结构体的详细定义
    • 2.开户模块
    • 3.销户模块
    • 4.存、取款模块
    • 5.查询模块

前言

实现功能:
(1)以顺序表模拟活期储蓄账户,从而能迅速地找到储户的账户,以实现存款、取款记账;
(2)以链表模拟活期储蓄账户活动,从而能比较简单、迅速的实现插入和删除,以实现开户和销户的需要。


一、运行结果图

二、扼要代码

1.结构体的详细定义

这里定义了一个ElemType结构体,将开户所有信息放在结构体中。
typedef struct ElemType //定义结构体
{char name[11];           //用户名
int account;            //账号
char password[7];      //密码
float money;          //存款
}ElemType;

2.开户模块

void InsertList(LINK *L) //链表插入实现开户功能
{int x; LINK *s; s=(LINK*)malloc(sizeof(LINK));
printf("请输入你要开户的姓名(10字符以内):");
scanf("%s",s->data.name);
x=rand()%10; //随机数rand()是产生一个随机数,比较大。
rand()%10是取随机数除以10以后的余数,其余数显然也是随机数。所以这个作用是产生0-9之间的随机数
total+=x; //total随机增大一个数值(10以内)x
s->data.account=10000000+total;
printf("\n你开户的账号为:%d\n",s->data.account);
printf("请输入你账号的密码(6位数以内):");
scanf("%s",s->data.password);
s->data.money=0.00;
s->next=NULL;
if(L->next==NULL)
L->next=s;
else
{s->next=L->next;
L->next=s;
}
printf("开户成功。\n");
}

3.销户模块

void DeleteList(LINK *L) //链表删除实现销户功能(需要账号和密码)
{LINK *p=L,*q;
char pass[6];
int s;
printf("请输入你要销户的账号:");
scanf("%d",&s);
printf("请输入该账号的密码:");
scanf("%s",pass);
while(p->next!=NULL)
{if(p->next->data.account==s)
break;
p=p->next;
}
if(p->next!=NULL)
{while(strcmp(p->next->data.password,pass)!=0)//strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
{printf("密码错误!请重新输入:");
scanf("%s",pass);
}
q=p->next;
p->next=q->next;
free(q);
printf("账号销户成功。\n");
}
else printf("你所要销户的的账号不存在(或者已经销户)。\n");
}
void PrintList(LINK*L) //打印链表,实现用户信息输出
{LINK *p=L->next;
while (p!=NULL)
{printf("%s\t",p->data.name);
printf("%d\t%s\t%.2f\n",p->data.account,p->data.password,p->data.money);
p=p->next;
}
}

4.存、取款模块

void Deposit(LINK *L,LINK *p) //用户存款、取款
{int cq;
float mn;
while(1)
{
if(p!=NULL)
{printf("请选择存款(1)、取款(2)、查询余额(3)、退出账号(4)。\n(请输入括号内的数字,输入其它字符默认为取款):");
scanf("%d",&cq);
if(cq==1)
{printf("请输入你的存款金额:");
scanf("%f",&mn);
p->data.money=p->data.money+mn;
printf("存款成功!\n");
}
else if(cq==3)
{ printf("你账户的余额为:%.2f\n",p->data.money);
}
else if(cq==4)
{
printf("账号退出成功。\n");
return;
}
else
{printf("请输入你的取款金额:");
FH:
scanf("%f",&mn);
if((p->data.money-mn)>=0)
{p->data.money=p->data.money-mn;
printf("取款成功!\n");
}
else
{printf("取款失败!\n");
printf("你账户上的金额不足!\n你的账户余额为:%.f\n",p->data.money);
printf("请输入合适的取款金额:");
goto FH;//goto跳转语句 跳转到fh  用if语句和goto语句构成循环结构
}
}
}
}
}

5.查询模块

void Search(LINK *L) //链表查找,实现用户登陆功能
{LINK *p=L->next;
int acc;
char pass[6];
printf("请输入你要登录的账号:");
scanf("%d",&acc);
printf("请输入你的密码:");
scanf("%s",pass);
while(p!=NULL)
{if(p->data.account==acc)
break;
p=p->next;
}
if(p==NULL)
printf("不存在该账户\n");
else
{if(strcmp(p->data.password,pass)==0)
printf("账号登录成功。\n");
else
{while(strcmp(p->data.password,pass)!=0)
{char pa;
printf("密码错误\n");
printf("是否重新输入(是,就输入任意键)、(否,从键盘上输入N or n):");
scanf("\n%c",&pa);
if(pa=='n'||pa=='N')
{system ("cls");return;}
printf("\n请重新输入你的密码:");
scanf("%s",pass);
}
}
Deposit(L,p);
}
}
void save(LINK *L) //保存链表,实现用户信息保存到文件
{FILE *fp;
if((fp=fopen(file,"rb"))==NULL)//判断以读二进制的方式打开文件file,文件句柄保存到fp,fp是否为空
如果为空,就是打开文件失败,否则打开文件成功
rb 以读二进制的方式
fopen 打开文件
file  文件名
fp 保存打开文件后的句柄
== NULL 是否为空
{printf("cannot open file.\n");
exit(1);//终止正在执行的进程。exit(1)表示异常退出.这个1是返回给操作系统的
}
LINK *p=L->next;
if (p!=NULL)
{if(fwrite(p,sizeof(struct lnode),1,fp)!=1)//将p这个指针所指向的内容输出到fp这个文件中,每次输出的数据单元占sizeof(struct londe)个字节,总共输出1次,如果输出正确,应该是返回1的,这句语言的意思就是“如果没有将内容正确的写入fp中”
printf("file write error\n");
p=p->next;
}
fclose(fp);//关闭文件 相当于保存文件
}
void Print(LINK *&L) //打开文件,得到链表
{FILE *fp;
LINK *p,*s;
if((fp=fopen(file,"rb"))==NULL)//以读二进制的方式打开文件file,文件句柄保存到fp,fp是否为空
如果为空,就是打开文件失败,否则打开文件成功
rb 以读二进制的方式
fopen 打开文件
file 文件名
fp 保存打开文件后的句柄  == NULL 是否为空
{printf("cannot open file.\n");
exit(1);//终止正在执行的进程。exit(1)表示异常退出.这个1是返回给操作系统的
}
s=(LINK*)malloc(sizeof(LINK));s->next=NULL;
while(fread(s,sizeof(struct lnode),1,fp) )//fread()成功的返回值就是参数里读取的数据块个数,sizeof(struct londe)返回值就是londe这个结构体的大小
{total++; //用于记录账号的,以致账号不重复
if(L->next==NULL)
{L->next=s; p=s;
p->next=s->next;
}
else
{p->next=s; p=s;
p->next=s->next;
}
s=(LINK*)malloc(sizeof(LINK));
s->next=NULL;
}
fclose(fp);////关闭文件 相当于保存文件
}

基于python的活期储蓄账目管理相关推荐

  1. 数据结构 活期储蓄账目管理(课程设计完整实验报告)

    需求分析 1.1问题描述 随着社会发展,银行作为一个金融机构,在现代人们的生活中扮演着极其重要的角色.为生活节凑飞快的现代人提供快速.便捷.高效的理财服务.伴随着电脑技术的发展,各大银行的储蓄管理系统 ...

  2. 基于C语言 — 简易银行活期储蓄账目管理系统

    银行活期储蓄账目管理系统,基于C语言.采用了邻接表等存储结构,实现具有账户信息的注册.账户密码的修改.账户交易明细的查询等功能.客户信息包括账户编号,姓名,密码,余额,身份证,预留手机号,是否已注销. ...

  3. 《数据结构课程设计》——活期储蓄账目管理系统

    <数据结构课程设计> 课程题目 活期储蓄账目管理系统 课程编号 j1620102 学生姓名 张瑞祺 所在专业 信息管理与信息系统 所在班级 信管1132 学号 201311671231 任 ...

  4. 【CV】OpenCV(基于Python)学习笔记

    以下内容中的页码均来自<OpenCV 4详解 : 基于Python> 目录 第2章 载入.显示与保存数据 2.2 图像的读取与显示 2.2.1 图像读取函数 cv.imread() 2.2 ...

  5. 基于Python的人工智能美颜系统

    基于Python的人工智能美颜系统使用PyQt5模块搭建可视化界面,使用Dlib模型(shape_predictor_68_face_landmarks.dat)实现人脸关键点检测和定位,人脸美颜(美 ...

  6. python深度神经网络量化_基于Python建立深度神经网络!你学会了嘛?

    原标题:基于Python建立深度神经网络!你学会了嘛? 图1 神经网络构造的例子(符号说明:上标[l]表示与第l层:上标(i)表示第i个例子:下标i表示矢量第i项) 单层神经网络 图2 单层神经网络示 ...

  7. python selenium脚本_怎样开始写第一个基于python的selenium脚本

    1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...

  8. 【组队学习】【31期】基于Python的办公自动化

    基于Python的办公自动化 航路开辟者:牧小熊.刘雯静.张晓东.吴争光.隆军 领航员:六一 航海士:牧小熊.李显.刘羽中.王晓亮 基本信息 开源内容:https://github.com/dataw ...

  9. 【组队学习】曹志宾:基于Python的会员数据化运营

    分享人:曹志宾,Datawhale成员,香港科技大学硕士在读 分享内容: 案例描述与分析 前期准备与数据预处理 RFM模型使用与操作 Excel中的RFM分析 组队学习: 红星:基于Python的会员 ...

最新文章

  1. nginx相关的一些记录
  2. web前段学习day_01:HTML(学习如何搭建页面结构和内容):文本标签、列表标签、图片标签、超链接、表格、表单表单、分区标签、实体引用
  3. 【科技金融】互金欺诈黑话大集锦
  4. python_文件处理
  5. 经典C语言程序100例之三八
  6. C语言课后习题(53)
  7. 通过DriverManager接口获取连接
  8. [Hbase]Hbase常用的优化方法
  9. Emacs之hs-minor-mode折叠代码
  10. Python 模块,包与分发
  11. React:组件的生命周期
  12. 回顾2020年(1)
  13. 机器狗病毒(又称下载者木马病毒)的手工毒杀
  14. 阿里云服务器搭建个人网站
  15. xp系统配置打印服务器,xp系统打印机纸张大小的自定义设置方法
  16. Linux内核 eBPF基础:perf(2):perf性能管理单元PMU的注册
  17. MMCM时钟动态调相
  18. 32位低功耗MCU的设计
  19. python opencv pdf脚本之家_Python-OpenCV
  20. QMI8658 - 姿态传感器学习笔记 - Ⅱ

热门文章

  1. Android 跳转到浏览器打开链接
  2. c++数学计算模拟器「实用」
  3. 激活函数 Sigmoid、tanh、*LU、softPlus、maxOut、softmax、dice- 杂记
  4. Scikit-Learn TensorFlow机器学习实用指南(二):一个完整的机器学习项目【上】
  5. 《跨境电商 —— 阿里巴巴速卖通实操全攻略》一一2.4 淘代销
  6. html在其他电脑打不开,有的网页你打不开,在别的电脑就能打开,这样处理就解决了...
  7. 脑经急转弯似的面试题
  8. DEE微分方程编辑器的使用
  9. css改火狐滚动条样式_纯css美化滚动条样式
  10. Windows商店开发者注册失败