一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java書店系統畢業設計 總體設計(1)

java書店系統畢業設計 總體設計(1)

2020-06-22 11:47xanlv JAVA教程

這篇文章主要介紹了java書店系統畢業設計,第一步系統總體設計,具有一定的參考價值,感興趣的小伙伴們可以參考一下

java書店系統項目功能需求:

1、能進行操作用戶的注冊,修改基本信息,刪除和查詢。
2、能對圖書的基本信息進行增加、刪除、修改和查詢操作。
3、能填寫進貨單,一張進貨單帶有多條具體的進貨信息,進貨的書籍必須是圖書管理里面已經有的;進貨的同時修改庫存對應書籍的存貨量。
4、能填寫銷售單,一張銷售單帶有多條具體的銷售信息,銷售的書籍必須是圖書管理里面已經有的,而且銷售的數量不能超過當前庫存的數量;銷售的同時修改庫存對應書籍的存貨量。
5、可以查看庫存的明細,可以按照條件進行查找具體的圖書的庫存值。
6、權限方面進行簡化,做固定的權限控制。把用戶按照模塊分成不同操作權限的人員,特設一個admin的用戶,可以操作全部的功能。

項目基本設計:

★ 架構設計:
整體框架、模塊劃分
模塊劃分:用戶、圖書、進貨、銷售和庫存5個模塊

java書店系統畢業設計 總體設計(1)

★ 系統功能結構設計:
每個功能模塊的具體功能子模塊
★ 數據庫設計:
項目框架實現:分模塊、分層、分包、構建應用程序
核心框架—-實現每個界面的轉換

java書店系統畢業設計 總體設計(1)

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
package cn.hncu.bookStore;
import cn.hncu.bookStore.login.ui.Login;
/**
 *
 *@author<a href="mailto:[email protected]">xzm</a>
 */
public class bookStoreApp extends javax.swing.JFrame {
 private static final long serialVersionUID = 1L;
 /** Creates new form bookStoreApp */
 public bookStoreApp() {
  initComponents();
  this.setContentPane(new Login(this));//添加登錄界面
  this.validate();
  getContentPane().setLocation(150, 50);
 }
 //GEN-BEGIN:initComponents
 // <editor-fold defaultstate="collapsed" desc="Generated Code">
 private void initComponents() {
 
  menuBar = new javax.swing.JMenuBar();
  fileMenu = new javax.swing.JMenu();
  openMenuItem = new javax.swing.JMenuItem();
  saveMenuItem = new javax.swing.JMenuItem();
  saveAsMenuItem = new javax.swing.JMenuItem();
  exitMenuItem = new javax.swing.JMenuItem();
  editMenu = new javax.swing.JMenu();
  cutMenuItem = new javax.swing.JMenuItem();
  copyMenuItem = new javax.swing.JMenuItem();
  pasteMenuItem = new javax.swing.JMenuItem();
  deleteMenuItem = new javax.swing.JMenuItem();
  helpMenu = new javax.swing.JMenu();
  contentsMenuItem = new javax.swing.JMenuItem();
  aboutMenuItem = new javax.swing.JMenuItem();
  jMenu1 = new javax.swing.JMenu();
  menuItemUser = new javax.swing.JMenuItem();
  menuItemBook = new javax.swing.JMenuItem();
  menuItemInMain = new javax.swing.JMenuItem();
  MenuItemOutMain = new javax.swing.JMenuItem();
  menuItemStock = new javax.swing.JMenuItem();
  menuItemLogin = new javax.swing.JMenuItem();
 
  setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  setMinimumSize(new java.awt.Dimension(800, 600));
  getContentPane().setLayout(null);
 
  fileMenu.setText("File");
 
  openMenuItem.setText("Open");
  fileMenu.add(openMenuItem);
 
  saveMenuItem.setText("Save");
  fileMenu.add(saveMenuItem);
 
  saveAsMenuItem.setText("Save As ...");
  fileMenu.add(saveAsMenuItem);
 
  exitMenuItem.setText("Exit");
  exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    exitMenuItemActionPerformed(evt);
   }
  });
  fileMenu.add(exitMenuItem);
 
  menuBar.add(fileMenu);
 
  editMenu.setText("Edit");
 
  cutMenuItem.setText("Cut");
  editMenu.add(cutMenuItem);
 
  copyMenuItem.setText("Copy");
  editMenu.add(copyMenuItem);
 
  pasteMenuItem.setText("Paste");
  editMenu.add(pasteMenuItem);
 
  deleteMenuItem.setText("Delete");
  editMenu.add(deleteMenuItem);
 
  menuBar.add(editMenu);
 
  helpMenu.setText("Help");
 
  contentsMenuItem.setText("Contents");
  helpMenu.add(contentsMenuItem);
 
  aboutMenuItem.setText("About");
  helpMenu.add(aboutMenuItem);
 
  menuBar.add(helpMenu);
 
  jMenu1.setText("Menu");
 
  menuItemUser.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_U,
    java.awt.event.InputEvent.CTRL_MASK));
  menuItemUser.setText("\u7528\u6237\u6a21\u5757");
  menuItemUser.setEnabled(false);
  menuItemUser.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    menuItemUserActionPerformed(evt);
   }
  });
  jMenu1.add(menuItemUser);
 
  menuItemBook.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_B,
    java.awt.event.InputEvent.CTRL_MASK));
  menuItemBook.setText("\u56fe\u4e66\u6a21\u5757");
  menuItemBook.setEnabled(false);
  menuItemBook.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    menuItemBookActionPerformed(evt);
   }
  });
  jMenu1.add(menuItemBook);
 
  menuItemInMain.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_I,
    java.awt.event.InputEvent.CTRL_MASK));
  menuItemInMain.setText("\u8fdb\u8d27\u6a21\u5757");
  menuItemInMain.setEnabled(false);
  menuItemInMain.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    menuItemInMainActionPerformed(evt);
   }
  });
  jMenu1.add(menuItemInMain);
 
  MenuItemOutMain.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_O,
    java.awt.event.InputEvent.CTRL_MASK));
  MenuItemOutMain.setText("\u9500\u552e\u6a21\u5757");
  MenuItemOutMain.setEnabled(false);
  MenuItemOutMain.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    MenuItemOutMainActionPerformed(evt);
   }
  });
  jMenu1.add(MenuItemOutMain);
 
  menuItemStock.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_S,
    java.awt.event.InputEvent.CTRL_MASK));
  menuItemStock.setText("\u5e93\u5b58\u6a21\u5757");
  menuItemStock.setEnabled(false);
  menuItemStock.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    menuItemStockActionPerformed(evt);
   }
  });
  jMenu1.add(menuItemStock);
 
  menuItemLogin.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_L,
    java.awt.event.InputEvent.CTRL_MASK));
  menuItemLogin.setText("\u6ce8\u9500");
  menuItemLogin.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    menuItemLoginActionPerformed(evt);
   }
  });
  jMenu1.add(menuItemLogin);
 
  menuBar.add(jMenu1);
 
  setJMenuBar(menuBar);
 
  pack();
 }// </editor-fold>
 //GEN-END:initComponents
 
 private void menuItemLoginActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到登錄界面,滅掉切換到五個界面的功能菜單
  menuItemBook.setEnabled(false);
  menuItemInMain.setEnabled(false);
  MenuItemOutMain.setEnabled(false);
  menuItemStock.setEnabled(false);
  menuItemUser.setEnabled(false);
  this.setContentPane(new Login(this));
  this.validate();
 }
 
 void menuItemStockActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到庫存模塊
  this.setContentPane(new cn.hncu.bookStore.store.ui.listPanel(this));
  this.validate();
 }
 
 void MenuItemOutMainActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到銷售模塊
  this.setContentPane(new cn.hncu.bookStore.out.ui.listPanel(this));
  this.validate();
 }
 
 void menuItemInMainActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到進貨模塊
  this.setContentPane(new cn.hncu.bookStore.in.ui.listPanel(this));
  this.validate();
 }
 
 void menuItemBookActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到圖書模塊
  this.setContentPane(new cn.hncu.bookStore.book.ui.listPanel(this));
  this.validate();
 }
 
 private void menuItemUserActionPerformed(java.awt.event.ActionEvent evt) {
  //切換到用戶模塊
  this.setContentPane(new cn.hncu.bookStore.user.ui.listPanel(this));
  this.validate();
 }
 
 public javax.swing.JMenuItem getMenuItemOutMain() {
  return MenuItemOutMain;
 }
 
 public javax.swing.JMenuItem getMenuItemBook() {
  return menuItemBook;
 }
 
 public javax.swing.JMenuItem getMenuItemInMain() {
  return menuItemInMain;
 }
 
 public javax.swing.JMenuItem getMenuItemStock() {
  return menuItemStock;
 }
 
 public javax.swing.JMenuItem getMenuItemUser() {
  return menuItemUser;
 }
 
 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed
  System.exit(0);
 }//GEN-LAST:event_exitMenuItemActionPerformed
 
 /**
  * @param args the command line arguments
  */
 public static void main(String args[]) {
  java.awt.EventQueue.invokeLater(new Runnable() {
   public void run() {
    new bookStoreApp().setVisible(true);
   }
  });
 }
 
 //GEN-BEGIN:variables
 // Variables declaration - do not modify
 private javax.swing.JMenuItem MenuItemOutMain;
 private javax.swing.JMenuItem aboutMenuItem;
 private javax.swing.JMenuItem contentsMenuItem;
 private javax.swing.JMenuItem copyMenuItem;
 private javax.swing.JMenuItem cutMenuItem;
 private javax.swing.JMenuItem deleteMenuItem;
 private javax.swing.JMenu editMenu;
 private javax.swing.JMenuItem exitMenuItem;
 private javax.swing.JMenu fileMenu;
 private javax.swing.JMenu helpMenu;
 private javax.swing.JMenu jMenu1;
 private javax.swing.JMenuBar menuBar;
 private javax.swing.JMenuItem menuItemBook;
 private javax.swing.JMenuItem menuItemInMain;
 private javax.swing.JMenuItem menuItemLogin;
 private javax.swing.JMenuItem menuItemStock;
 private javax.swing.JMenuItem menuItemUser;
 private javax.swing.JMenuItem openMenuItem;
 private javax.swing.JMenuItem pasteMenuItem;
 private javax.swing.JMenuItem saveAsMenuItem;
 private javax.swing.JMenuItem saveMenuItem;
 // End of variables declaration//GEN-END:variables
 
}

