Menu utama mengontrol submenu di setiap level, dan mewujudkan implementasi menambahkan catatan, menemukan catatan, menghapus catatan, memodifikasi catatan, menyortir catatan, dan keluar dari fungsi sistem. Sebanyak enam modul fungsional.
Diagram di atas menunjukkan fungsi dari setiap modul, dan juga menggunakan ekspresi reguler untuk menentukan apakah input sesuai dengan aturan. Sistem ini mencerminkan pola desain MVC, dan pembagian kerja sangat jelas.
Ini terutama mencakup kategori berikut:
Kelas Aplikasi: Kelas fungsi utama program, entri ke program mulai
Kelas Menu: Ini adalah semua efek yang ditampilkan pada halaman sederhana, dan tidak ada implementasi fungsi.
Kelas Telnoteregex: Ekspresi reguler, yang menentukan apakah input memenuhi syarat, semuanya dalam metode ini.
Kelas Operate: Kelas Logika Bisnis, semua fungsi pada dasarnya terkonsentrasi di kelas ini.
Kelas Orang: Mengenak data.
Kode Implementasi Khusus:
Kode kelas aplikasi:
paket com.bjsxt.iphone; aplikasi kelas publik {public static void main (string [] args) {new App (). start (); } public void start () {menu m = menu baru (); Operate O = New Operate (); Telnoteregex reg = telnoteregex baru (); while (true) {m.mainmenu (); int key = Reg.MenureGex (1, 6); switch (key) {case 1: o.addLogic (); merusak; Kasus 2: O.SearchLogic (); merusak; Kasus 3: o.modifylogiclogic (); merusak; Kasus 4: O.Deletelogic (); merusak; Kasus 5: O.OrderLogic (); merusak; Kasus 6: System.exit (0); merusak; }}}}Kode implementasi khusus kelas orang:
Paket com.bjsxt.iphone; class public class person {private int id; // ID pengguna atribut nama string pribadi; // nama pengguna atribut private string usia; // zaman pengguna atribut pribadi string sex; // atribut gender pengguna private string telnum; // nomor telepon pengguna string alamat; this.id = id; this.name = name; this.age = usia; this.sex = seks; this.telnum = telnum; this.address = alamat; } public int getId () {return id; } public void setid (int id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } getage string publik () {return usia; } public void setage (String Age) {this.age = usia; } public string getsex () {return sex; } public void setSex (string sex) {this.sex = sex; } public string gettelnum () {return telnum; } public void settelnum (string telnum) {this.telnum = telnum; } public String getAddress () {alamat kembali; } public void setAddress (Alamat String) {this.address = alamat; }}Kode Kelas TelnoteRegex spesifik:
Paket com.bjsxt.iphone; import java.util.scanner; kelas publik telnoteregex {// periksa item menu @suppresswarnings ("sumber daya") int int menureGex (int min, int max) {string regex = "[0-9] {1}"; Pemindai SC = Pemindai Baru (System.in); while (true) {string input = sc.nextline (); // periksa berdasarkan legalitas if (input.matches (regex)) {int key = integer.parseint (input); if (key> = min && key <= max) {return key; } else {System.out.println ("Item menu yang dimasukkan tidak memenuhi persyaratan!"); }} else {System.out.println ("Konten input salah!"); }}}} // Verifikasi nama input pengguna @suppressWarnings ("Resource") Public String nameRegex (nama string) {string Pattern = "[// u4e00-// u9fa5]+"; String str = name; Pemindai SC = Pemindai Baru (System.in); while (true) {if (str.matches (pola)) {return str; } else {System.out.println ("Masukkan karakter ilegal, mohon masukkan kembali karakter Cina"); str = sc.nextline (); melanjutkan; }}} // Verifikasi Usia Input Pengguna @SuppressWarnings ("Resource") Public String AgeRegex (String Age) {String Pattern = "^([0-9] | [0-9] {2} | 100) $"; String str = usia; Pemindai SC = Pemindai Baru (System.in); while (true) {if (str.matches (pola)) {return str; } else {System.out.println ("Masukkan karakter ilegal, harap masukkan kembali angka-angka itu"); str = sc.nextline (); melanjutkan; }}} // Verifikasi gender pengguna @suppresswarnings ("sumber daya") public string sexRegex (string sex) {string pola = "[pria dan wanita mmff]"; String str = sex; Pemindai SC = Pemindai Baru (System.in); while (true) {if (str.matches (pola)) {return str; } else {System.out.println ("Masukkan karakter ilegal, mohon masukkan kembali mmff pria dan wanita"); str = sc.nextline (); melanjutkan; }}} // Verifikasi nomor telepon input pengguna @suppressWarnings ("sumber daya") string publik telnumregex (string telnum) {string pola = "[0-9] {11}"; String str = telnum; Pemindai SC = Pemindai Baru (System.in); while (true) {if (str.matches (pola)) {return str; } else {System.out.println ("Masukkan karakter ilegal, harap masukkan kembali nomor ponsel 11 digit"); str = sc.nextline (); melanjutkan; }}}} // Verifikasi alamat input pengguna @suppressWarnings ("sumber daya") public string addressRegEx (alamat string) {string pola = "[a-za-z [0-9]] {1,15}"; String str = alamat; Pemindai SC = Pemindai Baru (System.in); while (true) {if (str.matches (pola)) {return str; } else {System.out.println ("Masukkan karakter ilegal, mohon masukkan kembali 1 hingga 15 kasus atau angka bahasa Inggris"); str = sc.nextline (); melanjutkan; }}}}Implementasi spesifik kode kelas menu:
paket com.bjsxt.iphone; menu kelas publik {// antarmuka utama public void mainMenu () {System.out.println ("*************************"); System.out.println ("** 1 Tambahkan catatan **"); System.out.println ("** 2 Temukan catatan **"); System.out.println ("** 3 Modifikasi Catatan **"); System.out.println ("** 4 Hapus catatan **"); System.out.println ("** 5 Sortir catatan **"); System.out.println ("** 6 Keluar dari sistem **"); System.out.println ("***********************"); } // Tambahkan antarmuka public void addMenu () {System.out.println ("*********************"); System.out.println ("** 1 Tambahkan catatan baru **"); System.out.println ("** 2 Lihat semua catatan **"); System.out.println ("** 3 kembali ke level sebelumnya **"); System.out.println ("**********************"); } // Cari antarmuka public void searchMenu () {System.out.println ("*********************"); System.out.println ("** 1 Cari dengan nama"); System.out.println ("** 2 pencarian berdasarkan usia"); System.out.println ("** 3 Search by Gender"); System.out.println ("** 4 Cari dengan Nomor"); System.out.println ("** 5. Klik alamat untuk menemukan **"); System.out.println ("** 6. Lihat Catatan Lengkap **"); System.out.println ("** 7. Kembali ke level sebelumnya **"); System.out.println ("**********************"); } // Ubah antarmuka public void ModifyMenu () {System.out.println ("**********************"); System.out.println ("** 1. Lihat Catatan Lengkap **"); System.out.println ("** 2 Modifikasi catatan yang ditentukan **"); System.out.println ("** 3 kembali ke level sebelumnya **"); System.out.println ("**********************"); } // Modifikasi subinterface public void submodifyMenu () {System.out.println ("********************"); System.out.println ("** 1 Ubah nama **"); System.out.println ("** 2 Modifikasi Usia **"); System.out.println ("** 3 Modifikasi jenis kelamin **"); System.out.println ("** 4 Modifikasi Nomor **"); System.out.println ("** 5 Modifikasi Alamat **"); System.out.println ("** 6 kembali ke level sebelumnya **"); System.out.println ("**********************"); } // hapus antarmuka public void deleteMenu () {System.out.println ("**************************"); System.out.println ("** 1 Lihat semua catatan **"); System.out.println ("** 2 Hapus catatan yang ditentukan **"); System.out.println ("** 3 hapus semua catatan **"); System.out.println ("** 4 kembali ke level sebelumnya **"); System.out.println ("***********************"); } // mengurutkan antarmuka public void orderMenu () {System.out.println ("*************************"); System.out.println ("** 1 sortir berdasarkan nama **"); System.out.println ("** 2 sortir berdasarkan usia **"); System.out.println ("** 3 sortir berdasarkan jenis kelamin **"); System.out.println ("** 4 Lihat semua catatan **"); System.out.println ("** 5 kembali ke level sebelumnya **"); System.out.println ("**********************"); }}Implementasi spesifik dari kelas operasi:
Paket com.bjsxt.iphone; import java.util.arraylist; import java.util.collections; import java.util.comparator; java.util.iterator; import java.util.list; import java.util.scanner; operat kelas publik {private list <person personal> // Pengguna Tambahkan Informasi Kontrol Logika Bisnis Void AddLogic () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.addmenu (); int key = Reg.MenureGex (1, 3); switch (key) {case 1: addOperation (); merusak; Kasus 2: showall (); merusak; Kasus 3: kembali; }}} // Informasi kueri pengguna Kontrol logika bisnis public void searchLogic () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.searchMenu (); int key = Reg.MenureGex (1, 7); switch (key) {case 1: searchByName (); merusak; Kasus 2: SearchByage (); merusak; Kasus 3: SearchBySex (); merusak; Kasus 4: SearchByTelnum (); merusak; Kasus 5: SearchByAdd (); merusak; Kasus 6: showall (); merusak; Kasus 7: kembali; }}} // Modifikasi Informasi Kontrol Logika Bisnis Public Void ModifyLogiclogic () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.modifyMenu (); int key = Reg.MenureGex (1, 3); switch (key) {case 1: showall (); merusak; Kasus 2: ModifyLogiclogic1 (); merusak; Kasus 3: kembali; }}} // Modifikasi tiga lapis lompatan public void Modifylogiclogic1 () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.submodifyMenu (); int key = Reg.MenureGex (1, 6); switch (key) {case 1: naMeModify (); merusak; Kasus 2: ageModify (); merusak; Kasus 3: sexmodify (); merusak; Kasus 4: Telnummodify (); merusak; Kasus 5: AddressModify (); merusak; Kasus 6: kembali; }}} // Hapus informasi Business Logic Control public void deletelogic () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.deleteMenu (); int key = Reg.MenureGex (1, 4); switch (key) {case 1: showall (); merusak; Kasus 2: hapus (); merusak; Kasus 3: DeleteAll (); merusak; Kasus 4: kembali; }}} // Informasi penyortiran Kontrol logika bisnis public void orderLogic () {menu m = menu baru (); Telnoteregex reg = telnoteregex baru (); while (true) {m.ordermenu (); int key = Reg.MenureGex (1, 5); switch (key) {case 1: orderName (); merusak; Kasus 2: Orderage (); merusak; Kasus 3: ordersex (); merusak; Kasus 4: showall (); merusak; Kasus 5: kembali; }}} // Tambahkan informasi pengguna baru @SuppressWarnings ("Resource") public void addoperation () {telnoteRegex reg = new telnoteregex (); Pemindai SC = Pemindai Baru (System.in); System.out.println ("Harap masukkan ID kontak:"); String id = sc.nextline (); System.out.println ("Harap masukkan nama yang akan ditambahkan:"); String name = sc.nextline (); name = Reg.nameRegex (name); System.out.println ("Harap masukkan usia yang akan ditambahkan:"); String usia = sc.nextline (); usia = Reg.ageregex (usia); System.out.println ("Harap masukkan jenis kelamin yang ingin Anda tambahkan:"); String sex = sc.nextline (); seks = reg.sexregex (seks); System.out.println ("Harap masukkan nomor ponsel yang ingin Anda tambahkan:"); String telnum = sc.nextline (); telnum = reg.telnumregex (telnum); System.out.println ("Harap masukkan alamat yang ingin Anda tambahkan:"); Alamat string = sc.nextline (); alamat = reg.addressRegex (alamat); int personid = integer.parseint (id); Orang p = orang baru (personid, nama, usia, jenis kelamin, telnum, alamat); list.add (p); } // // // menilai apakah nomor seri telah ada dan penyisipan gagal berhasil // @suppresswarnings ("sumber daya") // public string judgeId (string id) {// scanner sc = new scanner (System.in); // iterator <pon> itu = list.iterator (); // string = id; p = (orang) it.next (); // if (newId.equals (p.getId ())) {// System.out.println ("Nomor seri ini sudah ada, mohon masukkan kembali nomor seri"); // newid = sc.nextline (); // lanjutkan; //} else {// return; Informasi Pengguna public void showall () {System.out.println ("Nomor Seri/T/T"+"Nama/T/T"+"Usia/T/T"+"Gender/T/T"+"Nomor Ponsel/T/T"+"Alamat"); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); }} // kueri informasi pengguna dengan nama @suppresswarnings ("sumber daya") public void searchByName () {telnoteRegex reg = new telnoteregex (); System.out.println ("Masukkan nama yang ingin Anda query:"); Pemindai SC = Pemindai Baru (System.in); String name = sc.nextline (); name = Reg.nameRegex (name); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (name.equals (p.getName ())) {System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+") ()+"/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/t/ }}} // kueri informasi pengguna berdasarkan usia @suppresswarnings ("sumber daya") public void searchByage () {telnoteRegex reg = new telnoteregex (); System.out.println ("Masukkan usia yang ingin Anda minta:"); Pemindai SC = Pemindai Baru (System.in); String usia = sc.nextline (); usia = Reg.ageregex (usia); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (age.equals (p.getage ())) {System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+P.gettelnum ()+"+"/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/ }}} // Permintaan informasi pengguna dengan gender @suppresswarnings ("sumber daya") public void searchBySex () {telnoteRegex reg = new telnoteRegex (); System.out.println ("Masukkan jenis kelamin yang ingin Anda minta:"); Pemindai SC = Pemindai Baru (System.in); String sex = sc.nextline (); seks = reg.sexregex (seks); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (sex.equals (p.getsex ())) {System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"+() ()+"/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/t/ }}} // Periksa informasi pengguna melalui nomor telepon @suppressWarnings ("Resource") public void searchBytelnum () {telnoteRegex reg = new telnoteregex (); System.out.println ("Masukkan nomor telepon yang ingin Anda minta:"); Pemindai SC = Pemindai Baru (System.in); String telnum = sc.nextline (); telnum = reg.telnumregex (telnum); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (telnum.equals (p.gettelnum ())) {System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum () () () ()+()+"/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T/T" }}} // Periksa informasi pengguna dengan alamat @suppresswarnings ("Resource") public void searchByAdd () {telnoteregex reg = new telnoteRegex (); System.out.println ("Masukkan alamat yang ingin Anda minta:"); Pemindai SC = Pemindai Baru (System.in); Alamat string = sc.nextline (); alamat = reg.addressRegex (alamat); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (address.equals (p.getAddress ())) {System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"p.) } } }// // Modify the specified record information// public void modify(){// System.out.println("Please enter the information you want to modify:");// // } // Modify the name information @SuppressWarnings("resource") public void nameModify(){ TelNoteRegex reg=new TelNoteRegex(); System.out.println ("Harap masukkan nomor seri yang ingin Anda modifikasi:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); System.out.println ("Harap masukkan nama yang ingin Anda modifikasi:"); String name = sc.nextline (); name = Reg.nameRegex (name); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {p.setname (name); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); } else {System.out.println ("Modifikasi Gagal, coba lagi!"); }}} // Modifikasi informasi usia @SuppressWarnings ("Resource") public void ageModify () {telnoteRegex reg = new telnoteregex (); System.out.println ("Harap masukkan nomor seri yang ingin Anda modifikasi:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); System.out.println ("Harap masukkan usia yang ingin Anda modifikasi:"); String usia = sc.nextline (); usia = Reg.ageregex (usia); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {p.setage (usia); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); } else {System.out.println ("Modifikasi Gagal, coba lagi!"); }}} // Modifikasi informasi gender @suppresswarnings ("Resource") public void sexmodify () {telnoteRegex reg = new telnoteregex (); System.out.println ("Harap masukkan nomor seri yang ingin Anda modifikasi:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); System.out.println ("Harap masukkan jenis kelamin yang ingin Anda modifikasi:"); String sex = sc.nextline (); seks = reg.sexregex (seks); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {p.setsex (sex); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); } else {System.out.println ("Modifikasi Gagal, coba lagi!"); }}} // Modifikasi informasi nomor @SuppressWarnings ("Resource") public void telnummodify () {System.out.println ("Harap masukkan nomor seri yang ingin Anda modifikasi:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); System.out.println ("Harap masukkan nomor telepon yang ingin Anda modifikasi:"); String telnum = sc.nextline (); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {p.settelnum (telnum); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); } else {System.out.println ("Modifikasi Gagal, coba lagi!"); }}} // Ubah informasi alamat @suppresswarnings ("sumber daya") public void addressModify () {telnoteRegex reg = new telnoteRegex (); System.out.println ("Harap masukkan nomor seri yang ingin Anda modifikasi:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); System.out.println ("Harap masukkan alamat yang ingin Anda modifikasi:"); Alamat string = sc.nextline (); alamat = reg.addressRegex (alamat); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {p.setAddress (alamat); System.out.println (p.getId ()+"#"+"/t/t"+p.getname ()+"/t/t"+p.getage ()+"/t/t"+p.getsex ()+"/t/t"+p.gettelnum ()+"/t/t"+p.getaddress ()); } else {System.out.println ("Modifikasi Gagal, coba lagi!"); }}} // hapus informasi pengguna yang ditentukan @suppressWarnings ("Resource") public void delete () {System.out.println ("Harap masukkan ID yang ingin Anda hapus:"); Pemindai SC = Pemindai Baru (System.in); String num = sc.nextline (); int id = integer.parseint (num); Iterator <fone> it = list.iterator (); while (it.hasnext ()) {person p = (orang) it.next (); if (id == p.getId ()) {list.remove (id); System.out.println ("Hapus Sukses"); } else {System.out.println ("Hapus gagal"); }}} // hapus semua informasi pengguna public void deleteAll () {list.clear (); System.out.println ("Hapus berhasil"); } // Urutkan informasi berdasarkan nama pengguna public void orderName () {comparator <fone> comparator = comparator baru <sone> () {@Override public int compare (Person o1, Person o2) {return o1.getName (). Compareto (o2.getName ()); }}; Collections.sort (daftar, pembanding); showall (); } // Urutkan informasi berdasarkan usia pengguna void orderage () {comparator <fone> comparator = comparator baru <sone> () {@Override public int compare (Person o1, Person O2) {return o1.getage (). Compareto (o2.getage ()); }}; Collections.sort (daftar, pembanding); showall (); } // Urutkan informasi berdasarkan gender gender public void ordersex () {comparator <fone> comparator = comparator baru <sone> () {@Override public int bandar }}; Collections.sort (daftar, pembanding); showall (); }}Ringkasan: Proyek ini membuat saya sangat jelas tentang apa itu berorientasi objek dan mengapa Java adalah bahasa pemrograman yang berorientasi objek. Kode program ini dipanggil oleh objek, dan saya juga mengerti bagaimana suatu proyek harus ditulis dengan jelas. Fungsi dan pandangan harus dipisahkan. Setiap kelas memiliki fungsi spesifiknya sendiri. Fungsi setiap kelas tidak boleh diinstal bersama. Kode seperti itu pada dasarnya tidak dapat digunakan kembali. Jika mereka dipisahkan dan jelas, saat menambahkan modul fungsional di masa depan, hanya fungsi yang perlu ditambahkan tanpa memodifikasi kode sebelumnya. Ini mencerminkan prinsip pembukaan dan penutupan. Untuk pengembangan fungsi dan konten modifikasi, proyek ini juga mencerminkan pola desain MVC. Bagi saya, proyek ini telah banyak menguntungkan saya.