один. Эта система имитирует пользователей банка, используя банкоматы для открытия учетной записи, запроса, депозита и снятия денег, и требует реализации программирования с использованием Java Language.
иллюстрировать:
1. Для исключений ввода данных вы можете использовать механизм обработки исключений Java, чтобы обработать его.
2. Оценка будет оценена таким образом, чтобы объединить функциональную реализацию с нормативностью кода.
3. Если у вас есть какие -либо вопросы о требованиях к проекту, вы можете связаться со мной в любое время, оставив сообщение QQ для консультации.
4. Во время национального дня дневного праздника учителя дежутся в компании каждый день. Я дежусь дежурной в компании 4 октября, и я обычно хожу на работу 7 октября. Все могут приехать в компанию для выполнения проектов.
два. Функциональные требования к проекту:
Проект начинает работать и отображает главное меню как:
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
В настоящее время пользователь может выбрать функцию, которую он хочет реализовать с помощью ввода клавиатуры. Если вход не составляет 0, 1, 2, 3, 4, система подсказывает:
Выбранное вами меню не существует!
Пожалуйста, выберите:
Попросите пользователя повторно ввести данные для выбора меню!
Когда пользователь входит 0, будет введена функция запроса: Системная приглашение:
***********************************************
Вы выбрали функцию открытия аккаунта
Пожалуйста, введите свое имя:
В настоящее время пользователь должен ввести его имя. После завершения ввода система подсказывает:
Пожалуйста, введите свой идентификационный номер:
В настоящее время пользователю необходимо ввести 18-значный идентификационный номер. Если проверка не удается и требует продолжения ввода, система подсказывает:
Пожалуйста, введите свой пароль:
В настоящее время пользователю необходимо ввести 6-значный чистый цифровой пароль. Если проверка не удается и требует дальнейшего ввода, система подсказывает после передачи проверки:
Открытие счета было успешным, спасибо, что использовали его!
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Когда пользователь входит 1, будет введена функция запроса: Системная приглашение:
***********************************************
Вы выбрали функцию запроса
Пожалуйста, введите номер карты, который вы хотите запросить:
В настоящее время пользователю необходимо ввести номер карты запроса, и система проверит номер карты. Если номер карты не существует, она будет предпринять: введенный вами номер карты не существует, пожалуйста, повторно введите:
Пожалуйста, введите номер карты, который вы хотите запросить:
Повторно введите номер карты. Когда пользователь входит в правильный номер карты, приглашение:
Пожалуйста, введите свой пароль:
В настоящее время пользователю необходимо ввести 6-значный чистый цифровой пароль. Если проверка не удается и требует дальнейшего ввода (до 3 раза), система отобразит текущую информацию об учетной записи пользователя и введет основное меню после передачи проверки:
Информация об учетной записи, которую вы запрашиваете:
***********************************************
Номер идентификационной карты номер карты сумма
Zhang Sanfeng4201061984410112062 111111 12800.0
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Когда пользователь входит 2, будет введена функция депозита: Системная приглашение:
***********************************************
Ваш выбор - функция депозита
Пожалуйста, введите номер карты, который вы хотите внести:
В настоящее время пользователю необходимо ввести номер карты депозита, и система проверит номер карты. Если номер карты не существует, подсказка:
Введенный вами номер карты не существует, пожалуйста, повторно введите:
Пожалуйста, введите номер карты, который вы хотите внести:
Повторно введите номер карты. Когда пользователь входит в правильный номер карты, приглашение:
Пожалуйста, введите свой пароль:
В настоящее время пользователю необходимо ввести 6-значный чистый цифровой пароль. Если проверка не удается и требует дальнейшего ввода (до 3 раза), система отобразит текущую информацию об учетной записи пользователя и введет основное меню после передачи проверки:
Информация об учетной записи, которую вы хотите внести:
***********************************************
Номер идентификационной карты номер карты сумма
Zhang Sanfeng4201061984410112062 111111 12800.0
Пожалуйста, введите сумму, которую вы хотите внести:
В настоящее время пользователь должен ввести сумму депозита, и система будет оценить сумму. Если входные данные меньше или равны 0, это будет вызвано:
Введенные вами данные недействительны, и система автоматически уйдет! Спасибо за использование
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Если пользователь вводит данные на законных основаниях, система предполагает, что депозит успешно и возвращается в главное меню:
Депозит был успешным, спасибо, что использовали его!
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Данные будут депонированы в учетную запись пользователя. Если пользователь снова ищет данные, он может увидеть измененную сумму учетной записи. (Примечание. Эта система использует файлы для хранения данных, поэтому, если пользователь перезагружает программу, данные будут считываться из файла и повторно инициализироваться в память! Эта функция необязательна, вы можете ссылаться на сериализацию и десериализацию объектов или JSON)
Когда пользователь входит 3, будет введена функция отмены: Системная приглашение:
***********************************************
Пожалуйста, введите номер карты, который вы хотите снять в качестве функции снятия:
В настоящее время пользователю необходимо ввести номер карты для снятия средств. Система проверит номер карты. Если номер карты не существует, это будет вызвано:
Введенный вами номер карты не существует, пожалуйста, повторно введите:
Пожалуйста, введите номер карты, который вы хотите снять:
Повторно введите номер карты. Когда пользователь входит в правильный номер карты, приглашение:
Пожалуйста, введите свой пароль:
В настоящее время пользователю необходимо ввести 6-значный чистый цифровой пароль. Если проверка не удается и требует дальнейшего ввода (до 3 раза), система отобразит текущую информацию об учетной записи пользователя и введет основное меню после передачи проверки:
Информация об учетной записи, которую вы хотите снять, - это:
***********************************************
Номер идентификационной карты номер карты сумма
Zhang Sanfeng4201061984410112062 111111 12800.0
Пожалуйста, введите сумму, которую вы хотите снять:
В настоящее время пользователь должен ввести сумму вывода, и система будет судить об сумме. Если входные данные меньше 0 или больше, чем общая сумма учетной записи, приглашение:
Введенные вами данные недействительны, и система автоматически уйдет! Спасибо за использование
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Если пользователь вводит данные на законных основаниях, система побуждает, что снятие успешного и возвращается в главное меню:
Вывод был успешным, спасибо, что использовали его!
Система терминалов самообслуживания банка
***********************************************
0.----- Откройте учетную запись
1 .-----------------------------------------------------------------------------------------------------------------------
2.----- Депозит
3 .----- Изъятие
4.------ Выход
***********************************************
Пожалуйста, выберите функцию, которую вы хотите выполнить:
Данные будут вычтены из учетной записи пользователя. Если пользователь снова ищет данные, он может увидеть измененную сумму учетной записи.
Когда пользователь входит 4, система выйдет.
три. Проектные требования
(1) Пакет один: com.bank.unionpay означает UnionPay, добавьте его в этот пакет:
Он представляет интерфейс для банковской карты, включая абстрактные методы, такие как запрос баланса, депозит, снятие средств и т. Д.
Он представляет собой абстрактный класс, который представляет машину для банкомата, использует объекты типа банковской карты в качестве атрибутов или параметров, реализует методы экземпляров, такие как остатки запросов, депозиты, снятие средств и т. Д., И добавляет открытие счета в качестве абстрактного метода.
Он представляет типы перечисления четырех основных банков: включая ABC, ICBC, CCB и BOC; Он представляет сельскохозяйственный банк Китая, промышленного и коммерческого банка Китая, ККБ и Банка Китая соответственно.
(2) Пакет 2: com.bank.abc представляет сельскохозяйственный банк Китая, добавьте его в этот пакет:
Определите класс банка по схеме синглтона, включая атрибуты: тип банка (тип перечисления, постоянный = ABC), имя банка (строка), список банковских карт (SET) и т. Д.
Определите класс реализации банковской карты - сберегательную карту, включая атрибуты: тип банка (тип перечисления = ABC), имя, идентификационный номер, номер карты, пароль, баланс; реализовать методы для запроса баланса, депозита, снятия средств и т. Д.
Определите подкласс машины банкомата, включая атрибуты: тип банка (тип перечисления, constant = abc), внедряя метод открытия учетной записи, среди которых можно открыть только сберегательную карту, номер карты представляет собой 6-значное случайное число, которое генерируется автоматически. Недавно открытая банковская карта добавлена в список банковских карт.
Определите подкласс сберегательной карты - кредитная карта, добавьте атрибуты: предел овердрафта, переписывание метода снятия средств и контроль максимальной суммы отмены не может быть больше, чем сумма баланса + лимит овердрафта.
(3) Пакет 3: com.bank.test представляет тестирование, добавьте тестовый класс с основным методом в этом пакете, чтобы реализовать функцию моделируемых банкоматов, требуемых проектом.
Выберите следующие функции:
Реализуйте ICBC в режиме одного состояния, добавьте несколько банковских карт в тестовый класс по умолчанию и реализуйте функции перекрестного банка и депозитов и снятия средств на банкомате сельскохозяйственного банка.
Пакет 1: com.bank.unionpay
1. Класс Абстракции банковской карты
пакет com.bank.unionpay; публичный интерфейс yinhangka {public void cun (); public void q (); public void getyu ();}2. Перечислять типы банков
пакет com.bank.unionpay; public enum yinhang {abc («сельскохозяйственный банк»), ICBC («Промышленная и коммерческая»), CCB ("CCB"), BOC ("Bank of China"); Private Final String yinhang; // частное метод строительства частного yinhang (String yinhang) {this.yinhang = yinhang;) this.yinhang;}}3. Класс банкоматов
пакет com.bank.unionpay; import com.bank.abc.yinhanglei; public abstract class atm {private yinhanglei yhl; // Атрибут класса банка частное двойное юэ; // переменная yuepublic double getyue () {return yue;} public void setyue (double yue) {this.yue = yue;} // Метод запроса public void yue () {System.out.println («Баланс на карте:« +this.yue);} // method public Void Cun Cun Cun Cun Cun Cun Cun Cun Cun (Double. cun) {if (cun <0) {System.out.println ("Вход неверен");} else {this.yue+= cun; system.out.println ("Баланс на карте:"+this.yue);}} // Снятие метода public void Qu (double Qu) Недостаточный ");} else {this.yue- = qu; system.out.println (" Баланс на карте: "+this.yue);}} // Определите абстрактный метод открытия аккаунта Public Abstract void kaihu ();}4. Основной класс интерфейса
пакет com.bank.unionpay; import java.util.arraylist; import java.util.list; import java.util.scanner; открытый класс zujiemian {public void zhujiemian () {System.out.println ("Bank Self-Service Terminal System "); System.out.println (); System.out.println (" ********************************************************************** Открытие "); li.add (" Query "); li.add (" depit "); li.add (" exit "); li.Add (" supoice "); li.add (" exit "); for (int i = 0; i <5; i ++) {System.out.println (i+"------"+li.get (i));} System.out.println (); System.out.println ("********************* выполнять: ");}}Пакет 2: com.bank.abc
1. Категория открытия учетной записи Atm2
пакет com.bank.abc; import java.util.random; import java.util.scanner; import com.bank.unionpay.atm; импорт com.bank.unionpay.yinhang; открытый класс Atm2 Extends atm {private yinhang yhl = yinhang.abc; @OverridePublic void kaihu () {// метод открытия учетной записи // Введите имя cuxuka cxk = new cuxuka (); try {scanner sc1 = new Scanner (System.in); System.out.println ("Пожалуйста, введите ваше имя:"); string st = sc1.nextline (); cxk.setname (st); System.out.println («Пожалуйста, введите номер вашей идентификационной карты:»); for (int ig = 0; ig> = 0; ig ++) {Scanner sc2 = новый сканер (System.in); String str = sc2.nextline (); строка ST1 = "// D {15} | // d {17} [// dxx]"; if (str.matches (st1)) {cxk.setshenfen (str); break;} els Пароль: «); для (int ig = 0; ig> = 0; ig ++) {scanner sc3 = new Scanner (system.in); string pass = sc3.nextline (); string mm =" // d {6} "; if (pass.matches (mm)) {cxk.setpassword (pass); пароль ");}} // Сгенерировать 6-значный номер сберегательной карты random a = new random (); int [] ch = new int [6]; stringBuilder str = new StringBuilder (); String S; for (int i = 0; i <6; i ++) {ch [i] = A.nextint (9); C: CH) {str.Append (c);} s = str.toString (); cxk.setCard (s); // Импорт сгенерированных данных в список банковских карт yinhangle Yinhanglei.getyinhanglei (). Map.put (cxk.getCard (), cxk); System.out.println («Ваша новая карта номер:»+cxk.getCard ()); System.out.println («Открытие счета является успешным, спасибо");} catch (исключение e) {system.out. неверный ");}}}2. Категория сберегательных карт
package com.bank.abc;import java.util.Scanner;import com.bank.unionpay.Yinhang;import com.bank.unionpay.Yinhangka;public class Cuxuka implements Yinhangka {//Save card attribute private Yinhang yinhang;private String name;private String shenfen;private String card;private String password;private double balance;//Generate toString ();@OverridePublic string toString () {return "name =" + name + "/t/n" + "id card =" + shenfen + "/t/n" + "card № =" + card + "/t/n" + "Account =" + Balance;} // Get для атрибута public yinhang getyinhang () {return yinhang = yin yin yin getName () {return name;} public void setName (string name) {this.name = name;} public String getShenfen () {return shenfen;} public void setshenfen (String shenfen) {this.shenfen = shenfen;} public String getCard () {return Card;} public void setCard; card;} public String getPassword () {return password;} public void setPassword (String password) {this.Password = passwor Cuxuka (); cu1.chaxun (); scanner sc2 = новый сканер (System.in); System.out.println («Пожалуйста, введите сумму, которую вы хотите внести:«); двойной cun = sc2.nextdouble (); // Реализуйте метод депозита, если (cun <0) {System.out.out.printl (). Данные, которые вы вносят, Automitist, если System Automit, Automitist, SystemItId, SystemITID, SystemITID, SystemITID, SystemItId, SystemITID, SystemITID INSIDID, инат. Спасибо за использование ");} else {this.balance+= cun; yinhanglei.getyinhanglei (). Map.get (cu1.card) .setbalance (balance); System.out.println (" Отказ от ответственности достигает успеха, оставшийся Сумма "+yinhanglei.getyinhanglei (). Map.get (cu1.card) .getBalance ());}} // Метод запроса public void chaxun () {while (true) {try {scanner sc = new Scanner (System.in); System.println (" Phtey Wint wumber вы хотите Quarder: "); s = sc.nextline (); // transf коллекция карт yinhanglei для (String temp: yinhanglei.getyinhanglei (). Map.keyset ()) {if (s.ecalles (temp)) {this.card = s;}} if (s.eckals (card)) // werify card number {int i = 0; system.ous. while (true) {scanner sc1 = new Scanner (system.in); string st1 = sc1.nextline (); if (st1.equals (yinhanglei.getyinhanglei (). map.get (s) .getpassword ())) {System.out.println («Информация об учетной записи, которую вы запрашиваете IS: "); system.out.println (); System.out.println (" ********************************* Summent "); System.out.println (); System.out.println (yinhanglei.getyinhanglei (). Map.get (s)); Break;} else {i ++; if (i == 3) {System.out.println (" Ввод пароля более 3 раза error ");}}}} else {System.out.println (« Пожалуйста, подтвердите, если номер карты введен неправильно ");}}} Catch (Exception e) {System.out.println (" Вход неверно ");} Break;}} // Метод снятия Cuxuka (); cu.chaxun (); scanner sc1 = новый сканер (System.in); System.out.println («Пожалуйста if (qu <balance) {this.balance- = qu; yinhanglei.getyinhanglei (). map.get (cu.card) .setbalance (balance); System.out.println («Вывод средний успех, оставшаяся сумма:"+ yinhanglei.getyinhangle (). {System.out.println («Введенные вами данные недействительны, система автоматически выйдет! Спасибо за использование ") ;;} else {System.out.println (" Недостаточный баланс ");}}@overridepublic void getyu () {// баланс расчеты cuxuka cu = new cuxuka (); system.out.println (" оставшаяся сумма "+cu.getbalance ();}}}}}}}}}}}}}}}}}}}}}}3. Категория модельной модельной модели модели
Пакет com.bank.abc; импорт java.util.arraylist; import java.util.hashmap; импорт java.util.list; import java.util.map; импорт com.bank.unionpay.yinhang; public class yinhanglei {// bank class attrube class private yinhang yinhang = yinhang. ArrayList <> (); Public Map <String, cuxuka> map = new Hashmap <> (); // Частный метод строительства private yinhanglei () {super ();} частный статический yinhanglei bank = new yinhanglei (); public yinhanglei getyinhanglei () {return Bank;}}4. Категория кредитной карты
Пакет com.bank.abc; открытый класс Xinyongka Extends cuxuka {// Создать свой собственный атрибут частного двойного тужи; Реализуйте метод вывода if (((touzhi+getBalance ())> = qu) {System.out.println ("updraw ument"+(qu-getBalance ())) ;;} else {System.out.println ("не может отказаться от максимальной суммы переработки");Пакет 3: com.bank.test
1. Тестовый класс
пакет com.bank.test; import java.util.arraylist; import java.util.list; import java.util.scanner; import com.bank.abc.atm2; import com.bank.abc.cuxuka; импорт com.bank.unionpay.atm; import com.bank.unionpay.zujiemian; args) {// Создание основного интерфейса cuxuka cxk = new cuxuka (); // создание основного интерфейса zujiemian zjm = new Zujiemian (); // Top Exception try {// Создать мертвую петлю для (int i = 0; i> = 0; i ++) {zjm.zhujejiamian () scanner () scanner (); Scanner (System.in); int in = sc.nextint (); // Защита, соответствует ли входное число, число интерфейса if (in == 0 || in == 1 || in == 2 || in == 3 || in == 4) {// Функция открытия if (in == 0) {atm2 = новый Atm2 (); atm2.kaihu (); system.out.println ("***************************** if(in==1){System.out.println("******************************");System.out.println("You selected as the query function");cxk.chaxun();continue;}//Default function if(in == 2) {System.out.println ("***************************** if (in == 3) {System.out.println ("*************************"); System.out.println («Ваш выбор - функция вывода»); cxk.qu (); Продолжить;} // Функция выхода, если (in == 4) {System.out.println (». Спасибо для использования! "); Break;}} // print else {system.out.println (" Выбранное вами меню не существует! ");}} // исключение Throws Print} Catch (Exception e) {System.out.println (" Ввод неверный ");}}}}}}}}}результат:
Выше приведено в моделируемой системе самообслуживания Java Bank, введенной редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!