动物园管理系统实验报告.docx

上传人:b****6 文档编号:8300014 上传时间:2023-01-30 格式:DOCX 页数:24 大小:224.10KB
下载 相关 举报
动物园管理系统实验报告.docx_第1页
第1页 / 共24页
动物园管理系统实验报告.docx_第2页
第2页 / 共24页
动物园管理系统实验报告.docx_第3页
第3页 / 共24页
动物园管理系统实验报告.docx_第4页
第4页 / 共24页
动物园管理系统实验报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

动物园管理系统实验报告.docx

《动物园管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《动物园管理系统实验报告.docx(24页珍藏版)》请在冰豆网上搜索。

动物园管理系统实验报告.docx

动物园管理系统实验报告

   动物园管理系统实验报告

一.时间:

2010年12月2日星期一星期四

 地点:

软件楼506实验室

二.实验目的:

(1)使学生掌握C++编程的基本工作原理;

(2)培养学生基本掌握C++应用编程的基本思路和方法;

(3)使学生掌握C++应用调试的基本技能;

(4)培养学生分析、解决问题的能力;

(5)提高学生的科技论文写作能力。

 

(6)实现以下功能

 i)用类族来描述各类动物的关系

ii) 在派生类中描述各类动物的特性

iii)各类动物对象的多样化构建模

 iv) 能把动物的数据存入到文件中,系统初始化时可以读出已有的文件数据

三. 系统需求分析

1。

1功能需求分析:

简易动物园绩管理系统主要有4个大的模块:

动物信息从文件读入和写入,动物信息的输入和删除,动物信息的查询,以及系统帮助.

1。

11动物信息的读入和写出模块

主要功能是读出要管理的文档,保存修改后的动物信息。

实际生活中学生成绩的文件主要以word或excel保存,为了方便操作我在调式本系统中成绩文件采用了txt的文档格式保存,当然以word文档形式保存也是可以的.

1.12动物信息输入删除模块

主要功能是输入、追加、删除学生成绩的操作.添加操作是根据用户的要求实现的。

例如用户可以输入要删除动物的编号和信息。

此程序输入对应的动物信息,并保存到数据结构中相应的变量中.

1。

13动物信息的查询模块

主要功能是按照用户的要求查询动物信息。

1.14系统帮助

方便信息的查询.

数据录入:

数据查询:

输入动物编号

有数据,输出,否,退出查询模块

 

数据修改:

数据查询

决定是否修改

是,修改;否退出查询功能模块

 

数据删除;

数据查询

决定是否查询

是,删除,否,推出删除功能模块

1。

2环境需求分析:

操作系统:

WindowsXP

开发软件:

 VisualC++6.0

 

三.UML类图

 

animal

+set_id():

void

+get_id():

int

~id:

int

tiger

+show():

void

~motion:

int

horse

+show():

void

~speed:

int

ﻩ 

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

//=====================================================

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

//===========================================

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>           

#include"Animal。

h

#include"Manage.h"

//#include"Save。

h"

//================================================

usingnamespacestd;

//本机帮助

voidManage:

help()

{

ﻩint command;

cout〈〈”\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<〈endl;

cout〈<"\t\t\t·您只需按提示输入动物的信息·”<〈endl;

  cout〈〈"\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~”〈〈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<<”******************************************************************************"<

 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动物编号:

”〈

 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得病时间:

”〈

m_date〈〈”\n";

 cout〈<"\t\t\t\t得病地点:

”<<t.m_place<〈endl〈

ﻩ}

ﻩelse

ﻩﻩ {

ﻩ cout<<"文件中没有该信息!

"<

  }

ﻩ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

ﻩ{

ﻩifile.read((char*)&t,sizeof(t));

cout<<”******************************************************************************"〈

cout〈<”\t\t\t\t动物编号:

”<

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得病原因:

”<

m_reason<<”\n";

cout<<”\t\t\t\t得病时间:

”〈〈t。

m_date<<"\n";

 cout〈〈”\t\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<<”添加成功”<〈endl;

ﻩ}

else

 fout。

close();

 cout<〈”文件未打开,修改失败"<〈endl;

ﻩ}

int m=0;

ﻩifstreamanimal_sum("sum.dat",ios_base:

in);

ﻩ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〈<”******************************************************************************”<<endl;

ﻩcout〈<"请输入喂食的间隔时间:

”〈〈endl;

cin>>i;

ﻩcout〈〈"请输入喂食的食物:

”〈

cin〉〉food;

ﻩcout<<”请输入喂食的次数:

”<

ﻩcin>>t;

ﻩcout〈<”请输入生病原因:

"〈〈endl;

cin>>reason;

cout<〈"请输入生病时间:

"〈

ﻩcin>>date;

ﻩcout<<"请输入生病地点:

”<

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();        

ﻩcout<〈"******************************************************************************”<〈endl;

 cout〈〈"您输入的信息先打印如下:

" <

 cout<〈"\t\t\t\t动物编号:

"<〈T。

m_id<〈”\n";

 cout<〈"\t\t\t\t喂食间隔时间:

"<

 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<

  

 cout〈〈”******************************************************************************”<<endl; 

 

  

 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.修改喂食的间隔时间:

"〈

   cout〈<”\t\t\t\t2。

修改喂食的食物:

”<

 cout〈〈”\t\t\t\t3.修改喂食的次数:

”〈

  cout<<"\t\t\t\t4。

修改生病原因:

”〈<endl;

 cout〈〈”\t\t\t\t5.修改生病时间:

"<〈endl;

  cout<〈"\t\t\t\t6。

修改生病地点:

”〈<endl;

 cout〈<”\t\t\t\t7。

修改动物的编号:

”<〈endl;

  cout<〈”*************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1