ImageVerifierCode 换一换
格式:DOC , 页数:41 ,大小:681.54KB ,
资源ID:2882020      下载积分:14 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2882020.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c图书信息标准管理系统附源码.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c图书信息标准管理系统附源码.doc

1、学号:4303 计算机实习汇报 系 别:管理系 专 业:信息管理和信息系统专业 班 级:1043班 学生姓名:李 优 指导老师:徐 日 日 期:-09-03~-09-14 1需求分析 1.1 选题任务 图书借阅管理系统 (1) 编程工具 C++ (2) 要求 选题学生应含有端正学习态度、正常交流能力,应有主动主动、克服困难学习意识 (3) 本题概述 以学院图书馆为例,图书借和管理是一项常常性工作,为使图书借阅管理工作正确高效,提供图书借阅统计

2、添加、修改、删除、查询、浏览、汇总等,用图书借阅关系软件,能有效提升工作效率,含有较强实际意义。 (4) 功效描述 ① 能度日外部提供包含图书借阅信息文本文件(TXT文件); ② 能在程序中录入图书借阅信息(可参考我院图书馆网上图书借阅信息各个项目),并将信息写入文本文件(TXT文件); ③ 能对全部图书借阅信息,按条件(按图书名、图书编号、借阅日期、借阅人、超期是否、超期天数等)查询浏览,能汇总统计计算出符合某条件图书借阅统计数量并浏览这些借阅信息,能将查询、浏览、汇总结果输出结果文本文件(TXT文件) (5) 辅助说明 基础要求:①+② 扩展要求:①+②+③ 1.2 输入

3、数据和输出数据形式: 程序中包含图书信息包含: char bnum[20]; //书号 char bname[20]; //书名 char bauthor[10]; //作者 char rname[10]; //借阅人 char bdays[10]; //借出日期 char bchao[10]; //超期天数 为了方便,我全部设置成了char型。 而程序中包含两种输入方法和两种输出方法,对应题目要求,分别是:单个图书信息增删查改;TXT文档导入(图书数据库.txt

4、屏幕打印;TXT文档导出(书籍信息.txt)。 1.3 测试数据及测试目标 字母测试,错误数据测试,反复数据测试 目标:产看本程序纠错能力和是否人性化。 2程序设计 2.1 关键数据类型定义 //********书籍结构体,用于存放书籍基础信息******** class Book { private: char bnum[20]; //书号 char bname[20]; //书名 char bauthor[10]; //作者 char rname[10]; //借阅人 ch

5、ar bdays[10]; //借出日期 char bchao[10]; //超期天数 public: Book() //结构函数初始化信息 void set_bnum(char *no) //设置书号 char *get_bnum() //取得书号 void set_bname(char *n) //设置书名 char *get_bname() //取得书名 void set_bauthor(char *a) //设置作者 char *get_bauth

6、or() //取得作者姓名 void set_bdays(char *d) //设置借出日期 char *get_bdays() //取得借出日期 void set_bchao(char *c) //设置超出天数 char *get_bchao() //取得超出天数 void set_rname(char *rn) //设置借阅人 char *get_rname() //取得借阅人姓名 void copy(Book m) //Book结构体copy函数 }

7、//class book //**********书籍管理结构体,实现管理书籍功效********** class BookManage { private: Book books[100]; //定义Book书籍结构体数组对象,最大容量100本 public: int length; BookManage() //结构函数,读取磁盘文件 int add(Book book) //添加图书资料 int bnu_search(char *bnu) //按书号查找书籍 int bna_search(char *bna)

8、 //按书名查找书籍 int bau_search(char *bau) //按作者查找书籍 int rn_search(char *rn) //按借阅人查找书籍 int bd_search(char *bd) //按借出日期查找书籍 int bc_search(char *bc) //按超期天数查找书籍 void revise(Book book,int i) //修改书籍函数 void deleteBook(int index) //删除书籍资料函数 void show_bookhead() //显示输出列表,表头。 void show_book(i

9、nt i)//显示书籍函数 void saveFileHead() ///保留书籍文件表头到txt void saveFile(int i) //带参输出书籍到txt void readFile() //读取书籍文件 };// class BookManage //**********菜单结构体,实现界面引导********** class Menu { BookManage bm; //定义书籍管理结构体对象bm private: int choice; //菜单序号选择 int key; //管理员密

10、码 public: void header() //首页欢迎界面 void log_menu() //主界面登录菜单 void admin_menu() //管理菜单 void absearch_menu() //查找书籍菜单 void log_admin() //密码登陆 void rn_search() //按借阅人姓名查找函数 void bnu_search() //按书号查找函数 void bna_search() //按书名查找函数 void bau_search() //按作者查找函数 void bd_se

11、arch() //按借阅日期查找函数 void bc_search() //按超期天数查找函数 void addBook() //添加新书籍信息函数 void reviseBook() //修改书籍函数 void delBook() //删除书籍函数 int main() 2.2 主程序步骤图 开始 判定是否进入并输入密码 3:删除已经有图书资料 4:查找已经有图书资料 5:查看全部图书资料 6:读取指定位置 TXT 7: 写入指定位置TXT 8:返回系统登录界面 0: 退出图书管理系统 1:添加新图

12、书资料 2:修改已经有图书资料 输入书号判定书号是否反复 输入要修改书号判定存在 输入要删除书号判定存在 退出系统 按超期查找 按作者查找 按编号查找 按日期查找 按书名查找 重新输入书号 删除 书籍 重新输入书号 修改数据 重新输入新书号 添加书籍 2.3 调用关系 1.书籍信息录入: void set_bnum(char *no) //设置书号 {strcpy(bnum,no);} //把字符串no中字符复制到字符串bnum中 char

13、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()

14、 //取得作者姓名 {return bauthor;} void set_bdays(char *d) //设置借出日期 {strcpy(bdays,d);} char *get_bdays() //取得借出日期 {return bdays;} void set_bchao(char *c) //设置超出天数 {strcpy(bchao,c);} char *get_bchao() //取得超出天数 {return bchao;}

15、 void set_rname(char *rn) //设置借阅人 {strcpy(rname,rn);} char *get_rname() //取得借阅人姓名 {return rname;} 2.书籍信息添加: int add(Book book) 判定length是否达成最大值,假如没有则进行添加。 3.书籍信息查找: 不管是根据书号、书名、作者、借阅人、借出日期、超期天数来进行查找全部是进行挨个比较,假如碰到相同则返回书籍i值,进行返回输出。 4.书籍信息修改: 输入想要修改书籍编号,根据查找方法,找到

16、i,然后进行覆盖。完成修改。 5.书籍屏幕打印输出: 分两部分输出,首先打印一个头信息,相当于列表头;然后利用循环语句带参输出(i为参数,循环)。 6.保留信息到txt文件: 同分为两部分,类似屏幕打印方法,先存入表头,然后带参循环存入书籍信息。带参意义就是,能够无限调用该语句,只要知道书序号i。 7.从信息中读取txt文件: struct books { char numb[10]; //书号 char nameb[20]; //书名 char authorb[10]; //作者 char namer[10]; //借阅人

17、 char daysb[10]; //借出日期 char chaob[10]; //超期天数 }; 定义结构体。利用fscanf()语句讲读取数据按次序存入结构体中。然后直接利用书籍添加函数直接写入系统。 3调试分析 3.1关键问题及处理方案: 1.界面颜色设定: 一直抛弃黑底白字这种默认形式,换一个颜色给人特殊感觉,在网上找到相关代码为system("color **");语句。不过也是没有头绪不知道怎么调试,以后一不小心设置错误,系统就弹出了提醒界面,我就明白了界面颜色设置方法(图3.1): 图3.1 2.相关书籍cout

18、输出: 最开始设计输出模块时候,仅仅是想到了不带参book信息输出,show_book()函数中自带了一个for语句循环输出全部书籍信息,是为显示全部书籍设计。不过以后发觉假如要单显示筛选信息就要从新写一个带参show_book(int i),即使函数重载许可这么做,不过却无意义增加了代码长度。我选择删除了不带参show_book(),把for语句循环写在外面。这么就增加了show_book(int i)函数利用率,精简了函数和长度。 3.书籍信息txt写入: 综合了屏幕打印经验,鉴于fwrite和cout使用方法和显示效果类似,我决定将txt写入语句也设置成带参形式saveFile(

19、int i),原理和show_book(int i)基础一致。完成这些就能实现。以后发觉文件总是覆盖,每次写入全部会将上一次覆盖,也就是只有最终一行,以后才想起了ios::app追加模式,才最终算完整实现。 4.读取数据函数: 这个函数是我编辑最久,因为使用不熟练,我先查找了很多资料,而且写了部分单独小程序去测试效果,不过感觉全部不理想。以后选择了一个最笨方法,利用fseek函数一格一格挑开空格和无用信息。不过这么做最大缺点就是,我txt导入文档鼻息保持固定格式,一格空格全部不能多,假如多了就会造成错位。以后和徐老师交流时,老师也说这种输入方法不可取,因为实现了功效不过意义不大。规格太死

20、不够人性化。于是我就退后开始,重新选择语句。最终决定定义结构体,把txt中信息读取以后直接存入结构体,随即就把结构体中数据利用set_xxxx函数存入。 5.相关字母纠错及错误输入处理: 字母输入原来全部是用fflush(stdin);来清空缓存来预防程序进入死循环。不过我这次编程想到了一个愈加简单有效方法:利用char 来存放选择,随即强转为int型,其实就是讲全部字符转为了asc2码,因为acs2码唯一性,我就能够用switch直接跳过了字母部分,比如我要判定i输入是否唯1,我就将i-48写入switch判定就好了。 4使用说明 4.1 关键功效介绍及操作步骤: 1.主界

21、面: 选择1登陆,密码为1043,按任意键进入系统。 2.系统操作界面: 直接输入数字选择功效。 1: 添加新图书资料: 2: 修改已经有图书资料: 3: 删除已经有图书资料: 4: 查找已经有图书资料: 依据序号选择功效: 按书名查找: 按作者查找: 按借出日期查找: 按超期天数查找: 5: 查看全部图书资料: 6: 读取指定位置TXT: 7: 写入指定位置TXT: 5测试结果 5.1

22、测试数据 1.A 4 asdfasdf(多字母): 1000 //目标为测试反复编号问题 2.修改时候输入未知编号: 3.查找时 5.2 测试目标 1、测试学号反复 2、测试字母和特殊字符对输入影响 3、测试筛选是否符合规格 5.3 测试结果 全部经过 6心得体会 经历了为期十天编程实习,我认为我变得愈加成熟了,我从一开始迷茫到以后目标坚定,这全部是一个改变过程。因为是在暑假前就选好了题目,而且提前也知道了题目标要求。所以我在暑假就做好了充足准备。其实最开始想自学用VC++来编写一个可视化程序。

23、不过实施起来却没有那么轻易,因为我学习VC不系统不全方面只是部分皮毛,改改别还能够,不过要是真正想实现自己思想就有点捉襟见肘。后决定还是先用比较熟悉C++语言来编一个完整系统。即使以前有做过C++试验。不过像这种完成系统确实没有经历过。其实这也是一个挑战,也是一个开始,是我们接触完整系统开始。 等快开课时候我已经完成了大部分代码: 不过有部分问题还是没有处理,我开学后就开始全力去处理这些问题。偏偏事和愿违,相关文件读取问题一直没有找到好处理措施。最终还是从c++教科书上找到灵感来处理这些问题。收获很大。 此次学习中我有以下收获: 1、明确了c和c++区分,利用了多个c++知识,包含一开

24、始就没弄太明白文件输入输出,这回事真正弄明白了。 2、复习了类和结构体知识,不过继承类没有用到。以后还要多加复习。 3、第一次编写以后,运行以后有50多个错误,大多数全部是因为马虎造成。以后还要多加这类练习熟能生巧。 4、多多利用网络资源,看网上类似代码能够开阔自己思绪,学习她人好算法。 学习有很大帮助。 5、先写出步骤图这么是很好一个习惯,能够为后面写程序打下好基础。 6、养成好习惯,一个一个模块写,写好了立即实施看是否有错误,以防全部写完了,错误却没法去更正。 10天编程已经靠近尾声,不过总认为要完善我选题仍有很多要做工作。以后还要加强自己学习。努力学习编程。感谢徐老师指导。

25、 7附录 #include #include #include #include #include using namespace std; //********书籍结构体,用于存放书籍基础信息******** class Book { private: char bnum[20]; //书号 char bname[20]; //书名 char baut

26、hor[10]; //作者 char rname[10]; //借阅人 char bdays[10]; //借出日期 char bchao[10]; //超期天数 public: Book() //结构函数初始化信息 { strcpy(bnum,""); strcpy(bname,""); strcpy(bauthor,""); strcpy(rname,""); strcpy(bdays,""); strcpy(bchao,""); }

27、 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() //取得书名

28、 {return bname;} void set_bauthor(char *a) //设置作者 {strcpy(bauthor,a);} char *get_bauthor() //取得作者姓名 {return bauthor;} void set_bdays(char *d) //设置借出日期 {strcpy(bdays,d);} char *get_bdays() //取得借出日期 {return bdays;} void s

29、et_bchao(char *c) //设置超出天数 {strcpy(bchao,c);} char *get_bchao() //取得超出天数 {return bchao;} void set_rname(char *rn) //设置借阅人 {strcpy(rname,rn);} char *get_rname() //取得借阅人姓名 {return rname;} void copy(Book m) //Book

30、结构体copy函数 { strcpy(bnum,m.get_bnum()); //将取得书号函数里返回值里字符复制到bnum strcpy(bname,m.get_bname()); strcpy(bauthor,m.get_bauthor()); strcpy(rname,m.get_rname()); strcpy(bdays,m.get_bdays()); strcpy(bchao,m.get_bchao()); } }; //**********书籍管

31、理结构体,实现管理书籍功效********** class BookManage { private: Book books[100]; //定义Book书籍结构体数组对象,最大容量100本 public: int length; BookManage() //结构函数,读取磁盘文件 { length=0; //从头读起,计数,最大100 } ~BookManage() //析构函数,保留磁盘文件 { } int add(Book

32、book) //添加图书资料///////////// { if(length>=100) { cout<<"对不起,储存已满,您无法继续添加!\n"; return -1; } else { books[length].copy(book); //调用书籍结构体copy函数 length++; return (length-1); } } int bnu_search(char *

33、bnu) //按书号查找书籍 { for(int i=0;i

34、0) //判定 return i; return -1; } int bau_search(char *bau) //按作者查找书籍 { for(int i=0;i

