图书管理读者java代码 java做一个简单的图书管理的代码
求一个java图书管理系统代码,不需要图形化,命令行就可以,只要求实现导入图书,查询,删除
import java.io.BufferedReader;
成都创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站制作、成都网站设计、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class BookWork {
static ListBook data;
private static Scanner input;
public static void main(String[] args) {
if (!initBook("d:/book.txt")) {
System.out.println("初始图书列表失败 ..");
return;
}
input = new Scanner(System.in);
while (true) {
try {
System.out.println("请输入操作:");
System.out.println("1.找书 2.删除图书 3.退出");
int number = Integer.parseInt(input.next());
if (number == 1) {
findBook();
} else if (number == 2) {
delBook();
} else if (number == 3) {
System.out.println("退出");
break;
} else {
System.out.println("这个不是我要的...重来...");
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("这个不是我要的...重来...");
System.out.println();
}
}
}
private static void delBook() {
System.out.println("请输入要删除的书名或编号:");
String key = input.next();
if (key != null !key.equals("")) {
for (Book book : data) {
if (book.number.equals(key) || book.name.contains(key)) {
data.remove(book);
System.out.println(" 图书 " + book.toString() + " 已删除");
return;
}
}
}
System.out.println("没有您要删除的");
}
private static void findBook() {
System.out.println("请输入要查找的书名或编号:");
String key = input.next();
if (key != null !key.equals("")) {
for (Book book : data) {
if (book.number.equals(key) || book.name.contains(key)) {
System.out.println("找到了 图书 " + book.toString());
return;
}
}
}
System.out.println("没有您要找的");
}
private static boolean initBook(String string) {
try {
System.out.println("图书导入中...");
System.out.println("列表文件 -- " + string);
File file = new File(string);
if (!file.exists()) {
return false;
}
data = new ArrayListBook();
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line = "";
while ((line = bufferedReader.readLine()) != null) {
String[] strings = line.split(",");
Book b = new Book(strings[0], strings[1]);
data.add(b);
System.out.println("导入" + b.toString());
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static class Book {
String number;
String name;
public Book(String number, String name) {
super();
this.number = number;
this.name = name;
}
@Override
public String toString() {
return "Book [编码:" + number + ", 名称:" + name + "]";
}
}
}
001,金瓶梅
002,杂事秘辛
003,飞燕外传
004,控鹤监秘记
005,汉宫春色
用java编写一个 图书馆图书借阅管理系统
---------------------------------------------------
给你修改了三个地方:
1.borrowBooks方法中,将System.out.println("你要借吗?"); 改为:
System.out.println("你要借吗?输入1表示借,其他数字表示不借。");
保证输入的时候输入的数字,否则会报出异常。
2.borrowBooks方法中,将self[score] = all[9]; 改为:self[score] = all[i];
如果是all[9],那么就始终是最后一本书籍信息了。
3.have方法中,你是想将所借的书籍信息都打印出来。修改的比较多,下面注释代码是原来的。
void have(Books[] self) {
// for (int i = 0; i 2; i++) {
// self[i].showBookInfo();
// }
for (int i = 0; i 3; i++) {
if(self[i]!=null)
self[i].showBookInfo();
}
}
****************** 附上所有代码:*************************
import java.util.Scanner;
public class TestBook {
public static void main(String[] args) {
Books all[] = new Books[10];
Books self[] = new Books[3];
all[0] = new Books("java", 1, "12345", "tom", 34.0f, "人民出版社");
all[1] = new Books("c", 2, "12346", "tnn", 31.0f, "人民出版社");
all[2] = new Books("c++", 3, "12445", "mm", 35.0f, "人民出版社");
all[3] = new Books("c#", 4, "12365", "tt", 38.0f, "人民出版社");
all[4] = new Books("j2se", 5, "13345", "tosm", 31.1f, "人民出版社");
all[5] = new Books("j2ee", 6, "18345", "ttm", 32.0f, "人民出版社");
all[6] = new Books("jsp", 7, "12335", "cc", 33.0f, "人民出版社");
all[7] = new Books("net", 8, "12341", "bb", 36.0f, "人民出版社");
all[8] = new Books("ip", 9, "12343", "aa", 37.0f, "人民出版社");
all[9] = new Books("tcp", 10, "22345", "jj", 39.0f, "人民出版社");
Readers r = new Readers("xiaoming", 101, "1", 3);
r.searchAllBooks(all);
r.borrowBooks(all, self);
r.have(self);
r.give(all, self);
}
}
class Readers {
Scanner scan = new Scanner(System.in);
String names;
int nums;
String classes;
int grade;
int score = 0;
// Books self[]=new Books[3];
Readers(String n, int u, String c, int g) {
names = n;
nums = u;
classes = c;
grade = g;
}
void searchAllBooks(Books[] all) {// 查书
for (int i = 0; i 10; i++)
all[i].showBookInfo();
// self[score]=all[0];
}
void give(Books[] all, Books[] self) {// 还书
System.out.println("请输入您要还的书的书号");
int n = scan.nextInt();
for (int i = 0; i 10; i++) {
if (n == all[i].num) {
for (int j = 0; j 3; j++) {
if (self[j] == all[i]) {
self[j] = null;
System.out.println("还书成功");
}
}
}
}
}
void have(Books[] self) {
// for (int i = 0; i 2; i++) {
// self[i].showBookInfo();
// }
for (int i = 0; i 3; i++) {
if(self[i]!=null)
self[i].showBookInfo();
}
}
void giveMoney() {
}
void borrowBooks(Books[] all, Books[] self) {
System.out.println("请输入您要查找的书名:");
String n = scan.next();
int i;
for (i = 0; i 10; i++) {
if (n.equals(all[i].name)) {
all[i].showBookInfo();
break;
}
}
//System.out.println("你要借吗?");
System.out.println("你要借吗?输入1表示借,其他数字表示不借。");
int j;
j = scan.nextInt();
if (j == 1) {
System.out.println("借阅成功");
//self[score] = all[9];
self[score] = all[i];
score += 1;
}
if (score 4) {
System.out.println("您还可以借阅" + (3 - score) + "本");
} else {
System.out.println("对不起,一个人只能借3本");
}
}
}
class Books {
String name;
int num;
String ISBN;
String writer;
float price;
String publisher;
Books(String n, int u, String i, String w, float p, String l) {
name = n;
num = u;
ISBN = i;
writer = w;
price = p;
publisher = l;
}
void showBookInfo() {
System.out.println("**************************");
System.out.println("书名:" + name);
System.out.println("索书号:" + num);
System.out.println("ISBN号:" + ISBN);
System.out.println("价格:" + price);
System.out.println("出版社:" + publisher);
System.out.println("**************************");
}
}
----------------------------------------------------
java代码演示 图书馆有10个座位,读者进来要登记,退出要注销。问有几个程序和进程
import java.util.concurrent.Semaphore;
/**
*
* @author Mi Zhou
*/
public class LibraryDemo {
// 主要在于理解多线程变量共享和互斥的问题
// 这里共享和互斥的变量就是 图书馆的这10个座位
// 我们用信号量 Semaphore 来表示用 10 个座位的这个图书馆
// (如果目前不知道什么是 Semaphore,建议先了解这个概念)
public static void main(String[] args) throws Exception {
// 创建有 10 个许可的信号量(在这里可以理解为图书馆,图书馆最多容纳 10 个人)
Semaphore semaphore = new Semaphore(10);
// 假设有 15 个人来图书馆读书,每个人都在图书馆待 1 秒
for (int i = 1; i = 15; ++i) {
ReaderRunnable rr = new ReaderRunnable(i, 1, semaphore);
new Thread(rr).start();
}
// 查看输出你会发现图书馆最多是同时 10 个读者在里面
}
}
// 读者线程
class ReaderRunnable implements Runnable {
private final int readerNo; // 读者编号
private final int stayTime; // 这个读者在图书馆待的时间,以 秒 计
private final Semaphore semaphore; // 当前的图书馆
public ReaderRunnable(int readerNo, int stayTime, Semaphore semaphore) {
this.readerNo = readerNo;
this.stayTime = stayTime;
this.semaphore = semaphore;
}
@Override
public void run() {
try {
// 请求进入图书馆,如果图书馆没有座位了,这个方法会阻塞,直到图书馆有座位
semaphore.acquire();
System.out.println("读者 " + readerNo + " 进入图书馆");
Thread.sleep(stayTime * 1000); // 在图书馆待着
System.out.println("读者 " + readerNo + " 离开图书馆");
semaphore.release(); // 离开图书馆
} catch (InterruptedException ex) {
ex.printStackTrace(System.err);
}
}
}
图书管理系统 实现增删查改 要求是Java代码 急急急!! 求大神急救 感激不尽~
你的程序中错误很多,下面是我修改后的程序,其中的错误在程序的注释中说明了,希望可以帮到你#include//usingnamespacestd;由于VC的Debug出现了fatalerrorC1001:INTERNALCOMPILERERROR错误,//将这个注释掉,上面写成#includeclass Vect{//向量表示 float *p;//指向向量的指针 int n;//向量的元素个数public: Vect(floata[]){ n=10; //这里初始化n,为了简单,暂时给n赋10 p=newfloat[10]; //你需要给你的指针分配空间才可以给指针赋值 for(inti=0;in!=v.n) return0; //this是指针,不能用this.a,error没有定义,不能随便用 for(inti=0;ip[i]+v.p[i]; //这里不能用this.p[i],因为this是指针,要用this-p[i] returna;}Vectoperator-(Vectv1,Vectv2) //你程序中VectVECT::operator-(Vectv),‘-’重载的运算符是友元而不是类的成员函数{ //友元函数重载的双目运算符,形参需要两个,因为友元函数既然不属于类,那么自然没有隐含this指针 floatb[10]={0}; Vecta(b); if(v1.n!=v2.n)return0; //同理,error没有定义,不能随便用 for(inti=0;i
新闻名称:图书管理读者java代码 java做一个简单的图书管理的代码
本文URL:http://ybzwz.com/article/dosegsg.html