📄 图书管理.c
字号:
if(strcmp(book1.getbookname(),bookName1)==0)
{
cout<<book1.book1num<<endl;
book1.book1num--;
if (book1.book1num==0)
{ strcpy(book1.getstate(),"借出");
}
if (book1.book1num<0)//zj
break;//zj
a = true;//zj
cout<<" 借书成功 "<<endl;
int pos=(-1)*sizeof(book1);
file.seekp(pos,ios::cur);//zj
file.write((char *)&book1,sizeof(book1));
file.close();
cout<<"*************书籍的信息**********"<<endl;
cout<<endl;
book1.getbookinfo();
system("pause");
system("cls");
break;
}
}
if(!a)
{
cout<<"此书已借出或还未入库"<<endl;
system("pause");
system("cls");
}
}
};
class adminstrator
{
private:
user user2;
Book book2;
public:
void displaybook() //显示图书信息
{
fstream file(filename,ios::in|ios::binary);
if(!file)
{
cout<<"打开失败!!!"<<endl;
return;
}
cout.width(7);
cout<<"书号";
cout.width(21);
cout<<"书名";
cout.width(15);
cout<<"作者";
cout.width(15);
cout<<"种类";
cout.width(5);
cout<<"数量";
cout.width(5);
cout<<"状态"<<endl;
while(file.read((char *)&book2,sizeof(book2)))
{
book2.getbookinfo();
}
file.close();
system("pause");
system("cls");
return;
}
void addbook() //增加图书
{
ofstream file(filename,ios::out|ios::app|ios::binary);
if(!file)
{
cout<<"文件打开失败!!"<<endl;
return;
}
book2.setbookinfo();
file.write((char *)&book2,sizeof(book2));
file.close();
system("pause");
system("cls");
return ;
}
void deletebook() //删除图书
{
}
void madifybook() //修改图书信息
{
bool a=false;
char id1[16];
cout<<"请输入要修改的书的编号 :";
fflush(stdin);
cin>>id1;
system("cls");
fstream file(filename,ios::binary|ios::in|ios::out);
if(!file)
{
cout<<"文件打开失败!!"<<endl;
return;
}
while(file.read((char*)&book2,sizeof(book2)))
{
if(strcmp(book2.getid(),id1)==0)
{
int pos = file.tellg();
a=true;
cout<<" ***************原来的书籍信息*************** "<<endl;
cout.width(7);
cout<<"书号";
cout.width(21);
cout<<"书名";
cout.width(15);
cout<<"作者";
cout.width(15);
cout<<"种类";
cout.width(5);
cout<<"数量";
cout.width(5);
cout<<"状态"<<endl;
book2.getbookinfo();
cout<<endl;
cout<<"请重新输入图书信息: "<<endl;
book2.setbookinfo();
cout<<" 修改成功"<<endl;
system("pause");
system("cls");
file.seekg(pos-sizeof(book2),ios::beg);
file.write((char *)&book2,sizeof(book2));
file.close();
break;
}
}
}
void deleteuser() //删除用户
{
}
void displayuser() //显示所有用户
{
fstream file(student,ios::in|ios::binary);
if(!file)
{
cout<<"文件打开失败!!"<<endl;
return;
}
while(file.read((char *)&user2,sizeof(user2)))
{
user2.getdetail();
}
file.close();
return;
}
void findbook() //查找图书
{
bool c = false;
char bookName1[20];
cout<<endl;
cout<<"输入你要查询的书名 :";
cin.ignore();
cin>>bookName1;
fstream file(filename,ios::binary|ios::in);
while(file.read((char*)&book2,sizeof(book2)))
{
if(strcmp(book2.getbookname(),bookName1)==0)
{
c=true;
cout<<endl;
cout.width(7);
cout<<"书号";
cout.width(21);
cout<<"书名";
cout.width(15);
cout<<"作者";
cout.width(15);
cout<<"种类";
cout.width(5);
cout<<"数量";
cout.width(5);
cout<<"状态"<<endl;
book2.getbookinfo();
system("pause");
system("cls");
}
}
if(!c)
cout<<"对不起,查无此书!!"<<endl;
}
};
class usermanager
{
private:user user3;
adminstrator book3;
nomaluser book4;
public:
void register1() //注册
{ fstream file(student,ios::out|ios::app|ios::binary);
if(!file)
{
cout<<"打开文件失败!!"<<endl;
return;
}
cin.ignore();//zj
cin.clear();//zj
user3.setdetail();
file.write((char*)&user3,sizeof(user3));
file.close();
return;
}
void login() //登陆
{
fstream file(student,ios::in|ios::binary);//zj
if(!file)
{
cout<<"文件打开失败!!!!"<<endl;
return;
}
cin.clear();//zj
cin.ignore();//zj
repit: user user4;//zj
user4.setuserinfo();
bool right=false;
// file.write((char*)&user1,sizeof(user1));
// file.close();
while(file.read((char *)&user3,sizeof(user3)))
{
if(strcmp(user3.username(),user4.username())==0&&strcmp(user3.studentpwd(),user4.studentpwd())==0)//zj
{ right=true;
//cout<<"光临!!"<<endl;
if(strcmp(user4.username(),"zj")==0&&strcmp(user4.studentpwd(),"123")==0)
{
cout<<"\n\n\t\t\t∵ 恭喜! ∵ \n\n\t\t\t登录成功! ! \n\n\n"<<endl;
cout<<"欢迎管理员进入!!"<<endl;
_sleep(3000);
system("cls");
bool bIsContinue=true;
char choice;
while(bIsContinue)
{
cout<<"1.查找图书"<<endl;
cout<<"2.增加图书"<<endl;
cout<<"3.修改图书"<<endl;
cout<<"4.删除图书"<<endl;
cout<<"5.显示所有图书信息"<<endl;
cout<<"6.删除用户"<<endl;
cout<<"7.显示所有用户信息"<<endl;
cout<<"8.退出"<<endl;
cin>>choice;
switch(choice)
{
case '1':
book3.findbook();
break;
case '2':
book3.addbook();
break;
case '3':
book3.madifybook();
break;
case '4':
book3.deletebook();
break;
case '5':
book3.displaybook();
break;
case '6':
book3.deleteuser();
break;
case '7':
book3.displayuser();
break;
case '8':
bIsContinue=false;
break;
default:
cout<<"您的输入有误,请重新输入"<<endl;
} //zj
}
}
else
{ cout<<"\n\n\t\t\t∵ 恭喜! ∵ \n\n\t\t\t登录成功! ! \n\n\n"<<endl;
cout<<"欢迎光临!!"<<endl;
_sleep(1000);
system("cls");
char choice1='1';
while(choice1)
{
cout<<"1.显示所有图书信息"<<endl;
cout<<"2.查找图书"<<endl;
cout<<"3.借书图书"<<endl;
cout<<"4.还书图书"<<endl;
cout<<"5.修改用户信息"<<endl;
cout<<"6.显示用户信息"<<endl;
cout<<"7.退出"<<endl;
cin>>choice1;
switch(choice1)
{
case '1':
book4.displaybook();
break;
case '2':
book4.findbook();
break;
case '3':
book4.lendbook();
break;
case '4':
book4.givebackbook();
break;
case '5':
book4.madifyuserinfo();
break;
case '6':
book4.displayuserinfo();
break;
case '7':exit(0);
default:
cout<<"您的输入有误,请重新输入"<<endl;
}
}// break; //zj
}
}
}
if(!right)//这里还有些问题你自己解决
{
cout<<user3.username()<<endl;
cout<<user4.username()<<endl;
// cout<<user1.studentpwd()<<endl;
cout<<"\n\t对不起!!您输入的用户名或密码错误!\n\t请重新输入!!\n";
}
file.close();
return;
}
};
int main()
{
system("color d");
system("cls");
char choice; //zj
usermanager user1;
while(choice!=3)//zj
{
cout<<"1* 新用户注册"<<endl;
cout<<" 2* 登陆"<<endl;
cout<<" 3* 退出 "<<endl;
cout<<"请选择:(1~3)"<<endl;
cin>>choice;
switch(choice)
{
case '1':
user1.register1();
break;
case '2':
user1.login();
break;
case '3':
return 0;
default:
cout<<"您输入错误,请重新输入!!"<<endl;
break;
}
} //zj
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -