资源描述
C++程序设计
实习报告
设计题目:图书管理系统
学校:北华大学
院系:电气信息工程学院
专业:电子信息科学与技术
班级:
姓名:
学号:
时间:
12
目录
一、实习任务 3
二、实习目的 3
三、实习过程 4
1、主函数调用子函数流程图 4
2、主函数功能 5
2、定义BOOK类函数并对init()初始化 5
3、图书录入函数 6
4、图书查询函数 6
5、图书借阅函数 6
6、图书归还函数 7
7、显示所有图书信息函数 7
8、图书归还函数 8
9、附加源程序 8
四、结束语 11
五、参考文献 12
一、实习任务
用C++语言编程,实现图书信息管理
1、图书信息(名称、编号、作者、价钱等);
2、图书的统计(按类文艺类、工程类、文学类等)总数、价钱等;
3、查询(按作者姓名、图书编号、类别等);
4、图书借阅情况统计;
5、图书录入功能;
二、实习目的
本次实习主要是针对《C++程序设计》课程的,通过理论学习,掌握编程方法和技巧,实习是为了使学生把理论用于实践,得到更好的锻炼。根据实际情况,布置的题目,自己上机,亲自完成编程过程,并调试,运行结果。
三、实习过程
主函数
图书查询函数
图书统计函数
图书录入函数
图书归还函数
图书借阅函数
显示所有图书函数
显示已借图书函数
1、主函数调用子函数流程图
2、主函数功能
应用主函数调用其他子函数,实现整个程序的协调工作
void main()
{ char y;
for(;;)
{int p;
cout<<"\n\n\t\t\t 北华大学图书馆管理系统\t\t\t\t"<<endl;
cout<<"\n\t\t\t\t 目录\t\t\t"<<endl;
cout<<"\n\t 1 图书录入\t\t";
cout<<"\t 2 图书查询\t\t"<<endl;
cout<<"\n\t 3 图书借阅\t\t";
cout<<"\t 4 图书归还\t\t"<<endl;
cout<<"\n\t 5 显示所有\t\t";
cout<<"\t 6 显示已借\t\t"<<endl;
cout<<"\n\t 7 图书总数\t\t";
cout<<"\t 8 退 出\t\t"<<endl;
cout<<"\n\n\t\t\t\t 制作者:舒诚名"<<endl;
cout<<"\n\t\t\t 2011年12月23日 星期五";
cout<<"\n\n\n\t\t\t 请选择序号,按Enter键继续\n\n"<<endl;
cin>>p;
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:totol();break;
case 8:break;}
cout<<"\t退出?"<<endl;
cin>>y;
if(y=='y') break;}
}
运行结果为:
2、定义BOOK类函数并对init()初始化
class Book
{
private:
unsigned long number;
char name[35]; //书名
char author[20]; //作者
unsigned long price; //价钱
char sort[5][20]; //类别
int onshelf; //是否在架 1:在架 2:已借
char lender[20];
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 p[n];
Book *k=p;
void Book::init() //初始化
{cout<<"\t输入编号:"<<endl;
cin>>number;
cout<<"\t输入书名:"<<endl;
gets(name);
cout<<"\t输入作者:"<<endl;
gets(author);
cout<<"\t输入价钱:"<<endl;
cin>>price;
for(int i=0;i<1;i++)
{cout<<"\t输入类别:"<<endl;
gets(sort[i]);
cout<<endl;
}
}
3、图书录入函数
void addbook() //录入图书
{char y;
for(;;)
{m++;
k->init();
k++;
cout<<"\t\t\t继续吗?\t\t\t"<<endl;
cin>>y;
if(y=='n') break;
}
}
4、图书查询函数
void demand()//查询图书
{int choose;
cout<<"请选择查询方式!"<<endl;
cout<<"\t\t[1]输入书名:"<<endl;
cout<<"\t\t[2]输入编号:"<<endl;
cout<<"\t\t[3]输入类别:"<<endl;
cout<<"\t\t[4] 退出:"<<endl;
cin>>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;
cout<<"\t\t输入编号:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
if(n==p[i].number)
{if(p[i].onshelf==0)
{{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;
cout<<"\t你想借这本书?"<<endl;
cin>>y;}
if(y=='y')
{cout<<"\t记录借书者姓名:"<<endl;
cin>>p[i].lender;
cout<<"\t记录借书者电话号码:"<<endl;
cin>>p[i].phone;
cout<<"\t记录借书日期:"<<endl;
cin>>p[i].y>>p[i].m>>p[i].d;
p[i].onshelf=1;
cout<<"\t\t借阅成功!"<<endl;
return;
}}
}
cout<<"\t\t输入错误!"<<endl;
return;
}
6、图书归还函数
void send()//还书功能
{unsigned long n;
cout<<"\t\t输入编号:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
{if(n==p[i].number)
{if(p[i].onshelf==1)
{p[i].onshelf=0;
cout<<"\t\t归还成功!"<<endl;return;}
}
}
cout<<"\t输入错误!"<<endl;return;}
7、显示所有图书信息函数
void output()//输出信息
{
cout<<"\t\t\t输出日期:\t\t\t"<<endl;
for(int i=0;i<m;i++)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl<<endl;}
}
void output_lend()
{cout<<"t\t\t输出已借书籍:\t\t\t"<<endl;
for(int i=0;i<m;i++)
{if(p[i].onshelf==1)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;
cout<<"\t\t类别:"<<p[i].sort[0]<<" "<<p[i].sort[1]<<" "<<p[i].sort[2]<<" "<<p[i].sort[3]<<" "<<p[i].sort[4]<<endl;
cout<<"\t\t借阅者:"<<p[i].lender<<endl;
cout<<"\t\t电话号码:"<<p[i].phone<<endl;
cout<<"\t\t借书日期:"<<p[i].y<<" " <<p[i].m<<" " <<p[i].d<<endl<<endl;}
}}
8、图书归还函数
void send()//还书功能
{unsigned long n;
cout<<"\t\t输入编号:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
{if(n==p[i].number)
{if(p[i].onshelf==1)
{p[i].onshelf=0;
cout<<"\t\t归还成功!"<<endl;return;}
}
}
cout<<"\t输入错误!"<<endl;return;}
9、附加源程序
#include<iostream.h>
#include<string.h>
#include<stdio.h>
const n=100;
int m=0;
class Book
{
private:
unsigned long number;
char name[35]; //书名
char author[20]; //作者
unsigned long price; //价钱
char sort[5][20]; //类别
int onshelf; //是否在架 1:在架 2:已借
char lender[20];
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 p[n];
Book *k=p;
void Book::init() //初始化
{cout<<"\t输入编号:"<<endl;
cin>>number;
cout<<"\t输入书名:"<<endl;
gets(name);
cout<<"\t输入作者:"<<endl;
gets(author);
cout<<"\t输入价钱:"<<endl;
cin>>price;
for(int i=0;i<1;i++)
{cout<<"\t输入类别:"<<endl;
gets(sort[i]);
cout<<endl;
}
}
void totol() //图书统计功能
{
int count=0 ;int amount=0;
for(int i=0;i<m;i++)
{
amount+=p[i].price;
count++;
}
cout<<"图书总数:"<<count<<"\t\t图书总价:"<<amount<<endl;
}
void demand()//查询图书
{int choose;
cout<<"请选择查询方式!"<<endl;
cout<<"\t\t[1]输入书名:"<<endl;
cout<<"\t\t[2]输入编号:"<<endl;
cout<<"\t\t[3]输入类别:"<<endl;
cout<<"\t\t[4] 退出:"<<endl;
cin>>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++;
cout<<"\t\t\t继续吗?\t\t\t"<<endl;
cin>>y;
if(y=='n') break;
}
}
void output()//输出信息
{
cout<<"\t\t\t输出日期:\t\t\t"<<endl;
for(int i=0;i<m;i++)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl<<endl;}
}
void output_lend()
{cout<<"t\t\t输出已借书籍:\t\t\t"<<endl;
for(int i=0;i<m;i++)
{if(p[i].onshelf==1)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;
cout<<"\t\t类别:"<<p[i].sort[0]<<" "<<p[i].sort[1]<<" "<<p[i].sort[2]<<" "<<p[i].sort[3]<<" "<<p[i].sort[4]<<endl;
cout<<"\t\t借阅者:"<<p[i].lender<<endl;
cout<<"\t\t电话号码:"<<p[i].phone<<endl;
cout<<"\t\t借书日期:"<<p[i].y<<" " <<p[i].m<<" " <<p[i].d<<endl<<endl;}
}}
void way_1()
{ char nam[35];
cout<<"\t\t\t输入书名:\t\t\t"<<endl;
gets(nam);
for(int i=0;i<m;i++)
{if(strcmp(p[i].name,nam)==0)
if(p[i].onshelf==0)
cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;return;
}
cout<<"\t未找到:"<<endl;return;
}
void way_2()
{unsigned long na;
cout<<"\t\t输入编号 :"<<endl;
cin>>na;
for(int i=0;i<m;i++)
{if(p[i].number==na)
if(p[i].onshelf==0)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;return;
}
}
cout<<"\t输入错误!"<<endl;
}
void way_3()
{char sortword[30];
cout<<"\t\t\t输入类别:\t\t\t"<<endl;
cin>>sortword;
for(int i=0;i<m;i++)
for(int j=0;j<5;j++)
if(strcmp(p[i].sort[j],sortword)==0)
if(p[i].onshelf==0)
{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;}
}
void loan() //借书功能
{char y;
unsigned long n;
cout<<"\t\t输入编号:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
if(n==p[i].number)
{if(p[i].onshelf==0)
{{cout<<"\t\t编号:"<<p[i].number<<endl;
cout<<"\t\t书名:"<<p[i].name<<endl;
cout<<"\t\t作者:"<<p[i].author<<endl;
cout<<"\t\t价钱:"<<p[i].price<<endl;
cout<<"\t你想借这本书?"<<endl;
cin>>y;}
if(y=='y')
{cout<<"\t记录借书者姓名:"<<endl;
cin>>p[i].lender;
cout<<"\t记录借书者电话号码:"<<endl;
cin>>p[i].phone;
cout<<"\t记录借书日期:"<<endl;
cin>>p[i].y>>p[i].m>>p[i].d;
p[i].onshelf=1;
cout<<"\t\t借阅成功!"<<endl;
return;
}}
}
cout<<"\t\t输入错误!"<<endl;
return;
}
void send()//还书功能
{unsigned long n;
cout<<"\t\t输入编号:"<<endl;
cin>>n;
for(int i=0;i<m;i++)
{if(n==p[i].number)
{if(p[i].onshelf==1)
{p[i].onshelf=0;
cout<<"\t\t归还成功!"<<endl;return;}
}
}
cout<<"\t输入错误!"<<endl;return;}
void main()
{ char y;
for(;;)
{int p;
cout<<"\n\n\t\t\t 北华大学图书馆管理系统\t\t\t\t"<<endl;
cout<<"\n\t\t\t\t 目录\t\t\t"<<endl;
cout<<"\n\t 1 图书录入\t\t";
cout<<"\t 2 图书查询\t\t"<<endl;
cout<<"\n\t 3 图书借阅\t\t";
cout<<"\t 4 图书归还\t\t"<<endl;
cout<<"\n\t 5 显示所有\t\t";
cout<<"\t 6 显示已借\t\t"<<endl;
cout<<"\n\t 7 图书总数\t\t";
cout<<"\t 8 退 出\t\t"<<endl;
cout<<"\n\n\t\t\t\t 制作者:舒诚名"<<endl;
cout<<"\n\t\t\t 2011年12月23日 星期五";
cout<<"\n\n\n\t\t\t 请选择序号,按Enter键继续\n\n"<<endl;
cin>>p;
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:totol();break;
case 8:break;}
cout<<"\t退出?"<<endl;
cin>>y;
if(y=='y') break;}
}
四、结束语
通过一周的C++实习,我学会了很多东西,以前一直认为C++是一门选修课,所以没怎么注重它,但是当听说老师要考查时,我就着急了,什么都没学到,怎么面对考查?但是现在后悔一点用都没,当务之急就是赶紧为自己充电,能学多少算多少吧。于是一头扎进书堆里和电脑旁,慢慢的研究,慢慢的推敲,啊哈,两天后居然有感觉了,原来C++挺简单的,跟C语言差不多,只是功能跟强大了些而已,于是乎我信心倍增,开始研究老师布置的课题。在我还不算很笨的大脑的钻研下,课题被攻破了,我很开心,觉得很有成就感,原来我还很聪明啊。特别是那些不会做的同学来问我时,我就更开心了,原来我还可以当老师了,呵呵。我懂得了一个道理:学习是快乐的,帮助别人学习也是快乐的,以后我们要不断进取,学习新知识锻炼自己,帮助他人,一举两得!
五、参考文献
1、《C++程序设计》(闵联营 何克右主编)
2、网上参考资料网址:
展开阅读全文