- 时间:2021-02-11 21:10 编辑:黄俊群 来源:蚂蚁资源 阅读:111
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于图书管理系统源码(winform图书馆管理系统)的相关内容,详细讲解求图书馆管理系统C++源代码,用C++编写图书管理系统(源代码),急求用C语言编写的图书管理系统源代码等,希望可以帮助到您。
求图书馆管理系统C++源代码,#include
#include #include 使用命名空间std; void mainmenu(); void management_book(); void Infut_biter(); void new_book(); void seek_book(); void boldr_manage(); void reburn_book(); void return_book(); void输出_message(); void exit_system(); int u,v = 3,k = 0;结构书{CHAR名称[20]; int booknumber; int num_ld;}书[1000]; struct读者{char名称[20]; int准备[呃; int卡;读者[3]; void mainmenu(){int num_choice1,flag = 1;系统(“彩色e”); for(; k > num_choice1; switch(num_choice1){case 1:manage_book(); break; cas 2:borrow_manage(); break; case 3:suppt_message(); break; casse 4:exit_system();旗帜= 0;中断;默认值:标志= 0; cout <=0;k++){input_Book();input_Reader();}while(flag==1){system("cls");cout<<"\t\t\t◆◆◆◆◆主菜单◆◆◆◆◆"<> num_choice2;切换(num_choice2){case 1:flag1 = 2; new_boOk();打破;案例2:FLAG1 = 2; seek_book休息;案例3:Mainmenu();默认值:Flag1 = 1; cout <<"输入有误!!"<>书[i]。名称; cout <<"输入有误!"<>书[i] .booknumber; cout <<"书号:"<>书[i] .num_all; cout <<"库存量:"<>书[i] .num_present;}}} void new_book(){system(“cls”); in j; char newbook_name [20]; cout <<"现存量:"<> newbook_name; for(j = 0; j <<"请输入新书书名:"<>书[v] .booknumber; strcpy(书[v] .name,newbook_name);书[v] .num_all = 1;书[v] .num_present = 1;否则cout <1000;j++){if(strcmp(newbook_name,book[j].name)==0){book[j].num_all++;book[j].num_present++;break;}} if(j==1000){cout<<"请为此新书编号:"<> booknumber; for(k = 0; k <<"已有此书,库存量加一"<> num_choice3;切换(num_choice3){case 1:flag = 2; borrow_book();休息;案例2:flag = 2; return_book();休息; CAS 3:MainMenu();默认:标志= 1; cout <1000;k++){if(book[k].booknumber==booknumber){cout<<"书号:"<>读者[m] .name; cout <<"输入有误!!"<>读者[m] .readernumber;读者[m] .card = 0;}} void boRORD_BOOK()}} void borrow_book(){system(“cls“); char Reader_name [20]; int n,book_number; cout <<"编号:"<> reader_name; for(n = 0; n <<"请输入读者姓名:"<> book_number; for(n = 0; n <3;n++){if(strcmp(reader_name,reader[n].name)==0){if(reader[n].card!=0){cout<<"已借书,不能再借,请按任意键返回"<> reader_name; for( j = 0; j > book_number; for(j = 0; j <3; j ++){if(strcmp(reader_name,reader [j] .name)== 0){if(book_number ==读者[j] .card){reader [j] .card = 0; for(j = 0; j 用C++编写图书管理系统(源代码),这估计是由您所提供的每一点完成的。我会给你一个参考,已经实现了基本功能,它已在VC6上编译:#include #include #include #include //输入/输出文件流使用命名空间std; const int maxr = 100; //大多数读者const int maxb = 100; //大多数本书Const Int Maxbor = 5; //每个读者都将借用五本书//阅读器,实现读者信息类阅读器的描述{私有:int标签; //删除标签1:删除0:不符合INT NO; //阅读器号char名[10]; //读者名称int borbook [maxbor]; //预订公共:Reader(){} char * getName(){返回名称;} //获取name int gettag(){return标记;} //获取删除标记int getno(){return no;} / /让读者麻木er void setName(char na [])//设置名称{结构(名称,na); void delbook(){tag = 1;} // set deleteag 1:删除0:无法删除void addreader int n ,char * na)//添加读者{tag = 0; no = n; Strcpy(名称,NA); for(int i = 0; i >选择;切换(选择){案例'1':cout << "输入读者编号:"; cin >>阅读器; cout << "输入读者姓名:"; cin >> rname; addreader(ReaderID,Rname);休息;案例2 ':cout << "输入读者编号:"; cin >>阅读器; r =查询(readerID);如果(r == null){cout << " 该读者不存在 "<> rname; r-> setname(rname);休息;案例'3':cout << " 输入读者编号:"; cin > >阅读器; R =查询(ReaderID);如果(r == null){cout <<" 该读者不存在" << endl; break; } r-> delbook();休息;案例'4':cout << "读入读者编号:"; cin >>阅读器; r =查询(ReaderID);如果(r = = null){cout <<"该读者不存在"<< endl; break; } r-> disp();休息;案例'5':disp();休息;案例'6':clear();休息;休息;休息;默认:cout <<"输入错误,请从新输入:";break; } } } //图书类,实现对图书的描述,图书的编号,书名,借出,还入等 class Book { private: int tag;//删除标记 1:已删 0:未删 int no;//图书编号 char name[20];//书名 int onshelf;//是否再架 1:再架 2:已借 public: Book(){} char *getname() { return name; }//获取姓名 int getno(){ return no; }//获取图书编号 int gettag(){ return tag; }//获取删除标记 void setname(char na[])//设置书名 { strcpy(name,na); } void delbook(){ tag=1;}//删除图书 void addbook(int n,char *na)//增加图书 { tag=0; no=n; strcpy(name,na); onshelf=1; } int borrowbook()//借书操作 { if (onshelf==1) { onshelf=0; return 1; } return 0; } void retbook()//还书操作 { onshelf=1; } void disp()//输出图书 { cout << setw(6) << no << setw(18) << name << setw(10) <<(onshelf==1? "在架":"已借") <>选择;切换(选择) {案例'1':cout << "输入图书编号:"<>书签; cout << "输入图书书名:"<> bname;附加册(Bookid,Bname);打破;案例'2':COUT << "输入图书编号:"<>书签; b =查询(Bookid); if(b == null){cout << " 该图书不存在 "<> bname; b-> setname(bname);打破;案例'3':cout <<" 读入图书编号:"<>书签; b =查询(Bookid); if(b == null){cout <<" 该图书不存在" << endl; break; } b-> delbook();打破;案例'4':cout << " 读入图书编号:"<>书签; b =查询(Bookid); if(b == null){cout <<" 该图书不存在"<< endl; break; } b-> disp();打破;案例'5':DISP();打破;案例'6':clear();打破; defaut:cout <<"输入错误,请从新输入:"; } } } //main() 函数的实现,程序的主界面的引导 void main() { char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!='0') { cout <>选择;切换(选择){案例'1':cout <<" 借书 读者编号:"; cin >>阅读器; cout <<" 图书编号: "; cin >>书签; r = readerdb.query(ReaderID); //查找按号(null == r){cout <<" 不存在该读者,不能借书"<< endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能借书"<< endl; break; } if (b->借款()== 0){cout << " 该图书已借出,不能借书"<< endl; break; } r->借款(b-> getno());打破;案例'2':cout <<"还书\n 读者编号:"; cin >>阅读器; cout << " 图书编号:"; cin >>书签; r = readerdb.query(r == null){cout <<" 不存在该读者,不能还书" << endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能还书" < Retby(); R-> Retbook(b-> getno());打破;加利福尼亚州SE'3':BookdB.BookData();打破;案例'4':ReaderDB.ReaderData();打破;默认值:COUT <<“输入错误,请从新输入:”;}}}
急求用C语言编写的图书管理系统源代码,#include #include #include #include #include #define stack_init_size 10 #define确定1 #define true 1 #define false 0 #define错误0structus / *定义学生类型,用于存储借用的书籍* / {int carnum; char lendbook [10];}学生[1000]; STRACH雇用/ *定义员工类型* / {INT雇用; char elecommename [15]; int就业; CHAR雇员[2]; char雇员[10]; long int urgeytage;雇佣[50];结构书/ *定义书籍类型* / {int booknum; Char BookName [10]; Char Bookcreat [10]; int turefalse; / *用于借用一本书和书本模块来确定一本书是否从条件* /}书中借用了[1000];结构类型* / {int carnum; Char Studient [10]; int studentclass;}车[100]; Huanbook()/ *返回书籍功能ion * / {file * fp,* fp2; / *定义两个文件指针,FP2用于设置临时文件,防止数据损坏* / int i,n; int carnum; Char Lendbook [10]; printf(“请输入您的卡号\ n”); scanf(“%d”,&carnum); fp = fopen(“car.txt”,“r”); / *读取卡号码record * / for(i = 0;欺诈(&car [i],sizeof(struct car),1,fp)!= 0; i ++)/ *对于循环判断卡号而存在* / {if(汽车[i]。carnum == carnum)/ *卡号存在,转到下一个循环* / {n = i; fclose(FP); printf(“请输入您想要的书的名称”); Scanf(“%s”,lendbook; fp = fopen(“recort.txt”,“r”); for(i = 0;欺诈(&stuite [i],sizeof(struct student),1,fp)!= 0; i ++)/ *判断是否借用输入书* / {if(strcmp(starts [i]。Lendbook,Lendbook == 0)/ *借用书,输入下一个循环,否则错误显示* / {fcclose(fp); fp = fopen(“Record.txt”,“R”); fp2 = fopen(“bookl.txt”,“w”); for(i = 0;欺诈(和学生[i],sizeof(struct学生),1,fp)!= 0; i ++){if(strcmp(stractcmp(strust [i] .lendbook,lendbook == 0){继续; / *删除删除书的借用记录* /} fwrite(&stuitent [i],sizeof(struct stuite),1,fp2); / *写下原始书籍* /} fclose(fp)的记录fclose(fp2); fp = fopen(“recort.txt”,“w”); fp2 = fopen(“bookl.txt”,“r”);对于(i = 0;欺诈(和学生[i], sizeof(struct stuite),1,fp2)!= 0; i ++){fwrite(&stuitent [i],sizeof(struct stuite),1,fp); / *写下书记记录信息回* /} fclose (FP); FCLOSE(FP2); FOPEN(“BOAKL.TXT”,“w“); / *临时文件* / fclose(fp2)的记录; fp = fopen(”book.txt“,”r“); fp2 = fopen(”bookl.txt“,”w“); for( i = 0;欺诈(和书写[i],sizeof(struct book),1,fp)!= 0; i ++)/ *将书的纪录写入临时文件以防止它从修改销毁的信息被销毁的上一记录* / {if(i ===){book [i] .turefalse = 1; fwrite(&book,1,fp2); / *还将预订原始状态设置为无人借来的* /继续;} fwrite(和书籍[i],sizeof(结构书),1,fp2); fclose(fp); fclose(fp2); fp = fopen(“book.txt”,“w”); fp2 = fopen(“bookl.txt” ,“r”); for(i = 0;欺诈(和书写[i],sizeof(struct book),1,fp2)!= 0; i ++){fwrite(和书籍[i],sizefof(struct书籍,1,FP); / *写下临时文件* /} fclose(FP); FCLOSE(FP2); FOPEN(“Bookl.txt“,”w“); / *清临时文件* / fclose(fp2); printf(”另一本书后,按任意键返回\ n“); getch();返回1;}} printf(”您没有借用这本书,任何返回\ n的键); / *错误提示* / fclose(fp)getch();返回0;}}} printf(“系统没有这样的卡片,以及管理员联系人,按任意键返回\ n“); / *错误提示* / fclose(fp); getch(); findbook();} findbook(){file * fp; char bookname [10]; int ture,i; fp = fopen(“book.txt”,“r”); printf(“请输入书名\ n”要查找); scanf(“%s”,bookname); for(i = 0;欺诈(和书籍[i],sizeof(结构书),1,fp)!= 0; i ++){if(strcmp(bookname,book [i] .bookname)== 0){if(书[i] .turefalse = = 1){printf(“本书详细信息是:%d%s。现在没有人借用\n按任何键返回\ n“,书[i] .booknum,书[i] .bookname,书[i] .bookcreat);} else {printf(”本书已经借来\ n“); fclose( fp);返回0; fclose(fp));返回false;}}} printf(“没有您想要查询的书籍\ n”; fclose(FP);返回false;} findbook1(){file * fp; Char Bookcreat [10]; int ture,我; fp = fopen(“book.txt”,“r”); Printf(“请输入作者名称\ n”您要查找“); scanf(”%s“,bookcreat);对于(i = 0;欺诈(和书写[i],sizeof(struct book),1, fp)!= 0; i ++){if(strcreat,书[i] .bookcreat)== 0){if(书[i] .turefalse == 1){printf(“本书详细信息:%d %s%s现在没有人借用\ n按任何键返回\ n“,书[i] .booknum,书[i] .bookname,书[i] .bookcreat);} else {printf(”本书有借来了d \ n“); fclose(fp);返回0; fclose(fp);返回false;}} printf(”否您要查询书籍\ n“); fclose(fp);返回false;} lendcount( ){file * fp; int i,n = 0; fp = fopen(“record.txt”,“r”); for(i = 0;欺诈(&stuitent [i],sizeof(struct学生),1, fp)!= 0; i ++){printf(“卡号:%d书:%s \ n”,stuitent [i] .carnum,学生[i] .lendbook; n = n + 1;} fclose( FP); Printf(“目前总计%d这本书借用了\ n”,n); printf(“按任意键\ n”); getch返回n; chabook(){char char ch5; do {printf( “------------欢迎来到书籍查询系统!---------- --- --- - - - - - - - - - - Printf(”1:<按书名查找> \ n “printf(”2:<按作者查找> \ n“); printf(”0:<返回> \ n“); printf(”请输入0--2,其他输入非法!\ n“); scanf( “%s”,&ch 5);开关(ch5){案例1':findbook(); getch();打破; CAS'2':FindBook1(); getch();打破;案例'0':休息;默认值:printf(“非透视操作\ n”); getch();休息;}}虽然(ch5!='0');返回lendbook(){file * fp,* fp2; int i,n; int carnum; printf(“请输入您的卡号\ n”); scanf(“%d”,&carnum); fp = fopen“car.txt”,“r”); for(i = 0;欺诈(&car),1,fp)! = 0; i ++){if(car [i] .carnum = carnum){n = i; fclose(FP); printf(“请输入您想要借用的书的名称”); Scanf(“%s”,student [n] .lendbook); fp = fopen(“书.txt”,“r”); for(i = 0;欺诈(和书写[i],sizeof(struct book),1,fp)!= 0; i ++){if(strcmp(book [i] .bookname,student [n] .lendbook == 0){if(书[i] .turefalse == 0){printf(“抱歉,本书借用,请借用其他书籍s \ n“); fclose(fp); getch();返回;} else fclose(fp); fp = fopen(”唱片.txt“,”a +“);学生[n] .carnum = carnum; fwrite (&学生[n],sizeof(strunt学生),1,fp); fclose(fp); fp = fopen(“book.txt”,“r”); fp2 = fopen(“bookl.txt”,“w “for(i = 0;欺诈(和书[i],sizeof(struct book),1,fp)!= 0; i ++){if(strcmp(书[i] .bookname,学生[n ] .lendbook)== 0){book [i] .turefalse = 0; fwrite(&book [i],sizeof(struct book),1,fp2);继续; fwrite(和书籍[i],sizef(结构书,1,FP2); FCLOSE(FP); FCLOSE(FP2); FP = FOPEN(“BOOK.TXT”,“W”); FP2 = FOPEN(“BOAKL.TXT”,“R”); for(i = 0;欺诈(&book [i],sizeof(struct book),1,fp2)!= 0; i ++){fwrite(和书写[i],sizeof(struct book),1,fp ); FCLOSE(FP); FCLOSE(FP2); FOPEN(“BOAKL.TXT”,“W”);fclose(FP2); Printf(“借用书完成后借阅,按任意键返回\ n”); getch();返回; printf(“没有这样的书,任何键返回\ n”); fclose(FP); getch();返回;}} Printf(“您的卡号不存在,请申请新卡,按任意键返回\ n”); fclose(FP); getch();} carcount(){file * fp; int i,n = 0; fp = fopen(“car.txt”,“r”); for(i = 0;欺诈(&car),1,fp)! = 0; i ++){printf(“%d zhang卡<卡号:%d 姓名:%s 班级:%d> \ n”,i + 1,汽车[i] .carnum,汽车[i] .sudentname,汽车[i] .sudentclass; n = n + 1; FCLOSE(FP); printf(“当前总共%d book \ n”,n); printf(“按任意键\ n”); getch); delcar(){file * fp,* fp2; INT I; int carnum; Char Kice; fp = fopen(“car.txt”,“r”); fp2 = fopen(“bookl.txt”,“w”); printf(“请enter卡号\ n“要删除); printf(”如果您输入的卡号存在,系统会自动删除信息!如果没有存在,系统没有做任何更改\ n“); scanf “%d”,&carnum);对于(i = 0;欺诈(&car),1,fp)!= 0; i ++){if(car [i] .carnum!= carnum){fwrite(&汽车[i],sizeof(struct car),1,fp2); fclose(fp); fclose(fp2); printf(“你真的想删除卡吗?关于本书的所有信息都无法恢复“y / n”\ n“); scanf(”%s“,&cho);如果(选择=='y'|| kiice =='y'){fp = fopen(”car.txt“,” w“); fp2 = fopen(”bookl.txt“,”r“);对于(i = 0;欺诈(&car [i],sizeof(struct car),1,fp2)!= 0; i ++ ){fwrite(&car [i],sizeof(struct car),1,fp); fclose(fp); fclose(fp2); fp2 = fopen(“Bookl.txt“,”w“); fclose(fp2); printf(”按任意键返回\ n“); getch();返回;返回;} else {printf(”按任意键返回\ n“); getch(); return;}} addcar(){file * fp; int i = 0; fp = fopen(“car.txt”,“a +”); printf(“请输入卡号\ n”); scanf(“%d”,&car [i] .carnum); printf(“请输入学生名称\ n”); scanf(“%s”,car [i] .studentname); printf(“请输入课程\ n“); scanf(”%d“,&car [i] .sudentclass; fwrite(&car),1,fp); fclose(fp); printf(”输入完成,任何键返回\ n“) ; getch()}
责任编辑(黄俊群)
以上就是关于**图书管理系统源码,winform图书馆管理系统**的全部内容,了解更多请关注蚂蚁资源网。

