当前位置:编程学习 > C/C++ >>

C++编程求解

3.设计一个管理图书的简单程序,提供的基本功能包括:可连续将新书存入文件“book.dat”中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件“book.dat”中同书名的所有书显示出来。为简单起见,描述一本书的信息包括:书号,书名,出版社和作者。

追问:这是是不是有点太简略了点啊,能不能详细点啊?!
答案:
#include <iostream>
#include <fstream>
using namespace std;
void fun1()
{int a;
char shuming[20],zuozhe[15],chubanshe[20];
ofstream outfile1("f1.dat");
cout<<"输入书号、书名、作者、出版社:"<<endl;
cin>>a>>shuming>>zuozhe>>chubanshe;
outfile1<<a<<" "<<shuming<<" "<<zuozhe<<" "<<chubanshe<<endl<<endl;
outfile1.close();
}
void fun2()
{ifstream infile("f1.dat");
ofstream outfile("f2.dat",ios::app);
int a[100];char shuming[100][20],zuozhe[100][15],chubanshe[100][20];
static int i=0;
i++;
infile>>a[i]>>shuming[i]>>zuozhe[i]>>chubanshe[i];
outfile<<a[i]<<" "<<shuming[i]<<" "<<zuozhe[i]<<" "<<chubanshe[i]<<endl;
infile.close();
outfile.close();
}
void fun3()
{char sm[20];
cout<<"输入书名:"<<endl;
cin>>sm;
int a[100];char shuming[100][20],zuozhe[100][15],chubanshe[100][20];
ifstream infile("f2.dat");
for(int i=0;i<100;i++){if(a[i]>0)
infile>>a[i]>>shuming[i]>>zuozhe[i]>>chubanshe[i];
int k,j=0;
for(i=0;i<100;i++) { if(a[i]>0)
{for(k=0;k<20;k++){
if(sm[k]==shuming[i][k])j=1;
else j=0;}
if(j==1){
cout<<"书名:"<<shuming[i]<<endl;
cout<<" 书号:"<<a[i]<<endl;
cout<<" 作者:"<<zuozhe[i]<<endl;
cout<<" 出版社:"<<chubanshe[i]<<endl;}}
} }infile.close();
}
int main()
{
int a;
cout<<"你想输入新书的信息还是查找书?输入新书的信息请输入1,查找请输入2,结束输入3"<<endl;
cin>>a;
while(a!=3){
if(a==1){
fun1();
fun2();
cout<<"按上述方式继续。";
cin>>a;}
if(a==2){
fun3();
cout<<"按上述方式继续。";
cin>>a;}
}
return 0;
}
struct Book
{
int number;
string name;
......
}
结构体定义!输入数据保存,提取文件(a+方式打开)追加数据,保存。我觉得可能没人给你贴出代码的!  s是不是作业?

上一个:求助c++编程
下一个:C++编程问题~

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,