java项目之Bank银行代码

举报
小小谢先生 发表于 2022/04/16 00:31:13 2022/04/16
【摘要】 文中所有代码来自尚硅谷宋红康老师的Java课程,如有侵权请联系删除。 项目说明: 模拟实现一个基于文本界面的 《 客户信息管理软件 》。 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 项目采用分级菜单方式。主菜单如下:     &...

文中所有代码来自尚硅谷宋红康老师的Java课程,如有侵权请联系删除。

项目说明:

模拟实现一个基于文本界面的 客户信息管理软件 》。

该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。

项目采用分级菜单方式。主菜单如下:

             -----------------客户信息管理软件-----------------

 

                                     1 添 加 客 户

                                     2 修 改 客 户

                                     3 删 除 客 户

                                     4 客 户 列 表

                                     5 退           出

 

                                     请选择(1-5)_

每个客户的信息被保存在c ustomer 对象中。
以一个c ustomer 类型的数组来记录当前所有的客户。
每次“添加客户”(菜单 1 )后,客户( Customer )对象被添加到数组中。
每次“修改客户”(菜单 2 )后,修改后的客户( Customer )对象替换数组中原对象。
每次“删除客户”(菜单 3 )后,客户( Customer )对象被从数组中清除。
执行“客户列表 ”(菜单 4 )时,将列出数组中所有客户的信息。
 
 
 

项目代码

整个项目分为4个Java文件,分别实现功能。

CMUtility文件,实现与客户的交互


  
  1. package customer.util;
  2. import java.util.*;
  3. public class CMUtil {
  4. private static Scanner scanner = new Scanner(System.in);
  5. /**
  6. 用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’5’中的任意字符,则方法返回。返回值为用户键入字符。
  7. */
  8. public static char readMenuSelection() {
  9. char c;
  10. for (; ; ) {
  11. String str = readKeyBoard(1, false);
  12. c = str.charAt(0);
  13. if (c != '1' && c != '2' &&
  14. c != '3' && c != '4' && c != '5') {
  15. System.out.print("选择错误,请重新输入:");
  16. } else break;
  17. }
  18. return c;
  19. }
  20. /**
  21. 从键盘读取一个字符,并将其作为方法的返回值。
  22. */
  23. public static char readChar() {
  24. String str = readKeyBoard(1, false);
  25. return str.charAt(0);
  26. }
  27. /**
  28. 从键盘读取一个字符,并将其作为方法的返回值。
  29. 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
  30. */
  31. public static char readChar(char defaultValue) {
  32. String str = readKeyBoard(1, true);
  33. return (str.length() == 0) ? defaultValue : str.charAt(0);
  34. }
  35. /**
  36. 从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
  37. */
  38. public static int readInt() {
  39. int n;
  40. for (; ; ) {
  41. String str = readKeyBoard(2, false);
  42. try {
  43. n = Integer.parseInt(str);
  44. break;
  45. } catch (NumberFormatException e) {
  46. System.out.print("数字输入错误,请重新输入:");
  47. }
  48. }
  49. return n;
  50. }
  51. /**
  52. 从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
  53. 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
  54. */
  55. public static int readInt(int defaultValue) {
  56. int n;
  57. for (; ; ) {
  58. String str = readKeyBoard(2, true);
  59. if (str.equals("")) {
  60. return defaultValue;
  61. }
  62. try {
  63. n = Integer.parseInt(str);
  64. break;
  65. } catch (NumberFormatException e) {
  66. System.out.print("数字输入错误,请重新输入:");
  67. }
  68. }
  69. return n;
  70. }
  71. /**
  72. 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
  73. */
  74. public static String readString(int limit) {
  75. return readKeyBoard(limit, false);
  76. }
  77. /**
  78. 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
  79. 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
  80. */
  81. public static String readString(int limit, String defaultValue) {
  82. String str = readKeyBoard(limit, true);
  83. return str.equals("")? defaultValue : str;
  84. }
  85. /**
  86. 用于确认选择的输入。该方法从键盘读取‘Y’或’N’,并将其作为方法的返回值。
  87. */
  88. public static char readConfirmSelection() {
  89. char c;
  90. for (; ; ) {
  91. String str = readKeyBoard(1, false).toUpperCase();
  92. c = str.charAt(0);
  93. if (c == 'Y' || c == 'N') {
  94. break;
  95. } else {
  96. System.out.print("选择错误,请重新输入:");
  97. }
  98. }
  99. return c;
  100. }
  101. private static String readKeyBoard(int limit, boolean blankReturn) {
  102. String line = "";
  103. while (scanner.hasNextLine()) {
  104. line = scanner.nextLine();
  105. if (line.length() == 0) {
  106. if (blankReturn) return line;
  107. else continue;
  108. }
  109. if (line.length() < 1 || line.length() > limit) {
  110. System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");
  111. continue;
  112. }
  113. break;
  114. }
  115. return line;
  116. }
  117. }