- 000000
- 图书管理系统 c++源代码 急急急,void AddRecord(CList &TelList) { system("cls"); CNode *pNode; CTelRecord *pTel; char szName[20],szNumber[20], kind[20], writer[20];cout<<"\n\t\t ◇请输入书名(输入0结束) :";cin.getline (szName,20);while(strcmp(szName,"0")) { cout<<"\t\t ◇请输入书的编号 :"; cin.getline(szNumber,20); cout<<"\t\t ◇请输入书的种类(社科,自科,文学,工具书,其他):"; cin.getline(kind,20); cout<<"\t\t ◇请输入作者的姓名 :"; cin.getline(writer,20); pTel=new CTelRecord; pTel->SetRecord(szName,szNumber,kind,writer); pNode=new CNode; pNode->InputData(pTel); TelList.AddNode(pNode); system("cls"); cout<<"\n\t\t ☆请输入书名(输入0结束):"; cin.getline(szName,20); } cout<<endl<<endl;}void DisplayRecord(CList &TelList){ system("cls"); cout<<endl<<setw(15)<<" ☆ 书名 ☆ "<<setw(15)<<"\t☆ 书的编号 ☆"<<setw(15)<<"\t ☆ 书的种类 ☆"<<setw(15)<<"\t ☆ 作者☆ \n"<<endl; TelList.ShowList(); cout<<endl<<endl;}void LookUpRecord(CList &TelList){ system("cls"); CNode *pLook; char szName[20]; cout<<"\n\t\t ☆请输入您想要查找的书名(输入0结束)"; cin.getline(szName,20); while(strcmp(szName,"0")) { CTelRecord tele(szName,"0","0","0"); pLook=TelList.LookUp(tele); if(pLook) { cout<<endl<<"\t\t ※在里面找到的纪录 "<<szName <<",内容是:\n"<<endl; cout<<endl<<setw(15)<<" ☆ 书名 ☆ "<<setw(15)<<"\t☆ 书的编号 ☆"<<setw(15)<<"\t ☆ 书的种类 ☆"<<setw(15)<<"\t ☆ 作者☆ \n"<<endl; pLook->ShowNode(); } else cout<<"\n\t\t !!!在里面找不到 "<<szName<<" ."<<endl; system("pause"); system("cls"); cout<<"\n\t\t ☆请输入您想要查找的书名(输入0结束)"; cin.getline(szName,20); } cout<<endl<<endl;}void DeleteRecord(CList &TelList){ system("cls"); CNode *pLook; char szName[20]; cout<<"\n\t\t△请输入您想要删除的书名(输入0结束)"; cin.getline(szName,20); while (strcmp(szName,"0")) { CTelRecord tele (szName,"0","0","0"); pLook=TelList.LookUp(tele); if(pLook) { cout<<"\n\t\t☆在里面找到的纪录 "<<szName <<",内容是:\n"<<endl; cout<<endl<<setw(15)<<" ☆ 书名 ☆ "<<setw(15)<<"\t☆ 书的编号 ☆"<<setw(15)<<"\t ☆ 书的种类 ☆"<<setw(15)<<"\t ☆ 作者☆ \n"<<endl; pLook->ShowNode(); TelList.DeleteNode(pLook); cout<<"\n\t\t◎"<<szName<<"的资料已删除"<<endl; } else cout<<"\n\t\t▲对不起, 在里面找不到 "<<szName<<" ."<<endl; system("pause"); system("cls"); cout<<"\n\t\t△请输入您想要删除的书名(输入0结束)"; cin.getline(szName ,20); } cout<<endl<<endl;}void StoreFile(CList &TelList){ ofstream outfile("BOOK.dat",ios::binary); if(!outfile) { cout<<"\t\t\t !!! 数据文件打开错误,无法储存数据"; return; } CNode *pnode; CTelRecord *pTel; string strName,strNumber; pnode=TelList.GetListHead(); while(pnode) { pTel=(CTelRecord *)pnode->GetData(); outfile.write((char *)pTel,sizeof(CTelRecord)); pnode=TelList.GetListNextNode(pnode); } outfile.close();}void Operate(string &strChoice,CList &TelList) { void TongJi(CList &TelList); if(strChoice=="1") AddRecord(TelList); else if(strChoice=="2") DisplayRecord(TelList); else if(strChoice=="3") LookUpRecord(TelList); else if(strChoice=="4") DeleteRecord(TelList); else if(strChoice=="5") TongJi(TelList); else if(strChoice=="0") StoreFile(TelList); else cout<<"\n\t\t\t !!!输入错误,请重新输入您的选择."<<endl;}void LoadFile(CList &TelList){ ifstream infile("BOOK.dat",ios::binary); if(!infile) { cout<<"\n\t\t !!!对不起,没有找到数据文件,无法导入数据."; return; } CNode*pNode; CTelRecord*pTel; while(!infile.eof()) { pTel=new CTelRecord; infile.read((char *)pTel,sizeof(CTelRecord)); pNode=new CNode; pNode->InputData(pTel); TelList.AddNode(pNode); } TelList.DeleteNode(pNode); infile.close();}void TongJi(CList &TelList) { system("cls"); int a,b,i,j,k, d,e,f,g,m,n; CTelRecord sk("0","0","社科","0"); CTelRecord zk("0","0","自科","0"); CTelRecord wx("0","0","文学","0"); CTelRecord gj("0","0","工具书","0"); CTelRecord qt("0","0","其他","0"); a=TelList.tongji(sk); b=TelList.tongji(zk); i=TelList.tongji(wx); j=TelList.tongji(gj); k=TelList.tongji(qt); cout<<'\t'<<"↑"<<endl; for(d=20;d>0;d--)cout<<d+50<<'\t'<<"│"<<endl; for(d=50,e=50,f=50,g=50,m=50,n=50;e>0;d--,e--,f--,g--,m--,n--) { cout<<d<<'\t'<<"│"; if(e>a)cout<<" ";else cout<<"■"; cout<<'\t'; if(f>b)cout<<" ";else cout<<"■"; cout<<'\t'; if(g>i)cout<<" ";else cout<<"■"; cout<<'\t'; if(m>j)cout<<" ";else cout<<"■"; cout<<'\t'; if(n>k)cout<<" ";else cout<<"■"; cout<<endl; } cout<<" ————————————————————————→"<<endl; cout<<'\t'<<a<<" "<<'\t'<<b<<" "<<'\t'<<i<<" "<<'\t'<<j<<" "<<'\t'<<k<<" "<<endl; cout<<" "<<"社科"<<" "<<"自科"<<" "<<"文学"<<" "<<"工具书"<<" "<<"其他"<<endl;} int main(){ CList TelList; system("cls"); cout<<endl<<"\t\t\t☆☆☆ 欢迎进入图书管理系统☆☆☆\n"; LoadFile(TelList); string strChoice; do { cout<<endl<<"\n\t\t\t ※ 1. 添加图书纪录\n"<<endl; cout<<"\t\t\t ※ 2. 显示图书信息 \n"<<endl; cout<<"\t\t\t ※ 3. 根据书名查找图书信息\n"<<endl; cout<<"\t\t\t ※ 4. 根据书名删除图书信息\n"<<endl; cout<<"\t\t\t ※ 5. 打印图书信息图表\n"<<endl; cout<<"\t\t\t ※ 0. 退出系统"<<endl<<endl; cout<<"\t\t\t ★ 请输入您的选择 :"; cin>>strChoice; cin.ignore(); Operate(strChoice,TelList); } while (strChoice!="0"); cout<<" \n\n\t\t\t※※※欢迎再次使用图书管理系统※※※\n\n"; return 0;}上面是各个部分的代码,你自己整理一下
- 2021-02-11 21:10:40

