您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 《C++语言》课程设计报告-图书信息管理系统
《C++语言》课程设计报告题目:图书信息管理系统学生姓名:翟艳秋学号:138325039专业班级:13Z网络指导教师:江江苏苏师师范范大大学学计计算算机机科科学学与与技技术术学学院院高级语言程序设计课程设计任务书姓名翟艳秋学号138325039班级13Z网络课程名称高级语言程序设计课程设计课程性质实践设计时间2014年5月1日——2014年5月8日设计名称图书管理系统设计要求图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:(1)图书信息录入功能(图书信息用文件保存)(2)图书信息浏览功能(3)查询和排序功能:(至少一种查询方式).按书名查询.按作者名查询(4)图书信息的删除与修改(可选项)v设计思路与设计过程计划与进度任课教师意见说明目录1.需求分析.......................................................................................................42.概要设计………………………………………………………………….53.详细设计.......................................................................................................84.调试分析.....................................................................................................185.总结.............................................................................................................216.参考文献.....................................................................................................217.源程序代码................................................221.需求分析题目:图书信息管理系统设计1)信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格,试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作图书信息录入功能(图书信息用文件保存)--输入图书信息浏览功能--输出查询和排序功能:(至少一种查询方式)--算法1.按编号查找2.按书名查询3.按作者名查询4.按出版社查找图书信息的删除与修改(可选项)2)需求说明:图书信息包括:编号、书名、作者名、分类号、出版单位、出版时间、价格等,并且要求编号不重复;录入的图书信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;对图书信息查询应能够分别按书名及作者名两种方式进行,要求能返回所有符合条件的读者的信息;对读者信息的修改应逐个地进行,一个读者信息的更改不应影响其他的读者记录;系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理。2.概要设计要进入图书信息管理系统,就要先登录,每个用户都有三次登录机会,若登录失败三次,系统就自动退出,登录成功后方可进行操作。登录后你可以有选择性的操作,可以进行图书的维护、读者的维护、借书操作、还书操作或是退出系统。进入图书信息后,可以选择新增图书、更改图书、删除图书、查找图书、显示图书、全部删除或者是返回。进入读者信息后也是一样,可进行新增、更改、删除、查找、显示、全部删除或者是返回。进入借书操作后,要借书的话就输入读者编号加想要借的图书编号就可完成借书。还书操作也一样,输入还书读者编号加图书编号即可完成还书操作。图1.系统功能图图2.图书维护功能图图书信息管理系统登录:1退出:01图书信息2读者信息3借阅图书0退出4归还图书图书信息1新增2更改3删除4查找5显示6全删0返回先登录才能进行操作!!!读者信息项目图3.读者维护功能图借书项目图4.借阅图书功能图读者信息1新增2更改3删除4查找5显示6全删0返回借阅图书输入读者编号:输入图书编号:借书成功还书项目图5.归还图书功能图3.详细设计1.头文件:2.控制图书、读者和每位读者的借书数量。归还图书输入读者编号:输入图书编号:还书成功#includeiostream.h#includeconio.h//控制台数据输入输出的函数#includefstream.h//文件流#includeiomanip.h//控制数据输出格式#includestring.hconstintMaxr=100;//最多的读者数constintMaxb=100;//最多的图书数constintMaxbor=5;//每位读者最多借的书3.定义一个BDatabase(图书库)类,实现对图书的维护,查找,删除等功能。定义一个构造函数BDatabase(),将写入到book.txt的数据读到book[]中。BDatabase()定义一个void类型的clear()函数,voidclear()用于删除全部图书数据。classBDatabase{Bookb;top=-1;fstreamfile(book.txt,ios::in);while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;book[top]=b;}file.close();}{chari;cout确定全部删除吗?Y/N?endl;cini;if(i=='y'||i=='Y')top=-1;}定义一个intaddbook(intn,char*na,char*aa,char*fe,char*ca,inttime,doubleprice,intoa)函数,来增加图书。定义四个指针函数,用于查找图书:a.按编号查找b.按书名查找c.按作者名查找d.按出版社查找按编号查找图书{Book*p=query1(n);if(NULL==p){top++;book[top].addbook(n,na,aa,fe,ca,time,price,oa);return1;}return0;}Book*query1(intbookid){for(inti=0;i=top;i++)if(book[i].getno()==bookid&&book[i].gettag()==0){return&book[i];}returnNULL;}r++;}if(r==0)cout找不到该书!endl;returnNULL;}按书名查找按作者名查找按出版社查找Book*query2(chara[]){Book*e;intr=0;for(inti=0;i=top;i++)if(strcmp(book[i].getname(),a)==0&&book[i].gettag()==0){if(r==0)coutsetw(3)编号setw(10)书名setw(10)作者setw(10)分类号setw(15)出版社setw(10)出版时间setw(10)图书价格setw(10)存量endl;e=&book[i];e-disp();r++;}if(r==0)cout找不到该书!endl;returnNULL;}Book*query3(chara[]){Book*e;intr=0;for(inti=0;i=top;i++)if(strcmp(book[i].getauthorname(),a)==0&&book[i].gettag()==0){if(r==0)coutsetw(3)编号setw(10)书名setw(10)作者setw(10)分类号setw(15)出版社setw(10)出版时间setw(10)图书价格setw(10)存量endl;e=&book[i];e-disp();r++;}if(r==0)cout找不到该书!endl;returnNULL;}Book*query4(chara[]){Book*e;intr=0;for(inti=0;i=top;i++)if(strcmp(book[i].getcbsname(),a)==0&&book[i].gettag()==0){if(r==0)coutsetw(3)编号setw(10)书名setw(10)作者setw(10)分类号setw(15)出版社setw(10)出版时间setw(10)图书价格setw(10)存量endl;e=&book[i];e-disp();r++;}if(r==0)cout找不到该书!endl;returnNULL;}定义一个析构函数~BDatabase(),将book[]写到book.txt文件中。定义一个函数bookdata(),用于图书数据的处理,先定义一些数据成员。设立了多个选择语句。图书信息的选择。{fstreamfile(book.txt,ios::out);for(inti=0;i=top;i++)if(book[i].gettag()==0)file.write((char*)&book[i],sizeof(book[i]));file.close();}charchoice3;charbname[40];//书名charauname[40];//作者名charbfenlei[40];//分类号charcname[40];//出版社inttime;//出版时间doubleprice;//价格charch;intchoice4;intbookid;intbookod;Book*b;cout\n\t\t\t**图书信息**\nendl;cout\t\t\t**1.新增**endl;cout\t\t\t**2.更改**endl;cout\t\t\t**3.删除**endl;cout\t\t\t**4.查找**endl;cout\t\t\t**5.显示**endl;cout\t\t\t**6.全删**endl;cout\t\t\t**0.返回**endl;cout\t\t\t请选择:;新增图书是否保存?修改图书图书修改模块,主要功能如上。输入:1编号2书名3作者名4分类号5出版社6出版时间7价格8存量charchoice2;{cout\n\t\t\t**是否保存Y/N?**\nendl;cout\t\t\t**1.Y保存**endl;cout\t\t\t**0.N不保存**endl;cout\t\t\t请选择:;cinchoice2;switch(choice2){case'1':cout添加图书成功!;break;case'0':break;}}cout\n\t\t\t**图书修改**\nendl;cout\t\t\t**1.修改书名**endl;cout\t\t\t**2.修改作者**endl;cout\t\t\t**3.修改分类号**endl;cout\t\t\t**4.修改出版社**endl;cout\t\t\t**5.修改出版时间**endl;cout\t\t\t**6.修改图书价格**endl;cout\t\t\t**7.修改图书数量**endl;cout\t\t\t**0.返回**endl;cout\t\t\t请
本文标题:《C++语言》课程设计报告-图书信息管理系统
链接地址:https://www.777doc.com/doc-3750644 .html