Sistem manajemen toko buku:
Tujuan Latihan Proyek:
1. Analisis Dasar Aplikasi Java
2. Kembangkan ide-ide dasar pemrograman yang berorientasi objek
3. Aplikasi Komprehensif dari Pola Desain Java Dasar
4. Kuasai desain dasar pelapisan dan antarmuka
5. Bangun Struktur Paket Aplikasi Java yang masuk akal
6. Pengetahuan yang dipelajari dengan aplikasi JSE yang komprehensif
7. Gunakan kerangka kerja koleksi secara rasional dalam aplikasi
8. Penggunaan komprehensif komponen umum ayunan dalam aplikasi
9. Mekanisme Implementasi Lapisan Kinerja Dasar
10. Operasi dasar aliran dan file IO
11. Kembangkan kebiasaan pemrograman java yang baik
12. Kembangkan kemampuan untuk men -debug program java dan menumbuhkan kemampuan untuk memperbaiki kesalahan
Persyaratan Fungsional Proyek:
1. Dapat mengoperasikan pendaftaran pengguna, memodifikasi informasi dasar, menghapus dan meminta.
2. Dapat menambah, menghapus, memodifikasi, dan meminta informasi dasar buku ini.
3. Anda dapat mengisi formulir pembelian. Formulir pembelian berisi beberapa informasi pembelian spesifik. Buku yang dibeli harus sudah tersedia dalam manajemen buku; Saat membeli, memodifikasi volume inventaris buku yang sesuai dalam inventaris.
4. Anda dapat mengisi formulir penjualan. Formulir penjualan berisi beberapa informasi penjualan spesifik. Buku -buku yang dijual harus sudah ada dalam manajemen buku, dan jumlah penjualan tidak dapat melebihi jumlah inventaris saat ini; Saat menjual, ubah volume inventaris buku yang sesuai dalam inventaris.
5. Anda dapat melihat detail inventaris dan menemukan nilai inventaris buku -buku tertentu sesuai dengan kondisi.
6. Sederhanakan izin dan terapkan kontrol izin tetap. Pengguna dibagi menjadi personel dengan izin operasi yang berbeda sesuai dengan modul, dan pengguna admin khusus dapat mengoperasikan semua fungsi.
Desain Proyek Dasar:
★ Kerangka kerja keseluruhan desain arsitektur, Divisi Modul: 5 Modul: Pengguna, Buku, Pembelian, Penjualan dan Inventaris
★ Sistem Struktur Fungsional Desain Submodul Fungsional Spesifik dari Setiap Modul Fungsional
★ Implementasi Kerangka Proyek Desain Database: Modul, Lapisan, Subkontrak, dan Bangun Aplikasi
1. Manajemen Pengguna (user.txt)
Catatan: Jenisnya adalah tipe int, yang digunakan untuk mewakili jenis operator.
1 - dilambangkan sebagai admin, semua operasi dapat dilakukan
2-dipenuhi sebagai orang yang dapat mengoperasikan modul buku
3 - dinyatakan sebagai orang yang dapat mengoperasikan modul pembelian
4 - Diungkapkan sebagai orang yang dapat mengoperasikan modul penjualan
5 - Diungkapkan sebagai orang yang dapat mengoperasikan modul inventaris
2. Manajemen Buku (Book.txt)
3. Manajemen Pembelian (Inmain.txt)
4. Manajemen Detail Pembelian (indetail.txt)
5. Manajemen Penjualan (Outmain.txt)
6. Manajemen Detail Penjualan (Outdetail.txt)
7. Manajemen Inventaris (Stock.txt)
Subkontrak proyek
Lapisan Pertama: Modul Pengguna (Pengguna) sesuai dengan modul
Buku (buku),
Beli (dalam),
Penjualan (keluar),
Inventaris (toko)
Lapisan kedua: Menurut mode tiga lapis, dibagi menjadi Layer Presentation (UI), Logic Layer (Business) dan Data Layer (DAO)
Biasanya, Lapisan Objek Nilai (VO) perlu ditambahkan
Lapisan ketiga: bergantung pada situasi spesifik sesuai dengan divisi di dalam lapisan. Misalnya, sub-paket harus dibangun dalam bentuk segitiga besi, sedangkan UI dan VO tidak perlu dibagi menjadi sub-paket).
Ide Stratifikasi Proyek:
Tidak disempurnakan, terus perhatikan seri ini (ii)
Berikut ini adalah bagian dari kode: (kelas publik di util)
cn.hncu.bookstore.util
Fileioutil.java:
Paket cn.hncu.bookstore.util; import java.io.file; impor java.io.fileInputStream; import java.io.filenotfoundException; impor java.oBeTputStream; import java.ioException; impor java.objileOnputStream; java.util.arraylist; import java.util.list; import javax.swing.joptionpane;/*** Data publik pengguna Baca dan tulis kelas* @author chen haoxiang** @version 1.0 ** BACA PUBLIK PUBLIK @PUBLIK PUBLIK () {}/** DATA BACA PUBLIK ** PUBLIK @PUBLIK @PUBLIK () tabel data) * @param ee (jenis generik yang dilewati!) * @Return Records dari semua tabel! */@SuppressWarnings ("Uncecked") // tekan PERINGATAN PUBLIK PUBLIK <E> DAFTAR <E> ReadFormFile (String FileName, E EE) {Daftar <E> Daftar = ArrayList baru <E> (); File File Akhir = File baru (nama file); ObjectInputStream in = null; if (! File.exists ()) {joptionpane.showmessagealog (null, "tabel data tidak ada!"); daftar pengembalian; } coba {in = new ObjectInputStream (FileInputStream baru (nama file)); coba {list = (daftar <E>) di.readObject (); } catch (ClassNotFoundException e) {E.PrintStackTrace (); }} catch (FileNotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } akhirnya {if (in! = null) {coba {in.close (); } catch (ioException e) {lempar runimeException baru ("database tutup gagal"); }}} daftar pengembalian; } / ** * Tulis koleksi daftar ke dalam nama file data * * * @param List (pengumpulan data yang perlu disimpan) * @param fileName (nama file ke file mana yang ditulis) * / public static void write2File (daftar <Object>, string filename) {ObjectOutputStream out = null; coba {out = new ObjectOutputStream (FileOutputStream baru (fileName)); out.writeObject (daftar); } catch (FileNotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } akhirnya {if (out! = null) {coba {out.close (); } catch (ioException e) {lempar runtimeException baru ("Database tutup gagal!"); }}}}}}}}}Data pengguna yang dienkapsulasi:
cn.hncu.bookstore.user.vo;
Usermodel.java
Paket cn.hncu.bookstore.user.vo;/** * @author chen haoxiang * @Version 1.0 * * <br/> * Nilai objek yang digunakan untuk menyimpan informasi pengguna <br/> * 1. Serialize <br/> * 2. Privatisasi semua anggota Variabel dan Metode Penggunaan Penggunaan <br/> * 3. Kode <br/> * 4. Metode ToString <br/> * 5. Metode Konstruksi Parameter Kosong <br/> */Kelas Publik Usermodel {Private String UUID; // Pengguna Kode Identifikasi Unik Nama String Pribadi; // Nama Pengguna Tipe Int Private; // User Type Private String Pwd; // User Usmodel Public Usermodel () {}/ * Fungsi uU*: PWD; kode identifikasi unik*/ string publik getuuid () {return uuid; } / *** Fungsi: atur kode identifikasi unik UUID-USER* @param uuid-user identifikasi unik Parameter tipe string-string* / public void setuuid (string uuid) {this.uuid = uuid; } / *** Fungsi: Dapatkan nama pengguna pengguna* @return-name-user name* / public string getName () {return name; } / *** Fungsi: Dapatkan nama pengguna pengguna* @return-name-user name* / public string getName () {return name; } / *** Fungsi: Setel nama pengguna** @param nama-nama pengguna diatur oleh pengguna, string tipe parameter* / public void setName (nama string) {this.name = name; } / *** Fungsi: Dapatkan tipe pengguna:* 1 - mewakili admin, dan semua operasi dapat dilakukan* 2 - mewakili orang yang dapat mengoperasikan modul buku* 3 - mewakili orang yang dapat mengoperasikan modul pembelian* 4 - mewakili orang yang dapat mengoperasikan modul penjualan* 5 - mewakili orang yang dapat mengoperasikan modul inventurn* @return; } /** * Function: Set the user type: * 1― represents the person who can operate the book module* 2― represents the person who can operate the book module* 3―Denoted as a person who can operate the purchase module* 4―Denoted as a person who can operate the sales module* 5―Denoted as a person who can operate the inventory module* @param type--user's type-int type parameter*/ public void setType (tipe int) {this.type = type; } / ***Fungsi: Dapatkan kata sandi pengguna*@Return string type, kata sandi pengguna* / public string getPwd () {return pwd; } / ***Fungsi: Atur kata sandi pengguna*@param pwd-string tipe parameter* / public void setPwd (string pwd) {this.pwd = pwd; } @Override public int hashCode () {final int prime = 31; Hasil int = 1; hasil = hasil * prime + ((uuid == null)? 0: uuid.hashcode ()); hasil pengembalian; } @Override public boolean sama (objek obj) {if (this == obj) mengembalikan true; if (obj == null) mengembalikan false; if (getClass ()! = obj.getClass ()) mengembalikan false; Usermodel lain = (usermodel) obj; if (uuid == null) {if (Other.uuid! = null) return false; } else if (! uuid.equals (Other.uuid)) return false; Kembali Benar; } @Override public string toString () {return "usermodel [uuid =" + uuid + ", name =" + name + ", type =" + type + ", pwd =" + pwd + "]"; }} Data kueri pengguna yang dienkapsulasi:
cn.hncu.bookstore.user.vo;
UserQueryModel.java
Paket cn.hncu.bookstore.user.vo; kelas publik UserQueryModel Extends Usermodel {}Meskipun kelas ini tidak memiliki apa -apa, itu hanya mewarisi usermodel, masih harus ditulis. Ini adalah spesifikasi penulisan Java yang semua orang tunggu!
Pengguna DAO (Lapisan Data): (Antarmuka)
cn.hncu.bookstore.user.dao.dao;
Userdao.java
Paket cn.hncu.bookstore.user.dao.dao; impor java.util.list; import cn.hncu.bookstore.user.vo.usermodel; data * loaboner * loabonymodel; Antarmuka userdao { / *** Fungsi: Buat pengguna** @param userModel --- data pengguna yang akan dibuat* @ @return-true berarti pembuatan berhasil, false berarti pembuatan gagal* / public boolean create (userModel user); / *** Fungsi: Hapus pengguna** @param uuid --- kode identifikasi unik pengguna, setiap pengguna tidak akan sama* @return --- true berarti penghapusan berhasil, salah berarti penghapusan gagal*/ hapus boolean publik (string uuid); / *** Fungsi: Modifikasi Data Pengguna** @param Pengguna --- Nama Parameter Data Pengguna Yang Perlu Dimodifikasi* @Return Return True- menunjukkan bahwa modifikasi berhasil, return false- menunjukkan bahwa modifikasi telah gagal*/ pembaruan boolean publik (pengguna USERMODEL); / *** Fungsi: Dapatkan semua data pengguna** @return --- Koleksi USERMODEL, yaitu, data pengguna*/ Daftar publik <SuModel> getAll (); /** * Fungsi: Cari sesuai dengan kondisi pencarian tertentu, * <br/> * Mengembalikan data pengguna yang memenuhi kondisi pencarian. ** @param uqm --- Kondisi pencarian yang dienkapsulasi* @Return ---- Set data pengguna yang memenuhi kondisi pencarian*/ Daftar publik <SuModel> getByCondition (UserQueryModel UQM); / *** Fungsi: Dapatkan data pengguna tertentu** @param uuid --- Pengguna Kode Identifikasi Unik* @Return --- Kembalikan data pengguna yang ditemukan sesuai dengan kode identifikasi unik ini*/ USERMODEL PUBLIK GetSingle (String UUID);}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.