c++课设图书管理系统
更新时间:2024-01-12 00:44:01 阅读量: 教育文库 文档下载
南京航空航天大学
《面向对象程序设计语言》课程设计报告
图 书 管 理 系 统
学号: 姓名: 日期:
目 录
一.需求分析……………………………………………….2
二.程序主要功能………………………………………….2
三.程序运行平台………………………………………….2
四.系统功能框架图……………………………………….3
五.程序类说明…………………………………………….4
六.模块分析……………………………………………….6
七.比较有特色的地方…………………………………….7
八.存在的不足与对策…………………………………….11
九.编程体会……………………………………………….12
十.程序源代码…………………………………………….13
一. 需求分析
本系统旨在实现一个小型的图书管理系统,对于一个小型的图书馆或藏书室来说,实施本系统不仅可以减少工作人员数量,降低成本,而且可以大大提高工作效率,降低工作强度,方便读者借书查书及办理各种手续,更方便工作人员对图书进行更有效的管理。
程序主要实现读者管理、图书基本信息及库存管理、图书借还管理以及一些辅助功能等。
(1) 以菜单的方式工作
(2) 图书、读者的基本信息的新增 (3) 图书、读者的基本信息的修改 (4) 图书、读者记录的删除 (5) 图书的借阅,归还
(6) 查询图书、读者信息及借阅状态
二. 程序主要功能
该程序的主要功能有:
? 读者功能
可进行增加读者、读者信息修改、注销读者、读者查询、显示读者信息、显示所有读者信息等操作。 ? 图书信息管理
可以进行查询图书、增加图书、删除图书信息、图书信息修改、显示全部图书信
息等操作。
其中添加内容包括:书名、ISBN编号、作者、出版商、出版日期、方便读者查看;
? 图书借还功能
应该说这是整个系统最主要的功能,借还时要输入编号已及读者编号 ? 帮助
一个简单的操作指南,指导用户下一步该如何操作。 ? 退出系统
在运行时将从文件载入信息。
运行程序后每一步都会有详细的提示,操作简便,大多数地方都考虑到防止用户出现误操作的情况,以提高程序的健壮性,可以放心使用!
三.程序运行平台
该程序是用VC++6.0制做的,使用Microsoft Visual C++ 6.0运行该程序,具体操作是:打开Microsoft Visual C++ 6.0,菜单栏里点文件→打开工作区→找到“图书管理系统.dsw”这个文件→打开,或者在资源管理器中双击该文件,此时,VC++6.0会自动打开,并载入该系统相关资源,点击Run命令菜单或者或用快捷键Ctrl+F5运行该程序。
四.系统功能框架图
图书管理系统
图书信息管理
读者信息管借书还书帮助统计查询/
.新增图书信息 .删除图书信息 .显示图书信息
.新增读者信息 .修改读者信息 .删除图书信息 .显示图书信息 .帮助说明 .返回上一层
返回上一层还书借书输入图书编号及读者编号.
五.程序类说明
①有关图书信息的类
struct BookInfo {
char BookCode[6]; char BookName[30]; char BookAuthor[20]; char BookPress[50]; char BookPublicationDate[8]; char ISBN[8]; char BookStatus; char ReaderCode[6]; char IsAvailable; };
void AddBookInfo(); void ModifyBookInfo(); void DelBookInfo(); int CountBook(); int IsBookExist(char *); void ShowBookInfo(); void ShowReaderInfo(); int IsBorrow(char *); int IsBorrowed(char *); //图书编号 //图书名字 //作者名 //出版社 //出版日期 //图书isbn号
//图书借阅状态 ‘0’未借出 ‘1’借出 //读者编号 编号为‘0’为未借阅 //图书是否有效,‘0’无效,‘1’,有效 //增加图书 //修改图书 //删除图书 //获得图书记录数 //判断图书(编号)是否存在 //显示图书清单 //显示读者清单 //判断是否在借 //统计在借书的总数
void BookBorrow(); void BookReturn(); //借书手续 //还书手续
②有关读者信息的类
struct ReaderInfo {
char ReaderCode[6]; char ReaderName[20]; char Sex[3]; char IsAvailable; };
void AddReaderInfo(); void ModifyReaderInfo(); void DelReaderInfo(); void ShowReaderInfo(); int CountReader();
//读者编号 //读者姓名 //读者性别
//读者是否有效,‘0’无效,‘1,’有效 //增加读者 //修改读者 //删除读者
//显示读者清单 //获得读者记录数
六.模块分析
1、读者信息:
下设子菜单,包括: a.新增读者 b.修改读者 c.删除读者 d.读者查询 e.显示读者信息 f.返回上一层
(1)读者编号:读者唯一的识别方式,所以不可以重复,长度小于六个字符。 (2)读者姓名:长度小于20个字符。 (3)读者性别:长度小于三个字符。 2、书库信息:
该部分内容最丰富,下设子菜单,包括 a.新书入库 b.删除 c.修改
d.返回上一层
链表的思路也跟读者信息一样,从头结点开始建,每当新增加一个类节点时,就把新增结点加到链表尾部,再让其中的next指向NULL空,这里没有对链表进行排序。
有关菜单的制作,就是先显示菜单,让用户输入选择,进行输入有效性检查,然后用switch来对不同的选择调用类中不同的函数。 3、借书/还书:
借书需要判断的条件不只是判断图书是否存在、图书是否借出、读者是否存在。
还书需要提供读者编号再判断图书是否已经借出。
十.程序源代码
#include
#define BOOKLEN sizeof(struct BookInfo)
#define READERLEN sizeof(struct ReaderInfo) //函数声明
void Welcome(); int MainMenu(); void SubMenu1(); int CreatSubMenu1(); void SubMenu2(); int CreatSubMenu2(); void SubMenu3(); int CreatSubMenu3(); void SubMenu(); int CreatSubMenu4(); void AddBookInfo(); //增加图书 void ModifyBookInfo(); //修改图书 void DelBookInfo(); //删除图书 int CountBook(); //获得图书记录数 int CountReader(); //获得读者记录数 int IsBookExist(char *); //判断图书(编号)是否存在 int IsReaderExist(char *); //判断读者(编号)是否存在 void AddReaderInfo(); //增加读者 void ModifyReaderInfo(); //修改读者 void DelReaderInfo(); //删除读者 void ShowBookInfo(); //显示图书清单 void ShowReaderInfo(); //显示读者清单 int IsBorrow(char *); //判断是否在借 int IsBorrowed(char *); //统计在借书的总数 void BookBorrow(); //借书手续 void BookReturn(); //还书手续 void SearchBook(); //图书查询 void SearchReader(); //读者查询 int GetPosition(char *,struct BookInfo*); //修改图书信息,获得修改记录的位置
int GetRdPosition(char *,struct ReaderInfo*); //修改读者信息,获得修改记录的位置 void ShowAReader(char *); //显示指定编号的读者的信息 int InvalidBookPosition(); //查询第一条无效图书信息 int InvalidReaderPosition(); //查询第一条无效读者信息 //图书结构定义 struct BookInfo {
char BookCode[6]; //图书编号 char BookName[30]; //图书名字 char BookAuthor[20]; //作者名 char BookPress[50]; //出版社 char BookPublicationDate[8]; //出版日期 char ISBN[8]; //图书isbn号 char BookStatus; //图书借阅状态 ‘0’未借出 ‘1’借出 char ReaderCode[6]; //读者编号 编号为‘0’为未借阅 char IsAvailable; //图书是否有效,‘0’无效,‘1’,有效 };
//读者结构体 struct ReaderInfo { char ReaderCode[6]; //读者编号 char ReaderName[20]; //读者姓名 char Sex[3]; //读者性别 char IsAvailable; //读者是否有效,‘0’无效,‘1,’有效 };
void Welcome() { cout<<\ cout<<\图书信息借阅系统*******************\ cout<<\ cout<<\现有图书\册\读者\人\}
int MainMenu() { int m; while(1) { cout<<\欢迎使用图书管理系统***********************\ cout<<\
cout<<\图书信息管理***************************\ cout<<\读者信息管理***************************\ cout<<\借书 还书****************************\ cout<<\统计 查询****************************\ cout<<\退出 系统*****************************\ cout<<\请选择0-4:\ cin>>m; if(m>=0&&m<=4) break; else cout<<\选择错误,请在0-4中选择\ } return m; }
int CreatSubMenu1() { int m; while(1) { cout<<\图书信息管理*****************************\ cout<<\; cout<<\新增 图书******************************\ cout<<\修改 图书******************************\ cout<<\删除 图书******************************\ cout<<\返回上一层********************************\ cout<<\请选择0-3:\ cin>>m; if(m>=0&&m<=3) break; else cout<<\选择错误,请在0-3中选择\ }
return m; }
int CreatSubMenu2() { int m; while(1) { cout<<\读者信息管理*****************************\ cout<<\; cout<<\新增 读者******************************\ cout<<\修改 读者******************************\ cout<<\删除 读者******************************\ cout<<\返回上一层********************************\ cout<<\请选择0-3:\ cin>>m; cin.ignore(); if(m>=0&&m<=3) break; else cout<<\选择错误,请在0-3中选择\ } return m; }
int CreatSubMenu3() { int m; while(1) { cout<<\图书流通*****************************\ cout<<\; cout<<\借书******************************\ cout<<\还书******************************\ cout<<\返回上一层********************************\
cout<<\请选择0-2:\ cin>>m; if(m>=0&&m<=2) break; else cout<<\选择错误,请在0-2中选择\ } return m; }
int CreatSubMenu4() { int m; while(1) { cout<<\统计查询****************************\ cout<<\ cout<<\图书清单***************************\ cout<<\读者清单***************************\ cout<<\图书查询****************************\ cout<<\读者查询****************************\ cout<<\返回上层*****************************\ cout<<\请选择0-4:\ cin>>m; if(m>=0&&m<=4) break; else cout<<\选择错误,请在0-4中选择\ } return m; }
int CountBook() //统计已有图书数量(有效图书) { struct BookInfo BookTemp; FILE *fp; int count=0; if((fp=fopen(\ return 0;
else { while(fread(&BookTemp,BOOKLEN,1,fp)) if(BookTemp.IsAvailable=='1') count++; fclose(fp); return count; } }
int CountReader() //统计已有读者人数(有效人数) { struct ReaderInfo ReaderTemp; FILE *fp; int count =0; if((fp=fopen(\ return 0; else { while(fread(&ReaderTemp,READERLEN,1,fp)) if(ReaderTemp.IsAvailable=='1') count++; fclose(fp); return count; } }
void SubMenu1() //图书信息管理 { int MenuId; while(1) { MenuId=CreatSubMenu1(); if(MenuId==0) break; switch(MenuId) { case 1:AddBookInfo();break; case 2:ModifyBookInfo();break; case 3:DelBookInfo();break; case 0:MainMenu();break; } } }
void SubMenu2() //读者信息管理
{ int MenuId; while(1) { MenuId=CreatSubMenu2(); if(MenuId==0) break; switch(MenuId) { case 1:AddReaderInfo();break; case 2:ModifyReaderInfo();break; case 3:DelReaderInfo();break; case 0:MainMenu();break; } } }
void SubMenu3() //图书借阅 { int MenuId; while(1) { MenuId=CreatSubMenu3(); if(MenuId==0) break; switch(MenuId) { case 1:BookBorrow();break; case 2:BookReturn();break; case 0:MainMenu();break; } } }
void SubMenu4() //信息查询 { int MenuId; while(1) { MenuId=CreatSubMenu4(); if(MenuId==0) break; switch(MenuId) { case 1:ShowBookInfo();break;
case 2:ShowReaderInfo();break; case 3:SearchReader();break; case 4:SearchBook();break; case 0:MainMenu();break; } } }
void AddBookInfo() //新增图书记录 { struct BookInfo MyBook; cout<<\请输入图书编号\ cin>>MyBook.BookCode; while(IsBookExist(MyBook.BookCode)) { cout<<\图书已存在,请重新输入\ cin>>MyBook.BookCode; } cout<<\请输入书名\ cin>>MyBook.BookName; cout<<\请输入作者\ cin>>MyBook.BookAuthor; cout<<\请输入出版商\ cin>>MyBook.BookPress; cout<<\请输入isbn号\ cin>>MyBook.ISBN; cout<<\请输入出版日期\ cin>>MyBook.BookPublicationDate; MyBook.BookStatus='0'; strcpy(MyBook.ReaderCode,\ MyBook.IsAvailable='1'; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } int SetPs; //查询写入文件位置 SetPs=InvalidBookPosition(); if(SetPs==-1) //图书记录都是有效的,文件指针定义在文件尾 fseek(fp,0,SEEK_END); else fseek(fp,(long)BOOKLEN*SetPs,SEEK_SET); //重新定位写入位置 fwrite(&MyBook,BOOKLEN,1,fp); fclose(fp);
cout<<\新增图书成功,现有图书\册\按回车键继续添加\ cin.ignore(); getchar(); }
void ModifyBookInfo() //修改图书 { struct BookInfo MyBook; char ModifyBookCode[6]; if(CountBook==0) { cout<<\无法修改\ return; } cout<<\请输入要修改的图书编号\ cin>>ModifyBookCode; if(!IsBookExist(ModifyBookCode)) { cout<<\图书不存在\ return; } int ModiPosition=0; ModiPosition=GetPosition(ModifyBookCode,&MyBook); cout<<\请输入新书名\ cin>>MyBook.BookName; cout<<\请输入新作者\ cin>>MyBook.BookName; cout<<\请输入新出版商\ cin>>MyBook.ISBN; cout<<\请输入新的出版日期\ cin>>MyBook.BookPublicationDate; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } fseek(fp,(long)BOOKLEN*ModiPosition,SEEK_SET); fwrite(&MyBook,BOOKLEN,1,fp); fclose(fp); cout<<\修改成功,按回车键继续\ cin.ignore(); getchar();
}
void DelBookInfo() //删除图书 { char DelBookCode[6]; if(CountBook==0) { cout<<\无法删除\ return; } cout<<\请输入要删除的图书编号\ cin>>DelBookCode; if(!IsBookExist(DelBookCode)) { cout<<\该书不存在\ return; } if(IsBorrow(DelBookCode)) //书已经借出,无法删除 { cout<<\书已经借出,无法删除\ return; } FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct BookInfo MyBook; int ModiPosition=0; ModiPosition=GetPosition(DelBookCode,&MyBook); MyBook.IsAvailable='0'; fseek(fp,(long)BOOKLEN*ModiPosition,SEEK_SET); fwrite(&MyBook,BOOKLEN,1,fp); fclose(fp); cout<<\删除图书成功,现有图书\册\ }
void BookBorrow() //图书借阅 { char BookCode[6]; char ReaderCode[6]; if(CountBook()==0||CountReader()==0) { cout<<\无法借书\
return; } cout<<\请输入图书编号\ cin>>BookCode; if(!IsBookExist(BookCode)) { cout<<\借书失败,该书不存在\ return; } if(IsBorrow(BookCode)) { cout<<\书已经借出,借书失败\ return; } cout<<\请输入读者编号\ cin>>ReaderCode; if(!IsReaderExist(ReaderCode)) { cout<<\读者不存在,借书失败\ return; } FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } int Position=0; struct BookInfo MyBook; Position=GetPosition(BookCode,&MyBook); MyBook.BookStatus='1'; strcpy(MyBook.ReaderCode,ReaderCode); fseek(fp,(long)BOOKLEN*Position,SEEK_SET); fwrite(&MyBook,BOOKLEN,1,fp); fclose(fp); cout<<\借书成功,按回车键继续\ cin.ignore(); getchar(); }
void BookReturn() //还书 { char BookCode[6]; if(CountBook()==0||CountReader()==0) {
cout<<\无法还书\ return; } cout<<\请输入图书编号\ cin>>BookCode; if(!IsBookExist(BookCode)) { cout<<\还书失败,该书不存在\ return; } if(!IsBorrow(BookCode)) { cout<<\书未借出,还书失败\ return; } FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } int Position=0; struct BookInfo MyBook; Position=GetPosition(BookCode,&MyBook); MyBook.BookStatus='0'; strcpy(MyBook.ReaderCode,\ fseek(fp,(long)BOOKLEN*Position,SEEK_SET); fwrite(&MyBook,BOOKLEN,1,fp); fclose(fp); cout<<\还书成功,按回车键继续\ cin.ignore(); getchar(); }
void ShowBookInfo() //显示所有图书信息 { struct BookInfo MyBookInfo; int booknum=CountBook(); if(booknum==0) { cout<<\没有图书信息\ return; } FILE *fp; if((fp=fopen(\
{ cout<<\文件打开错误\ exit(0); } while(fread(&MyBookInfo,BOOKLEN,1,fp)) cout<<\编号\书名\作者\ < void SearchBook() //图书查询 { char BookCode[6]; if(CountBook()==0) { cout<<\图书不存在\ return; } cout<<\请输入图书编号\ cin>>BookCode; if(!IsBookExist(BookCode)) { cout<<\图书不存在\ return; } struct BookInfo MyBook; GetPosition(BookCode,&MyBook); cout<<\编号\书名\作者\ < void SearchReader() //读者查询 { char ReaderCode[6]; if(CountReader==0) { cout<<\读者不存在\ return; } cout<<\请输入读者编号\ cin>>ReaderCode; if(!IsReaderExist(ReaderCode)) { cout<<\读者不存在\ return; } ShowAReader(ReaderCode); int BorrowCount=IsBorrowed(ReaderCode); if(BorrowCount==0) cout<<\读者未借阅该书\ else { cout<<\读者借阅了\册\ FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct BookInfo MyBook; int i=0; while(fread(&MyBook,BOOKLEN,1,fp)) { if(strcmp(MyBook.ReaderCode,ReaderCode)==0) { i++; cout< void ShowAReader(char *ReaderCode) //显示指定编号的读者详细信息 { FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct ReaderInfo MyReader; while(fread(&MyReader,READERLEN,1,fp)==NULL) if(strcmp(MyReader.ReaderCode,ReaderCode)==0) break; cout<<\借阅读者\ fclose(fp); } int InvalidBookPosition() //查询第一条无效图书记录在文件中的位置 { int InvalidPs=-1; int count=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct BookInfo MyBook; while(fread(&MyBook,BOOKLEN,1,fp)) { if(MyBook.IsAvailable=='0') { InvalidPs=count; break; } count++; } fclose(fp); return InvalidPs; } int IsBookExist(char *ChkBookCode) //查询指定图书在文件中是否存在 { int IsExist=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct BookInfo MyBook; while(fread(&MyBook,BOOKLEN,1,fp)) { if(strcmp(MyBook.BookCode,ChkBookCode)==0&&MyBook.IsAvailable) { IsExist=1; break; } } fclose(fp); return IsExist; } int IsBorrow(char *BookCode) //判断图书是否已经借出 ,在借返回 1,否则返回 0 { struct BookInfo temp; int IsbBorrow =0; FILE *fp; if((fp=fopen(\ { while(fread(&temp,BOOKLEN,1,fp)) if(strcmp(temp.BookCode,BookCode)==0&&temp.BookStatus=='1') { IsbBorrow=1; break; } } fclose(fp); return IsbBorrow; } int GetPosition(char *ModiCode,struct BookInfo *MyBook) //获得待修改图书的位置 { int count=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } while(fread(MyBook,BOOKLEN,1,fp)) { if(strcmp(MyBook->BookCode,ModiCode)==0&&MyBook->IsAvailable=='1') break; count++; } fclose(fp); return count; } void AddReaderInfo() //增加读者 { struct ReaderInfo MyReader; cout<<\读者编号\ cin>>MyReader.ReaderCode; while(IsReaderExist(MyReader.ReaderCode)) { cout<<\读者已存在,请重新输入\ cin>>MyReader.ReaderCode; } cout<<\读者姓名\ cin>>MyReader.ReaderName; cout<<\读者性别\ cin>>MyReader.Sex; MyReader.IsAvailable='1'; //新增读者 FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } int SetPs; SetPs=InvalidReaderPosition(); if(SetPs=-1) fseek(fp,0,SEEK_END); else fseek(fp,(long)READERLEN*SetPs,SEEK_SET); fwrite(&MyReader,READERLEN,1,fp); fclose(fp); cout<<\添加读者成功,按回车键继续添加,现有读者\人\ cin.ignore(); getchar(); } void ModifyReaderInfo() //修改读者信息 { struct ReaderInfo MyReader; char ModifyCode[6]; if(CountReader()==0) { cout<<\无法修改\ return; } cout<<\请输入要修改的编号\ cin>>ModifyCode; if(!IsReaderExist(ModifyCode)) { cout<<\读者不存在\ return; } int ModiPosition=0; ModiPosition=GetRdPosition(ModifyCode,&MyReader); cout<<\读者姓名\ cin>>MyReader.ReaderName; cout<<\读者性别\ cin>>MyReader.Sex; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } fseek(fp,(long)READERLEN*ModiPosition,SEEK_SET); fwrite(&MyReader,READERLEN,1,fp); fclose(fp); cout<<\修改读者成功,按回车键继续\ cin.ignore(); getchar(); } void DelReaderInfo() //删除读者信息 { char DelCode[6]; if(CountReader()==0) { cout<<\无法删除\ return; } cout<<\请输入要删除的读者编号\ cin>>DelCode; if(!IsReaderExist(DelCode)) { cout<<\读者不存在,无法删除\ return; } int BorrowedNum; BorrowedNum=IsBorrowed(DelCode); //如果读者有书还未还,那不可以删除读者 if(BorrowedNum) { cout<<\不可以删除,有书还未还\ return; } FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct ReaderInfo MyReader; int ModiPosition=0; ModiPosition=GetRdPosition(DelCode,&MyReader); MyReader.IsAvailable='0'; fseek(fp,(long)READERLEN*ModiPosition,SEEK_SET); fwrite(&MyReader,READERLEN,1,fp); fclose(fp); cout<<\删除成功,现有读者\人\} int IsBorrowed(char *ReaderCode) //判断是否有书未还 { struct BookInfo temp; int BorrowedNum=0; FILE *fp; if((fp=fopen(\ while(fread(&temp,BOOKLEN,1,fp)) if(strcmp(temp.ReaderCode,ReaderCode)==0&&temp.BookStatus=='1') BorrowedNum++; fclose(fp); return BorrowedNum; } int GetRdPosition(char *ModiCode,struct ReaderInfo *MyReader) //获得待修改读者记录的位置 { int count=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } while(fread(MyReader,READERLEN,1,fp)) { if(strcmp(MyReader->ReaderCode,ModiCode)==0&&MyReader->IsAvailable=='1') break; count++; } fclose(fp); return count; } int IsReaderExist(char *ChkCode) //查询读者是否存在 { int IsExist=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开错误\ exit(0); } struct ReaderInfo MyReader; while(fread(&MyReader,READERLEN,1,fp)) { if(strcmp(MyReader.ReaderCode,ChkCode)==0&&MyReader.IsAvailable=='1') { IsExist=1; break; } } fclose(fp); return IsExist; } int InvalidReaderPosition() //查询第一条无效读者的位置 { int InvalidPs=-1; int count=0; FILE *fp; if((fp=fopen(\ { cout<<\文件打开失败\ exit(0); } struct ReaderInfo MyReader; while(fread(&MyReader,READERLEN,1,fp)) { if(MyReader.IsAvailable=='0') { InvalidPs=count; break; } count++; } fclose(fp); return InvalidPs; } void ShowReaderInfo() //显示所有读者信息 { struct ReaderInfo MyReader; int ReaderNum=CountReader(); if(ReaderNum==0) { cout<<\没有读者信息\ return; } FILE *fp; if((fp=fopen(\ { cout<<\文件打开失败\ exit(0); } while(fread(&MyReader,READERLEN,1,fp)) { if(MyReader.IsAvailable=='1') cout< int main() { int MenuId; Welcome(); while(1) { MenuId=MainMenu(); if(MenuId==0) { cout<<\程序运行结束!\ break; } switch(MenuId) { case 1: SubMenu1();break; case 2: SubMenu2();break; case 3: SubMenu3();break; case 4: SubMenu4();break; } } return 0; }
正在阅读:
c++课设图书管理系统01-12
高等教育学复习要点05-21
初三教师节手抄报内容04-08
2018年创新思维高考地理二轮复习专题限时训练:第二部分 技能一03-30
最新小学家长学校教案305-25
10遗传物质的改变-染色体畸变08-30
1Android笔试总结(答案全)04-08
工程化学基础习题解答重点10-04
2016年科级党员干部学习测试题库01-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- c++
- 管理系统
- 图书
- 室内设计法则 - 图文
- 武大精品课程《古代汉语》习题及答案
- 《1.3有理数计算题分类及混合运算》
- 消化考博真题
- 工程造价毕业设计编制说明书
- 分数乘除法两步应用题
- 施工员(市政工程)综合继续教育考试2016
- 小学数学教研组活动记录(内容)
- 县直机关工委2018年工作总结及2019年工作计划范文
- 2018年交通运输部公路养护企业资质标准(初稿)
- 大学生经典社会实践活动申报书模板
- 艺术留学如何成为纽约大学的一员 - 图文
- 2019年二级建造师 机电实务 侯姥姥课堂学习笔记 考前点题 掌握必过
- 大学生心理健康(大纲)
- 《中国结教学设计》
- 体验营销在电子商务网站中的作用 docx
- 雅思写作备考之犯罪类考点解读 - 雅思写作
- 广东省统表2010
- 2017太傻早起鸟:乔治华盛顿大学CS专业录取
- 河南省新型农村合作医疗大病保险实施方案