#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>
class Book
{ private:
char booknum[5];
char bookname[41];
char author[21];
char id[16];
char state[10];
char bookkind[26];
public:int book1num;
Book()
{
strcpy(bookname,"null");
strcpy(author,"null");
strcpy(id,"null");
strcpy(state,"null");
strcpy(bookkind,"null");
}
void setbookinfo()
{ cin.ignore();
cout<<"请输入书名:"<<endl;
cin.getline(bookname,40);
cout<<"请输入书号:"<<endl;
cin.getline(id,25);
cout<<"请输入书的作者:"<<endl;
cin.getline(author,20);
cout<<"请输入书的数量:"<<endl;
cin>>book1num;
cin.clear();
cin.ignore();
cout<<"请输入书的种类:"<<endl;
cin.getline(bookkind,20);
cout<<"请输入书的状态:(在馆/借出)"<<endl;
cin.getline(state,10);
}
void getbookinfo()
{
cout.width(5);
cout<<id;
cout.width(21);
cout<<bookname;
cout.width(15);
cout<<author;
cout.width(15);
cout<<bookkind;
cout.width(5);
cout<<book1num;
cout.width(5);
cout<<state<<endl;
}
char *getid()
{return id;}
char *getbookname()
{return bookname;}
char *getkind()
{return bookkind;}
char *getauthor()
{return author;}
char *getstate()
{return state;}
};
class user
{
private:
char studentid[15];
char name[21];
char age[5];
char phonenum[15];
char cclass[10];
char password[21];
public:
void setdetail()
{
cout<<"请输入学号:";
cin.getline(studentid,24);
if(strlen(studentid)>14)
{
cout<<"太长,前14字符个有效\n";
studentid[14]='\0';
}
cout<<"请输入用户名:";
cin.getline(name,31);
if(strlen(name)>20)
{
cout<<"太长,前20字符个有效\n";
name[20]='\0';
}
cout<<"请输入密码:";
cin.getline(password,31);
if(strlen(password)>20)
{
cout<<"太长,前20字符个有效\n";
password[20]='\0';
}
cin.clear();
cin.ignore();
}
void getdetail()
{ cout.width(17);
cout<<"学号";
cout.width(17);
cout<<studentid;
cout.width(21);
cout<<"用户名";
cout.width(21);
cout<<name;
cout<<"密码";
cout.width(10);
cout<<password<<endl;
}
void setuserinfo()
{
cout<<"\n\n\t\t请输入您的用户名: ";
cin.getline(name,30);
if(strlen(name)>20)
{
cout<<"太长,前20字符个有效\n";
name[20]='\0';
}
cout<<" \n\n\t\t 请输入您的密码: ";
int i;
for(i=0; i <29; i++)
{
password[i]=getch();
if((int)password[i]==13) break;
putchar('*');
}
password[i]='\0';cout<<endl;
if(strlen(password)>20)
{
cout<<"太长,前20字符个有效\n";
password[20]='\0';
}
}
void getuseinfo()
{
cout.width(21);
cout<<name;
cout.width(21);
cout<<password;
}
char *id()
{ return studentid; }
char *username()
{return name;
}
char *studentpwd()
{return password;}
};
class nomaluser
{ private:
Book book1;
user user1;
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 *)&book1,sizeof(book1)))
{
book1.getbookinfo();
}
file.close();
system("pause");
system("cls");
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*)&book1,sizeof(book1)))
{
if(strcmp(book1.getbookname(),bookName1)==0)
{
c=true;
cout<<endl;
book1.getbookinfo();
system("pause");
system("cls");
}
}
file.close();
if(!c)
cout<<"对不起,查无此书!!"<<endl;
system("pause");
system("cls");
return;
}
void madifyuserinfo() //修改图书信息
{
bool a=false;
user user2;
cin.ignore();cin.clear();
user2.setuserinfo();
system("cls");
fstream file(student,ios::binary|ios::in|ios::out);
if(!file)
{
cout<<"文件打开失败!!"<<endl;
return;
}
while(file.read((char*)&user1,sizeof(user1)))
{
if(strcmp(user1.username(),user2.username())==0&&strcmp(user1.studentpwd(),user2.studentpwd())==0)
{
int pos = file.tellg();
a=true;
cout<<" ***************您原来的信息如下*************** "<<endl;
user1.getdetail();
cout<<endl;
cout<<"请重新输入您的信息: "<<endl;
cin.clear();
user1.setdetail();
cout<<" 修改成功"<<endl;
system("pause");
system("cls");
file.seekg(pos-sizeof(user1),ios::beg);
file.write((char *)&user1,sizeof(user1));
file.close();
break;
}
}
}
void displayuserinfo() //显示本人用户信息
{
图书管理系统
需积分: 0 40 浏览量
2008-07-12
16:58:07
上传
评论
收藏 893KB RAR 举报
happyjianjian
- 粉丝: 3
- 资源: 17
最新资源
- ARM Limited 发布的《RealView 编译工具 4.0 版编译器参考指南》
- 《2024音视频技术发展报告》,由LiveVideoStack出品,旨在深入了解流媒体和RTC(实时通信技术)的从业情情况
- 2023-04-06-项目笔记 - 第一百二十五阶段 - 4.4.2.123全局变量的作用域-123 -2024.05.06
- 多维因素与学生辍学风险预测数据集
- MATLAB编程高效实战:涵盖核心数学、科学计算、数据可视化及算法应用,助力工程师与研究人员的必备函数代码集
- halcon 3D图像重建
- 现有student.txt和student-score.txt 将两个文件上传到hdfs上 使用Map/Reduce框架完成下面
- 测试数据如下 1)文件一:data01.txt,内容:Beijing is beautiful I love Beijing
- 1_notepad_share_encrypt.hdoc..bin
- 基于混合遗传算法的三维装箱问题分析-数学建模
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0