博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象基础项目----图书管理系统(数组)
阅读量:5054 次
发布时间:2019-06-12

本文共 22778 字,大约阅读时间需要 75 分钟。

登录: 判断用户输入的帐号密码是否正确。

1 用户平台:1.1图书信息查询;1.2图书购买;1.3退出

2 管理平台:2.1图书入库;2.2图书出库;2.3增加图书

3 管理员:3.1会员信息查询;3.2会员信息增加;3.3会员信息修改;3.4会员信息删除;3.5退出

 

 

 

 

 

 

 

 User.class

1 package com.jianglai.books; 2  3 /** 4  * 用户类 5  * @author jl 6  * 7  */ 8 public class User { 9 10     private String username;11     private String pwd;12     private int type;//1代表用户,2代表管理员13 14     public User() {15         super();16         // TODO Auto-generated constructor stub17     }18 19     20     21     public User(String username, String pwd, int type) {22         super();23         this.username = username;24         this.pwd = pwd;25         this.type = type;26     }27 28 29 30     @Override31     public String toString() {32         return "User [username=" + username + ", pwd=" + pwd + ", type=" + type + "]";33     }34 35     public int getType() {36         return type;37     }38 39     public void setType(int type) {40         this.type = type;41     }42 43     public String getUsername() {44         return username;45     }46 47     public void setUsername(String username) {48         this.username = username;49     }50 51     public String getPwd() {52         return pwd;53     }54 55     public void setPwd(String pwd) {56         this.pwd = pwd;57     }58 59 }

Book.class

1 package com.jianglai.books;  2   3 /**  4  * 书类  5  * @author jl  6  *  7  */  8 public class Book {  9  10     private int book_Id; 11     private String book_name; 12     private String book_author; 13     private String book_date; 14     private double book_price; 15     private int book_count; 16      17      18      19     public Book() { 20         super(); 21         // TODO Auto-generated constructor stub 22     } 23  24  25  26     public Book(int book_Id, String book_name, String book_author, String book_date, double book_price, 27             int book_count) { 28         super(); 29         this.book_Id = book_Id; 30         this.book_name = book_name; 31         this.book_author = book_author; 32         this.book_date = book_date; 33         this.book_price = book_price; 34         this.book_count = book_count; 35     } 36  37  38      39  40     public int getBook_Id() { 41         return book_Id; 42     } 43  44  45  46     public void setBook_Id(int book_Id) { 47         this.book_Id = book_Id; 48     } 49  50  51  52     public String getBook_name() { 53         return book_name; 54     } 55  56  57  58     public void setBook_name(String book_name) { 59         this.book_name = book_name; 60     } 61  62  63  64     public String getBook_author() { 65         return book_author; 66     } 67  68  69  70     public void setBook_author(String book_author) { 71         this.book_author = book_author; 72     } 73  74  75  76     public String getBook_date() { 77         return book_date; 78     } 79  80  81  82     public void setBook_date(String book_date) { 83         this.book_date = book_date; 84     } 85  86  87  88     public double getBook_price() { 89         return book_price; 90     } 91  92  93  94     public void setBook_price(double book_price) { 95         this.book_price = book_price; 96     } 97  98  99 100     public int getBook_count() {101         return book_count;102     }103 104 105 106     public void setBook_count(int book_count) {107         this.book_count = book_count;108     }109 110 111 112     @Override113     public String toString() {114         return "Book [book_Id=" + book_Id + ", book_name=" + book_name + ", book_author=" + book_author + ", book_date="115                 + book_date + ", book_price=" + book_price + ", book_count=" + book_count + "]";116     }117     118     119 }

DataList.class

1 package com.jianglai.books; 2  3 import java.util.Arrays; 4  5 /** 6  * 数据管理类 7  * @author jl 8  * 9  */10 public class DataList {11 12 13     14     private User[] userList;15     private Book[] bookList;16 17     public DataList() {18         //初始化一个用户数组,并赋值19         this.userList = new User[]{20                 new User("user","user",1),21                 new User("jl", "000000", 2),22                 new User("admin", "admin", 0),23                 new User("root", "root", 0)};24         25         //初始化一个书的数组,并赋值26         this.bookList = new Book[]{27                 new Book(10001, "鬼吹灯", "天下霸唱", "2008-7-1", 27.8, 87),28                 new Book(10002, "魔戒1", "莫尔斯","2005-3-14", 54, 13),29                 new Book(10003, "华丽波特1", "罗琳","2003-2-14", 43.5, 99),30                 new Book(10004, "时间机器", "威尔","1965-3-3", 21.3, 75),31                 new Book(10005, "宇宙奥秘", "霍金","2003-12-23", 87.3, 14),};32     }33     34     public DataList(User[] userList, Book[] bookList) {35         super();36         this.userList = userList;37         this.bookList = bookList;38         39     }40     public User[] getUserList() {41         return userList;42     }43     public void setUserList(User[] userList) {44         this.userList = userList;45     }46     public Book[] getBookList() {47         return bookList;48     }49     public void setBookList(Book[] bookList) {50         this.bookList = bookList;51     }52     53     54     @Override55     public String toString() {56         return "DataList [userList=" + Arrays.toString(userList) + ", bookList=" + Arrays.toString(bookList) + "]";57     }58     59     60     61     62 63 }

 

userManager.class

1 package com.jianglai.books;  2   3 import java.util.Arrays;  4   5 /**  6  * 用户管理类   ---   实现各种方法。  7  * @author jl  8  *  9  */ 10 public class UserManager { 11      12      13     DataList dl = new DataList(); 14      15      16     /** 17      * 登录方法--  查询数据,返回查到的用户信息。 18      * @param username   用户名 19      * @param pwd           密码 20      * @return            返回一个用户类,好用来判断登录角色 21      */ 22     public User login(String username,String pwd) { 23         User user = new User(); 24         for (int i = 0; i < dl.getUserList().length; i++) { 25             if(username.equals(dl.getUserList()[i].getUsername())&&pwd.equals(dl.getUserList()[i].getPwd())){ 26                 return dl.getUserList()[i]; 27             } 28         } 29          30         return user; 31     } 32      33  34     /** 35      *     用户类中查找整个书单列表 36      */ 37     public void findBookList() { 38         System.out.println("书号\t\t书名\t\t作者\t\t发布日期\t\t\t价格\t\t库存"); 39         for (int i = 0; i < dl.getBookList().length; i++) { 40             System.out.println(dl.getBookList()[i].getBook_Id()+"\t\t"+dl.getBookList()[i].getBook_name()+"\t\t"+dl.getBookList()[i].getBook_author() 41                     +"\t\t"+dl.getBookList()[i].getBook_date()+"\t\t"+dl.getBookList()[i].getBook_price()+"\t\t"+dl.getBookList()[i].getBook_count()); 42         } 43     } 44  45  46     /** 47      *   购买图书 48      * @param book_Id            购买图书的id 49      * @param book_Count        购买图书的数量 50      */ 51     public void moneyCount(int book_Id, int book_Count) { 52          53         for (int i = 0; i < dl.getBookList().length; i++) { 54             if(book_Id == dl.getBookList()[i].getBook_Id()){ 55                 dl.getBookList()[i].setBook_count(dl.getBookList()[i].getBook_count()-book_Count); 56                 System.out.println(dl.getBookList()[i].getBook_name()+":"+ 57                 dl.getBookList()[i].getBook_price()+"\n数量:"+book_Count+"\n总计:"+(book_Count*dl.getBookList()[i].getBook_price())); 58             } 59         } 60          61     } 62  63  64     /** 65      *    管理员查询用户全部信息的界面。 66      */ 67     public void findUserList() { 68          69         System.out.println("会员帐号\t\t\t会员密码\t\t\t会员角色"); 70         for (int i = 0; i < dl.getUserList().length; i++) { 71             System.out.println(dl.getUserList()[i].getUsername()+"\t\t\t"+dl.getUserList()[i].getPwd()+"\t\t\t" 72                             +dl.getUserList()[i].getType()); 73         } 74          75     } 76      77     /** 78      *    注册会员功能 79      * @param newUserName    新会员用户名 80      * @param newPwd        新会员密码 81      * @param newType        新会员类型(1-用户、2-管理员) 82      */ 83  84  85     public void addUser(String newUserName, String newPwd, int newType) { 86          87         User newUser = new User(newUserName, newPwd, newType); 88          89         User[] userList = new User[dl.getUserList().length+1]; 90  91         int index = 0 ; 92          93         for (int i = 0; i < userList.length-1; i++) { 94             userList[index] = dl.getUserList()[i]; 95             index++; 96         } 97          98         userList[userList.length-1] = newUser; 99         100         dl.setUserList(userList);101         102         for (int i = 0; i < userList.length; i++) {103             System.out.println(userList[i].getUsername()+"\t\t\t"+userList[i].getPwd()+"\t\t\t"+userList[i].getType());104         }105         106     }107 108 109     /**110      *     修改会员功能111      * @param uName112      * @param uType113      */114     public void updateUser(String uName, int uType) {115         for (int i = 0; i < dl.getUserList().length; i++) {116             if(uName.equals(dl.getUserList()[i].getUsername())){117                 System.out.println(dl.getUserList()[i]);118                 dl.getUserList()[i].setType(uType);119             }120         }121         122     }123 124 125     /**126      *         删除用户信息127      * @param uName        需要删除的用户信息的用户名128      */129     public void delUser(String uName) {130         // TODO Auto-generated method stub131         132         int index = dl.getUserList().length-1;133         User[] userList = new User[dl.getUserList().length-1];134         135         for (int i = 0; i < dl.getUserList().length; i++) {136             if(uName.equals(dl.getUserList()[i].getUsername())){137                 if(dl.getUserList()[i].getType()!=0){138                     index = i;139                     break;140                 }else {141                     System.out.println("您不能删除超级管理员用户!");142                     return;143                 }144 //                index = i;145             }146         }147         148         User[] uArr1 = Arrays.copyOf(dl.getUserList(), index);149         User[] uArr2 = Arrays.copyOfRange(dl.getUserList(), index+1, dl.getUserList().length);150         151         int count = 0;152         153         for (int i = 0; i < uArr1.length; i++) {154             userList[i] = uArr1[i];155             count++;156         }157 //        System.out.println(count);158         for (int i = 0; i < userList.length-uArr1.length; i++) {159             userList[count] = uArr2[i];160             count++;161         }162         163         dl.setUserList(userList);164         findUserList();165         166     }167     168     169     170     171 }

bookManager.class

1 package com.jianglai.books; 2  3 import java.util.Arrays; 4  5 /** 6  *    图书管理类 7  *  8  * @author jl 9  *10  */11 public class BookManager {12 13     DataList dl = new DataList();14     /**15      *         管理员类中查找所有图书信息的方法16      */17     public void findBookList() {18         System.out.println("书号\t\t书名\t\t作者\t\t发布日期\t\t\t价格\t\t库存");19         for (int i = 0; i < dl.getBookList().length; i++) {20             System.out.println(dl.getBookList()[i].getBook_Id()+"\t\t"+dl.getBookList()[i].getBook_name()+"\t\t"+dl.getBookList()[i].getBook_author()21                     +"\t\t"+dl.getBookList()[i].getBook_date()+"\t\t"+dl.getBookList()[i].getBook_price()+"\t\t"+dl.getBookList()[i].getBook_count());22         }23     }24     25     /**26      *  图书入库的方法27      * @param book_Id    需要增加数量的图书的id28      * @param book_Count 增加图书的数量29      */30     public void addBookCount(int book_Id,int book_Count) {31         32         Book[] bookList = dl.getBookList();33         34         for (int i = 0; i < dl.getBookList().length; i++) {35             if(book_Id == dl.getBookList()[i].getBook_Id()){36                 bookList[i].setBook_count(bookList[i].getBook_count()+book_Count);37             }38         }39         40     }41 42     /**43      *  图书出库的方法44      * @param book_Id     需要删除数量的图书的id45      * @param book_Count  删除图书的数量46      */47     public void delBookCount(int book_Id,int book_Count) {48 49         Book[] bookList = dl.getBookList();50 51         for (int i = 0; i < dl.getBookList().length; i++) {52             if (book_Id == dl.getBookList()[i].getBook_Id()) {53                 bookList[i].setBook_count(bookList[i].getBook_count() - book_Count);54             }55         }56     }57     58 59     /**60      *     新增图书61      * @param book_name            增加图书的图书名62      * @param book_author        增加图书的作者63      * @param book_date            增加图书的出版日期64      * @param book_price        增加图书的价格65      * @param book_count        增加图书的数量66      */67     public void addBookList(String book_name, String book_author, String book_date, double book_price, int book_count) {68         69         int book_Id = 10000+(dl.getBookList().length+1);70         71         int index = 0;72         Book newBook = new Book(book_Id, book_name, book_author, book_date, book_price, book_count);73         74         Book[] bookList = new Book[dl.getBookList().length+1];75         76         for (int i = 0; i < dl.getBookList().length; i++) {77             bookList[index] = dl.getBookList()[index];78             index ++;79         }80         81         bookList[dl.getBookList().length] = newBook;82         83         84         dl.setBookList(bookList); 85         86         System.out.println("书号\t\t书名\t\t作者\t\t发布日期\t\t\t价格\t\t库存");87         for (int i = 0; i < bookList.length; i++) {88             System.out.println(bookList[i].getBook_Id()+"\t\t"+bookList[i].getBook_name()+"\t\t"+bookList[i].getBook_author()89                     +"\t\t"+bookList[i].getBook_date()+"\t\t"+bookList[i].getBook_price()+"\t\t"+bookList[i].getBook_count());90         }91 92     }93 }

 

 Test.class

1 package com.jianglai.books;  2   3 import java.util.Scanner;  4   5 public class Test {  6       7     public static void main(String[] args) {  8           9         UserManager um = new UserManager(); 10         BookManager bm = new BookManager(); 11          12         Scanner in = new Scanner(System.in); 13          14         DataList dl = new DataList(); 15          16         int num =0;//操作选择计数器 17          18          19         while (true) { 20              21             System.out.println("************欢迎使用图书书店************"); 22             //1.输入用户名和密码进行判断登录 23             System.out.print("请输入用户名:"); 24             String username = in.next(); 25             System.out.print("请输入密码:"); 26             String pwd = in.next(); 27              28             //2.用户登录 29             User u = um.login(username, pwd); 30              31             //判断用户的属性 32             if(u.getType() == 1){
//用户操作界面 33 34 System.out.println("************欢迎光临图书系统************"); 35 36 //2-1-1.用户显示书目列表 37 um.findBookList(); 38 System.out.println(); 39 40 41 int book_Id;// 书的ID 42 int book_Count;// 数的数量 43 44 45 boolean flage = true; 46 47 while (flage) { 48 System.out.println("请选择进行的操作:1.查看图书\t2.结账\t3.退出"); 49 num = in.nextInt(); 50 51 switch (num) { 52 case 1: 53 um.findBookList(); 54 break; 55 case 2: 56 System.out.println("请输入想要购买的图书信息-->"); 57 System.out.print("请输入图书ID:"); 58 book_Id = in.nextInt(); 59 System.out.print("请输入出库的数量:"); 60 book_Count = in.nextInt(); 61 62 //购买图书,并且计算图书价格再显示 63 um.moneyCount(book_Id,book_Count); 64 65 break; 66 case 3: 67 System.out.println("感谢使用,退出系统。"); 68 flage = false; 69 break; 70 default: 71 System.out.println("您的输入有误!"); 72 break; 73 } 74 75 } 76 77 78 }else if(u.getType()==2){
//管理员操作界面 79 80 System.out.println("************欢迎登录库存管理系统************"); 81 82 // 2-2-1.管理员显示书目列表 83 bm.findBookList(); 84 System.out.println(); 85 86 boolean flag = true; 87 88 while (flag) { 89 90 // 2-2-2.管理员操作 91 System.out.println("请选择进行的操作:1.图书入库\t2.图书出库\t3.查询全部图书\t4.新增图书\t5.退出"); 92 num = in.nextInt(); 93 94 int book_Id;// 书的ID 95 int book_Count;// 数的数量 96 97 String book_name; 98 String book_author; 99 String book_date;100 double book_price;101 int book_count;102 103 switch (num) {104 case 1:105 System.out.println("请输入图书信息-->");106 System.out.print("请输入图书ID:");107 book_Id = in.nextInt();108 System.out.print("请输入入库的数量:");109 book_Count = in.nextInt();110 // 增加图书数量111 bm.addBookCount(book_Id, book_Count);112 113 bm.findBookList();114 115 break;116 case 2:117 118 System.out.println("请输入图书信息-->");119 System.out.print("请输入图书ID:");120 book_Id = in.nextInt();121 System.out.print("请输入出库的数量:");122 book_Count = in.nextInt();123 // 删除图书数量124 bm.delBookCount(book_Id, book_Count);125 126 bm.findBookList();127 break;128 case 3:129 bm.findBookList();130 break;131 case 4:132 System.out.println("请输入图书信息-->");133 System.out.print("请输入书名:");134 book_name = in.next();135 System.out.print("请输入作者:");136 book_author = in.next();137 System.out.print("请输入出版时间:");138 book_date = in.next();139 System.out.print("请输入价格:");140 book_price = in.nextDouble();141 System.out.print("请输入库存:");142 book_count = in.nextInt();143 144 //新增图书145 bm.addBookList(book_name, book_author, book_date, book_price, book_count);146 147 break;148 case 5:149 System.out.println("感谢使用,退出系统。");150 flag = false;151 break;152 153 default:154 System.out.println("您的输入有误!");155 break;156 }157 158 }159 160 }else if (u.getType()==0 && u.getUsername()!=null) {
//超级管理员界面161 System.out.println("************欢迎使用管理员系统************");162 163 //查询所有用户164 um.findUserList();165 System.out.println();166 167 //新增用户的信息168 String newUserName;169 String newPwd;170 int newType;171 172 //修改用户173 String uName = null;174 int uType = 0;175 176 177 boolean flag = true;178 179 //2-0超级管理员的操作180 while (flag) {181 System.out.println("请选择进行的操作:1.查看用户列表\t2.注册新用户\t3.修改用户\t4.删除用户\t5.退出");182 num = in.nextInt();183 184 switch (num) {185 case 1:186 um.findUserList();187 break;188 case 2:189 System.out.println("请输入注册用户信息-->");190 System.out.print("请输出用户名:");191 newUserName = in.next();192 System.out.print("请输入密码:");193 newPwd = in.next();194 System.out.print("请输入会员角色类型(1-用户、2-管理员):");195 newType = in.nextInt();196 197 um.addUser(newUserName,newPwd,newType);198 199 break;200 case 3:201 System.out.println("请输入选择用户信息-->");202 System.out.print("请选择用户名:");203 uName = in.next();204 System.out.print("请修改会员角色类型(1-用户、2-管理员):");205 uType = in.nextInt();206 207 //修改用户的角色208 um.updateUser(uName,uType);209 um.findUserList();210 break;211 case 4:212 213 System.out.println("请输入要删除的用户信息-->");214 System.out.println("请输入要删除的用户的用户名:");215 216 uName = in.next();217 218 um.delUser(uName);219 break;220 case 5:221 System.out.println("感谢使用,退出系统。");222 flag = false;223 break;224 default:225 System.out.println("您的输入有误!");226 break;227 }228 229 }230 231 232 }else if (u.getUsername()== null) {
//用户名或者密码输入错误的情况233 System.err.println("用户名或密码错误,请核对后重新启动系统进行登录!");234 }235 }236 237 }238 239 }

 

转载于:https://www.cnblogs.com/JiangLai/p/8675136.html

你可能感兴趣的文章
PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
查看>>
感谢青春
查看>>
Jquery Uploadify4.2 falsh 实现上传
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
linux基础-命令
查看>>
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>
浅谈C++底层机制
查看>>
STL——配接器、常用算法使用
查看>>