程序设计综合课程设计报告-图书馆管理系统内容摘要:

ile()。 } void add_reader(Reader r) //添加读者用户函数 { if(length=50) {cout对不起 ,注册人数已满 !\n。 return。 } readers[length].copy(r)。 //调 用读者结构体 copy 函数 length++。 } int search(char *rn) //按姓名查找读者函数 { for(int i=0。 ilength。 i++) if(strcmp(readers[i].get_rname(),rn)==0)//判断是否相等 return i。 return 1。 程序设计综合课程设计 21 } bool revise(Reader reader,int i) //修改读者资料函数 { readers[i].copy(reader)。 //调用读者结构体 cpoy 函数 return true。 } void delete_reader(int index) //删除读者函数 { for(int i=index。 ilength1。 i++) readers[i].copy(readers[i+1])。 //用后面的地址覆盖前面的地址 length。 } bool log_reader(Reader r) //登 录时判断读者用户是否存在函数 { for(int i=0。 ilength。 i++) if(strcmp(readers[i].get_rname(),())==0) return true。 return false。 } void reg_reader() //注册用户函数 { char n[10]。 //姓名 name char c[10]。 //班级 class char t[10]。 //电话 tel Reader reader。 cout\n\t 请输入您的姓名 :。 cinn。 cout\n\t 请输入您的所在班级 :。 cinc。 cout\n\t 请输入您的联系电话 :。 程序设计综合课程设计 22 cint。 (n)。 //调用读者结构体设置读者姓名函数 (c)。 //调用读者结构体设置读者班级 函数 (t)。 //调用读者结构体设置联系电话函数 add_reader(reader)。 //调用读者结构体添加读者函数 cout\n\t注册成功 !。 } void show_reader() //不带参的显示读者信息函数 { cout\n **********************读 ****者 ****信 ****息 ****列 ****表 **********************\n\n。 cout姓名 \t\t\t班级 \t\t\t 电话 \n。 for(int i=0。 ilength。 i++) { coutreaders[i].get_rname()。 cout\t\t\treaders[i].get_rclass()。 cout\t\t\treaders[i].get_rtel()\n。 } } void show_reader(int i) //带参的显示读者信息函数 { cout\n **********************读 ****者 ****信 ****息 ****列 ****表 **********************\n\n。 cout姓名 \t\t\t班级 \t\t\t电话 \n。 coutreaders[i].get_rname()。 cout\t\t\treaders[i].get_rclass()。 cout\t\t\treaders[i].get_rtel()\n。 } }。 程序设计综合课程设计 23 //********书籍结构体 ,用于存放书籍基本信息 ******** class Book { private: char bnum[10]。 //书号 char bname[20]。 //书名 char bauthor[10]。 //作者 char rname[10]。 //借阅人 public: int tag。 //状态标记判断指标 (已借 /在架 ) Book() //构造函数初始化信息 {strcpy(bnum,)。 strcpy(bname,)。 strcpy(bauthor,)。 strcpy(rname,)。 tag=0。 } void set_bnum(char *no) //设置书号 {strcpy(bnum,no)。 } //把字符串 no 中的字符复制到字符串bnum 中 char *get_bnum() //获得书号 { return bnum。 } //返回值为 bnum void set_bname(char *n) //设置书名 {strcpy(bname,n)。 } char *get_bname() //获得书名 {return bname。 } void set_bauthor(char *a) //设置作者 {strcpy(bauthor,a)。 } char * get_bauthor() //获得作者姓名 {return bauthor。 } void set_tag(int t) //状态设置 {tag=t。 } void set_rname(char *rn) //设置借阅人 {strcpy(rname,rn)。 } 程序设计综合课程设计 24 char *get_rname() //获得借阅人姓名 {return rname。 } void show_tag() //显示图书状态 { if(tag==1) {cout已借。 } else {cout在架。 } } void copy(Book m) //Book 结构体 copy 函数 { strcpy(bnum,())。 //将获得书号函数里的返回值里的字符复制到 bnum strcpy(bname,())。 strcpy(bauthor,())。 tag=0。 } }。 //**********书籍管理结构体 ,实现管理书籍功能 ********** class BookManage { private: Book books[100]。 //定义 Book 书籍结构体数组对象 ,最大容量 100本 int length。 void saveFile() //保存书籍文件 { ofstream fwrite。 //定义输出文件流 ofstream 结构体对象 fwrite if(!fwrite) {cout文件保存失败 !\n。 exit(1)。 } 程序设计综合课程设计 25 (BookFile,ios::binary)。 //使文件流与文件建立关联 ,以二进制方式打开 ((char *)books,length*sizeof(Book))。 //计算并返回所占字节数 ()。 //关闭磁盘文件 } void readFile() //读取书籍文件 { ifstream fread。 //定义输入文件流对象 fread length=0。 if(!fread) {cout文件读取失败 !endl。 exit(1)。 } Book temp。 //定义书籍结构体临时对象 temp int i=0。 (BookFile ,ios::binary)。 //使文件流与文件建立关联 ,以二进制方式打开 while((((char *)amp。 books[i],sizeof(Book)))) i++。 //每读完一次 ,指针后移一位 ,直到不能读出正确结果为止 length=i。 ()。 } public: BookManage() //构造函数 ,读取磁盘文件 { length=0。 //从头读起 ,计数 ,最大 100 readFile()。 //调用读取文件函数 } ~BookManage() //析构函数 ,保存磁盘文件 { 程序设计综合课程设计 26 saveFile()。 //调用保存文件函数 } bool add(Book book) //添加图书资料 { if(length=100) { cout对不起 ,储存已满 ,您无法继续添加。 \n。 return 1。 } else { books[length].copy(book)。 //调用书籍结构体 copy 函数 length++。 return (length1)。 } } int bnu_search(char *bnu) //按书号查找书籍 { for(int i=0。 ilength。 i++) if(strcmp(books[i].get_bnum(),bnu)==0) //字符串比较 ,判断是否相等 return i。 return 1。 } int bna_search(char *bna) //按书名查找书籍 { for(int i=0。 ilength。 i++) if(strcmp(books[i].get_bname(),bna)==0) //判断 return i。 return 1。 程序设计综合课程设计 27 } int bau_search(char *bau) //按作者查找书籍 { for(int i=0。 ilength。 i++) if(strcmp(books[i].get_bauthor(),bau)==0)//判断 return i。 return 1。 } int rn_search(char *rn) //按借阅人查找书籍 { for(int i=0。 ilength。 i++) if(strcmp(books[i].get_rname(),rn)==0)//判断 return i。 return 1。 } void revise(Book book,int i)//带参的修改书籍函数 {books[i].copy(book)。 } //调用 Book 结构体 copy 函数 void。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。