C语言编程图书馆管理系统.doc
- 文档编号:230229
- 上传时间:2022-10-07
- 格式:DOC
- 页数:13
- 大小:39.50KB
C语言编程图书馆管理系统.doc
《C语言编程图书馆管理系统.doc》由会员分享,可在线阅读,更多相关《C语言编程图书馆管理系统.doc(13页珍藏版)》请在冰豆网上搜索。
#include
#include
#include
#include
usingnamespacestd;
constintMax1=100;//最大学生数
constintMax2=100;//最大图书量
constintMax3=100;//每个学生最多借2本书
classstudent//学生类,实现对学生的信息的描述
{
private:
inttb;//删除标记1:
已删0:
未删
intno;//学号
charname[10];//学生姓名
charyuanxi[15];//院系
intex;
intborbook[Max3];//所借图书
public:
student(){}
char*get_name(){returnname;}//获取姓名
char*get_yuanxi(){returnyuanxi;}//获取院系
intget_tb(){returntb;}//获取删除标记
intget_no(){returnno;}//获取学号
intgetex(){returnex;}
voidset_name(charna[])//设置学生姓名
{
strcpy(name,na);
}
voidset_yuan(charyu[])//设置学生所在院系
{
strcpy(yuanxi,yu);
}
voidset_no(intn)//设置学号
{
no=n;
}
voiddelbook(){tb=1;}//设置删除标记1:
已删0:
未删
voidaddstudent(intn,intex1,char*na,char*yu)//增加学生信息
{
tb=0;
no=n;
ex=ex1;
strcpy(name,na);
strcpy(yuanxi,yu);
for(inti=0;i borbook[i]=0; } voidborrowbook(intbookid)//借书操作 { for(inti=0;i { if(borbook[i]==0) { borbook[i]=bookid; return; } } } intretbook(intbookid)//还书操作 { for(inti=0;i { if(borbook[i]==bookid) { borbook[i]=0; return1; } } return0; } voidout()//输出学生信息 { cout<<"学号: "< "< "< "< ["; for(inti=0;i if(borbook[i]! =0) cout< cout<<"]"< } }; //学生类库,用来建立学生的个人资料 classstudentbase { private: inttop;//学生记录指针 studentread[Max1];//学生记录 public: studentbase()//构造函数,将student.txt读到read[]中 { students; top=-1; fstreamfile("student.txt",ios: : in);//打开一个输入文件 while (1) { file.read((char*)&s,sizeof(s)); if(! file)break; top++; read[top]=s; } file.close();//关闭student.txt } voidclear()//删除所有学生信息 { top=-1; } intaddstudent(intn,intex1,char*na,char*yu)//添加学生时先查找此学生信息是否存在 { student*p=query(n); if(p==NULL) { top++; read[top].addstudent(n,ex1,na,yu); return1; } return0; } student*query(intkid)//按编号查找学生 { for(inti=0;i<=top;i++) if(read[i].get_no()==kid&& read[i].get_tb()==0) { return&read[i]; } returnNULL; } voiddisp()//输出所有学生信息 { for(inti=0;i<=top;i++) if(read[i].get_tb()==0) read[i].out(); } voidstudentdata();//学生库维护 ~studentbase()//析构函数,将read[]写到student.txt文件中 { fstreamfile("student.txt",ios: : out); for(inti=0;i<=top;i++) if(read[i].get_tb()==0) file.write((char*)&read[i],sizeof(read[i])); file.close(); } }; voidstudentbase: : studentdata() { charchoice; intex2; charrname[20]; charryuan[20]; intkid; student*r; while(choice! ='0') { cout<<"\n\n\t\t\t学生资料库\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出"< cin>>choice; switch(choice) { case'1': cout<<"输入学号: "; cin>>kid; cout<<"输入最大借书量: "; cin>>ex2; cout<<"输入学生姓名: "; cin>>rname; cout<<"输入学生所在院系: "; cin>>ryuan; addstudent(kid,ex2,rname,ryuan); break; case'2': cout<<"输入学号: "; cin>>kid; r=query(kid); if(r==NULL) { cout<<"没有该学生信息! "< break; } cout<<"输入新的学生姓名: "; cin>>rname; r->set_name(rname); cout<<"输入新的学生院系: "; cin>>ryuan; r->set_yuan(ryuan); break; case'3': cout<<"输入学号: "; cin>>kid; r=query(kid); if(r==NULL) { cout<<"没有该学生信息! "< break; } r->delbook(); break; case'4': cout<<"输入学号: "; cin>>kid; r=query(kid); if(r==NULL) { cout<<"没有该学生信息! "< break; } r->out(); break; case'5': disp(); break; case'6': clear(); break; default: cout<<"输入错误! 请重新输入: ";break; } } } //图书类,实现对图书的描述,图书的编号,书名,作者,出版社,数量,借出,还入等 classBook { private: inttb;//删除标记1: 已删0: 未删 intno;//图书编号 charname[20];//书名 charzuozhe[20];//作者 charchubanshe[30];//出版社 intnumber;//图书数量 intonshelf;//是否再架1: 再架2: 已借 public: Book(){} char*getname(){returnname;}//获取书名 intgetno(){returnno;}//获取图书编号 char*getzuozhe(){returnzuozhe;}//获取作者 char*getchubanshe(){returnchubanshe;}//获取出版社 intgetnumber(){returnnumber;}//获取图书数量 intgettb(){returntb;}//获取删除标记 voidsetname(charna
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 图书馆 管理 系统