工具包:

java書店系統畢業設計 總體設計(1)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package cn.hncu.bookStore.utils;
 
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateUtils {
 
 /**
  * 把long型時間轉換成日期格式"yyyy年MM月dd日HH:mm:ss:"的字符串
  * @param t
  * 待轉換的(long型)時間
  * @return
  * 日期格式的字符串
  */
 public static String longToString(long t){
  Date d=new Date();
  DateFormat df=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss:");
  return df.format(d);
 }
 
 /**
  * 把日期格式"yyyy-MM-dd-HH:mm:ss:"的字符串轉換成long型時間
  * @param str
  * 待轉換的日期字符串
  * @return
  * long型時間
  * @throws ParseException
  */
 public static long stringToLong(String str) throws ParseException{
  DateFormat df=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss:");
  Date d=df.parse(str);
  return d.getTime();
 }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package cn.hncu.bookStore.utils;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
 
public class FileIOUtil {
 /**
  * 構造函數私有化
  */
 private FileIOUtil(){
 }
 
 /**
  * 把目錄fileName里的數據讀出
  * @param fileName
  * 文件地址
  * @return
  * 返回對應類型的集合
  */
 public static<E> List<E> readFromFile(String fileName){//定義在靜態方法上的泛型
  File file=new File(fileName);//凡是讀文件,最好用File開道
  if(!file.exists()){//文件不存在返回空集合
   return new ArrayList<E>();
  }
  ObjectInputStream in=null;
  try {
   in=new ObjectInputStream(new FileInputStream(file));
   @SuppressWarnings("unchecked")
   List<E> list=(List<E>)in.readObject();
   return list;
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }finally{
   if(in!=null){
    try {
     in.close();
    } catch (IOException e) {
     throw new RuntimeException("數據文件關閉失敗", e);
    }
   }
  }
  return new ArrayList<E>();
 
 }
 
 /**
  * 存儲:向目錄fileName里讀入數據
  * @param list
  * 待存入數據的集合
  * @param fileName
  * 文件地址
  * @return
  * 存儲成功就返回true,否則,返回false
  */
 public static<E> boolean writeToFile(List<E> list,String fileName){
  ObjectOutputStream out=null;
  try {
   out=new ObjectOutputStream(new FileOutputStream(fileName));
   out.writeObject(list);
   return true;
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   if(out!=null){
    try {
     out.close();
    } catch (IOException e) {
     throw new RuntimeException("數據文件關閉失敗", e);
    }
   }
  }
  return false;
 }
}

公共功能:

java書店系統畢業設計 總體設計(1)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package cn.hncu.bookStore.common;
 
public enum uuidModelConstance {
 /**
  * 枚舉:把user的五種類型UserModel,BookModel,InMainModel,InDetailModel,OutMainModel,OutDetailModel,StockModel枚舉出來
  */
 User("UserModel"),Book("BookModel"),In_Main("InMainModel"),In_Detail("InDetailModel"),
 Out_Main("OutMainModel"),Out_Detail("OutDetailModel"),Stock("StockModel");
 private final String name;
 private uuidModelConstance(String name){
  this.name=name;
 }
 public String getName() {
  return name;
 }
}

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package cn.hncu.bookStore.common.uuid.vo;
 
import java.io.Serializable;
 
public class uuidModel implements Serializable{
 
 /**
  * 用唱票模型自動生成uuid編號
  * 封裝uuid,自動生成uuid
  */
 private static final long serialVersionUID = 1L;
 private String modelName;//表示UserModel,BookModel,InMainModel,InDetailModel,OutMainModel,OutDetailModel,StockModel
 private int currentNum;//modelName當前的uuid編號
 public uuidModel(){
 
 }
 //set,get
 public String getModelName() {
  return modelName;
 }
 public void setModelName(String modelName) {
  this.modelName = modelName;
 }
 public int getCurrentNum() {
  return currentNum;
 }
 public void setCurrentNum(int currentNum) {
  this.currentNum = currentNum;
 }
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result
    + ((modelName == null) ? 0 : modelName.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  uuidModel other = (uuidModel) obj;
  if (modelName == null) {
   if (other.modelName != null)
    return false;
  } else if (!modelName.equals(other.modelName))
   return false;
  return true;
 }
}

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package cn.hncu.bookStore.common.uuid.dao.Ebi;
 
import cn.hncu.bookStore.common.uuidModelConstance;
 
public interface uuidDAO {
 /**
  * 用唱票模型自動生成uuid編號
  * @param umc
  * 需要自動生成uuid的類型(UserModel,BookModel,InMainModel,InDetailModel,OutMainModel,OutDetailModel,StockModel)
  * @return
  * 生成對應類型uuid的編號
  */
 public String getNextNum(uuidModelConstance umc);
}

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package cn.hncu.bookStore.common.uuid.dao.Ebo;
 
import java.util.List;
 
import cn.hncu.bookStore.common.uuidModelConstance;
import cn.hncu.bookStore.common.uuid.dao.Ebi.uuidDAO;
import cn.hncu.bookStore.common.uuid.vo.uuidModel;
import cn.hncu.bookStore.utils.FileIOUtil;
 
public class uuidEbo implements uuidDAO {
 
 private final static String FILE_NAME="uuid.txt";//把數據存儲到uuid.txt文件中,或讀取
 
 @Override
 public String getNextNum(uuidModelConstance umc) {
  String modelName=umc.getName();//獲得待生成uuid編號的user類型
  List<uuidModel> list=FileIOUtil.readFromFile(FILE_NAME);//從文件中讀取所有已生成user類型uuid的數據
  for(uuidModel um:list){
   if(um.getModelName().equals(modelName.trim())){//如果modelName在文件中存在,則返回此類型uuid下一個編號
    int res=um.getCurrentNum();
    um.setCurrentNum(res+1);
    FileIOUtil.writeToFile(list, FILE_NAME);//把經過更新的uuid數據存入文件夾
    return ""+res;
   }
  }
  //如果for循環沒有找到,說明modelName是第一個,編號為1
  //new一個此類型的對象,存入文件夾
  uuidModel um=new uuidModel();
  um.setModelName(modelName);
  um.setCurrentNum(2);
  list.add(um);
  FileIOUtil.writeToFile(list, FILE_NAME);
  return ""+1;
 }
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package cn.hncu.bookStore.common.uuid.dao.factory;
 
import cn.hncu.bookStore.common.uuid.dao.Ebi.uuidDAO;
import cn.hncu.bookStore.common.uuid.dao.Ebo.uuidEbo;
 
public class uuidDAOFactory {
 /**
  * 構造函數私有化
  */
 private uuidDAOFactory(){
 
 }
 /**
  * 獲得接口uuidDAO
  * @return
  * uuidDAO
  */
 public static uuidDAO getUuidDAO(){
  return new uuidEbo();
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区三区高清视频 | 精品国产免费久久久久久婷婷 | 亚洲ss| 456在线观看 | 国产伦码精品一区二区 | 亚欧国产 | fc2成人免费共享视频 | 性bbbbwwbbbb| 91男人 | 精品99一区二区三区麻豆 | 亚洲无限观看 | 性做久久久久久 | 精品视频免费在线观看 | 国产在线视频欧美亚综合 | 三级aa久久| 艹处女 | 免费的网址| 男人视频网站 | 婷婷婷色 | 深夜福利入口 | 婷婷在线成人免费观看搜索 | 91国产在线第7页 | 放荡护士玩3p口述 | 成人伊人亚洲人综合网站222 | 亚洲第一男人天堂 | 国产福利不卡 | 日韩高清无砖砖区2022 | 丰满岳乱妇在线观看视频国产 | 国产91区 | 法国贵妇一级伦理hd | 国产精品天天看特色大片不卡 | 国产在线精品成人一区二区三区 | 超级乱淫伦短篇小说做车 | 亚洲精品在线看 | 国产女乱淫真高清免费视频 | 久久精品中文騷妇女内射 | 国产精品视频第一页 | 私人黄色| hd在线观看免费高清视频 | 日本又大又硬又粗的视频 | 无人影院免费观看 |