图书馆管理系统 Java

article/2025/10/10 19:54:56

目录

要求:

代码

Operate接口

 Book类

 Reader类

BookList类

ReadList 类 

Infor类

InforList类

main

功能实现

改进

错误

总结


要求:

为图书管理人员编写一个图书管理系统,图书管理系统的设计主要是实现对图书的管理和相关操作,包括3个表:

图书信息表——存储图书的基本信息,包括书号、书名、作者、出版社、出版日期、存馆数量、定价等。

读者信息表——存储读者的基本信息,包括学号、姓名、学院、专业班级等。

图书借阅表——存储读者借书的相关信息,包括学号、姓名、书号、书名、借阅日期、应还日期、归还日期等。

用菜单选择方式完成下列功能:

1.图书信息添加功能:包括书号、书名、作者、出版社、存馆数量、定价等。

2.图书信息查询:分别按书名,按作者名,按出版社等进行查询。

3.图书信息排序:按书号、书名等按升序进行排序。

4.图书信息的修改、删除:按书号或书名进行图书的修改和删除。

5.读者信息添加功能:包括学号、姓名、学院、专业班级等。

6.读者信息查询:分别按学号、姓名、专业班级等进行查询。

7.读者信息排序:按学号、学院等按升序进行排序。

8.读者信息的修改、删除:按学号+姓名进行读者信息的修改和删除。

9.图书借阅:输入学号+书号,如果该书图书信息表中的存馆数量大于0,则可以借出,借出相应数量后修改图书信息表中的存馆数量,在图书借阅表添加该同学的借阅。

10.图书归还:输入学号+书号,修改图书信息表中的存馆数量,在图书借阅表中记录该同学的归还时间。

11.图书借阅查询:分别按学号、书名、学院等进行查询。

思路:

和之前的大致一样,不同点是 在程序运行开始的时候,将数据从文件里导入list中,进行操作,直到关闭程序不再进行操作,才将list中的数据存入列表。

代码

Operate接口

package liberal;public interface Operate {//从文件中读取信息,输入到list中public abstract void init();//在list 中添加 新元素public abstract void add();//在list 中搜索public abstract void search();//排序public abstract void sort();//在list 中删除public abstract void delete();//在list 中修改所要修改的内容public abstract void revise();//将list 中的信息导入 文件中储存 ,并清空listpublic abstract void stor();
}

 Book类

package liberal;
public class Book {//书号、书名、作者、出版社、出版日期、存馆数量、定价private long bnumber;private String bname;private String author;private String publisher;private String date;private long snumber;private double price;Book(long bnumber,String bname,String author,String publisher,String date,long snumber,double price){this.bnumber=bnumber;this.bname=bname;this.author=author;this.publisher=publisher;this.date=date;this.snumber=snumber;this.price=price;}public void setBnumber(long bnumber) {this.bnumber=bnumber;}public long getBnumber() {return bnumber;}public void setBname(String bname) {this.bname=bname;}public String getBname() {return bname;}public void setAuthor(String author) {this.author=author;}public String getAuthor() {return author;}public void setPublisher(String publisher) {this.publisher=publisher;}public String getPublisher() {return publisher;}public void setDate(String date) {this.date=date;}public String getDate() {return date;}public void setSnumber(long snumber) {this.snumber=snumber;}public long getSnumber() {return snumber;}public void setPrice(double price) {this.price=price;}public double getPrice() {return price;}public void show() {//书号、书名、作者、出版社、出版日期、存馆数量、定价System.out.println("书号:\t"+bnumber+"\r\n"+ "书名:\t"+bname+"\r\n"+ "作者:\t"+author+"\r\n"+ "出版社:\t"+publisher+"\r\n"+ "存馆数量:\t"+snumber+"\r\n"+ "定价:\t"+price+"\r\n"+ "");}}

