• C语言版本
#include "account.h"
#include <iostream>
using namespace std;int main() {//建立几个账户SavingsAccount sa0(1, 21325302, 0.015);SavingsAccount sa1(1, 58320212, 0.015);//几笔账目sa0.deposit(5, 5000);sa1.deposit(25, 10000);sa0.deposit(45, 5500);sa1.withdraw(60, 4000);//开户后第90天到了银行的计息日,结算所有账户的年息sa0.settle(90);sa1.settle(90);//输出各个账户信息sa0.show();  cout << endl;sa1.show();  cout << endl;cout << "Total: " << SavingsAccount::getTotal() << endl;return 0;
}//account.cpp
#include "account.h"
#include <cmath>
#include <iostream>
using namespace std;double SavingsAccount::total = 0;//SavingsAccount类相关成员函数的实现
SavingsAccount::SavingsAccount(int date, int id, double rate): id(id), balance(0), rate(rate), lastDate(date), accumulation(0) {cout << date << "\t#" << id << " is created" << endl;
}void SavingsAccount::record(int date, double amount) {accumulation = accumulate(date);lastDate = date;amount = floor(amount * 100 + 0.5) / 100;    //保留小数点后两位balance += amount;total += amount;cout << date << "\t#" << id << "\t" << amount << "\t" << balance << endl;
}void SavingsAccount::deposit(int date, double amount) {record(date, amount);
}void SavingsAccount::withdraw(int date, double amount) {if (amount > getBalance())cout << "Error: not enough money" << endl;elserecord(date, -amount);
}void SavingsAccount::settle(int date) {double interest = accumulate(date) * rate / 365;   //计算年息if (interest != 0)record(date, interest);accumulation = 0;
}void SavingsAccount::show() const {cout << "#" << id << "\tBalance: " << balance;
}
  • Java版本
package Bank5_11;public class SavingsAccount {private int id;//账号private double balance;//余额private double rate;//存款的年利率private int lastDate;//上次变更余款的时期private double accumulation;//余额按日累计之和//记录一笔账,date为日期,amount为金额private void record(int date,double amount) {accumulation = this.accumulate(date);lastDate = date;balance += amount;System.out.println(date + "  " + id + "  " + amount + "  " + balance);}//获得到指定日期为止的存款金额按日累计值private double accumulate(int date) {return accumulation + balance *(date - lastDate);}//构造函数public SavingsAccount(int date,int id,double rate) {this.lastDate = date;this.id = id;this.rate = rate;balance = 0;accumulation = 0;System.out.println(date + "  " + id + "  is created" );}//存入现金public void deposit(int date,double amount) {this.record(date,amount);}//取出现金public void withdraw(int date,double amount) {if(amount > balance) {System.out.println("Error: not enough money");}else {this.record(date, -amount);}}//结算利息,每年1月1日调用一次该函数public void settle(int date){double interest = this.accumulate(date)*rate/365;//计算年息if(interest != 0) {this.record(date, interest);}accumulation = 0;}//显示账户信息public void show() {System.out.println("id:" + id + " Balance:" + balance);}}package Bank5_11;public class Run {public static void main(String[] args) {SavingsAccount sa0 = new SavingsAccount(1,21325302,0.015);SavingsAccount sa1 = new SavingsAccount(1,58320212,0.015);sa0.deposit(5, 5000);sa1.deposit(25, 6000);sa0.deposit(45, 5500);sa1.withdraw(60, 4000);sa0.settle(90);sa1.settle(90);sa0.show();sa1.show();}
}
  • 总结反思

在C语言中,可以把一个程序分成类定义头文件(.h)和类实现文件(.cpp),还有主函数文件。这种思路在JAVA里的体现是在同一个包里建立两个类。

本题中正是利用了这种思路,在同一个Bank5_11包中建立了两个类,Run和SavingsAccount,这两个类之间可以通过相互调用来实现对应的功能。

在同一个包中按照功能的不同建立不同的类,使得程序可读性大大增加,程序看起来简洁明了,需要进行修改时也能够较快的确定位置。