- bibila
- 该读者不存在"t 0 退 出";关闭 reader; fstream file("reader;删除所有读者信息 { top=-1;i< switch (choice) { case '4'输出图书 { cout <\<" cout <3'i<n\<是否再架 1;<Maxbor;;按编号查找 if (NULL==r) { cout < case ' case ':out);<:; break; break;/在架"i++) if(borbook[i]; endl; }//: cout <t\ r=query(readerid);/ break;t\ bookid.gettag()==0) file,实现对图书的维护: Book(){} char *getname() { return name; default; break;</图书记录指针 Book book[Maxb]:bookdata() { char choice;<n\:#include <.gettag()==0) { return &read[i];" cin > "=top; top=-1;> } };":已删 0;<< } void delbook(){ tag=1; case '!file) break; no <endl; rname,估计每人会给你做的; ",实现建立读者的个人资料 class RDatabase { private;< "; } r->n\.txt读到read[]中 { Reader s; } void borrowbook(int bookid)//,实现对读者的信息的描述 class Reader { private;} /i++) { if(borbook[i]==bookid) { borbook[i]=0; /t 6 全 删\;/4'.query(bookid),将read[]写到reader; name <:cout<i<<>> endl:; bookid;<t\/ strcpy(name;"图书编号 char name[20],ios; break;<图书记录 public;!=' /i</获取删除标记 int getno() {return no;i<!file)break;n\5'图书库维护 void disp() { for (int i=0;< break;n\ if (NULL==p) { top++;:readerdata() { char choice;t\:未删 int no; /:cout< if (;/ addbook(bookid: cout <" cout < break; if (; <,程序的主界面的引导 void main() { char choice;<book,将book;(onshelf==1;/ } Book *query(int bookid)/n\delbook(); break;Maxbor:":out);<reader; file: ReaderDB;/borrowbook(b->/;<) { cout <"<",将reader; break;t\<: cout < bookid;输入图书编号: cout <t\: BookDB; top++; cin >t0 退 出"<; cin >i++) { if (borbook[i]==0) { borbook[i]=bookid;/} /) { cout <i++) if (read[i];t\ setw(10) </ 不存在该读者; b=query(bookid); Book *b; } void disp()/ break: cout <"获取姓名 int getno(){ return no,na);> 图书编号;<;<设置删除标记 1;<;/.txt文件中 { fstream file(".txt"<t\disp().close();Maxbor; #include <endl; break;/.txt" rname;/ 该图书不存在"/输入错误; while(choice;n\ " readerid.query(readerid);/0' } b->: disp();t\,ios;/ return 1; top++;t\ } } } /。我给你一个做参照吧;t\i++) if (book[i]; cin > endl;n\; break;n\ cout < /t\<t2 更 改\ void BDatabase;\ break;n\/1' int bookid; endl;>:"/> if (r==NULL) { cout </iomanip> 不存在该图书; cin >: " if (r==NULL) { cout < setw(5) < " } return NULL;bookid;n\: cout < while (choice!=':已借 public;/ 该图书已借出; <n\:;t1 新 增\> switch (choice) { case '/<< top=-1;t\ } return NULL;",查找;n\<,基本功能都已经实现了,不能还书" #include < borbook[i] <<,char *na)/ choice;t\;t 3 删 除\< book[top],rname); /删除标记 1; const int Maxr=100,char *na)/输出所有读者信息 { for (int i=0; case ' bname;读者类;/ 不存在该图书;=top.write((char *)&read[i].query(readerid);6',bname); " b->t\增加读者 { tag=0; r=query(readerid); 读入图书编号.txt文件中 { fstream file(">< } void disp()/>" break; } b-> endl!=0) cout <break,readerid;endl;\ setw(6) < char rname[20];} /<retbook();/n\:; } b=BookDB;< } if (b-> return 1;输入读者姓名;</Maxbor.getno()==readerid && read[i]: clear(); } cout <;endl< void RDatabase; endl; cin >t\n\endl; endl,ios;"< 读入图书编号;/t 4 查 找\ return 1;析构函数;>析构函数;;< 图书编号; cout<,请从新输入;2' ",还入等 class Book { private; choice.readerdata(); }/fstream><<:cout<书名 int onshelf;;n\n\ break; cin >:["retbook(b->" for(int i=0; cin > "/disp();<:" case ' } return 0;"setw(10) <t图 书 维 护 "t\最多的图书 const int Maxbor=5: cout< r->/ strcpy(name,不能借书"endl,sizeof(read[i])); return;还书操作 { for(int i=0;\构造函数;还书\/ int readerid;借书操作 { for(int i=0; return 1;t\全删 { top=-1.bookdata().txt"endl; Reader *r: cout </n" break;/<endl<bookid;t\endl; 输入读者编号;读者记录 public;读出读者信息 { cout <读者库维护 ~RDatabase() / } };<i<: cout <>获取图书编号 int gettag(){ return tag; 该图书不存在"/t\:" cin >"t读 者 维 护\: clear(): int top,实现对图书的描述,删除等 class BDatabase { private;;n\ cin > cin >< case ': disp();iostream>0') { cout <输出文件流类 using namespace std,书名;/endl<\//i++) borbook[i]=0;<;=top; cin > "输入读者编号;; if (b==NULL) { cout <输入读者编号;<借书编号:";) </ } ~BDatabase()/:"=top,na);i<;还书操作 { onshelf=1;:"<>; read[top].read((char *)&b;< " } void delbook(){ tag=1;设置书名 { strcpy(name,na);.close();endl; break; 该读者不存在 " while (choice: RDatabase() /,不能还书"i<已借"添加读者时先查找是否存在 { Reader *p=query(n);打开一个输入文件 while (1) { file:未删 int no;getno());t\:" } void retbook()/n\<endl; case ' readerid;endl; " cin > for (int i=0.addreader(n;|" } r-><</< break;/ bookid;5';endl;> }/n\ } int borrowbook()//< r=query(readerid);/ } };t4 查 找\:in); case ' setw(18) <i++) if (book[i];读者姓名 int borbook[Maxbor]; case ' choice,并且在VC6上已经编译运行确认; if (p==NULL) { top++:" break.gettag()==0) file;<:再架 2; } void disp() /删除标记 1;//输入错误; cout <delbook(); <<< for (int i=0;读者记录指针 Reader read[Maxr],将book[]写到book;/<">n\>endl; } cout </每位读者最多借五本书 /< break;n\ name<i++) if (book[i].getno()==bookid &&book[i]; " cin > //<,不能借书"/borrowbook()==0) { cout < break;/,sizeof(s));增加图书 { Book *p=query(n).gettag()==0) { return &book[i];=top.gettag()==0) book[i]:;t 2 更 改\<<图书库类;getno()):in);/<endl:" } int addreader(int n;<n\:"<t\;t 5 显 示\book;/ no=n; } return 0,请从新输入;;>t4 读 者 维 护\3'/ default:":".close();n\<: cout <setname(rname),请从新输入; bname? "t 1 新 增\: Reader() {} char *getname() {return name:" if (b==NULL) { cout <",na).txt读到book[]中 { Book b;< no < } Reader *query(int readerid)/,na).txt } void clear()/ /2' b=query(bookid); break,不能借书": BDatabase()/ "}/< if (b==NULL) { cout <t3 图 书 维 护\删除图书 void addbook(int n; } } } /;0' Reader *r; char bname[40]; break;/:"endl;//:" r=ReaderDB;t\/</n\i++) read[i];n\t 图 书 管 理 系 统\ 不存在该读者; cin > if (b==NULL) { cout <t3 删 除\/.disp(): int tag;"t0 离 开" r=ReaderDB;i++) if (read[i];t6 全 删\.read((char *)&s; " BDatabase BookDB;>.query(bookid);n\ "读入读者编号.write((char *)&book[i];><n\t5 显 示\,char *na)/.addbook(n; case 'n\ cout <n 读者编号; / file;查找图书 { for (int i=0; } } } int retbook(int bookid)/ 借书 读者编号; #include < fstream file(",图书的编号; int bookid; case '该读者不存在";< book[top]=b;t\ cin >1'借书操作 { if (onshelf==1) { onshelf=0.txt" cin > endl;获取删除标记 void setname(char na[])//按编号查找 { for (int i=0;设置姓名 { strcpy(name;<"2':"输入/所借图书 public;/;t\]"t\<<n\<< RDatabase ReaderDB; } void bookdata();/ cout < if (b==NULL) { cout < case ':已删 0;n\输入错误;n\" Book *b;输入新的姓名;输入新的书名;; if (r==NULL) { cout <readerid; r->"; break;< while (1) { file;<=top.close();获取姓名 int gettag() {return tag;<n\ / } file;构造函数; default.disp();<获取读者编号 void setname(char na[]) /<6'/输入图书编号;</setname(bname);输入图书书名;< cin >,na); break; }/< } b-><t\:"< onshelf=1; addreader (readerid;string>t1 借 书\:未删 void addreader(int n; ": int tag,ios; no=n;<t\!=' 该图书不存在 "t\ } } return 0; break;main() 函数的实现,char *na)/3'<增加图书 { tag=0; } }; switch (choice) { case '<t\i</ } void clear()/4' readerid; for(int i=0;<1'; readerid;<; } return 0;/ < } file这个由于你给的分太少;",sizeof(book[i]));图书类;读者类库;/<i< } b=BookDB:"/endl; b=query(bookid):已删 0; if (r==NULL) { cout << break;<读者编号 char name[10],借出:; } int addbook(int n;readerid; read[top]=s; "< cin > } void readerdata();<n\>最多的读者 const int Maxb=100; } r->n \</ case 't2 还 书 \n\,sizeof(b)): int top
- 2021-02-11 21:10:40