 Reader类

package liberal;public class Reader {//学号、姓名、学院、专业班级private int sno;private String sname;private String collage;private String major_class;Reader(int sno,String sname,String collage,String major_class){this.sno=sno;this.sname=sname;this.collage=collage;this.major_class=major_class;}public void setSno(int sno) {this.sno=sno;}public int getSno() {return sno;}public void setSname(String sname) {this.sname=sname;}public String getSname() {return sname;}public void setCollage(String collage) {this.collage=collage;}public String getCollage() {return collage;}public void setMajor_class(String major_class) {this.major_class=major_class;}public String getMajor_class() {return major_class;}public void show() {//学号、姓名、学院、专业班级System.out.println("学号:\t"+sno+"\r\n"+ "姓名:\t"+sname+"\r\n"+ "学院:\t"+collage+"\r\n"+ "专业班级:\t"+major_class+"\r\n"+ "");}}

在写这两个类的时候,感觉有些set,get方法没有用,但还是写了,并不知道要不要写。感觉写了后改程序的时候会更加方便,

BookList类

package liberal;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Scanner;public class BookList implements Operate{private LinkedList<Book> booklist=new LinkedList<Book>();public void init() {File file=new File("src\\liberal\\图书信息表.txt");//文件是否存在,如果不存在则创建该文件if(file.exists()) {//文件是否空if(file.length()==0) {System.out.println("暂无图书信息。\n请先输图书信息。");}else {try {FileReader fr=new FileReader(file);BufferedReader bufr=new BufferedReader(fr);String s=null;long bnumber=0;String bname=null;String author=null;String publisher=null;String date=null;long snumber=0;double price=0.0;long i=1;while((s=bufr.readLine())!=null) {//书号、书名、作者、出版社、出版日期、存馆数量、定价if(i%7==1)//将字符型转成longbnumber=Long.parseLong(s);if(i%7==2)bname=s;if(i%7==3)author=s;if(i%7==4)publisher=s;if(i%7==5)date=s;if(i%7==6)snumber=Long.parseLong(s);if(i%7==0) {price=Double.parseDouble(s);Book book=new Book(bnumber,bname,author,publisher,date,snumber,price);booklist.add(book);}i++;}bufr.close();fr.close();} catch (Exception e) {e.printStackTrace();}}}else {try {file.createNewFile();} catch(Exception e) {e.printStackTrace();		}}}public void add() {Scanner in = new Scanner(System.in);		System.out.println("请输入要添加的书号:");long bnumber=in.nextLong();String s=in.nextLine();System.out.println("请输入要添加的书名:");String bname=in.nextLine();System.out.println("请输入要添加的作者:");String author=in.nextLine();System.out.println("请输入要添加的出版社:");String publisher=in.nextLine();System.out.println("请输入要添加的出版日期:(格式:1999.12.12)");String date=in.nextLine();System.out.println("请输入要添加的存馆数量:");long snumber=in.nextLong();System.out.println("请输入要添加的定价:");double price=in.nextDouble();Book book =new Book(bnumber,bname,author,publisher,date,snumber,price);booklist.add(book);System.out.println("添加成功。");}public boolean bnPd(long bnumber) {for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber() && booklist.get(j).getSnumber()>=1) {booklist.get(j).setSnumber(booklist.get(j).getSnumber()-1);return true;}return false; }/** public boolean searsn1(long bnumber) {for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber()) {//System.out.println("已成功借出。");//booklist.get(j).setSnumber(booklist.get(j).getSnumber()-1);return true;}return false; }*/public Book bReturn(long bnumber) {for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber())return booklist.get(j);//之前已经判断过是否存在所以在这里用了 nullreturn null;}//归还public void guiHuan(long bnumber) {for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber()) {System.out.println("已成功归还。");booklist.get(j).setSnumber(booklist.get(j).getSnumber()+1);} }public void search() {//书号、书名、作者、出版社、出版日期、存馆数量、定价Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号查询请按 1\r\n"+ "按书名查询请按 2\r\n"+ "按作者查询请按 3\r\n"+ "按出版社查询请按 4\r\n"+ "按出版日期查询请按 5\r\n"+ "按馆存数量查询请按 6\r\n"+ "按价格查询请按 7\r\n"+ "");int i=in.nextInt();while (i<0 || i>7) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号查询请按 1\r\n"+ "按书名查询请按 2\r\n"+ "按作者查询请按 3\r\n"+ "按出版社查询请按 4\r\n"+ "按出版日期查询请按 5\r\n"+ "按馆存数量查询请按 6\r\n"+ "按价格查询请按 7\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 0: break; case 1:		System.out.println("请输入要查询的书号:");long bnumber=in.nextLong();for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber()) {booklist.get(j).show();f=false;}break;case 2:System.out.println("请输入要查询的书名:");String s=in.nextLine();String bname=in.nextLine();for(int j=0;j<booklist.size();j++)if(bname.equals(booklist.get(j).getBname())) {booklist.get(j).show();f=false;}break;case 3:System.out.println("请输入要作者名:");String s1=in.nextLine();String author=in.nextLine();for(int j=0;j<booklist.size();j++)if(author.equals(booklist.get(j).getAuthor())) {booklist.get(j).show();f=false;}break;case 4:System.out.println("请输入要查询的出版社:");String s2=in.nextLine();String publisher=in.nextLine();for(int j=0;j<booklist.size();j++)if(publisher.equals(booklist.get(j).getPublisher())) {booklist.get(j).show();f=false;}break;case 5:System.out.println("请输入要查询的出版日期(格式:1999.1.1):");String s3=in.nextLine();String date=in.nextLine();for(int j=0;j<booklist.size();j++)if(date.equals(booklist.get(j).getDate())) {booklist.get(j).show();f=false;}break;case 6:System.out.println("请输入要查询的存馆数量:");long snumber=in.nextLong();for(int j=0;j<booklist.size();j++)if(snumber==booklist.get(j).getSnumber()) {booklist.get(j).show();f=false;}break;case 7:System.out.println("请输入要查询的价格:");double price=in.nextDouble();for(int j=0;j<booklist.size();j++)if(Math.abs(price-booklist.get(j).getPrice())<0.0000001d) {booklist.get(j).show();f=false;}break;}if(f)System.out.println("查无此信息。");elseSystem.out.println("查询成功。");}public void sort() {Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号排序请按 1\r\n"+ "按书名排序请按 2\r\n"+ "按作者排序请按 3\r\n"+ "按出版社排序请按 4\r\n"+ "按出版日期排序请按 5\r\n"+ "按馆存数量排序请按 6\r\n"+ "按价格排序请按 7\r\n"+ "");int i=in.nextInt();while (i<0 || i>7) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号排序请按 1\r\n"+ "按书名排序请按 2\r\n"+ "按作者排序请按 3\r\n"+ "按出版社排序请按 4\r\n"+ "按出版日期排序请按 5\r\n"+ "按馆存数量排序请按 6\r\n"+ "按价格排序请按 7\r\n"+ "");i=in.nextInt();}switch(i) {case 0: break;case 1:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {if(o1.getBnumber()-o2.getBnumber()<0)return -1;elsereturn 1;}});break;case 2:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getBname(), o2.getBname());}});break;case 3:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getAuthor(), o2.getAuthor());}});break;case 4:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getPublisher(), o2.getPublisher());}});break;case 5:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getDate(), o2.getDate());}});break;case 6:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {if(o1.getSnumber()-o2.getSnumber()<0)return -1;elsereturn 1;}});break;case 7:Collections.sort(booklist, new Comparator<Book>() {	@Overridepublic int compare(Book o1, Book o2) {if(o1.getPrice()-o2.getPrice()<0)return -1;elsereturn 1;}});break;}System.out.println("排序成功。");}public void delete() {//书号、书名Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号删除请按 1\r\n"+ "按书名删除请按 2\r\n"+ "");int i=in.nextInt();while (i<0 || i>2) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号删除请按 1\r\n"+ "按书名删除请按 2\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 0: break;case 1:System.out.println("请输入要删除的书号:");Long bnumber=in.nextLong();for(int j=0;j<booklist.size();j++)if(bnumber==booklist.get(j).getBnumber()) {booklist.remove(j);f=false;}break;case 2:System.out.println("请输入要删除的书名:");String s=in.nextLine();String bname=in.nextLine();for(int j=0;j<booklist.size();j++)if(bname.equals(booklist.get(j).getBname())) {booklist.remove(j);f=false;}break;}if(f)System.out.println("查无此信息。");else	System.out.println("删除成功。");}public void revise() {Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号更改请按 1\r\n"+ "按书名更改请按 2\r\n"+ "");int i=in.nextInt();while (i<0 || i>2) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号更改请按 1\r\n"+ "按书名更改请按 2\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 0: break;case 1:System.out.println("请输入要更前的书号:");long s=in.nextLong();System.out.println("请输入要更改后的书号:");long n=in.nextLong();for(int j=0;j<booklist.size();j++)if(s==booklist.get(j).getBnumber()) {booklist.get(j).setBnumber(n);f=false;}break;case 2:System.out.println("请输入要更前的书名:");String s2=in.nextLine();String s1=in.nextLine();System.out.println("请输入要更改后的书名:");String n1=in.nextLine();for(int j=0;j<booklist.size();j++)if(s1.equals(booklist.get(j).getBname())) {booklist.get(j).setBname(n1);f=false;}break;}if(f)System.out.println("查无此信息。");elseSystem.out.println("修改成功。");}public void stor() {File file=new File("src\\liberal\\图书信息表.txt");try {FileWriter fw=new FileWriter(file);BufferedWriter bufw=new BufferedWriter(fw);Book book=null;for (int i = 0; i < booklist.size(); i++) {book=booklist.get(i);//bufw.write();//String.valueOf();//书号、书名、作者、出版社、出版日期、存馆数量、定价bufw.write(String.valueOf(book.getBnumber()));bufw.newLine();bufw.write(book.getBname());bufw.newLine();bufw.write(book.getAuthor());bufw.newLine();bufw.write(book.getPublisher());bufw.newLine();bufw.write(book.getDate());bufw.newLine();bufw.write(String.valueOf(book.getSnumber()));bufw.newLine();bufw.write(String.valueOf(book.getPrice()));bufw.newLine();}bufw.close();fw.close();booklist.clear();} catch(Exception e)	{e.printStackTrace();}}
}

没有看完异常处理,所以就只在写了书上的io流的异常处理。

init()        将文件 图书借阅表.txt 里的数据导入booklist 中。

add()       添加图书信息到booklist 中。

boolean bnPd(long bnumber)        根据书号判断booklist中是否有且该书馆存数量是否大于一

如果存在,则该书馆存数量减一。完成借书功能。

Book bReturn(long bnumber)        根据书号在booklist中查询并返回该图书信息

void guiHuan(long bnumber)        根据书号在booklist中查询并使该书的馆存数量加一

完成还书功能。

void search()        根据    书号、书名、作者、出版社、出版日期、存馆数量、定价   查询

void sort()          根据    书号、书名、作者、出版社、出版日期、存馆数量、定价   排序(如果是中文,根据拼音排序,好像不支持鑫这种字(忘了叫啥来)。

void delete()        按书号或书名进行图书的删除。(这里好像写错了,应该是按照书号或者书名查找该书,然后进行删除该书。

void revise()        按书号或书名进行图书的修改。(和上面一样)

void stor()        将booklist里的信息存在图书信息表.txt中

ReadList 类 

package liberal;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Scanner;public class ReaderList implements Operate{private LinkedList<Reader> readerlist=new LinkedList<Reader>();public void init() {File file=new File("src\\liberal\\读者信息表.txt");if(file.exists()) {if(file.length()==0) {System.out.println("暂无读者信息。\n请先输读者信息。");}else {try {FileReader fr=new FileReader(file);BufferedReader bufr=new BufferedReader(fr);String s=null;int sno=0;String sname=null;String collage=null;String major_class=null;long i=1;while((s=bufr.readLine())!=null) {//学号、姓名、学院、专业班级if(i%4==1)//将字符型转成intsno=Integer.parseInt(s);if(i%4==2)sname=s;if(i%4==3)collage=s;if(i%4==0) {major_class=s;readerlist.add(new Reader(sno,sname,collage,major_class));}i++;}bufr.close();fr.close();} catch (Exception e) {e.printStackTrace();}}}else {try {file.createNewFile();} catch(Exception e) {e.printStackTrace();		}}}public void add() {Scanner in = new Scanner(System.in);		System.out.println("请输入要添加的学号:");int sno=in.nextInt();String s=in.nextLine();System.out.println("请输入要添加的姓名:");String sname=in.nextLine();System.out.println("请输入要添加的学院:");String collage=in.nextLine();System.out.println("请输入要添加的专业班级:");String major_class=in.nextLine();Reader reader=new Reader(sno,sname,collage,major_class);readerlist.add(reader);System.out.println("添加成功。");}public Reader rReturn(int sno) {for(int j=0;j<readerlist.size();j++)if(sno==readerlist.get(j).getSno())return readerlist.get(j);return null;}public boolean snPd(int sno) {for(int j=0;j<readerlist.size();j++)if(sno==readerlist.get(j).getSno())return true;return false; }public void search() {//学号、姓名、学院、专业班级Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按学号查询请按 1\r\n"+ "按姓名查询请按 2\r\n"+ "按学院查询请按 3\r\n"+ "按出专业年级查询请按 4\r\n"+ "");int i=in.nextInt();while (i<0 || i>4) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按学号查询请按 1\r\n"+ "按姓名查询请按 2\r\n"+ "按学院查询请按 3\r\n"+ "按出专业年级查询请按 4\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 1:System.out.println("请输入要查询的学号:");int snumber=in.nextInt();for(int j=0;j<readerlist.size();j++)if(snumber==readerlist.get(j).getSno()) {readerlist.get(j).show();f=false;}break;case 2:System.out.println("请输入要查询的姓名:");String s=in.nextLine();String sname=in.nextLine();for(int j=0;j<readerlist.size();j++)if(sname.equals(readerlist.get(j).getSname())) {readerlist.get(j).show();f=false;}break;case 3:System.out.println("请输入要查询的学院:");String s1=in.nextLine();String collage=in.nextLine();for(int j=0;j<readerlist.size();j++)if(collage.equals(readerlist.get(j).getCollage())) {readerlist.get(j).show();f=false;}break;case 4:System.out.println("请输入要查询的专业班级:");String s2=in.nextLine();String major_class=in.nextLine();for(int j=0;j<readerlist.size();j++)if(major_class.equals(readerlist.get(j).getMajor_class())) {readerlist.get(j).show();f=false;}break;}if(f)System.out.println("查无此信息");elseSystem.out.println("查询成功。");}public void sort() {Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按学号排序请按 1\r\n"+ "按姓名排序请按 2\r\n"+ "按学院排序请按 3\r\n"+ "按出专业年级排序请按 4\r\n"+ "");int i=in.nextInt();while (i<0 || i>4) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按学号排序请按 1\r\n"+ "按姓名排序请按 2\r\n"+ "按学院排序请按 3\r\n"+ "按出专业年级排序请按 4\r\n"+ "");i=in.nextInt();}switch(i) {case 1:Collections.sort(readerlist, new Comparator<Reader>() {	@Overridepublic int compare(Reader o1, Reader o2) {if(o1.getSno()-o2.getSno()<0)return -1;elsereturn 1;}});break;case 2:Collections.sort(readerlist, new Comparator<Reader>() {	@Overridepublic int compare(Reader o1, Reader o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getSname(), o2.getSname());}});break;case 3:Collections.sort(readerlist, new Comparator<Reader>() {		@Overridepublic int compare(Reader o1, Reader o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getCollage(), o2.getCollage());}});break;case 4:Collections.sort(readerlist, new Comparator<Reader>() {	@Overridepublic int compare(Reader o1, Reader o2) {return Collator.getInstance(Locale.CHINA).compare(o1.getMajor_class(), o2.getMajor_class());}});break;}System.out.println("排序成功。");}public void delete() {Scanner in = new Scanner(System.in);System.out.println("请输入要删除读者的学号:\n");int s=in.nextInt();System.out.println("请输入要删除读者的姓名:\n");String s1=in.nextLine();String n=in.nextLine();boolean f=true;for(int j=0;j<readerlist.size();j++)if(s==readerlist.get(j).getSno() && n.equals(readerlist.get(j).getSname())) {readerlist.remove(j);f=false;}if(f)System.out.println("查无此信息。");elseSystem.out.println("修改成功。");}public void revise() {Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "修改读者学院信息请按 1\r\n"+ "修改读者专业班级信息请按 2\r\n"+ "");int i=in.nextInt();while (i<0 || i>2) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "修改读者学院信息请按 1\r\n"+ "修改读者专业班级信息请按 2\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 1:System.out.println("请输入要修改读者的学号:\n");int s=in.nextInt();System.out.println("请输入要修改读者的姓名:\n");String s2=in.nextLine();String n=in.nextLine();System.out.println("请输入要修改读者的学院:\n");String g=in.nextLine();for(int j=0;j<readerlist.size();j++)if(s==readerlist.get(j).getSno() && n.equals(readerlist.get(j).getSname())) {readerlist.get(j).setCollage(g);f=false;}break;case 2:System.out.println("请输入要修改读者的学号:\n");int s1=in.nextInt();System.out.println("请输入要修改读者的姓名:\n");String s3=in.nextLine();String n1=in.nextLine();System.out.println("请输入要修改读者的专业班级:\n");String g1=in.nextLine();for(int j=0;j<readerlist.size();j++)if(s1==readerlist.get(j).getSno() && n1.equals(readerlist.get(j).getSname())) {readerlist.get(j).setMajor_class(g1);f=false;}break;}if(f)System.out.println("查无此信息。");elseSystem.out.println("修改成功。");}public void stor() {File file=new File("src\\liberal\\读者信息表.txt");try {FileWriter fw=new FileWriter(file);BufferedWriter bufw=new BufferedWriter(fw);Reader reader=null;for (int i = 0; i < readerlist.size(); i++) {reader=readerlist.get(i);//学号、姓名、学院、专业班级bufw.write(String.valueOf(reader.getSno()));bufw.newLine();bufw.write(reader.getSname());bufw.newLine();bufw.write(reader.getCollage());bufw.newLine();bufw.write(reader.getMajor_class());bufw.newLine();}bufw.close();fw.close();readerlist.clear();} catch(Exception e)	{e.printStackTrace();}}
}

和booklit的差不多

Infor类

package liberal;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;public class Infor {private Book book;private Reader reader;private final String bordate;private final String stadate;	//默认借阅日期为60天private String retdate;Infor(Infor _infor){this.book=_infor.book;this.reader=_infor.reader;this.bordate=_infor.bordate;this.stadate=_infor.stadate;this.retdate=_infor.retdate;}Infor(Book book,Reader reader){this.book=book;this.reader=reader;Date date1=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",Locale.SIMPLIFIED_CHINESE);this.bordate=sdf.format(date1);//https://www.csdn.net/tags/Mtjagg3sMzUyMDgtYmxvZwO0O0OO0O0O.htmlCalendar calendar = new GregorianCalendar(); calendar.setTime(date1); calendar.add(Calendar.DATE,60); date1=calendar.getTime(); this.stadate=sdf.format(date1);this.retdate="未还";}Infor(Book book,Reader reader,String bordate,String stadate){this.book=book;this.reader=reader;this.bordate=bordate;this.stadate=stadate;this.retdate="未还";}Infor(long bnumber,String bname,String author,String publisher,String date,long snumber,double price,int sno,String sname,String collage,String major_class){this.book=new Book(bnumber,bname,author,publisher,date,snumber,price);this.reader=new Reader(sno,sname,collage,major_class);Date date1=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",Locale.SIMPLIFIED_CHINESE);this.bordate=sdf.format(date1);//https://www.csdn.net/tags/Mtjagg3sMzUyMDgtYmxvZwO0O0OO0O0O.htmlCalendar calendar = new GregorianCalendar(); calendar.setTime(date1); calendar.add(Calendar.DATE,60); date1=calendar.getTime(); this.stadate=sdf.format(date1);this.retdate="未还";}Infor(long bnumber,String bname,String author,String publisher,String date,long snumber,double price,int sno,String sname,String collage,String major_class,String bordate,String stadate,String retdate){this.book=new Book(bnumber,bname,author,publisher,date,snumber,price);this.reader=new Reader(sno,sname,collage,major_class);this.bordate=bordate;this.stadate=stadate;this.retdate=retdate;}public Book getBook() {return book;}public Reader getReader() {return reader;}public String getBordate() {return bordate;}public String getStadate() {return stadate;}public String getRetdate() {return retdate;}public void setRetdate(String retdate) {this.retdate=retdate;}public void show() {book.show();reader.show();System.out.println("借阅日期:\t"+bordate+"\r\n"+ "应还日期:\t"+stadate+"\r\n"+ "归还日期:\t"+retdate+"\r\n"+ "");}
}

有几个构造方法是多余的,但没有删。

借阅日期 用的Date SimpleDateFormat        获得当前的时间并设置格式为 年 月 日 分 秒

应还日期 设置为借阅日期后的60天

归还日期 为归还时,为“未还”

InforList类

package liberal;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.LinkedList;
import java.util.Scanner;public class InforList {private LinkedList<Infor> inforlist=new LinkedList<Infor>();public void init() {File file=new File("src\\liberal\\图书借阅表.txt");//文件是否存在,如果不存在则创建该文件if(file.exists()) {//文件是否空if(file.length()==0) {System.out.println("暂无借阅信息。\n请先输借阅信息。");}else {try {FileReader fr=new FileReader(file);BufferedReader bufr=new BufferedReader(fr);String s=null;long bnumber=0;String bname=null;String author=null;String publisher=null;String date=null;long snumber=0;double price=0.0;int sno=0;String sname=null;String collage=null;String major_class=null;String bordate=null;String stadate=null;	String retdate=null;long i=1;while((s=bufr.readLine())!=null) {//书号、书名、作者、出版社、出版日期、存馆数量、定价if(i%14==1)bnumber=Long.parseLong(s);if(i%14==2)bname=s;if(i%14==3)author=s;if(i%14==4)publisher=s;if(i%14==5)date=s;if(i%14==6)snumber=Long.parseLong(s);if(i%14==7)price=Double.parseDouble(s);if(i%14==8)sno=Integer.parseInt(s);if(i%14==9)sname=s;if(i%14==10)collage=s;if(i%14==11) major_class=s;if(i%14==12)bordate=s;if(i%14==13)stadate=s;if(i%14==0) {retdate=s;Infor infor=new Infor(bnumber,bname,author,publisher,date,snumber,price,sno,sname,collage,major_class,bordate,stadate,retdate);inforlist.add(infor);}	i++;}bufr.close();fr.close();} catch (Exception e) {e.printStackTrace();}}}else {try {file.createNewFile();} catch(Exception e) {e.printStackTrace();		}}}	public void add(Infor infor) {inforlist.add(infor);}public Infor inReturn(long bnumber) {for(int j=0;j<inforlist.size();j++)if(bnumber==inforlist.get(j).getBook().getBnumber()) return inforlist.get(j);return null;}public boolean inPd(long bnumber) {for(int j=0;j<inforlist.size();j++)if(bnumber==inforlist.get(j).getBook().getBnumber()) return true;return false;}public void search() {Scanner in = new Scanner(System.in);System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号查询请按 1\r\n"+ "按书名查询请按 2\r\n"+ "按作者查询请按 3\r\n"+ "按出版社查询请按 4\r\n"+ "按出版日期查询请按 5\r\n"+ "按馆存数量查询请按 6\r\n"+ "按价格查询请按 7\r\n"+ "按学号查询请按 8\r\n"+ "按姓名查询请按 9\r\n"+ "按学院查询请按 10\r\n"+ "按出专业年级查询请按 11\r\n"+ "");int i=in.nextInt();while (i<0 || i>11) {System.out.println("输入范围错误,请重新输入。");System.out.println("请按照下面提示进行操作。\r\n"+ "返回上一界面 0\r\n"+ "按书号查询请按 1\r\n"+ "按书名查询请按 2\r\n"+ "按作者查询请按 3\r\n"+ "按出版社查询请按 4\r\n"+ "按出版日期查询请按 5\r\n"+ "按馆存数量查询请按 6\r\n"+ "按价格查询请按 7\r\n"+ "按学号查询请按 8\r\n"+ "按姓名查询请按 9\r\n"+ "按学院查询请按 10\r\n"+ "按出专业年级查询请按 11\r\n"+ "");i=in.nextInt();}boolean f=true;switch(i) {case 1:System.out.println("请输入要查询的书号:");long bnumber=in.nextLong();for(int j=0;j<inforlist.size();j++)if(bnumber==inforlist.get(j).getBook().getBnumber()) {inforlist.get(j).show();f=false;}break;case 2:System.out.println("请输入要查询的书名:");String s=in.nextLine();String bname=in.nextLine();for(int j=0;j<inforlist.size();j++)if(bname.equals(inforlist.get(j).getBook().getBname())) {inforlist.get(j).show();f=false;}break;case 3:System.out.println("请输入要查询的作者:");String s1=in.nextLine();String auchor=in.nextLine();for(int j=0;j<inforlist.size();j++)if(auchor.equals(inforlist.get(j).getBook().getAuthor())) {inforlist.get(j).show();f=false;}break;case 4:System.out.println("请输入要查询的出版社:");String s2=in.nextLine();String publisher=in.nextLine();for(int j=0;j<inforlist.size();j++)if(publisher.equals(inforlist.get(j).getBook().getPublisher())) {inforlist.get(j).show();f=false;}break;case 5:System.out.println("请输入要查询的出版日期:");String s3=in.nextLine();String date=in.nextLine();for(int j=0;j<inforlist.size();j++)if(date.equals(inforlist.get(j).getBook().getDate())) {inforlist.get(j).show();f=false;}break;case 6:System.out.println("请输入要查询的存馆数量:");long snumber=in.nextLong();for(int j=0;j<inforlist.size();j++)if(snumber==inforlist.get(j).getBook().getSnumber()) {inforlist.get(j).show();f=false;}break;case 7:System.out.println("请输入要查询的价格:");double price=in.nextDouble();for(int j=0;j<inforlist.size();j++)if(Math.abs(price-inforlist.get(j).getBook().getPrice())<0.0000001d) {inforlist.get(j).show();f=false;}break;case 8:System.out.println("请输入要查询的读者学号:");int sno=in.nextInt();for(int j=0;j<inforlist.size();j++)if(sno==inforlist.get(j).getReader().getSno()) {inforlist.get(j).show();f=false;}break;case 9:System.out.println("请输入要查询的读者姓名:");String s4=in.nextLine();String sname=in.nextLine();for(int j=0;j<inforlist.size();j++)if(sname.equals(inforlist.get(j).getReader().getSname())) {inforlist.get(j).show();f=false;}break;case 10:System.out.println("请输入要查询的读者学院:");String s5=in.nextLine();String collage=in.nextLine();for(int j=0;j<inforlist.size();j++)if(collage.equals(inforlist.get(j).getReader().getCollage())) {inforlist.get(j).show();f=false;}break;case 11:System.out.println("请输入要查询的读者专业班级:");String s6=in.nextLine();String major_class=in.nextLine();for(int j=0;j<inforlist.size();j++)if(major_class.equals(inforlist.get(j).getReader().getMajor_class())) {inforlist.get(j).show();f=false;}break;}if(f)System.out.println("查无此信息。");else	System.out.println("查询成功。");}public void stor() {File file=new File("src\\liberal\\图书借阅表.txt");try {FileWriter fw=new FileWriter(file);BufferedWriter bufw=new BufferedWriter(fw);Infor infor=null;for (int i = 0; i < inforlist.size(); i++) {infor=inforlist.get(i);bufw.write(String.valueOf(infor.getBook().getBnumber()));bufw.newLine();bufw.write(infor.getBook().getBname());bufw.newLine();bufw.write(infor.getBook().getAuthor());bufw.newLine();bufw.write(infor.getBook().getPublisher());bufw.newLine();bufw.write(infor.getBook().getDate());bufw.newLine();bufw.write(String.valueOf(infor.getBook().getSnumber()));bufw.newLine();bufw.write(String.valueOf(infor.getBook().getPrice()));bufw.newLine();bufw.write(String.valueOf(infor.getReader().getSno()));bufw.newLine();bufw.write(infor.getReader().getSname());bufw.newLine();bufw.write(infor.getReader().getCollage());bufw.newLine();bufw.write(infor.getReader().getMajor_class());bufw.newLine();bufw.write(infor.getBordate());bufw.newLine();bufw.write(infor.getStadate());bufw.newLine();bufw.write(infor.getRetdate());bufw.newLine();}bufw.close();fw.close();inforlist.clear();} catch(Exception e)	{e.printStackTrace();}}
}

和前面一致

main

package liberal;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;public class main {public static void main(String[] args) {// TODO 自动生成的方法存根BookList booklist=new BookList();ReaderList readerlist=new ReaderList();InforList inforlist=new InforList();/*9.图书借阅:输入学号+书号,如果该书图书信息表中的存馆数量大于0,则可以借出,借出相应数量后修改图书信息表中的存馆数量,在图书借阅表添加该同学的借阅。10.图书归还:输入学号+书号,修改图书信息表中的存馆数量,在图书借阅表中记录该同学的归还时间。*/System.out.println("-------------------------------图书管理系统-------------------------------");System.out.println("欢迎使用,请按照下面提示进行操作。");booklist.init();readerlist.init();inforlist.init();Scanner in = new Scanner(System.in);boolean pd = true;while(pd) {System.out.println("退出系统请按 0\r\n"//+ "图书信息添加请按 1\r\n"+ "图书信息查询请按 2\r\n"+ "图书信息排序请按 3\r\n"+ "图书信息修改请按 4\r\n"+ "图书信息删除请按 5\r\n"+ "读者信息添加请按 6\r\n"+ "读者信息查询请按 7\r\n"+ "读者信息排序请按 8\r\n"+ "读者信息修改请按 9\r\n"+ "读者信息删除请按 10\r\n"+ "图书借阅信息查询请按 11\r\n"+ "图书借阅请按 12\r\n"+ "图书归还请按 13\r\n"+ "");		int i = in.nextInt();while(i<0 || i>13) {System.out.println("输入范围错误,请重新输入。");i = in.nextInt();}switch(i) {case 0: pd=false;System.out.println("您已成功退出程序。感谢使用。");	break;case 1:booklist.add(); 		break;case 2:booklist.search();	break;case 3:booklist.sort();		break;case 4:booklist.revise();   break;case 5:booklist.delete();	break;case 6:readerlist.add(); 	break;case 7:readerlist.search();	break;case 8:readerlist.sort();	break;case 9:readerlist.revise(); break;case 10:readerlist.delete();break;case 11:inforlist.search(); break;case 12:System.out.println("请输入借阅人的学号:");int sno=in.nextInt();System.out.println("请输入借阅书籍的书号:");long bnumber=in.nextLong();//根据书号判断书是否存在并馆存大于等于1,如果存在则借出并馆存-1if(booklist.bnPd(bnumber)) {//根据学号判断是否有该读者if(readerlist.snPd(sno)) {//根据书号返回一个 书 的信息,和根据学号返回一个读者的信息,形成一个借阅信息。Infor infor=new Infor(booklist.bReturn(bnumber),readerlist.rReturn(sno));inforlist.add(infor);System.out.println("已成功借出。");}elseSystem.out.println("馆中暂无该读者。");}elseSystem.out.println("馆中暂无该图书。");break;case 13:System.out.println("请输入借阅人的学号:");int sno1=in.nextInt();System.out.println("请输入借阅书籍的书号:");long bnumber1=in.nextLong();//根据书号判断是否有该借阅信息if(inforlist.inPd(bnumber1)) {//根据书号 返回该借阅信息//Infor infor =inforlist.inReturn(bnumber1);booklist.guiHuan(bnumber1);Infor infor=new Infor(inforlist.inReturn(bnumber1)); //直接复制还要该馆存数Infor infor1=new Infor(booklist.bReturn(bnumber1),readerlist.rReturn(sno1),infor.getBordate(),infor.getStadate());Date date1=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",Locale.SIMPLIFIED_CHINESE);String bordate=sdf.format(date1);//将归还时间设为此时此刻infor1.setRetdate(bordate);inforlist.add(infor1);}elseSystem.out.println("暂无该借阅信息。");break;}}booklist.stor();readerlist.stor();inforlist.stor();}
}

功能实现

9.图书借阅:输入学号+书号,如果该书图书信息表中的存馆数量大于0,则可以借出,借出相应数量后修改图书信息表中的存馆数量,在图书借阅表添加该同学的借阅。

输入 学号+书号

判断是否有该书和该读者

馆存数减一

用该书和该读者信息构造该借阅信息

存入list

10.图书归还:输入学号+书号,修改图书信息表中的存馆数量,在图书借阅表中记录该同学的归还时间

输入 学号+书号

查看是否有该借书信息

使该书馆存数加一

用该书和该读者还有该借书的借书时间,应还时间构造 信息类

设置该归还时间为当前时间

存入list

其余功能都可以直接用函数完成。

改进

有了返回上一界面的功能

不必每次操作都频繁的打开和关闭文件

错误

如果在学号等数据输入字符串会程序直接中断报错

虽然有判断,但在返回书本信息中还是用了返回null

图书借阅 和 图书归还 功能不太会写。

总结

方法名尽量见名知义

遇到不会的问题,要耐下心来去解决,多想想老师讲的。想想类之间的关系,慢慢梳理。

遇到不会解决的功能不要盲目添加方法和变量,那样有可能会越添加越乱。


http://chatgpt.dhexx.cn/article/9jBURX1q.shtml

相关文章

图书管理系统【Java实现】

目录 一、项目简介二、项目演示1.登录界面2.图书借阅信息管理界面3.新增图书借阅信息界面4.修改图书借阅信息界面5.删除图书借阅信息界面 三、项目流程1.准备开发环境&#xff08;1&#xff09;下载所需文件&#xff08;2&#xff09;在IDEA中配置Maven&#xff08;3&#xff0…

Java开发实现图书管理系统(超详细)

本文用Java代码实现图书代码管理系统&#xff0c;有些地方可能会有纰漏&#xff0c;希望各位大佬鉴赏&#xff01;&#xff01; 文章目录 文章目录 一、Java实现图书管理系统 1.1创建book包 二、创建图书管理系统的操作包 2.1创建Operation接口 三、创建User包 3.1创建User类 四…

Java实现图书管理系统(新手友好)

图书管理系统 一、初识工作二、具体实现三、代码book包Book类BookList类 operation包IOperation接口AddOperationBorrowOperationDelOperationDisplayOperationExitOperationFindOperationReturnOperation user包AdminUserNormalUserUser Main 一、初识工作 我们首先要清楚的是…

图书管理系统【java】

目录 &#x1f947;1.设计背景 &#x1f50e;2.设计思路 &#x1f511;3.book包 &#x1f4d7;3.1 Book类的实现 &#x1f4d5;3.2 BookList类的实现(书架) &#x1f511;4.user包 &#x1f4d9;4.1 User类的实现 &#x1f4d2;4.2 AdminUser&#xff08;管理员&#x…

图书管理系统(Java)

&#x1f4da; 一、前言1.1整体框架 二、book包2.1Book2.2BookList 三、user包3.1、User3.2、Adminuser3.3、Normaluser 四、Operation包4.1、IOperation接口4.2、AddOperattion4.3、ShowOperation4.4、FindOperation4.5、DelOperation4.6、BorrowOperation4.7、ReturnOperatio…

图书管理系统(Java简单版)(完整代码+详解)

目录 详解&#xff1a; BookList类&#xff1a; InOperation接口 User类&#xff08;父类&#xff09; 和 Main类&#xff08;这俩要一起看&#xff09; 完整代码 book包 Book类 BookList类 operation包 AddBook类 BorrowBook类 DeleteBook类 FindBook类 Pr…

用java实现图书管理系统。

在学完java基础篇的时候&#xff0c;安排做了一个综合版的java基础项目&#xff0c;可以把之前学到的知识综合运用。 图书管理系统。 一.项目设计到的知识1.MVC设计模式思想&#xff08;分包&#xff09;>项目分包>MVC简单介绍 2.GUI&#xff08;图形化界面&#xff09;3…

Java实现简易版的【图书管理系统】

目录 &#x1f30e;1.分析图书管理系统的功能 &#x1f30d; 2.在IDEA中进行功能类的创建 &#x1f984;2.1 创建一个名为book的包&#xff0c;里面存放书相关的 &#x1f984; 2.2 创建一个名为Operation的包&#xff0c;里面存放对书的所有操作 &#x1f30e; 3.进行用户…

Java图书管理系统(代码及详解)

图书管理系统在C、C、Java学习中我们都会进行练习来串联我们学习的一些知识以及使用场景&#xff0c;这里跟着我我带大家敲Java版本&#xff01; 结果展示&#xff1a; 这是我们最终实现的图书管理系统&#xff0c;下面我们慢慢来 思路&#xff1a; Java是面向对象的语言特点…

JAVA实现简易的图书管理系统(含过程)

目录 设计背景 成果展示 设计思路 详细代码 book包 Book类 BookList类 operation包 IOperation接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitOperation类 ReturnOperation类 user包 User类 Admin类 NormalUser类 Test类…

图书管理系统(Java实现)[附完整代码]

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE领域博主 专栏&#xff1a;JavaSE 作者专栏&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 一、图书管理系统菜单 二、实现基本框架 三、实现业务 3.1 打印所有图书 3.2 退出系统 3.3 查…

JAVA->实现图书管理系统

目录 一、图书管理系统展示 1.管理员 2.普通用户 ​编辑3.操作 二、图书管理系统基本实现思路 book --- 包 1.Book类 注意&#xff1a; 2.BookList类 注意&#xff1a; Opreration --- 包 Operration接口 1.AddOperation -- 增加图书 注意&#xff1a; 2. BorrowO…

Java实现简单的图书管理系统

图书管理系统 简介知识点类封装包继承接口多态 创建书&#xff08;Book&#xff09;书架&#xff08;BookList&#xff09;主函数&#xff08;Main&#xff09;用户&#xff08;User&#xff09;管理员&#xff08;Administrator&#xff09;接口&#xff08;IOperation&#x…

Java基础之图书管理系统

一&#xff1a;建立信息表 为图书管理人员编写一个图书管理系统&#xff0c;图书管理系统的设计主要是实现对图书的管理和相关操作&#xff0c;包括3个表&#xff1a; 图书信息表——存储图书的基本信息&#xff0c;包括书号、书名、作者、出版社、出版日期、存馆数量、定价等…

Java实现简单图书管理系统

目录 利物浦是冠军&#xff01; 一、图书管理系统的功能 二、图书管理系统的基本实现思路 1、Book包 2、user包 3、operation包 4、利用Main函数来连接所有包 三、图书管理系统的具体实现 1、Book包 &#xff08;1&#xff09;book类 &#xff08;2&#xff09;bookL…

Java实现图书管理系统(超详细解析)

图书管理系统简单实现。图书管理系统基于Java&#xff0c;页面使用jsp实现。 用户进入登录页面&#xff0c;输入账号密码&#xff0c;系统会自动检验账号和密码是否匹配&#xff0c;匹配成功则进入图书管理首页。首页查看图书信息&#xff0c;新增图书信息&#xff0c;删除不需…

Java实现简单的图书管理系统(讲解清晰,代码齐全,能正常运行)

目录 实现的样子 大致思路 代码 &#xff08;按照这个目录创建包&#xff09; 首先是book包下&#xff0c;有两个类 book类 bookList类 然后是operation包下&#xff0c;有7个类和1个接口 AddOperation类 BorrowOperation类 DelOperation类 DisplayOperation类 ExitO…

Java课程设计—— 图书管理系统

1系统需求分析 1.1功能需求分析 本课题根据图书信息管理综合分析&#xff0c;便出于方便管理考虑&#xff0c;将图书信息管理系统的功能总结起来&#xff0c;共需要实现以下几个方面功能: 1.1.1管理图书信息 管理所有图书的基本信息&#xff0c;对图书信息的操作包括添加、…

用Java实现简易的图书管理系统(超详细)

目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义规范) 3.6 操作类的具体实现 3.6.1 增加操作 3.6.2 查找操作 3.6.3 删除操作 3.6…

mysql 数组函数_mysql数组函数知识讲解

MySQL的数组函数有很多种&#xff0c;今天给大家介绍的就是mysql数组中的mysql_fetch_array()函数&#xff0c;mysql_fetch_array()函数的代码编写有什么特点呢&#xff1f; MySQL中有很多功能强大的函数&#xff0c;下面为您介绍的函数mysql_fetch_array()属于MySQL数组函数&a…