Java SE 银行收支系统管理

zz/2024/7/13 11:32:50

 展示:

 

 1.Customer类

package com.linfeng.bean;
/*** * @Description  Customer为实体对象,用来封装客户信息* @author linfeng  Email:1296752939@qq.com* @version* @date 2022年3月14日下午5:30:56*/
public class Customer {private String name;//客户姓名private char gender;//性别private int age;//年龄private String phone;//电话号码private String email;//电子邮箱public String getName() {return name;}public void setName(String name) {this.name = name;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Customer() {}public Customer(String name,char gender,int age,String phone,String email) {this.name = name;this.gender = gender;this.age = age;this.phone = phone;this.email = email;}}

2.CustomerList类

package com.linfeng.service;import com.linfeng.bean.Customer;/*** * @Description  CustomerList为Customer对象的管理模块, 内部用数组管理一组Customer对象,*              并提供相应的添加、修改、删除和遍历方法, 供CustomerView调用* @author linfeng  Email:1296752939@qq.com* @version* @date 2022年3月14日下午5:31:59*/
public class CustomerList {private Customer[] customers;//保存客户对象的数组private int total = 0;//记录已保存客户对象的数量/***    初始化customer数组的构造器* @param totalCustomer*/public CustomerList(int totalCustomer) {customers = new Customer[totalCustomer];}/*** * @Description 将指定的客户添加到数组中* @author shkstart* @date 2019年1月19日上午11:14:51* @param customer* @return true:添加成功  false:添加失败*/public boolean addCustomer(Customer customer) {if(total >= customers.length) {return false;}customers[total] = customer;total++;return true;}/*** * @Description 修改指定索引位置的客户信息* @author shkstart* @date 2019年1月19日上午11:17:28* @param index* @param cust* @return true:修改成功   false:修改失败*/public boolean replaceCustomer(int index,Customer cust) {if(index <0 || index >= total) {return false;}customers[index] = cust;return true;}/*** 删除指定索引位置上的客户* @Description * @author shkstart* @date 2019年1月19日上午11:23:03* @param index* @return true:删除成功   false:删除失败*/public boolean deleteCustomer(int index) {if(index <0 || index >= total) {return false;}for(int i = index;i <total - 1;i++) {customers[i] = customers[i+1];}//最后一个元素置空customers[total - 1] = null;total--;return true;}/*** * @Description 获取所有的客户信息* @author shkstart* @date 2019年1月19日上午11:28:53* @return*/public Customer[] getAllCustomer() {Customer[] cust = new Customer[total];for(int i = 0;i < total;i++) {cust[i] = customers[i];}return cust;}/*** * @Description 获取指定索引位置上的客户* @author shkstart* @date 2019年1月19日上午11:31:45* @param index* @return 如果找打了元素,则返回;如果没有找到,则返回null*/public Customer getCustomer(int index) {if(index < 0 || index >= total) {return null;}return customers[index];}/*** * @Description 获取存储的客户的数量* @author shkstart* @date 2019年1月19日上午11:32:52* @return*/public int getTotal() {return total;}}

3.CustomerView类

package com.linfeng.ui;import com.linfeng.bean.Customer;
import com.linfeng.service.CustomerList;
import com.linfeng.util. CMUtility;/*** * @Description  作为主模块,负责菜单的显示和处理用户操作* @author linfeng  Email:1296752939@qq.com* @version* @date 2022年3月14日下午5:36:01*/
public class CustomerView {CustomerList customerList = new CustomerList(10);public CustomerView() {Customer customer = new Customer("小明", '女', 18, "121213", "121334");customerList.addCustomer(customer);}/*** * @Description显示管理界面* @author linfeng  Email:1296752939@qq.com* @date 2022年3月14日下午8:50:52*/public void enterMAinMenu() {boolean isFlag = true;while(isFlag) {System.out.println("\n-----------------客户信息管理软件-----------------\n");System.out.println("                   1 添 加 客 户");System.out.println("                   2 修 改 客 户");System.out.println("                   3 删 除 客 户");System.out.println("                   4 客 户 列 表");System.out.println("                   5 退       出\n");System.out.print("                   请选择(1-5):");char menu  =  CMUtility.readMenuSelection();switch(menu) {case '1':addNewCustomer();break;case '2':modifyCustomer();break;case '3':deleteCustomer();break;case '4':listAllCustomer();break;case '5':System.out.println("确认是否退出(Y/N):");char isExit =  CMUtility.readConfirmSelection();if(isExit == 'Y') {isFlag = false;}}}}/*** * @Description添加客户* @author linfeng  Email:1296752939@qq.com* @date 2022年3月14日下午8:50:52*/private void addNewCustomer() {System.out.println("---------------------添加客户---------------------");System.out.print("姓名:");String name = CMUtility.readString(10);//限制名字长度System.out.print("性别:");char gender = CMUtility.readChar();System.out.print("年龄:");int age = CMUtility.readInt();System.out.print("电话:");String phone = CMUtility.readString(15);System.out.print("邮箱:");String email = CMUtility.readString(15);//将上述数据封装到对象Customer customer = new Customer(name, gender, age, phone, email);boolean isSuccess = customerList.addCustomer(customer);if(isSuccess) {System.out.println("---------------------添加完成---------------------");} else {System.out.println("----------------记录已满,无法添加-----------------");
}}/*** * @Description添加客户* @author linfeng  Email:1296752939@qq.com* @date 2022年3月14日下午8:50:52*/private void modifyCustomer() {//System.out.println("修改");System.out.println("---------------------修改客户---------------------");Customer cust;int number;for(;;) {System.out.println("请输入修改客户编号(-1退出)");number = CMUtility.readInt();if(number == -1) {return;}cust = customerList.getCustomer(number -1);if(cust == null) {System.out.println("无法找到指定客户");}else {break;}}//修改客户信息System.out.print("姓名(" + cust.getName() + "):");String name = CMUtility.readString(10, cust.getName());System.out.print("性别(" + cust.getGender() + "):");char gender = CMUtility.readChar(cust.getGender());System.out.print("年龄(" + cust.getAge() + "):");int age = CMUtility.readInt(cust.getAge());System.out.print("电话(" + cust.getPhone() + "):");String phone = CMUtility.readString(15, cust.getPhone());System.out.print("邮箱(" + cust.getEmail() + "):");String email = CMUtility.readString(15, cust.getEmail());Customer newCust = new Customer(name, gender, age, phone, email);boolean isRepalaced = customerList.replaceCustomer(number - 1, newCust);if(isRepalaced) {System.out.println("---------------------修改完成---------------------");} else {System.out.println("----------无法找到指定客户,修改失败--------------");}}/*** * @Description删除客户* @author linfeng  Email:1296752939@qq.com* @date 2022年3月14日下午8:50:52*/private void deleteCustomer() {
//		System.out.println("刪除");int number;System.out.println("---------------------删除客户---------------------");for(;;) {System.out.print("请输入修改客户编号(-1退出)");number = CMUtility.readInt();if(number == -1) {return;}Customer customer = customerList.getCustomer(number - 1);if(customer == null) {System.out.println("无法找到");}else {break;}}//找到指定客户System.out.print("确认是否删除(Y/N):");char isDelete = CMUtility.readConfirmSelection();if(isDelete == 'Y') {boolean customer = customerList.deleteCustomer(number - 1);System.out.println("---------------------删除完成---------------------");}  else {System.out.println("----------无法找到指定客户,删除失败--------------");}}/*** * @Description显示客户* @author linfeng  Email:1296752939@qq.com* @date 2022年3月14日下午8:50:52*/private void listAllCustomer() {//System.out.println("显示");System.out.println("---------------------------客户列表---------------------------");int total = customerList.getTotal();if(total == 0) {System.out.println("没有客户记录");}else {System.out.println("编号\t姓名\t性别\t年龄\t电话\t邮箱");Customer[] custs = customerList.getAllCustomer();for(int i = 0;i<custs.length;i++) {Customer cust = custs[i];System.out.println((i + 1) + "\t" + cust.getName() + "\t" + cust.getGender() + "\t" + cust.getAge() + "\t" + cust.getPhone() + "\t" + cust.getEmail());}}System.out.println("-------------------------客户列表完成-------------------------");}public static void main(String[] args) {CustomerView view = new CustomerView();view.enterMAinMenu();}
}

4.CMUtility工具类:

package com.linfeng.util;import java.util.*;
/**
CMUtility工具类:
将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。
*/
public class CMUtility {private static Scanner scanner = new Scanner(System.in);/**用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’5’中的任意字符,则方法返回。返回值为用户键入字符。*/public static char readMenuSelection() {char c;for (; ; ) {String str = readKeyBoard(1, false);c = str.charAt(0);if (c != '1' && c != '2' && c != '3' && c != '4' && c != '5') {System.out.print("选择错误,请重新输入:");} else break;}return c;}/**从键盘读取一个字符,并将其作为方法的返回值。*/public static char readChar() {String str = readKeyBoard(1, false);return str.charAt(0);}/**从键盘读取一个字符,并将其作为方法的返回值。如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。*/public static char readChar(char defaultValue) {String str = readKeyBoard(1, true);return (str.length() == 0) ? defaultValue : str.charAt(0);}/**从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。*/public static int readInt() {int n;for (; ; ) {String str = readKeyBoard(2, false);try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/**从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。*/public static int readInt(int defaultValue) {int n;for (; ; ) {String str = readKeyBoard(2, true);if (str.equals("")) {return defaultValue;}try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/**从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。*/public static String readString(int limit) {return readKeyBoard(limit, false);}/**从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。*/public static String readString(int limit, String defaultValue) {String str = readKeyBoard(limit, true);return str.equals("")? defaultValue : str;}/**用于确认选择的输入。该方法从键盘读取‘Y’或’N’,并将其作为方法的返回值。*/public static char readConfirmSelection() {char c;for (; ; ) {String str = readKeyBoard(1, false).toUpperCase();c = str.charAt(0);if (c == 'Y' || c == 'N') {break;} else {System.out.print("选择错误,请重新输入:");}}return c;}private static String readKeyBoard(int limit, boolean blankReturn) {String line = "";while (scanner.hasNextLine()) {line = scanner.nextLine();if (line.length() == 0) {if (blankReturn) return line;else continue;}if (line.length() < 1 || line.length() > limit) {System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");continue;}break;}return line;}
}

 


http://www.ngui.cc/zz/1545154.html

相关文章

Golang入门项目(家庭收支软件和客户信息管理软件)

家庭收支软件 package utilsimport "fmt"type FamilyAccount struct {//声明一个变量&#xff0c;保存接收用户输入的选项key string//声明一个变量&#xff0c;控制是否退出forloop bool//定义账户的余额 []balance float64//每次收支的金额money float64//每次收支…

java编写家庭收支记录,java swing mysql 实现的家庭收支管理系统项目源码附带视频运行教程...

<p><span style"color:#555555;font-family:&quot;font-size:16px;background-color:#FFFFFF;line-height:2;">今天给大家演示一下一款由Java swing mysql实现的简单的家庭收支情况管理系统&#xff0c;也可以叫个人消费情况记录软件&#xff0c;功能…

【java】家庭收支管理系统

目录 1.该项目所涉及的主要知识点 2.项目要实现的功能 3.使用的工具&#xff08;eclipse&#xff09; 4.代码部分 1.该项目所涉及的主要知识点 ①变量的定义 ②数据类型的使用 ③循环语句&#xff08;for循环&#xff0c;while循环&#xff09; 2.项目要实现的功能 ①模…

java ssm班费收支信息管理系统

学校中对班费的管理&#xff0c;已经从通常的手工记事本的方式管理过渡到电脑信息化软件管理的方式。通过软件进行班费的管理&#xff0c;方便用户的查询&#xff0c;数据的登记等&#xff0c;对班级的班费管理更加方便。通过系统的建设&#xff0c;也能够对班费的缴费情况&…

基于文本界面的家庭收支软件

1.项目展示 2.项目代码 #include <stdio.h> #include <string.h> //定义一个结构体 struct MyFamilyAccount{int flag;//表示至少有一笔收入或者支出 char details[3000];//明细 double balance;//余额 }; //定义相关的变量char key ; //表示用户输入了那个菜单 …

好用erp管理软件

好用erp管理软件 好的ERP软件应该是SAP和Oracle ERP&#xff0c;但是价格也是相当的贵。降一档次的就是金蝶用友&#xff0c;亿看ERP&#xff0c;管家婆等等了&#xff0c;这些应该性价比比较高&#xff0c;反正还是要看自己了解了&#xff0c;多看看&#xff0c;找到最属于自…

外贸软件之纯贸易外贸管理软件

外贸企业之纯贸易型外贸企业面临的痛点及难点有哪些&#xff1f;产品类别复杂&#xff1b;业务环节繁琐&#xff0c;疏漏多&#xff1b;客户资源容易流失&#xff1b;客户关系难管理&#xff1b;协作管理不规范……​ 汇信外贸管理软件如何解决这些问题呢&#xff1f; 【客户管…

旅行社管理软件

做这个软件之前&#xff0c;旅行社给我的印象就是“拉客”与“接客”&#xff0c;业务模式应该比较简单。但做起这样一个旅行社管理软件&#xff0c;才发现麻雀虽小、五脏俱全&#xff0c;一个旅行社的运作&#xff0c;牵扯到的方方面面远远超出自己之前的理解。 客户要求以团控…

C6软件测试大乐,软件测试大作业——社团管理系统

《软件测试大作业——社团管理系统》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《软件测试大作业——社团管理系统(19页珍藏版)》请在人人文库网上搜索。1、山东科技大学软件测试技术与工具课程设计报告专 业&#xff1a; 软件工程 班级学号&#xff1a;1学生姓名&…

java swing mysql 实现的家庭收支管理系统项目源码

&#xfeff;&#xfeff;大家好&#xff0c;今天给大家演示一下一款由Java swing mysql实现的简单的家庭收支情况管理系统&#xff0c;也可以叫个人消费情况记录软件&#xff0c;功能比较紧凑简单&#xff0c;数据库采用的是mysql&#xff0c;非常适合Java初学者和学生党参看学…