动物园管理系统实验报告.docx
- 文档编号:8300014
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:24
- 大小:224.10KB
动物园管理系统实验报告.docx
《动物园管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《动物园管理系统实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
动物园管理系统实验报告
动物园管理系统实验报告
一.时间:
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<〈”*************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动物园 管理 系统 实验 报告