图书管理系统c++
来源:互联网 发布:编程工具排行榜 编辑:程序博客网 时间:2024/05/16 18:31
问题描述
该系统要求建立设置的图书管理系统,具有对图书信息的存储、更新、查询、统计、排行、输出功能,和图书的借还及预约功能。通过此课题,熟练掌握高级程序设计语言的数据类型、程序设计语句、函数的定义和调用方法及模块化思想。
功能要求
(1)每种图书包含信息如:图书序号、图书名称、图书种类、图书总库存量、图书现库存量、作者、库存地点、借还状态等。
(2)需要实现的功能
1、该系统可用于对图书基本信息的存储、更新、查询、统计、排行、输出等操作,以实现对图书的管理。
2、其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个图书信息,也可对个别图书信息进行适当的删除或修改,以便随时更新图书信息。
3、程序中设计的查询功能可根据需要从若干数据中查询某个图书信息,并且可根据四种不同的方法查询:按名称查询、按种类查询、按作者查询、按书名和作者查询,以满足不同的需要。
4、实时更新图书借还状态和图书库存现状。
(3)界面友好。
注:为了系统更加人性化,具有时代性,在咨询老师后,我们在以上基础上添加以下功能来丰富系统。
1、 增加读者权限,与管理员权限加以区别,管理员需要密码登录,读者需要读者号方可登录。
2、 读者可以自己注册读者账号,一个账号同时最多借10本书。
3、 读者可以自助还书,查看自己的借阅信息,以及预约书籍。
4、 读者可以查询书籍在馆情况,预约情况等。
5、 向读者推送书籍最高借阅和读者的借阅排名,读者可在自己的信息中查看。
6、 读者也可以通过管理员在借还总台还借书。
7、 管理员可以查看预约书到馆情况,以便向预约者通知。
8、 管理员可以查看借还书总次数
9、 可以对图书以借阅量以或检索号进行排序观察
注:读者可以自己编写测试文件,文件为txt格式,或者机子修改代码换为其他格式
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <algorithm>#include <fstream>#include <cctype>#include <iomanip>#include <conio.h>using namespace std;struct student{ int id;//读者编号 string name;//读者姓名 int borrowsum;//你已借阅多少本书,默认为0 int number;//现在还有多少本书未还,默认为0 string borrowday;//上次借阅时间,默认为0000.00.00 int b[10];//你所借书的的编号,最多10本};struct book{ int idnum;//图书检索号 int BorrowCount;//图书借阅量,初始化为0 string name;//书名 string kind;//图书种类 double price;//图书价格 int sum;//图书总库存存量 int nowsum;//图书现库存量 string author;//图书作者 int appointment;//图书预约量,初始化为0 bool ok;//是否可借,初始为可以 string borrowdate;//图书最近一次借出时间,默认为0000-00-00; string returndate;//图书最近一次归还时间,默认为0000-00-00; string room;//馆藏地};bool cmpByidnum(book a,book b){ return a.idnum<b.idnum;}bool cmpByCount(book a,book b){ return a.BorrowCount>b.BorrowCount;}bool cmpByBorrowsum(student a,student b){ return a.borrowsum>b.borrowsum;}bool cmpByid(student a,student b){ return a.id<b.id;}class Library{private: int borrownum;//每月借出书数量 int returnnum;//每月还书数量 vector<book> data; vector<student> data1; vector<int> betoli;//预约书到馆,储存其编号public: Library(); void AddBook(book NewBook); //增加图书 void DeleteBook(string bookname,string author);//删除图书 void BorrowBook(string name,string author);//借阅图书 void BackBook(string name,string author,int k);//归还图书 void ShowAllBook(); //输出系统所有图书 void SearchBookPosWithname(string thebook); //按书名查询 void SearchBookPosWithAuthor(string theauthor);//按作者查询 void SearchBookPosWithKind(string kind);//按种类查询 int SearchBookPosWithAB(string theauthor,string thebook);//按作者和书名查询 int SearchBookPosWithid(int id); //按检索号搜寻 void SortBook(int ca); //排序 void SortStudent(int ca);//按读者借阅量排序 void Save(); //存入图书馆文件 void Save1();//存入学生文件 void Appointment(string bookname,string author);//预约图书 void printbook(book a);//输出某本书的所有信息 void revisebook(string name,string author);//修改某本书的信息 int SerchStudent(int id);//查询某个读者 //int SerchStudent1(int id);//查询某个读者 void AddStudent(student a);//增加一个读者 void PrintStudent(int kid);//输出读者信息 int GetStudent();//返回读者总数 int readsum(int id);//获取某个读者的借阅量 int getborrownum();//获取本月外借量 int getreturnnum();//获取本月还书量 void PrintToLi();//输出到馆预约书};Library::Library(){ borrownum=0; returnnum=0; int AllBook,AllStudent; ifstream fin("book.txt"); if(fin) { fin>>AllBook; for(int i=0; i<AllBook; i++) { book tem; fin>>tem.idnum>>tem.name>>tem.author>>tem.price>>tem.kind>>tem.room>>tem.sum>>tem.nowsum>>tem.BorrowCount>>tem.ok>>tem.appointment>>tem.borrowdate>>tem.returndate; data.push_back(tem); } fin.close(); } //cin.clear(); //cin.sync(); ifstream tfin("student.txt"); if(tfin) { tfin>>AllStudent; for(int i=0; i<AllStudent; i++) { student tem; tfin>>tem.id>>tem.name>>tem.borrowsum>>tem.number>>tem.borrowday; for(int j=0;j<10;j++) { tfin>>tem.b[j]; } data1.push_back(tem); } tfin.close(); }}int Library::readsum(int a){ //SortStudent(1); return data1[a-1].borrowsum;}int Library::getborrownum()//获取本月外借量{ return borrownum;}int Library::getreturnnum()//获取本月还书量{ return returnnum;}int Library::GetStudent(){ int k=(int)data1.size(); return k+1;}void Library::AddBook(book NewBook){ data.push_back(NewBook);}void Library::AddStudent(student newstudent){ data1.push_back(newstudent);}void Library::DeleteBook(string bookname,string author){ int pos = SearchBookPosWithAB(author,bookname); if (pos!=-1) { data.erase(data.begin()+pos); return ; } else cout<<"查无此书!\n";}void Library::BorrowBook(string name,string author){ string BorrowDate; string BackDate; char c; int flag=0; SortStudent(1); int sid=-1; for (int i = 0; i <(int)data.size(); i++) { if (data[i].name==name&&data[i].author==author) { if(data[i].nowsum) { cout<<"借书读者的读者号是:"; cin>>sid; if(data1[sid-1].number>10) { cout<<"现你同时借了10本书!不可再借!"<<endl; break; } flag=1; data[i].nowsum=data[i].nowsum-1; data[i].BorrowCount=data[i].BorrowCount+1; cout<<"请输入借阅日期"<<endl; cin>>BorrowDate; data[i].borrowdate=BorrowDate; cout<<"请输入预计归还日期(最多可借一月)"<<endl; cin>>BackDate; data[i].returndate=BackDate; data[i].ok=bool(data[i].nowsum); borrownum++; data1[sid-1].number++; for(int j=0;j<10;j++) { if(data1[sid-1].b[j]==0) data1[sid-1].b[j]=data[i].idnum; Save(); Save1(); } } else { cout<<"~~~~(>_<)~~~~ !这书被借走了!是否预约?Y/N"<<endl; cin>>c; c=toupper(c); if(c=='Y') data[i].appointment++; } } } if(!flag) cout<<"抱歉,未找到您要找的书。"<<endl;}void Library::BackBook(string name,string author,int k)//k表示还书途径{ int c=-1; SortStudent(1); if(k!=-1)//读者自助还书 { c=k-1; } else//读者通过借还总台还书 { cout<<"请输入你的读者号:"; cin>>c; c=c-1; } for (int i = 0; i <(int)data.size(); i++) { if (data[i].name==name&&data[i].author==author) { data[i].nowsum=data[i].nowsum+1; data[i].ok=bool(data[i].nowsum); returnnum++; if(data[i].appointment!=0) { data[i].appointment--; betoli.push_back(data[i].idnum); } for(int j=0;j<10;j++) { if(data1[c].b[j]==data[i].idnum) data1[c].b[j]=0; } data1[c].number--; break; } } Save(); Save1();}void Library::printbook(book a){ cout<<setw(8)<<a.idnum; cout<<setw(14)<<a.name; cout<<setw(14)<<a.author; cout<<setw(14)<<fixed<<setprecision(2)<<a.price; cout<<setw(14)<<a.kind; cout<<setw(14)<<a.room; cout<<setw(14)<<a.sum; cout<<setw(14)<<a.nowsum; cout<<setw(14)<<a.BorrowCount; cout<<setw(10)<<(a.ok==0?"不可借":"可借"); cout<<setw(14)<<a.appointment; cout<<setw(14)<<a.borrowdate; cout<<setw(14)<<a.returndate<<endl; // cout<<endl;}void Library::PrintToLi(){ SortBook(1); int k=(int)betoli.size(); if(!k) cout<<" 暂时无预约书到馆!"<<endl; else { cout<<" 到馆的预约书有:\n"; for(int i=0;i<k;i++) { printbook(data[betoli[i]-1]); } }}void Library::PrintStudent(int kid){ int id=kid-1; //id=SerchStudent(id); SortStudent(1); SortBook(1); //SortStudent(1); cout<<setw(8)<<data1[id].id; cout<<setw(8)<<data1[id].name; cout<<setw(14)<<data1[id].borrowsum; cout<<setw(18)<<data1[id].number; cout<<setw(14)<<data1[id].borrowday<<endl; if(data1[id].number) { cout<<"你当前借了这些书:\n"; cout<<setw(16)<<"检索号"<<setw(16)<<"书名"<<setw(16)<<"作者"<<endl; for(int i=0;i<10;i++) { if(data1[id].b[i]!=0) cout<<setw(16)<<data[data1[id].b[i]-1].idnum<<setw(16)<<data[data1[id].b[i]-1].name<<setw(16)<<data[data1[id].b[i]-1].author<<endl; } } else cout<<"你当前并未借任何书,快去借本书看看吧!\n";}void Library::ShowAllBook(){ //system("cls"); cout<<setw(8)<<"检索号"<<setw(14)<<"书名"<<setw(14)<<"作者"<<setw(14)<<"价格"<<setw(14)<<"种类"<<setw(14)<<"馆藏地"<<setw(14)<<"总库存量"<<setw(14)<<"在馆量"<<setw(14)<<"借阅量"<<setw(10)<<"是否可借"<<setw(14)<<"预约量"; cout<<setw(14)<<"借出时间"<<setw(14)<<"归还时间"<<endl; for (int i = 0; i <(int)data.size(); i++) { //cout<<endl; printbook(data[i]); //cout<<endl; /*cout<<setw(6)<<data[i].idnum; cout<<setw(16)<<data[i].name; cout<<setw(8)<<data[i].author; cout<<setw(6)<<fixed<<setprecision(2)<<data[i].price; cout<<setw(6)<<data[i].kind; cout<<setw(16)<<date[i].room; cout<<setw(6)<<data[i].sum; cout<<setw(6)<<data[i].nowsum; cout<<setw(6)<<data[i].BorrowCount; cout<<setw(6)<<(data[i].borrow==0?"不可借":"可借"); cout<<setw(6)<<date[i].appointment; cout<<setw(14)<<date[i].borrowdate; cout<<setw(14)<<date[i].returndate<<endl;*/ }}int Library::SerchStudent(int id){ int m=-1; for (int i = 0; i <(int)data1.size(); i++) { if (data1[i].id==id) { return i; } } return m; }void Library::SearchBookPosWithname(string thebook)//按书名查询{ int flag=0; for (int i = 0; i <(int)data.size(); i++) { if (data[i].name==thebook) { printbook(data[i]); flag=1; } } if(!flag) cout<<"查无此书!\n";}void Library::SearchBookPosWithAuthor(string theauthor)//按作者查询{ bool flag=false; for (int i = 0; i <(int)data.size(); i++) { if (data[i].author==theauthor) { flag=true; printbook(data[i]); } } if(!flag) cout<<"查无此作者的书!";}void Library::SearchBookPosWithKind(string kind)//按种类查询{ bool flag=false; for (int i = 0; i <(int)data.size(); ++i) { if (data[i].kind==kind) { flag=true; printbook(data[i]); } } if(!flag) cout<<"查无此类书!";}int Library::SearchBookPosWithAB(string theauthor,string thebook)//按作者和书名查询{ for (int i = 0; i <(int)data.size(); ++i) { if (data[i].author==theauthor&&data[i].name==thebook) { printbook(data[i]); return i; } } cout<<"查无此书!"; return -1;}int Library::SearchBookPosWithid(int id){ for (int i = 0; i <(int)data.size(); i++) { if (data[i].idnum==id) { return i; } } return -1;}void Library::SortBook(int ca) //排序{ if (ca==0) //按借阅量排序 { sort(data.begin(),data.end(),cmpByCount); } else //按检索号排序 { sort(data.begin(),data.end(),cmpByidnum); }}void Library::SortStudent(int ca){ if(ca==0)//按借阅量排序 sort(data1.begin(),data1.end(),cmpByBorrowsum); else sort(data1.begin(),data1.end(),cmpByid);//按读者号排序}void Library::Save() //存入书籍文件{ ofstream fout("book.txt"); if (fout) { fout<<data.size()<<endl; //book p; for (int i = 0; i <(int)data.size(); i++) { fout<<data[i].idnum<<" "<<data[i].name<<" "<<data[i].author<<" "<<data[i].price<<" "<<data[i].kind<<" "<<data[i].room<<" "<<data[i].sum<<" "<<data[i].nowsum<<" "<<data[i].BorrowCount<<" "<<data[i].ok<<" "<<data[i].appointment<<" "<<data[i].borrowdate<<" "<<data[i].returndate<<" "<<endl; } fout.close(); }}void Library::Save1() //存入学生文件{ ofstream fout("student.txt"); if (fout) { fout<<data1.size()<<endl; //student p; for (int i = 0; i <(int)data1.size(); i++) { fout<<data1[i].id<<" "<<data1[i].name<<" "<<data1[i].borrowsum<<" "<<data1[i].number<<" "<<data1[i].borrowday; for(int j=0;j<10;j++) { fout<<" "<<data1[i].b[j]; } fout<<endl; } fout.close(); }}void Library::revisebook(string name,string author)//修改图书{ string Room,Kind; int num,k=0; printf("你要修改的内容是:\n"); printf(" 1.馆藏地修改\n"); printf(" 2.图书总库存量修改\n"); printf(" 3.图书所属种类修改\n"); printf(" 4.退出\n"); for (int i = 0; i <(int)data.size(); i++) { if (data[i].author==author&&data[i].name==name) { k=i; break; } } int cho; do { cin>>cho; switch(cho) { case 1: { cout<<"请输入新的馆藏地:\n"; cin>>Room; data[k].room=Room; break; } case 2: { cout<<"请输入新的总库存量:\n"; cin>>num; data[k].sum=num; break; } case 3: { cout<<"请输入图书所属新种类:\n"; cin>>Kind; data[k].kind=Kind; break; } } } while(cho<4);}void Library::Appointment(string bookname,string author)//预约图书{ for (int i = 0; i <(int)data.size(); i++) { if (data[i].author==author&&data[i].name==bookname) { if(data[i].nowsum>0) printf("馆内有书,你无须预约!\n"); else { data[i].appointment++; printf("预约成功!"); } } }}int main(){ cout.setf(ios::left);//左对齐 Library mybook; char mm[6];//密码数组 // mybook.PrintStudent(0); cout<<" 欢迎使用图书管理系统"<<endl; cout<<"请选择你的登录选项:\n"; cout<<" 1.管理员登录"<<endl; cout<<" 2.读者登录"<<endl; int cho,start,kk=1; cin>>start; switch(start) { case 1: { char password[]="192021"; // string passwdInput; cout<<"请输入管理员口令:"; do{ kk=1; for(int i=0;i<6;i++) { mm[i]=getch(); cout<<"*"; } cout<<endl; for(int i=0;i<6;i++) { if (mm[i]!=password[i]) { cout<<"请输入正确密码!"<<endl; kk=0; break; } } }while(!kk); do { // cout<<" 欢迎使用图书管理系统"<<endl; cin.clear(); cin.sync(); //system("cls"); cout<<" 1.所有图书目录 "<<endl; cout<<" 2.查询图书 "<<endl; cout<<" 3.增加图书 "<<endl; cout<<" 4.删除图书 "<<endl; cout<<" 5.借阅图书 "<<endl; cout<<" 6.归还图书 "<<endl; cout<<" 7.修改图书信息 "<<endl; cout<<" 8.本月借还统计 "<<endl; cout<<" 9.预约书到馆情况 "<<endl; cout<<" 10.退出 "<<endl; cout<<"-------------------------------------------------------------------------------------------------------------------"<<endl; cout<<" 请选择功能,输入指令 "<<endl; cin>>cho; switch(cho) { case 1: { int cho2; do { mybook.ShowAllBook(); cout<<"-------------------------------------------------------------------------------------------------------------------------------------------------------------"<<endl; cout<<"0:按借阅量排序 , 1:按索引号排序 ,3:退出"<<endl; cin>>cho2; switch(cho2) { case 0: mybook.SortBook(0); break; case 1: mybook.SortBook(1); break; } } while (cho2<2); break; } case 2: { cout<<" 1.按书名查询 "<<endl; cout<<" 2.按作者查询 "<<endl; cout<<" 3.按种类查询 "<<endl; cout<<" 4.按书名和作者查询 "<<endl; cout<<" 5.退出 "<<endl; cout<<" 请选择功能,输入指令 "<<endl; int cho3; do { string Name,AutHor,Kind; cin>>cho3; switch(cho3) { case 1: cout<<"请输入书名!"<<endl; cin>>Name; mybook.SearchBookPosWithname(Name); //按书名查询 break; case 2: cout<<"请输入作者!"<<endl; cin>>AutHor; mybook.SearchBookPosWithAuthor(AutHor);//按作者查询 break; case 3: cout<<"请输入种类!"<<endl; cin>>Kind; mybook.SearchBookPosWithKind(Kind);//按种类查询 break; case 4: cout<<"请输入作者和书名!"<<endl; cin>>AutHor>>Name; mybook.SearchBookPosWithAB(AutHor,Name);//按作者和书名查询 break; } } while(cho3<=4&&cho3>=1); break; } case 3: //增加图书 { book temp; cout<<"请输入检索号:"; cin>>temp.idnum; while (mybook.SearchBookPosWithid(temp.idnum)>-1) { cout<<"检索号重复啦!~~~~(>_<)~~~~ !"<<endl; cin>>temp.idnum; } cin.clear(); cin.sync(); cout<<"书名:"; cin>>temp.name; cout<<"作者:"; cin>>temp.author; cout<<"价格:"; cin>>temp.price; cout<<"种类:"; cin>>temp.kind; cout<<"馆藏地址:"; cin>>temp.room; cout<<"数量:"; cin>>temp.sum; temp.nowsum=temp.sum; temp.BorrowCount=0; temp.ok=true; temp.appointment=0; temp.borrowdate="0000.00.00"; temp.returndate="0000.00.00"; mybook.AddBook(temp); mybook.Save(); cout<<"信息保存成功"<<endl; break; } case 4: //删除图书 { string bookname,bookauthor; cout<<"请输入书名和作者:"<<endl; cin>>bookname>>bookauthor; mybook.DeleteBook(bookname,bookauthor); break; } case 5: //借书 { string bookname,bookauthor; cout<<"请输入要借的书名和作者:"<<endl; cin>>bookname>>bookauthor; mybook.BorrowBook(bookname,bookauthor); mybook.Save(); break; } case 6: //还书 { string bookname,bookauthor; cout<<"请输入要还的书名和作者:"<<endl; cin>>bookname>>bookauthor; mybook.BackBook(bookname,bookauthor,-1); mybook.Save(); break; } case 7: { string name,author; cout<<"请输入要修改的书名和作者:"<<endl; cin>>name>>author; mybook.revisebook(name,author); break; } case 8: { printf(" 本月借书%d次\n",mybook.getborrownum()); printf(" 本月还书%d次\n",mybook.getreturnnum()); break; } case 9: { mybook.PrintToLi(); cout<<"-------------------------------------------------------------------------------------------------------------------"<<endl; break; } } } while (cho<10); break; // mybook.Save(); } case 2: { int bh,cho,k; cout<<"请输入你的读者编号:\n"; cin>>bh; if(mybook.SerchStudent(bh)==-1) { int n; cout<<"你不是此系统读者,是否注册?\n"; cout<<" 1.注册\n"; cout<<" 2.我再想想\n"; cin>>n; student temp; if(n==1) { cout<<"请输入你的姓名:"; cin>>temp.name; cin.clear(); cin.sync(); temp.id=mybook.GetStudent(); temp.borrowsum=0; temp.number=0; temp.borrowday="0000.00.00"; for(int i=0;i<10;i++) { temp.b[i]=0; } mybook.AddStudent(temp); mybook.Save1(); //cout<<"信息保存成功"<<endl; cout<<" 注册成功!请记住你的读者号,若忘记请联系管理员!\n"; cout<<" 姓名:"<<temp.name<<endl; cout<<" 读者号:"<<temp.id<<endl; k=temp.id; } else break; } else { k=bh; } do { //cout<<" 欢迎使用图书管理系统"<<endl; cin.clear(); cin.sync(); //system("cls"); cout<<" 1.所有图书目录 "<<endl; cout<<" 2.查询图书 "<<endl; cout<<" 3.归还图书 "<<endl; cout<<" 4.预约图书"<<endl; cout<<" 5.查看我的借阅信息 "<<endl; // cout<<" cout<<" 6.退出 "<<endl; cout<<" 请选择功能,输入指令 "<<endl; cin>>cho; switch(cho) { case 1: { int cho2; do { mybook.ShowAllBook(); cout<<"-------------------------------------------------------------------------------------------------------------------------------------------------------------"<<endl; cout<<"0:按借阅量排序 , 1:按索引号排序 ,3:退出"<<endl; cin>>cho2; switch(cho2) { case 0: mybook.SortBook(0); break; case 1: mybook.SortBook(1); break; } } while (cho2<2); break; } case 2: { cout<<" 1.按书名查询 "<<endl; cout<<" 2.按作者查询 "<<endl; cout<<" 3.按种类查询 "<<endl; cout<<" 4.按书名和作者查询 "<<endl; cout<<" 5.退出 "<<endl; cout<<" 请选择功能,输入指令 "<<endl; int cho3; do { string Name,AutHor,Kind; cin>>cho3; switch(cho3) { case 1: cout<<"请输入书名!"<<endl; cin>>Name; mybook.SearchBookPosWithname(Name); //按书名查询 break; case 2: cout<<"请输入作者!"<<endl; cin>>AutHor; mybook.SearchBookPosWithAuthor(AutHor);//按作者查询 break; case 3: cout<<"请输入种类!"<<endl; cin>>Kind; mybook.SearchBookPosWithKind(Kind);//按种类查询 break; case 4: cout<<"请输入作者和书名!"<<endl; cin>>AutHor>>Name; mybook.SearchBookPosWithAB(AutHor,Name);//按作者和书名查询 break; } } while(cho3<=4&&cho3>=1); break; } case 3: //还书 { string bookname,bookauthor; cout<<"请输入要还的书名和作者:"<<endl; cin>>bookname>>bookauthor; mybook.BackBook(bookname,bookauthor,k); break; } case 4://预约图书 { string bookname,author; cout<<"请输入你要预约书的书名和作者:"<<endl; cin>>bookname>>author; mybook.Appointment(bookname,author);//预约图书 break; } case 5://查阅个人信息 { //mybook.SortStudent(1); cout<<setw(8)<<"读者号"<<setw(8)<<"姓名"<<setw(14)<<"历史借阅次数"<<setw(18)<<"现在借阅书个数"<<setw(14)<<"上次还书时间"<<endl; mybook.PrintStudent(k); mybook.SortStudent(0); printf("你在所有读者中借阅量排名第 %d 位\n",mybook.SerchStudent(k)+1); printf("所有读者中的最高借阅量是:%d次\n",mybook.readsum(1)); mybook.SortStudent(1); cout<<"-------------------------------------------------------------------------------------------------------------------"<<endl; break; } } } while (cho<6); break; } } mybook.Save(); mybook.Save1(); return 0;}
测试文件如下:
- C语言图书管理系统
- object c 图书管理系统
- 图书管理系统 C语言
- C语言图书管理系统
- 【C语言】图书管理系统
- 图书管理系统(C语言)
- C语言图书管理系统
- C语言程序设计-图书管理系统
- C语言课程设计—图书管理系统
- 图书管理系统 C 语言 源代码
- c简单的图书管理系统
- (C语言课程设计)图书管理系统
- C语言课程设计—图书管理系统
- 求图书管理系统C源代码
- C语言 图书管理系统设计
- C语言基础上的图书管理系统
- 图书管理系统C语言课程设计2
- 图书管理系统(C语言)
- 归并排序算法
- Android 项目选择SDK解释
- UIDatePicker的运用
- Linux下10个ps命令的基本例子
- 卷纸快速抽调纸筒
- 图书管理系统c++
- 我的文件夹下面有汉字的路径,matlab 不识别
- 快速排序算法
- poj3169(差分约束)
- 深入理解Android之Gradle
- 话说十年
- Leetcode Find Minimum in Rotated Sorted Array II
- 堆排序算法
- OC学习_第二天 实例变量可⻅度、⽅法