- 亦心
- c语言的改一下输入输出就变c++了 printf变cout scanf变cin不过程序不是我编写的不保证正确性#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<ctype.h> #define STACK_INIT_SIZE 10 #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0 struct student /*定义学生类型,用于存放借出的书籍*/ { int studentnum,phonenum; char lendbook[10]; }student[1000]; struct book /*定义书的类型*/ { char bookname[11]; char publisher[20]; char page;char year[6];char status[4];char name[11]; char author[51];char booknum; char bookcreat[10]; char borrownum;char turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ }book[1000]; struct car /*借书卡的数据类型*/ { int carnum; char studentname[10]; int studentclass;int studentphone; }car[100]; addcar() { FILE *fp; int i=0;double allnum,stillbook,outbook,allmoney,avemoney; fp=fopen("car.txt","a+"); printf("请你输入学生姓名\n"); scanf("%s",car[i].studentname); printf("请你输入班级\n"); scanf("%d",&car[i].studentclass); fwrite(&car[i],sizeof(struct car),1,fp); fclose(fp); printf("注册完毕,任意键返回\n"); fp=fopen("book.txt","r");avemoney=allmoney/allnum;fclose(fp);printf("书籍总数:%ld,已借出的书籍:%ld,在馆的书籍:%ld,书籍贯总金额:%ld,书籍平均价格:%ld", stillbook,outbook,allmoney,avemoney);getch(); } carcount() { FILE *fp; int i,n=0; fp=fopen("car.txt","r"); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) { printf("第%d张卡<卡号:%d 姓名:%s 班级:%d 手机号码:%d>\n", i+1,car[i].carnum,car[i].studentname,car[i].studentclass,car[i].studentphone); n=n+1; } fclose(fp); printf("目前共有%d本书\n",n); printf("按任意键\n"); getch(); } void findbook() { FILE *fp; char bookname[10]; int ture,i,booknum;fp=fopen("book.txt","r"); printf("请输入你要查找的booknum");scanf("%d",&booknum);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) { if(strcmp(booknum,book[i].booknum)==0) { if(book[i].turefalse==1) printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat); else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp); return FALSE; } elseprintf("没有你要查询的书籍\n"); fclose(fp);} return FALSE; } void borrowbook(struct book *m) //借阅图书函数{ int num; struct book *b, *b1; printf("输入要借书的编码:"); scanf("%d",&num); b = searchbook(num); /*调用查找图书结点函数*/ if(b != NULL) { if(m->borrownum < 10) {// b->status = '0';// b1 = &m->book[m->borrownum]; strcpy(b1->name,b->name); strcpy(b1->author,b->author); b1->booknum = b->booknum; strcpy(b1->year,b->year); b1->page = b->page; strcpy(b1->publisher,b->publisher); // b1->price = b->price;// b1->status = b->status; m->borrownum++; printf("%s借书成功!",b->name); getch(); } else { printf("你已借满10本书."); getch(); } } else { printf("没有你要借的书."); getch(); }}huanbook() /*还书函数*/ { FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n; int carnum,booknum;char lendbook[10]; printf("请你输入你的卡号\n"); scanf("%d",&carnum); fp=fopen("car.txt","r"); /*读取卡号记录*/ { if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/ { n=i; fclose(fp); printf("请输入你要还的书的booknum\n");scanf("%d",&booknum);fp=fopen("record.txt","r"); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/ { if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/ { fclose(fp); fp=fopen("record.txt","r"); fp2=fopen("bookl.txt","w"); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) { if(strcmp(student[i].lendbook,lendbook)==0) { continue; /*删除还掉的书的借书记录*/ } fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/ } fclose(fp); fclose(fp2); fp=fopen("record.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) { fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/ } fclose(fp); fclose(fp2); fopen("bookl.txt","w"); /*清临时文件的记录*/ fclose(fp2); fp=fopen("book.txt","r"); fp2=fopen("bookl.txt","w"); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ { if(i==n) { book[i].turefalse=1; fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/ continue; } fwrite(&book[i],sizeof(struct book),1,fp2); } fclose(fp); fclose(fp2); fp=fopen("book.txt","w"); fp2=fopen("bookl.txt","r"); for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/ } fclose(fp); fclose(fp2); fopen("bookl.txt","w"); /*清临时文件*/ fclose(fp2); printf("还书完毕,按任意键返回\n"); getch(); return 1; } elseprintf("你没有借这样的书,任意键返回\n");}/*出错提示*/ fclose(fp); getch(); return 0; } elseprintf("系统没这样的卡,和管理员联系,按任意键返回\n");}/*出错提示*/ fclose(fp); getch(); } void main() { struct book *m;char ch5; do { printf("---------------欢迎进入图书查询系统!--------------\n"); printf(" 1:<注册卡号>\n");printf(" 2: <卡号信息>\n"); printf(" 3:<按书籍编号查找>\n");printf(" 4: <借书>\n");printf(" 5: <还书>\n");printf(" 0:<返回>\n"); printf("请输入0--5,其他输入非法!\n"); scanf("%s",&ch5); switch(ch5) { case '1':addcar();getch();case '2':carcount();getch();break;case '3':findbook();getch();break; case '4':borrowbook(m );getch();break;case '5':huanbook();getch();break;case '0':break;default:printf("无此操作\n");getch();break; } }while(ch5!='0'); //return FALSE; }
- 2021-02-22 14:50:01