1、C+程序设计实习报告设计题目:图书管理系统学校:北华大学院系:电气信息工程学院专业:电子信息科学与技术班级: 姓名: 学号:时间:12目录一、实习任务3二、实习目的3三、实习过程41、主函数调用子函数流程图42、主函数功能52、定义BOOK类函数并对init()初始化53、图书录入函数64、图书查询函数65、图书借阅函数66、图书归还函数77、显示所有图书信息函数78、图书归还函数89、附加源程序8四、结束语11五、参考文献12一、实习任务用C+语言编程,实现图书信息管理1、图书信息(名称、编号、作者、价钱等);2、图书的统计(按类文艺类、工程类、文学类等)总数、价钱等;3、查询(按作者姓名、
2、图书编号、类别等);4、图书借阅情况统计;5、图书录入功能;二、实习目的本次实习主要是针对C+程序设计课程的,通过理论学习,掌握编程方法和技巧,实习是为了使学生把理论用于实践,得到更好的锻炼。根据实际情况,布置的题目,自己上机,亲自完成编程过程,并调试,运行结果。三、实习过程主函数图书查询函数图书统计函数图书录入函数图书归还函数图书借阅函数显示所有图书函数显示已借图书函数1、主函数调用子函数流程图2、主函数功能应用主函数调用其他子函数,实现整个程序的协调工作void main() char y;for(;)int p;coutnnttt 北华大学图书馆管理系统ttttendl; coutntt
3、tt 目录tttendl; coutnt 1 图书录入tt; coutt 2 图书查询ttendl; coutnt 3 图书借阅tt; coutt 4 图书归还ttendl; coutnt 5 显示所有tt; coutt 6 显示已借ttendl; coutnt 7 图书总数tt; coutt 8 退 出ttendl;coutnntttt 制作者:舒诚名endl;coutnttt 2011年12月23日 星期五; coutnnnttt 请选择序号,按Enter键继续nnp; switch(p)case 1:addbook();break; case 2:demand();break; case
4、 3:loan();break; case 4:send();break; case 5:output();break; case 6:output_lend();break; case 7:totol();break; case 8:break; coutt退出?y; if(y=y) break;运行结果为:2、定义BOOK类函数并对init()初始化class Bookprivate:unsigned long number;char name35; /书名char author20; /作者unsigned long price; /价钱char sort520; /类别int onsh
5、elf; /是否在架 1:在架 2:已借char lender20;unsigned long double phone;int y,m,d;public: void init(); /初始化 friend void output(); friend void output_lend(); friend void way_1(); friend void way_2(); friend void way_3(); friend void loan(); friend void send(); friend void totol(); Book pn; Book *k=p; void Book:
6、init() /初始化coutt输入编号:number; coutt输入书名:endl; gets(name); coutt输入作者:endl; gets(author); coutt输入价钱:price; for(int i=0;i1;i+)coutt输入类别:endl;gets(sorti); coutinit(); k+; coutttt继续吗?ttty; if(y=n) break; 4、图书查询函数void demand()/查询图书int choose; cout请选择查询方式!endl; couttt1输入书名:endl; couttt2输入编号:endl; couttt3输入类
7、别:endl; couttt4 退出:choose; if(choose=1) way_1(); else if(choose=2) way_2();else if(choose=3) way_3(); else return; 5、图书借阅函数实现借阅功能void loan() /借书功能char y; unsigned long n; couttt输入编号:n;for(int i=0;im;i+)if(n=pi.number) if(pi.onshelf=0) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authore
8、ndl; couttt价钱:pi.priceendl; coutt你想借这本书?y; if(y=y) coutt记录借书者姓名:pi.lender; coutt记录借书者电话号码:pi.phone; coutt记录借书日期:pi.ypi.mpi.d; pi.onshelf=1; couttt借阅成功!endl; return; couttt输入错误!endl;return;6、图书归还函数void send()/还书功能unsigned long n; couttt输入编号:n; for(int i=0;im;i+) if(n=pi.number) if(pi.onshelf=1) pi.on
9、shelf=0; couttt归还成功!endl;return; coutt输入错误!endl;return;7、显示所有图书信息函数void output()/输出信息 coutttt输出日期:tttendl; for(int i=0;im;i+) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendlendl; void output_lend()coutttt输出已借书籍:tttendl; for(int i=0;im;i+)if(pi.onshelf=1) c
10、outtt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendl; couttt类别:pi.sort0 pi.sort1 pi.sort2 pi.sort3 pi.sort4endl; couttt借阅者:pi.lenderendl; couttt电话号码:pi.phoneendl; couttt借书日期:pi.y pi.m pi.dendlendl; 8、图书归还函数void send()/还书功能unsigned long n; couttt输入编号:n; for(int i
11、=0;im;i+) if(n=pi.number) if(pi.onshelf=1) pi.onshelf=0; couttt归还成功!endl;return; coutt输入错误!endl;return;9、附加源程序#include#include#includeconst n=100;int m=0;class Bookprivate:unsigned long number;char name35; /书名char author20; /作者unsigned long price; /价钱char sort520; /类别int onshelf; /是否在架 1:在架 2:已借char
12、 lender20;unsigned long double phone;int y,m,d;public: void init(); /初始化 friend void output(); friend void output_lend(); friend void way_1(); friend void way_2(); friend void way_3(); friend void loan(); friend void send(); friend void totol(); Book pn; Book *k=p; void Book:init() /初始化coutt输入编号:num
13、ber; coutt输入书名:endl; gets(name); coutt输入作者:endl; gets(author); coutt输入价钱:price; for(int i=0;i1;i+)coutt输入类别:endl;gets(sorti); coutendl; void totol() /图书统计功能 int count=0 ;int amount=0; for(int i=0;im;i+) amount+=pi.price; count+; cout图书总数:counttt图书总价:amountendl; void demand()/查询图书int choose; cout请选择查
14、询方式!endl; couttt1输入书名:endl; couttt2输入编号:endl; couttt3输入类别:endl; couttt4 退出:choose; if(choose=1) way_1(); else if(choose=2) way_2();else if(choose=3) way_3(); else return; void addbook() /录入图书char y; for(;) m+; k-init(); k+; coutttt继续吗?ttty; if(y=n) break; void output()/输出信息 coutttt输出日期:tttendl; for(
15、int i=0;im;i+) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendlendl; void output_lend()coutttt输出已借书籍:tttendl; for(int i=0;im;i+)if(pi.onshelf=1) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendl; couttt类别:pi.sort0 p
16、i.sort1 pi.sort2 pi.sort3 pi.sort4endl; couttt借阅者:pi.lenderendl; couttt电话号码:pi.phoneendl; couttt借书日期:pi.y pi.m pi.dendlendl; void way_1() char nam35; coutttt输入书名:tttendl; gets(nam); for(int i=0;im;i+) if(strcmp(pi.name,nam)=0) if(pi.onshelf=0) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:p
17、i.authorendl; couttt价钱:pi.priceendl;return; coutt未找到:endl;return; void way_2()unsigned long na; couttt输入编号 :na; for(int i=0;im;i+) if(pi.number=na) if(pi.onshelf=0) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendl;return; coutt输入错误!endl; void way_3()char so
18、rtword30; coutttt输入类别:tttsortword; for(int i=0;im;i+) for(int j=0;j5;j+) if(strcmp(pi.sortj,sortword)=0) if(pi.onshelf=0) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendl; void loan() /借书功能char y; unsigned long n; couttt输入编号:n;for(int i=0;im;i+)if(n=pi.numb
19、er) if(pi.onshelf=0) couttt编号:pi.numberendl; couttt书名:pi.nameendl; couttt作者:pi.authorendl; couttt价钱:pi.priceendl; coutt你想借这本书?y; if(y=y) coutt记录借书者姓名:pi.lender; coutt记录借书者电话号码:pi.phone; coutt记录借书日期:pi.ypi.mpi.d; pi.onshelf=1; couttt借阅成功!endl; return; couttt输入错误!endl;return;void send()/还书功能unsigned l
20、ong n; couttt输入编号:n; for(int i=0;im;i+) if(n=pi.number) if(pi.onshelf=1) pi.onshelf=0; couttt归还成功!endl;return; coutt输入错误!endl;return;void main() char y;for(;)int p;coutnnttt 北华大学图书馆管理系统ttttendl; coutntttt 目录tttendl; coutnt 1 图书录入tt; coutt 2 图书查询ttendl; coutnt 3 图书借阅tt; coutt 4 图书归还ttendl; coutnt 5 显
21、示所有tt; coutt 6 显示已借ttendl; coutnt 7 图书总数tt; coutt 8 退 出ttendl;coutnntttt 制作者:舒诚名endl;coutnttt 2011年12月23日 星期五; coutnnnttt 请选择序号,按Enter键继续nnp; switch(p)case 1:addbook();break; case 2:demand();break; case 3:loan();break; case 4:send();break; case 5:output();break; case 6:output_lend();break; case 7:to
22、tol();break; case 8:break; coutt退出?y; if(y=y) break;四、结束语通过一周的C+实习,我学会了很多东西,以前一直认为C+是一门选修课,所以没怎么注重它,但是当听说老师要考查时,我就着急了,什么都没学到,怎么面对考查?但是现在后悔一点用都没,当务之急就是赶紧为自己充电,能学多少算多少吧。于是一头扎进书堆里和电脑旁,慢慢的研究,慢慢的推敲,啊哈,两天后居然有感觉了,原来C+挺简单的,跟C语言差不多,只是功能跟强大了些而已,于是乎我信心倍增,开始研究老师布置的课题。在我还不算很笨的大脑的钻研下,课题被攻破了,我很开心,觉得很有成就感,原来我还很聪明啊。特别是那些不会做的同学来问我时,我就更开心了,原来我还可以当老师了,呵呵。我懂得了一个道理:学习是快乐的,帮助别人学习也是快乐的,以后我们要不断进取,学习新知识锻炼自己,帮助他人,一举两得!五、参考文献1、C+程序设计(闵联营 何克右主编)2、网上参考资料网址: