动物园管理系统实验报告Word文件下载.docx
《动物园管理系统实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《动物园管理系统实验报告Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
~id:
int
tiger
+show():
void
~motion:
int
horse
+show():
void
~speed:
ﻩ
panda
+show():
void
~hobby:
int
五.数据流图
1.总体数据流图:
从文件读出数据数据
否
2。
模块数据流图
数据浏览:
数据查询:
数据录入:
数据删除:
六.界面的设计
界面设计截图:
1.主菜单界面设计
2.浏览界面:
3.录入界面的设计
七.课程设计的心得
通过本次实验我能够基本掌握面向对象程序设计的基础知识,在对动物园管理系统的编写过程中了解了面向对象程序设计的应用,也在上机实践和对程序调试的同时提高了自己解决问题的能力。
在这段时间的上机实践中,我学会了很多,了解了如何应用Microsoft VisualC++环境实现工程的创建,类的生成等,可以说这次上机让我对课堂所学的知识有了更好的理解。
深刻的体会到了面向对象程序设计在工程中应用的重要作用,及其对工程方面程序设计的深远影响.
这次实验我受益匪浅,在掌握面向对象程序设计的基础上更使我对c++语言产生了浓厚的兴趣。
使我对原来不太感兴趣的专业课有了更好的认识和理解,我深刻的体会到学好面向对象程序设计的重要性,虽然我们已经结束了课程,但是我会继续努力学好这门课程,利用课余时间上机实现程序的编写和设计,努力学好这门课。
相信此次上机会给我的专业课学习奠定良好的基础,对影响今后的学习意义重大。
附录:
实验代码
//Animal.h
#ifndef Animal_h
#define Animal_h
#include<
iostream〉
#include"
Feed。
h"
#include”ill.h"
//========================================================
usingnamespacestd;
classAnimal:
publicFeed,public ill
{
private:
ﻩ intid;
public:
Animal(){};
ﻩ Animal(inti,char*f,int t,char*r,char*d,char *p,int ID):
Feed(i,f,t),ill(r,d,p)
ﻩ {id=ID;
} /
ﻩ ~Animal(){};
voidset_id(intID){id=ID;
}
ﻩ intget_id(){returnid;
}
};
#endif
//ill.h
#ifndefill_h
#defineill_h
#include〈iostream〉
#include<
string〉
//=====================================================
usingnamespacestd;
classill
{
private:
ﻩ char reason[50];
chardate[20];
charplace[20];
public:
ill(){};
ill(char*r,char *d,char*p){strcpy(reason,r);
strcpy(date,d);
strcpy(place,p);
}
//构造函数,strcpy(date,d)复制函数,将d复制给date
ﻩ ~ill(){};
ﻩ voidset_reason(char*r){strcpy(reason,r);
}
char *get_reason(){returnreason;
voidset_date(char *d){strcpy(date,d);
}
char*get_date(){returndate;
}
ﻩ voidset_place(char*p){strcpy(place,p);
}
char*get_place(){return place;
};
#endif
//Feed.h
#ifndefFeed_h
#defineFeed_h
#include〈iostream〉
#include<
string〉
//===========================================
usingnamespacestd;
classFeed
private :
int interval;
char food[50];
inttimes;
public:
ﻩ Feed(){};
Feed(inti,char*f,intt){interval=i;
strcpy(food,f);
times=t;
}
~Feed(){};
voidset_interval(inti){interval=i;
}
intget_interval(){returninterval;
}
ﻩ void set_food(char*f){strcpy(food,f);
}
char*get_food(){returnfood;
void set_times(intt){times=t;
int get_times(){returntimes;
#endif
//Message.h
#ifndefMessage_h
#define Message_h
//=======================================
usingnamespacestd;
struct Message
int m_id;
intm_interval;
intm_times;
charm_food[50];
charm_reason[50];
charm_date[20];
charm_place[50];
};
#endif
#include<iostream>
#include"
Manage.h”
#include”Message。
h"
usingnamespacestd;
classTiger:
publicManage
public:
voidshow(){cout<〈”老虎的信息”;
}
};
#include<
iostream>
#include”Manage。
h”
#include"
Message.h”
usingnamespacestd;
classpanda:
publicManage
public:
voidshow(){cout〈<
"
熊猫的信息"
;
};
#include<iostream>
#include〈fstream〉
#include<
string>
Animal。
h
#include"
Manage.h"
//#include"Save。
//================================================
usingnamespacestd;
//本机帮助
voidManage:
:
help()
ﻩint command;
cout〈〈”\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
<
〈endl;
cout〈<
\t\t\t·
您只需按提示输入动物的信息·
”<〈endl;
cout〈〈"
\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~”〈〈endl<<
endl<
endl;
ﻩ
ﻩdo
cout<
\t\t\t 1。
返回上一级2.退出系统”<
〈endl;
a:
cin〉>
command;
switch(command)
{
case 1:
mainmenu();
break;
case2:
return;
default:
cout〈〈"
您输入错误,请重新输入!
endl;
gotoa;
}
}while(command==1||command==2);
//查询动物
voidManage:
:
search()
{
intid,i,m=0;
Messaget;
cout<
”******************************************************************************"
endl;
cout〈<
请输入要查询的动物编号:
”<
cin〉〉id;
ifstreamanimal(”sum。
dat"
,ios_base:
in);
animal.read((char*)&m,sizeof(m));
ﻩanimal。
close();
ﻩifstream ifile(”animal。
dat”,ios_base:
in);
ﻩfor(i=0;
i〈m;
i++)ﻩ
{
ﻩﻩifile.seekg(i*184);
ﻩ ifile。
read((char*)&
t,sizeof(t));
ﻩﻩ
if(t.m_id==id)
ﻩﻩ{
cout<
<"
\t\t\t\t动物编号:
”〈<
t.m_id<
〈"
\n”;
cout<〈”\t\t\t\t喂食间隔时间:
”<〈t.m_interval〈<”\n”;
cout<
\t\t\t\t食物名称:
〈t.m_food<
\n"
;
cout〈〈”\t\t\t\t喂食次数:
〈t.m_times〈<
"\n”;
cout〈〈”\t\t\t\t得病原因:
〈〈t。
m_reason〈〈”\n"
cout〈〈”\t\t\t\t得病时间:
t。
m_date〈〈”\n";
cout〈<
\t\t\t\t得病地点:
<t.m_place<
〈endl〈<
endl<<endl;
ﻩ}
ﻩelse
ﻩﻩ {
ﻩ cout<
文件中没有该信息!
"<
endl;
}
}
ﻩcout<
〈”******************************************************************************"〈<
ﻩmainmenu();
//已存查询
void Manage:
read()
{
ifstreamifile(”animal。
dat"
ios_base:
in);
ﻩMessaget;
intm=0;
ﻩifstreamanimal(”sum.dat"
ios_base:
in);
animal.read((char *)&m,sizeof(m));
animal.close();
ﻩfor(inti=0;
i<
m;
i++)
ﻩ{
ﻩifile.read((char*)&
t,sizeof(t));
”******************************************************************************"
〈<
endl;
cout〈<
”\t\t\t\t动物编号:
t.m_id〈<
”\n"
”\t\t\t\t喂食间隔时间:
t。
m_interval<
cout〈〈"
\t\t\t\t食物名称:
〈<t.m_food<
〈”\n"
”\t\t\t\t喂食次数:
"〈〈t.m_times<<”\n"
cout<
\t\t\t\t得病原因:
m_reason<
cout<
”\t\t\t\t得病时间:
”〈〈t。
m_date<<
"\n";
cout〈〈”\t\t\t\t得病地点:
m_place<
endl;
ﻩcout〈〈"
******************************************************************************"
〈〈endl;
ﻩmainmenu();
voidManage:
save(Message t)
ofstreamfout("
animal.dat"
ios_base:
app);
if(fout)
fout.write((char*)&t,sizeoft);
ﻩﻩfout。
close();
ﻩcout<<
”添加成功”<
ﻩ}
else
fout。
close();
cout<
〈”文件未打开,修改失败"
〈endl;
ﻩ}
int m=0;
ﻩifstreamanimal_sum("
sum.dat"
,ios_base:
ﻩanimal_sum.read((char*)&
m,sizeof(m));
ﻩanimal_sum.close();
ﻩsum=m;
sum++;
ofstreamanimal_sum2("
sum。
dat"
,ios_base:
trunc);
ﻩanimal_sum2.write((char *)&
sum,sizeof(sum));
ﻩanimal_sum2。
close();
//登记动物
voidManage:
enrol()
MessageT;
int i,t,j;
charcommand;
char food[50],reason[50];
char date[20],place[50];
cout〈<
”******************************************************************************”<<
ﻩcout〈<
请输入喂食的间隔时间:
”〈〈endl;
cin>>i;
ﻩcout〈〈"请输入喂食的食物:
endl;
cin〉〉food;
”请输入喂食的次数:
”<<
endl;
ﻩcin>>
t;
ﻩcout〈<
”请输入生病原因:
〈〈endl;
cin>
>
reason;
请输入生病时间:
ﻩcin>
date;
请输入生病地点:
cin〉〉place;
cout<〈"
请输入动物的编号:
〈〈endl;
cin〉〉j;
cout〈〈"
******************************************************************************"
<〈endl;
ﻩ
Animala(i,food,t,reason,date,place,j);
T.m_interval=a。
get_interval();
strcpy(T.m_food,a。
get_food());
strcpy(T。
m_date,a。
get_date());
strcpy(T.m_place,a。
get_place());
strcpy(T.m_reason,a.get_reason());
T.m_times=a.get_times();
******************************************************************************”<
〈endl;
cout〈〈"
您输入的信息先打印如下:
<
endl;
cout<
\t\t\t\t动物编号:
〈T。
m_id<
〈”\n"
cout<〈"
\t\t\t\t喂食间隔时间:
"<<
T.m_interval<
cout<
”\t\t\t\t食物名称:
"〈〈T.m_food〈〈"\n”;
〈”\t\t\t\t喂食次数:
<T。
m_times<
\t\t\t\t得病原因:
m_reason<<
cout〈<
\t\t\t\t得病时间:
〈T.m_date〈<
"\n"
cout〈<
"\t\t\t\t得病地点:
<〈T。
m_place<<
endl<
endl〈〈endl;
cout〈〈”******************************************************************************”<
char c,d;
intk;
int I,TI,J;
charFood[50],Reason[50];
charDate[20],Place[50];
cout<<
"是否确认信息正确(Y/N)”〈〈endl;
cin>
c;
if(c==’N’)
{
cout〈〈"
******************************************************************************"
〈〈endl;
cout〈〈”\t\t\t\t1.修改喂食的间隔时间:
"〈<
endl;
cout〈<
”\t\t\t\t2。
修改喂食的食物:
endl;
cout〈〈”\t\t\t\t3.修改喂食的次数:
cout<
\t\t\t\t4。
修改生病原因:
cout〈〈”\t\t\t\t5.修改生病时间:
cout<
\t\t\t\t6。
修改生病地点:
”〈<endl;
cout〈<
”\t\t\t\t7。
修改动物的编号:
〈”*************