Buchhandelsmanagementsystem:
Projektübungsziele:
1. Grundlegende Analyse von Java -Anwendungen
2. Kultivieren Sie die grundlegenden Ideen der objektorientierten Programmierung
3.. Umfassende Anwendung grundlegender Java -Designmuster
4. Meister Sie das grundlegende Design von Schichten und Schnittstellen
5. Erstellen Sie eine angemessene Java -Anwendungspaketstruktur
6. Wissen, das durch umfassende Anwendung von JSE erlernt wurde
7. Verwenden Sie die Sammlung Framework rational in der Anwendung
8. umfassende Verwendung gemeinsamer Komponenten von Schwung in Anwendungen
9. Mechanismus für die Implementierungsmechanismus für die Implementierung von Leistungsschichten
10. Grundlegende Vorgänge von IO -Streams und -dateien
11. Gute Java -Programmiergewohnheiten entwickeln
12. Kultivieren Sie die Fähigkeit, Java -Programme zu debuggen und die Fähigkeit zu kultivieren, Fehler zu korrigieren
Projektfunktionale Anforderungen:
1. kann die Benutzerregistrierung bedienen, grundlegende Informationen ändern, löschen und abfragen.
2. kann die grundlegenden Informationen des Buches hinzufügen, löschen, ändern und abfragen.
3. Sie können das Kaufformular ausfüllen. Ein Kaufformular enthält mehrere spezifische Kaufinformationen. Die gekauften Bücher müssen bereits in der Buchverwaltung erhältlich sein. Beim Kauf ändern Sie das Bestandsvolumen der entsprechenden Bücher im Inventar.
4. Sie können das Verkaufsformular ausfüllen. Ein Verkaufsformular enthält mehrere spezifische Verkaufsinformationen. Die verkauften Bücher müssen bereits im Buchmanagement enthalten sein, und die Verkaufsmenge darf die aktuelle Bestandsmenge nicht überschreiten. Ändern Sie beim Verkauf das Bestandsvolumen der entsprechenden Bücher im Inventar.
5. Sie können die Bestandsdetails anzeigen und den Bestandswert bestimmter Bücher gemäß den Bedingungen finden.
6. Vereinfachen Sie die Berechtigungen und implementieren Sie feste Berechtigungssteuerung. Der Benutzer ist in Personal mit unterschiedlichen Betriebsberechtigungen gemäß dem Modul unterteilt, und ein spezieller Administrator -Benutzer kann alle Funktionen bedienen.
Grundes Projektdesign:
★ Gesamtrahmen des Architekturdesigns, Modulabteilung: 5 Module: Benutzer, Buch, Kauf, Verkauf und Inventar
★ Systemfunktionalstruktur Design Spezifische funktionale Submodule jedes Funktionsmoduls
★ Datenbankdesign -Projekt -Framework -Implementierung: Modul-, Schicht-, Subunternehmer- und Build -Anwendungen
1. Benutzerverwaltung (user.txt)
Hinweis: Der Typ ist int -Typ, der verwendet wird, um den Typ des Bedieners darzustellen.
1 - als Admin bezeichnet, können alle Vorgänge durchgeführt werden
2-als eine Person, die das Buchmodul bedienen kann
3 - ausgedrückt als Person, die das Kaufmodul bedienen kann
4 - ausgedrückt als Person, die Verkaufsmodule betreiben kann
5 - ausgedrückt als Person, die Inventarmodule bedienen kann
2. Buchmanagement (Buch.TXT)
3. Kaufverwaltung (Inmain.txt)
4. Kaufdetails Management (indetail.txt)
5. Vertriebsmanagement (Outmain.txt)
6. Verkaufsdetailmanagement (Outdetail.txt)
7. Inventory Management (stock.txt)
Projekt Subunternehmer
Die erste Ebene: Benutzermodul (Benutzer) gemäß dem Modul
Bücher (Bücher),
Kauf (in),,
Verkäufe (aus),,
Inventar (Geschäft)
Die zweite Ebene: Gemäß dem Dreischichtmodus ist sie in die Präsentationsschicht (UI), die Logikschicht (Geschäfts) und die Datenschicht (DAO) unterteilt.
Normalerweise muss eine Wertobjektschicht (VO) hinzugefügt werden
Die dritte Schicht: Hängt von der spezifischen Situation nach der Teilung innerhalb der Schicht ab. Beispielsweise müssen die Unterverpackungen in Form eines Eisendreiecks gebaut werden, während die Benutzeroberfläche und die VO nicht in die Unterpackungen unterteilt werden müssen).
Projektstratifizierungsideen:
Nicht perfektioniert, bitte achten Sie weiterhin auf diese Serie (ii)
Das Folgende ist Teil des Code: (eine öffentliche Klasse in Util)
cn.hncu.bookstore.util
DateiEoutil.java:
Paket cn.hncu.bookstore.util; import Java.io.file; import Java.io.fileinputstream; import Java.io.FilenotFoundException; import Java.io.fileOutputStream importieren Java.io.IOISICUMCEAM; java.util.arraylist; import Java.util.list; importieren javax.swing.joptionpane;/*** Benutzer öffentliche Daten lesen und schreiben Sie Klasse* @author chen haoxiang** @Version 1.0*/public class FileOutil {öffentlich -Dateioutil () {{}/*** Die Datentabelle. * @param ee (Typ des übergebenen Generikums!) * @return Records aller Tabellen! */@Suppresswarnings ("deaktiviert") // WARNING PUBLIC STATIC <E> LIST <E> readFormFile (String -Dateiname, e ee) {list <E> list = new ArrayList <E> (); endgültige Datei Datei = neue Datei (Dateiname); ObjectInputStream in = null; if (! file.exists ()) {joptionpane.showMessagedialog (null, "Die Datentabelle existiert nicht!"); Rückgabeliste; } try {in = new ObjectInputStream (neuer FileInputStream (Dateiname)); try {list = (list <e>) in.readObject (); } catch (classNotFoundException e) {e.printstacktrace (); }} catch (FilenotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } endlich {if (in! = null) {try {in.close (); } catch (ioException e) {neue runimeexception ("Datenbank schließen fehlgeschlagen"); }}} Rückgabeliste; } / ** * Schreiben Sie eine Listensammlung in den Datendatei -Dateinamen * * @paramliste (die Datenerfassung, die gespeichert werden muss) * @param Dateiname (der Dateiname, an den die Datei geschrieben wurde) * / public static void Write2File (Liste <Objekt> Liste, String Dateiname) {ObjectOutputStream Out = null; try {out = new ObjectOutputStream (neuer FileOutputStream (Dateiname)); out.WriteObject (Liste); } catch (FilenotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } endlich {if (out! = null) {try {out.close (); } catch (ioException e) {neue runTimeexception werfen ("Datenbank schließen fehlgeschlagen!"); }}}}}}}}}}Eingekapselte Benutzerdaten:
cn.hncu.bookstore.user.vo;
UsModel.java
Paket cn.hncu.bookstore.user.vo;/** * @Author Chen Haoxiang * @Version 1.0 * * <br/> * Value-Objekt zum Speichern von Benutzerinformationen <br/> * 1. Serialize <br/> * 2. Privatisieren Sie alle Variablen-Mitglieder und Supplement-Setter-Setter-Methoden. Code <br/> * 4. TOString-Methode <br/> * 5. leere Parameter-Konstruktionsmethode <br/> */public class UsModel {private String uUid; // Benutzer eindeutiger Identifikationscode privater String-Name des Benutzers. eindeutiger Identifikationscode*/ public String getuUid () {return UUID; } / *** Funktion: Setzen Sie den Uuid-Benutzer eindeutigen Identifikationscode* @param uUid-user eindeutig Identifikations-Code-String-Typ Parameter* / public void setUuid (String uUid) {this.uuid = uUid; } / *** Funktion: Erhalten Sie den Benutzernamen des Benutzers* @return-NAME-User Name* / public String getName () {return name; } / *** Funktion: Erhalten Sie den Benutzernamen des Benutzers* @return-NAME-User Name* / public String getName () {return name; } / *** Funktion: Setzen Sie den Benutzernamen** @param Name-Benutzername vom Benutzer festgelegt, String-Typ Parameter* / public void setName (String-Name) {this.name = name; } / *** Funktion: Nutzen Sie den Benutzertyp:* 1 - Repräsentiert Admin, und alle Vorgänge können ausgeführt werden.* 2 - repräsentiert die Person, die das Buchmodul betreiben kann } / *** Funktion: Setzen Sie den Benutzertyp:* 1-repräsentiert die Person, die das Buchmodul bedienen kann this.type = Typ; } / ***Funktion: Holen Sie sich das Kennwort des Benutzers*@Return String -Typ, Benutzerkennwort* / public String getPwd () {return pwd; } / ***Funktion: Setzen Sie das Kennwort des Benutzers*@param pwd- STRING-Typ Parameter* / public void setpwd (String pwd) {this.pwd = pwd; } @Override public int HashCode () {final int prime = 31; int result = 1; result = prime * result + ((uUid == null)? 0: uUid.hashCode ()); Rückgabeergebnis; } @Override public boolean Equals (Objekt obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; UsModel Andere = (UsModel) obj; if (uUid == null) {if (other.uUid! = null) return false; } else if (! uUid.equals (other.uUid)) return false; zurückkehren; } @Override public String toString () {return "userModel [uUid =" + uUid + ", name =" + name + ", type =" + type + ", pwd =" + pwd + "]"; }} Enkapselte Benutzerabfragedaten:
cn.hncu.bookstore.user.vo;
UserQueryModel.java
Paket cn.hncu.bookstore.user.vo; öffentliche Klasse UserQueryModel erweitert UsModel {}Obwohl diese Klasse nichts hat, erbt sie nur das UsModel, sie muss immer noch geschrieben werden. Dies ist die Java -Schreibspezifikation, an die sich jeder unterhält!
Benutzer DAO (Datenschicht): (Schnittstelle)
cn.hncu.bookstore.user.dao.dao;
Userdao.java
Paket cn.hncu.bookstore.user.dao.dao; import Java.util.list; importieren cn.hncu.bookstore.user.vo.USModel; UserDao { / *** Funktion: Erstellen Sie einen Benutzer** @param UsModel --- Benutzerdaten, die erstellt werden sollen / *** Funktion: Löschen Sie einen Benutzer** @param uUid --- Der eindeutige Identifikationscode des Benutzers. Jeder Benutzer ist nicht gleich* @Return --- True bedeutet, dass die Löschung erfolgreich ist. Falsch bedeutet, dass die Löschung fehlgeschlagen ist. / *** Funktion: Benutzerdaten ändern** @param Benutzer --- Benutzerdatenparameter Name, der geändert werden muss / *** Funktion: Holen Sie sich alle Benutzerdaten** @return --- Eine UsModel-Sammlung, dh die Daten des Benutzers*/ öffentliche Liste <BENEMODEL> getAll (); /** * Funktion: Suchen Sie nach bestimmten Suchbedingungen, * <br/> * Benutzerdaten zurück, die den Suchbedingungen entsprechen. ** @param uqm --- eingekapselte Suchbedingungen* @return ---- Benutzerdatensatz, der den Suchbedingungen entspricht / *** Funktion: Holen Sie sich eine bestimmte Benutzerdaten** @param uUid --- Benutzer eindeutiger Identifikationscode* @Return --- Geben Sie die nach diesem eindeutigen Identifikationscode gefundenen Benutzerdaten zurück*/ public UsModel Getingle (String uUid);}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.