个人银行管理系统2(C改Java)相关推荐

  1. java 课程设计——银行管理系统

    银行管理系统(java) 环境: idea2020 jdk1.8 能实现的功能: 1.注册账户 2.登录 3.查询账户信息 4.存款 5.取款 6.向另一个账户转账 7.修改账户密码 8.注销账户 项 ...

  2. java银行管理系统(MySql+JDBC+数据库(Druid数据库连接池)+GUI)重要代码有解析注释

    java银行管理系统 小白又来水博客了 文章目录 java银行管理系统 一.项目需求与分析: 二.知识及有关技术的概述: 三.银行管理系统需求的具体实现: 四.部分功能预览: 五.Last: 一.项目 ...

  3. java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...

    ========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 ...

  4. JAVA简单的银行管理系统

    账户类 package Account;public abstract class Account {private int id;//账号private String password;//密码pr ...

  5. 用java实现简单的银行管理系统

    用java实现简单的银行管理系统 页面代码之一: mvc设计模式,分包 分包图片 简单效果演示: 登陆主页面 注册页面 登录: 功能页面! 存款 转账 查看近期流水账单! 页面代码之一: packag ...

  6. 简单的纯java银行管理系统

     本人写下这篇文章时也是初学者,初入贵圈,很是激动,写下此文,希望能给和我一样的初学者一些帮助,如有帮助,那就点个关注再走吧!(粘上就能跑!!重要的事情说一遍!!) 这个银行管理系统是在我刚学完面向对 ...

  7. java 银行管理系统(连接数据库Mysql)

    java 银行管理系统(连接数据库Mysql) 逻辑与功能图 实现逻辑 功能图 代码 逻辑与功能图 实现逻辑 程序共有三个文件 Bankmangement.java:包括程序运行的主函数,方法等 Us ...

  8. (初阶)用Java实现银行管理系统查询,存款,取款功能

    用Java实现银行管理系统简单的 查询余额,存款,取款功能! [开发该软件的操作系统]:windows10 [软件开发环境/开发工具]:MyEclipse [编程语言]:Java [开发目的]: 供J ...

  9. java银行管理系统源码

    目录 一.项目包含知识点 二.项目需求 三.系统模块设计 3. 1.模块介绍 3·2.银行管理系统技术分析如图 3.3银行管理系统界面展示 四.银行管理系统源码 4.1Account类 4.2ATMS ...

  10. java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc

    银行管理系统 第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类.对象.继承.接口.封装.继承.多态.方法的重载和重写.Java的访问修饰符与其它关键字等. 案例难度 ★★★★ 案 ...

最新文章

  1. 01--安装Activiti流程设计器eclipse插件
  2. 机器学习160个常见问题.pdf
  3. 汇编@data_汇编语言(4)--内存段
  4. live555 源代码简单分析1:主程序
  5. VML编程之------oval圆rect矩型《VML极道教程》原著:沐缘华
  6. LeetCode刷题——120. 三角形最小路径和
  7. python教程原版_Python入门教程完整版(懂中文就能学会) pdf版+源码(讲义/笔记)
  8. 英伟达驱动更新记录_手把手教你如何通过NVIDIA(英伟达显卡)官网及时更新升级显卡驱动程序版本-网络教程与技术 -亦是美网络...
  9. 远程RPC调用用于js逆向
  10. 祝牛年吉祥,前程似锦,吉星高照,财运亨通,合家欢乐,飞黄腾达,福如东海,寿比南山,幸福美满,官运亨通,美梦连连。
  11. dict.txt(上一个程序的文件)
  12. 日志分析(偏linux)
  13. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
  14. 打卡赠书 | 养成一个思考习惯
  15. 高等概率论 Chapter 5. Random Variables on a Countable Space
  16. 分布式技术与实战第一课 分布式理论与一致性算法
  17. OpenLayers风场图
  18. 卡尔曼滤波-建立卡尔曼滤波直觉
  19. android 汽车gps开发,Android GPS定位开发教程
  20. 打开安装文件提示错误,错误内容全是问号,见图

热门文章

  1. Pytorch的冻结以及解冻
  2. js中clientWidth、scrollLeft、offsetX等宽高度和位置的用法
  3. 随机访问MAC协议 知识梳理(ALOHA,CSMA,CSMA/CD,CSMA/CA)
  4. js中的setTimeout与setTimeInterval
  5. findBugs 总结
  6. 微软云盘OneDrive变为本地网络磁盘
  7. Web应用服务器-Tomcat
  8. XML文件与xsl文件的作用与关系
  9. xsl php,Centos下给PHP开启xsl扩展
  10. 分享webpack插件generate-asset-webpack-plugin,vue打包自动生成额外文件