customer代码文件,实现创建客户信息


  
  1. package customer.bean;
  2. public class customer {
  3. private String name;
  4. private char gender;
  5. private int age;
  6. private String phone;
  7. private String email;
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setGender(char gender) {
  15. this.gender = gender;
  16. }
  17. public char getGender() {
  18. return gender;
  19. }
  20. public void setAge(int age) {
  21. this.age = age;
  22. }
  23. public int getAge() {
  24. return age;
  25. }
  26. public String getPhone() {
  27. return phone;
  28. }
  29. public void setPhone(String phone) {
  30. this.phone = phone;
  31. }
  32. public void setEmail(String email) {
  33. this.email = email;
  34. }
  35. public String getEmail() {
  36. return email;
  37. }
  38. public customer(){
  39. }
  40. public customer(String name,char gender,int age,String phone,String email){
  41. this.name=name;
  42. this.gender=gender;
  43. this.age=age;
  44. this.phone=phone;
  45. this.email=email;
  46. }
  47. }

customerList文件,实现客户信息的一些操作


  
  1. package customer.service;
  2. import customer.bean.customer;
  3. public class customerList {
  4. private customer[] customers; //用来保存用户对象的数组
  5. private int total=0; //记录已保存的客户的数量
  6. public customerList(int totalCustomer){
  7. customers=new customer[totalCustomer];
  8. }
  9. public boolean addcustomer(customer customes){
  10. if (total>=customers.length){
  11. return false;
  12. }
  13. customers[total++]=customes;
  14. return true;
  15. }
  16. public boolean replacecustomer(int index,customer cust){
  17. if (index<0 || index>=total){
  18. return false;
  19. }
  20. customers[index]=cust;
  21. return true;
  22. }
  23. public boolean deletecustomer(int index){
  24. if (index<0 || index>=total){
  25. return false;
  26. }
  27. for (int i=0;i<total-1;i++){
  28. customers[i]=customers[i+1];
  29. }
  30. customers[--total]=null;
  31. return true;
  32. }
  33. public customer[] getAllCustomers(){
  34. customer[] custs=new customer[total];
  35. for (int i=0;i<total;i++){
  36. custs[i]=customers[i];
  37. }
  38. return custs;
  39. }
  40. public customer getCustomer(int index){
  41. if (index<0 || index>=total){
  42. return null;
  43. }
  44. return customers[index];
  45. }
  46. public int getTotal(){
  47. return total;
  48. }
  49. }

customerView文件,实现主界面实现和逻辑交互


  
  1. package customer.ui;
  2. import customer.bean.customer;
  3. import customer.service.customerList;
  4. import customer.util.CMUtil;
  5. public class customerview {
  6. private customerList customers=new customerList(10);
  7. public customerview(){
  8. customer cust=new customer("张三", '男', 30, "010-56253825",
  9. "abc@email.com");
  10. customers.addcustomer(cust);
  11. }
  12. public void enterMainMenu(){
  13. boolean loopFlag = true;
  14. do {
  15. System.out.println("\n-----------------客户信息管理软件-----------------\n");
  16. System.out.println(" 1 添 加 客 户");
  17. System.out.println(" 2 修 改 客 户");
  18. System.out.println(" 3 删 除 客 户");
  19. System.out.println(" 4 客 户 列 表");
  20. System.out.println(" 5 退 出\n");
  21. System.out.print(" 请选择(1-5):");
  22. char key = CMUtil.readMenuSelection();
  23. System.out.println();
  24. switch (key) {
  25. case '1':
  26. addNewCustomer();
  27. break;
  28. case '2':
  29. modifyCustomer();
  30. break;
  31. case '3':
  32. deleteCustomer();
  33. break;
  34. case '4':
  35. listAllCustomers();
  36. break;
  37. case '5':
  38. System.out.print("确认是否退出(Y/N):");
  39. char yn = CMUtil.readConfirmSelection();
  40. if (yn == 'Y')
  41. loopFlag = false;
  42. break;
  43. }
  44. } while (loopFlag);
  45. }
  46. private void addNewCustomer() {
  47. System.out.println("---------------------添加客户---------------------");
  48. System.out.print("姓名:");
  49. String name = CMUtil.readString(4);
  50. System.out.print("性别:");
  51. char gender = CMUtil.readChar();
  52. System.out.print("年龄:");
  53. int age = CMUtil.readInt();
  54. System.out.print("电话:");
  55. String phone = CMUtil.readString(15);
  56. System.out.print("邮箱:");
  57. String email = CMUtil.readString(30);
  58. customer cust = new customer(name, gender, age, phone, email);
  59. boolean flag = customers.addcustomer(cust);
  60. if (flag) {
  61. System.out
  62. .println("---------------------添加完成---------------------");
  63. } else {
  64. System.out.println("----------------记录已满,无法添加-----------------");
  65. }
  66. }
  67. private void modifyCustomer() {
  68. System.out.println("---------------------修改客户---------------------");
  69. int index = 0;
  70. customer cust = null;
  71. for (;;) {
  72. System.out.print("请选择待修改客户编号(-1退出):");
  73. index = CMUtil.readInt();
  74. if (index == -1) {
  75. return;
  76. }
  77. cust = customers.getCustomer(index - 1);
  78. if (cust == null) {
  79. System.out.println("无法找到指定客户!");
  80. } else
  81. break;
  82. }
  83. System.out.print("姓名(" + cust.getName() + "):");
  84. String name = CMUtil.readString(4, cust.getName());
  85. System.out.print("性别(" + cust.getGender() + "):");
  86. char gender = CMUtil.readChar(cust.getGender());
  87. System.out.print("年龄(" + cust.getAge() + "):");
  88. int age = CMUtil.readInt(cust.getAge());
  89. System.out.print("电话(" + cust.getPhone() + "):");
  90. String phone = CMUtil.readString(15, cust.getPhone());
  91. System.out.print("邮箱(" + cust.getEmail() + "):");
  92. String email = CMUtil.readString(15, cust.getEmail());
  93. cust = new customer(name, gender, age, phone, email);
  94. boolean flag = customers.replacecustomer(index - 1, cust);
  95. if (flag) {
  96. System.out
  97. .println("---------------------修改完成---------------------");
  98. } else {
  99. System.out.println("----------无法找到指定客户,修改失败--------------");
  100. }
  101. }
  102. private void deleteCustomer() {
  103. System.out.println("---------------------删除客户---------------------");
  104. int index = 0;
  105. customer cust = null;
  106. for (;;) {
  107. System.out.print("请选择待删除客户编号(-1退出):");
  108. index = CMUtil.readInt();
  109. if (index == -1) {
  110. return;
  111. }
  112. cust = customers.getCustomer(index - 1);
  113. if (cust == null) {
  114. System.out.println("无法找到指定客户!");
  115. } else
  116. break;
  117. }
  118. System.out.print("确认是否删除(Y/N):");
  119. char yn = CMUtil.readConfirmSelection();
  120. if (yn == 'N')
  121. return;
  122. boolean flag = customers.deletecustomer(index - 1);
  123. if (flag) {
  124. System.out
  125. .println("---------------------删除完成---------------------");
  126. } else {
  127. System.out.println("----------无法找到指定客户,删除失败--------------");
  128. }
  129. }
  130. private void listAllCustomers() {
  131. System.out.println("---------------------------客户列表---------------------------");
  132. customer[] custs = customers.getAllCustomers();
  133. if (custs.length == 0) {
  134. System.out.println("没有客户记录!");
  135. } else {
  136. System.out.println("编号\t姓名\t性别\t年龄\t\t电话\t\t邮箱");
  137. for (int i = 0; i < custs.length; i++) {
  138. System.out.println(i + 1 + "\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t" + custs[i].getAge() + "\t\t" + custs[i].getPhone() + "\t" + custs[i].getEmail());
  139. //System.out.println((i+1) + "\t" + custs[i].getDetails());
  140. }
  141. }
  142. System.out.println("-------------------------客户列表完成-------------------------");
  143. }
  144. public static void main(String[] args) {
  145. customerview cView = new customerview();
  146. cView.enterMainMenu();
  147. }
  148. }
 
 
 

文章来源: blog.csdn.net,作者:小小谢先生,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/xiewenrui1996/article/details/108376949

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。