Verwenden Sie Java -Sprache, um ein Programm zu schreiben, das die Einkaufsabrechnungsfunktion eines Online -Supermarkts simuliert. Nach dem Ausführen verfügt das Programm über eine grafische Benutzeroberfläche, mit der Benutzer Informationen zu verschiedenen gekauften Produkten eingeben und schließlich die Einkaufsliste und den Gesamtpreis des Benutzers geben können.
Anforderungsanalyse:
1. Administrator fügt Produkte und ihre Preise hinzu
2. Drucken Sie Informationen und Abwicklungsauftragscode beim Kauf von Produkten durch Benutzer:
/ * * Schöpfer: Zhang junqiang * Zeit: 2016/5/15 * */Package Salesys; import Java.awt.*; import Java.awt.event.*; Import Java.util.Vector; Javax.swing importieren.*; Java.sql.*importieren; Klassengüter {public String [] Name; öffentlicher Float [] Preis; Waren () {name = new String [100]; Preis = neuer Float [100]; }} öffentlicher Klasse Supermarkt erweitert JFrame {public static void main (String [] args) löscht sqlexception {MainWinow Mainwin = new MainWinow ("Online -Supermarkt -Einkaufskasse"); Mainwin.setDefaultCloseOperation (jframe.exit_on_close); Mainwin.SetBounds (300, 300, 500, 400); Mainwin.setvisible (true); Mainwin.setwin (Mainwin); Mainwin.setminWindowlayout (); }} Klasse MainWinow erweitert JFrame {Warengüter; Privat Jbutton -Benutzer; Privat Jbutton Manager; Privat JLabel Loginlabel; private Managingwindow Magwin; private userWindow userWin; privater Zuhörer Lis; private MainWinow Loginwin; private int Goodsnum; / * * Schnittstelle einstellen * */ private jLabel setNamelabel; Privat Jlabel SetPricelabel; private JTextfield setNameText; private jtextfield setPricetext; Privat Jbutton Input ausbut; private textarea InputArea; Privat Jbutton returnbut1; Privat Jbutton Cancer; / * * Benutzeroberfläche * */ private Vektor <string> buyItem; privat float [] buycount; privat int buynum; Private Jcombobox GoodsCombox; Privat Jbutton returnbut2; Privat Jlabel ChoiceGoodLabel; Privat Jlabel ShowPricelabel; private jtextfield showprice; private textarea showchoice; Privat Jlabel Showbuynum; private jtextfield showbuynumtext; Privat Jbutton SubleBuy; Privat Jbutton DeletebuyBut; private jlist choicelist; Privat Jbutton Countbut; privates Float Summoney; / *** Datenbankimport*/ Anweisung stmt; MainWinow (String Winname) löst SQLEXception {Super (Winname) aus; Goodsnum = 0; buynum = 0; summene = (float) 0; Waren = neue Waren (); user = new Jbutton ("Ich bin ein Benutzer"); Manager = New Jbutton ("Ich bin ein Administrator"); LoginLabel = new JLabel ("Bitte wählen Sie die Rolle!"); Magwin = new ManagerWindow ("Set Product"); Magwin.SetBounds (300, 300, 500, 400); Magwin.setDefaultCloseOperation (do_nothing_on_close); userWin = new UserWindow ("Willkommen zum Kauf"); UserWin.SetBounds (300, 300, 500, 400); userwin.setDefaultCloseOperation (do_nothing_on_close); lis = neuer Hörer (); / * * Setzen Sie die Schnittstelleninitialisierung * */ setNamelabel = new JLabel ("Handelsname:"); setPricelabel = new JLabel ("Preis:"); setNameText = new JTextField (5); setPricetext = new JTextField (5); inputAtRut = new Jbutton ("Bestätigen Sie hinzufügen"); InputArea = new textArea (); returnBut1 = neuer Jbutton ("return"); CancelBut = New Jbutton ("Retract Add"); / * * Benutzeroberfläche Initialisierung * */ Goodscombox = new jcombobox (); returnBut2 = neuer Jbutton ("return"); ChoiceGoodLabel = new JLabel ("Bitte Produkt auswählen:"); showPricelabel = new JLabel ("Preis"); showPrice = new JTextField (5); showchoice = new textArea (); showbuynum = new JLabel ("Kaufmenge:"); showbuynumText = new JTextField (5); SubleBuy = New Jbutton ("Kauf bestätigen"); DeletebuyBut = new Jbutton ("Order Delete order"); countbut = new Jbutton ("Ordensabwicklung"); choicelist = new JList (); buyItem = new vector <string> (); buyCount = neuer float [100]; / * * Datenbankimport * */ try {class.forname ("com.mysql.jdbc.driver"); } catch (classNotFoundException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } String url = "jdbc: mysql: // localhost: 3306/device"; String user = "root"; String password = "ZJQ1314520"; Verbindung con = driverManager.getConnection (URL, Benutzer, Passwort); stmt = con.CreateStatement (); / * * Exportieren von Datenbankdaten * */ importsql (); } public void importsql () löst SQLEXception aus {int i = 1; // TODO Auto-generierte Methode Stub-Ergebnis-Ergebnis = stmt.executeQuery ("Name, Preis, Preis von Goods_info"); while (result.next ()) {goods.name [i-1] = result.getString (1); goods.price [i-1] = float.parsefloat (result.getString (2)); i ++; } Goodsnum = I-1; } public void setwin (MainWinow W) {loginwin = w; } public void setMinWindowlayout () {Container logincon = new Container (); logincon.setLayout (neuer FlowLayout ()); logincon.add (Manager); logincon.add (Benutzer); Manager.AddactionListener (LIS); user.addactionListener (lis); this.setLayout (neuer BorderLayout ()); this.add (loginlabel, borderLayout.north); this.add (Logincon, BorderLayout.Center); this.validate (); / * * Setzen Sie Schnittstellenlayout * */ Magwin.setLayout (neuer FlowLayout ()); Magwin.add (setnamelabel); Magwin.add (setNameText); Magwin.add (SetPricelabel); Magwin.add (setPricetext); Magwin.Add (Input -aus); Magwin.add (InputArea); Magwin.Add (CancelBut); Magwin.add (returnBut1); inputAt.AddactionListener (LIS); returnBut1.AddactionListener (LIS); CancelBut.AddactionListener (LIS); / * * User Interface Layout * */ userwin.setLayout (new BorderLayout ()); Container usercon = neuer Container (); usercon.setLayout (neuer FlowLayout ()); usercon.add (ChoiceGoodLabel); usercon.add (GoodsCombox); usercon.add (ShowPricelabel); usercon.add (showprice); usercon.add (showbuynum); usercon.add (showbuynumtext); usercon.add (Subjekt); userwin.add (usercon, borderLayout.north); //choicelist.setListData(goods.name); userwin.add (Choicelist, BorderLayout.Center); userwin.add (New JscrollPane (Choicelist)); Container Butcon = neuer Container (); ButCon.SetLayout (neuer FlowLayout ()); Butcon.Add (DeletebuyBut); Butcon.Add (Countbut); Butcon.Add (returnbut2); userwin.add (Butcon, BorderLayout.South); GoodsCombox.additemListener (neuer itemListener () {@Override public void itemStatEchanged (itemEvent e) {// Todo automatisch generierte Methode Stub int i = goodsCombox.getSelectedIndex (); if (i> = 0) showPrice.settext (Goods.price [i] .ToStoString (); returnAt2.AddactionListener (LIS); SubleBuy.AddactionListener (LIS); DeletebuyBut.AddactionListener (LIS); countbut.addactionListener (lis); } private void addcomboxItem () {// Todo automatisch generierte Methode Stub für (int i = 0; i <GoodsNum; i ++) {GoodsCombox.additem (Goods.name [i]); }} Klasse Listener implementiert actionListener {@Override public void actionPerformed (actionEvent e) {// Todo automatisch generierter Methode Stub if (e.getSource () == Manager) {addGoods (); loginwin.setVisible (false); Magwin.setvisible (wahr); } if (e.getSource () == Benutzer) {loginwin.setVisible (false); userwin.setVisible (true); GoodsCombox.removeAllitems (); addcomBoxItem (); } if (e.getSource () == input aussage) {// String mook = ""; if (setNameText.getText (). Equals ("") || setPricetext.getText (). Equals ("") {joptionpane.showmessagedialog (Magwin, "Keine Ersatzartikel!", "Warnung", joptionpane.plain_message); } else {Goods.name [GoodsNum] = setNameText.Getext (); Goods.price [Goodsnum] = float.parsefloat (setPricetext.Getext ()); Versuchen Sie { / * * in die Datenbank schreiben * * / stmt.executeUpdate ("in Waren_info (Name, Preis) Werte ('"+Goods.name [GoodsNum]+"', '"+(Float) Goods.price [Goodsnum]+")"); } catch (SQLEXception E1) {// Todo automatisch generierter Fangblock e1.printstacktrace (); } Goodsnum ++; addGoods (); setNameText.setText (""); setPricetext.setText (""); // Showout = "Handelsname:"+setNameText.GeteText ()+"/t"+"Preis:"+setPricetext.GeteText ()+"/n"; //InputArea.Append(Showout); }} if (e.getSource () == CancelBut) {if (GoodsNum> 0) {GoodsNum--; String deleteName = Goods.name [Goodsnum]; String deletePrice = goods.price [GoodsNum] .ToString (); //System.out.println(DeletName); / * * Elemente in der Datenbank löschen * * */ String SQL = "Aus Ware_info löschen wob try {stmt.executeUpdate (SQL); } catch (SQLEXception E1) {// Todo automatisch generierter Fangblock e1.printstacktrace (); } // Verbindung con = dbmanager .getConnection () ;; // PreparedStatement ps = con.Preparestatement (SQL); addGoods (); }} if (e.getSource () == returnBut1) {loginwin.setvisible (true); Magwin.setvisible (falsch); } / * * Benutzeroberfläche Ereignisantwort * * / if (e.getSource () == returnBut2) {loginwin.setVisible (true); userwin.setVisible (false); } if (e.getSource () == Subjektbuy) {if (! showbuynumText.getText (). Equals ("") {buyCount [GoodsCombox.getSelectedIndex ()] = float.parsefloat (showbuynumtext.getText ()); String contentItem = ""; Float summon = float.parsefloat (showbuynumText.getText ())*(float) goods.price [GoodsCombox.getSelectedIndex ()]; contentItem = "Handelsname:"+Goods.name [GoodsCombox.getSelectedIndex ()]+""+"Einheit Preis:"+goods.price [GoodsCombox.getSelectedIndex (). ToString ()+""+"Kaufmenge:"+showbuynttext.getText ()+"Total Price:" buyItem.addelement (contentItem); // buyItem [buynum] = contentItem; buynum ++; chooselist.removeall (); Choicelist.SetListData (BuyItem); Summene+= Summe; } else {joptionpane.showMessagedialog (Magwin, "Die Kaufmenge kann nicht leer sein", "Warnung", joptionpane.plain_message); }} if (e.getSource () == DeletebuyBut) {if (choicelist.getSelectedValue () == null) {joptionpane.showmessagedialog (Magwin, "kein Gegenstand gelöscht wird", "Warnung", joptionpane.Pan.Pan.Pan.message); } else if (buynum> 0) {int i = choicelist.getSelectedIndex (); String selectItem = buyItem.get (i); //System.out.println(selectItem); String deleteprice = ""; für (int j = 0; j <selectItem.length ()-3; j ++) {// system.out.println (selectItem.substring (j, j+3)); if (selectItem.substring (j, j+3) .equals ("Gesamtpreis:") {deleteprice = selectItem.substring (j+3, selectItem.length ()); System.out.println (DeletePrice); summene- = float.parsefloat (deleteprice); brechen; }} buyItem.remove (i); choicelist.removeall (); Choicelist.SetListData (BuyItem); Choicelist.Validate (); buynum--; } else {joptionpane.showMessagedialog (Magwin, "Der Einkaufswagen ist leer, kann nicht gelöscht werden", "Warnung", joptionpane.plain_message); }} if (e.getSource () == countbut) {// summene für (int i = 0; i <buyitem.size (); i ++) {string str = buyitem.get (i) .substring (0, 2); if (str.equals ("Gesamtpreis")) {buyitem.remove (i); }} buyItem.addelement ("Gesamtpreis:"+summene.toString ()); choicelist.removeall (); Choicelist.SetListData (BuyItem); Choicelist.Validate (); }} private void addGoods () {if (! InputArea.Getext (). Equals ("") inputArea.setText (""); // TODO Auto-generierte Methode Stub für (int i = 0; i <goodsnum; i ++) {String massage = "Handelsname:"+goods.name [i]+"/t"+"Preis:"+Goods.price [i] .ToString ()+"/n"; InputArea.Append (Massage); }}} class ManagingWindow erweitert JFrame {ManagingWindow (String -Titel) {Super (title); }} class userWindow erweitert JFrame {userWindow (String -Titel) {super (title); }}Löschen Sie den entsprechenden Datenbankteil und führen Sie es auf Ihrem Computer aus!
Verwandte Screenshots:
Administratorschnittstelle:
Benutzeroberfläche:
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.