35、 for(int i=0;i

36、n -1; } int bc_search(char *bc) //按超期天数查找书籍 { for(int i=0;i

37、ook); } //调用Book结构体copy函数 void deleteBook(int index) //删除书籍资料函数 { for(int i=index;i

38、表**********************\n\n"; cout<<"书号"; cout.width(15); cout<<"书名"; cout.width(15); cout<<"作者"; cout.width(15); cout<<"借阅人"; cout.width(15); cout<<"借出日期"; cout.width(15); cout<<"超期天数\n"; } void show_book(int

39、 i)//显示书籍函数 { cout<

40、out.width(15); cout<

41、n"; fwrite<<"书号"; fwrite.width(15); fwrite<<"书名"; fwrite.width(15); fwrite<<"作者"; fwrite.width(15); fwrite<<"借阅人"; fwrite.width(15); fwrite<<"借出日期"; fwrite.width(15); fwrite<<"超期天数\n"; fwrite.close(); //关闭磁盘文件 } void saveFile(int i) //带参输出书

42、籍到txt { ofstream fwrite("书籍信息.txt",ios::app); fwrite<

43、dth(15); fwrite<

44、char namer[10]; //借阅人 char daysb[10]; //借出日期 char chaob[10]; //超期天数 }; Book book; //书籍结构体对象book books form[100]; FILE *fp; if (NULL==(fp=fopen("图书数据库.txt","r"))) { printf("file not open!\n"); exit(0); } fseek(fp,40,SEEK_SET)

45、 //跳开表头40字节 for(int i=0;i<5;i++) { fscanf(fp, "%s", &form[i].numb); fscanf(fp, "%s", &form[i].nameb); fscanf(fp, "%s", &form[i].authorb); fscanf(fp, "%s", &form[i].namer); fscanf(fp, "%s", &form[i].daysb); fscanf(fp, "%s", &form[i].chaob); book.set_bnum(form[i].

46、numb); book.set_bname(form[i].nameb); book.set_bauthor(form[i].authorb); book.set_rname(form[i].namer); book.set_bdays(form[i].daysb); book.set_bchao(form[i].chaob); BookManage::add(book); fflush(stdin); //总是溢出,最终想去了清空缓存,就好了,呵呵 } fclose(fp); } };

47、 //**********菜单结构体,实现界面引导********** class Menu { BookManage bm; //定义书籍管理结构体对象bm private: char choice; //菜单序号选择 int key; //管理员密码 public: int check(int m) //检验语句 { /* int q; do{ while(!(q=scanf("%ld",&m))||getchar()!='\n') { fflush(stdin);

48、 printf("输入错误,请重新输入:"); } }while(q==0); (int) m;*/ return m; } void header() //首页欢迎界面 { // system("color A9"); cout<<"\t ┎════┰════┒\n"; cout<<"\t ║﹎﹎﹎﹎┃﹎﹎﹎﹎║\n"; cout<<"\t ║﹎﹎﹎﹎┃﹎﹎﹎﹎║\n"; cout<<"\t ║﹎﹎╱╲┃ ﹎﹎﹎ ║\n"; cout<<"\t

49、 ║﹎﹎◣╱┃﹎﹎﹎﹎║\n"; cout<<"\t ┖════┸════┚\n"; _sleep(1000); cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"; cout<<"\t ※ ※\n"; cout<<"\t ※ BESTI 北 京 电 子 科 技 学 院 ※\n"; cout<<"\t ※==================

50、※\n"; cout<<"\t ※ 图 书 借 阅 管 理 系 统 1.0 ※\n"; cout<<"\t ※ ※\n"; cout<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"; _sleep(600); } void log_menu() //主界面登录菜单 { // system

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服