#include <stdio.h>
#include <stdlib.h>
#include <cstring>
using namespace std;
#define N 3//录入书数
struct book
{
char num[13];//书号
char name[10];//书名
int money;
};
void change(struct book *p,char str[10],int money1)//修改书的价格
{
int i;
for(i=0;i<N;i++)
{
if(strcmp((p+i)->name,str)==0)
{
printf("修改前的价格 书号:%s 书名:%s 价格: %d\n",(p+i)->num,(p+i)->name,(p+i)->money);
(p+i)->money=money1;
printf("修改后的价格 书号:%s 书名:%s 价格: %d\n",(p+i)->num,(p+i)->name,(p+i)->money);
}
}
printf("修改成功!\n");
}
//9432
void findb(struct book *p,char str[10])//查找书
{
int i;
for(i=0;i<N;i++)
{
if(strcmp((p+i)->name,str)==0)
{
printf("书号:%s 书名:%s 价格: %d\n",(p+i)->num,(p+i)->name,(p+i)->money);
}
}
}
int main()
{
struct book bo[N];
int i = 0;
do
{
printf("录入第%d本中......\n",i+1);
printf("书号:");
scanf("%s",&bo[i].num);
printf("书名:");
scanf("%s",&bo[i].name);
printf("价格:");
scanf("%d",&bo[i].money);
//printf("*书号:%s 书名:%s 价格: %d\n",bo[i].num,bo[i].name,bo[i].money);
printf("\n");
i++;
}while(i<N);
printf("录入完成\n");
do
{
printf("按“1”修改书的价格\n");
printf("按“2”查找书的信息\n");
printf("按“3”输出全部书本信息\n");
printf("按“4”退出系统\n");
int choose;
scanf("%d",&choose);
switch(choose)
{
case 1:{
char name[10];
printf("输入书名:");
scanf("%s",name);
int money1;
printf("输入价格:");
scanf("%d",&money1);
change(bo,name,money1);
break;
}
case 2:
{
char name[10];
printf("输入书名:");
scanf("%s",name);
findb(bo,name);
break;
}
case 3:
{
for(int j=0;j<N;j++)
{
printf("*书号:%s 书名:%s 价格: %d\n",bo[j].num,bo[j].name,bo[j].money);
}
printf("\n");
break;
}
case 4:
{
exit(0);
}
}
}while(true);
return 0;
}
把他变成java的
参考:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class 保存图书信息 {
public static void main(String[] args) {
Books b1 = new Books("JAVA",99);
Books b2 = new Books("JSP",78);
Books b3 = new Books("C++",82);
Books b4 = new Books("MYSQL",68);
Books arr[] = {b1,b2,b3,b4};
保存图书信息 bookInfo = new 保存图书信息();
bookInfo.writeToFile(arr);
bookInfo.readObject();
}
void writeToFile(Books[] b) {
try {
File file = new File("books.dat");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(b);
oos.close();
}catch(Exception e) {
e.printStackTrace();
}
}
void readObject() {
try {
File file = new File("books.dat");
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
Books[] arr = (Books[])ois.readObject();
for(Books book :arr) {
System.out.println(book);
}
ois.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
class Books implements Serializable{
private String bookName;
private float price;
public Books() {}
public Books(String bookName,float price) {
this.bookName = bookName;
this.price = price;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
@Override
public String toString() {
return "书名:"+bookName+",价格:" + price;
}
}
public class book{
private String num;
private String name;
private int money;
}
我可以的,采纳后,发给你!