资源描述
《面向对象程序设计》实验指导书
实验类别: 设计 实验课程名称: 面向对象程序设计方法学
实验室名称:软件基础实验室 实验课程编号:
总学时: 56 学 分: 3.5
合用专业: 计算机科学与技术、网络工程、物联网
先修课程: 有一门程序设计语言基础
实验在教学培养计划中地位、作用:
面向对象程序设计方法学是一门实践性很强的课程,每个学生必须完毕一定数量的上机实验。实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。本课程使学生熟悉C++的语法特性,了解C与C++的区别和兼容性;理解面向对象程序设计的基本原理,涉及类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性—类;掌握用C++编写面向对象程序的一般方法;了解VC++编程环境。通过上机实验进一步加深对课程基本内容的理解。同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。
实验一 语句与程序流程(2学时)
1、实验目的
(1)了解C++开发工具的特点
(2)熟悉C++开发环境
(3)学会编写简朴的C++程序。
(4)练习使用简朴的输入输出。
(5)熟悉各种流程控制语句的功能。
2、实验内容
(1)输入并运营程序:用do-while语句编程,求自然数1~10之和。程序对的运营之后,去掉源程序中的#include语句,重新编译,观测会有什么问题。
(2)do-while语句用for语句代替,完毕相同的功能。
(3)编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运营时先提醒用户选择图形的类型,然后,对圆形规定用户输入半径值,对长方形规定用户输入长和宽的值,对正方形规定用户输入边长的值,计算出面积后将其显示出来。
3、实验规定
(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。
(2)独立完毕所布置习题。
(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。
(4)认真完毕每次实验,并写出实验报告。
4、实验环节
(1)启动Visual C++开发环境
(2)创建一个项目
1)单击File菜单中的New选项,显示新建对话框
2)选择Win32 Console Application(VC++)。
3)选择项目所在途径及输入项目的名称lab1_1
4)依次按‘下一步’直至完毕为止。
(3)至此,已经建立好工程相关的文献,在生成的main函数中写入必要的内容即可。
(4)输入并运营程序:用do-while语句编程,求自然数1~10之和
1)建立C++源程序文献
l 选菜单命令Project|Add to Project|New,弹出New对话框
l 在New对话框的Files选项卡中选择C++ Source File,并填入文献名称lab1_1,单击OK按钮,完毕新建C++源程序文献
2)编辑C++源程序文献
l 在文献编辑窗口中输入代码
l 完毕后,选择菜单File|Save保存这个文献
3)建立并运营可执行程序
l 选择菜单命令Build,建立可执行程序
假如你对的输入了源程序,此时便成功地生成了可执行程序。假如程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。
l 选择菜单命令Run,运营程序,观测屏幕显示内容。
(5)程序对的运营之后,在源程序第一行”#include <iostream.h>”前面加注释标记”//”使之成为注释行,重新编译,观测编译的结果。
(6)选择菜单命令File|Colse WorkSpace关闭工作空间,另建立一个项目lab1_2,包含一个C++源程序lab1_2.cpp,将do-while语句用for语句代替,完毕与实验内容1相同的功能。
(7)选择菜单命令File|Colse WorkSpace关闭工作空间,建立项目lab1_3,包含一个C++源程序lab1_3.cpp,计算图形面积。圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。程序中定义一个整型变量iType表达图形的类型,用cout语句输出提醒信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提醒用户输入需要的参数值,计算出面积的值后用cout语句显示出来。最后编译运营程序。
参考程序如下:
//lab3_3.cpp
#include <iostream>
using namespace std;
const float PI=3.1416;
int main()
{
int iType;
float radius,a,b,area;
cout<<”图形的类型?(1为圆形,2为长方形,3为正方形):”;
cin>>iType;
switch(iType)
{
case 1:
cout << “圆的半径为:”;
cin>>radius;
area=PI*radius*radius;
cout<<”面积为”<<area<<endl;
break;
case 2:
cout<<”矩形的长为:”;
cin>>a;
cout<<”矩形的宽为:”;
cin>>b;
area=a*b;
cout<<”面积为:”<<area<<endl;
break;
case 3:
cout<<”正方形的边长为:”;
cin>>a;
area=a*a;
cout<<”面积为:”<<area<<endl;
break;
default:
cout<<”不是合法的输入值!”<<endl;
}
return 0;
}
实验二 函数与重载(2学时)
1、实验目的
(1)掌握函数的定义和调用方法。
(2)练习重载函数使用。
(3)练习缺省参数的函数使用
(4)练习使用系统函数。
2、实验内容:
(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。
(2)编写重载函数max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
(3)给求取两个整数最大值的重载函数max1赋缺省参数值0,并运用该函数来判断某个整数是否大于0,比如max1(-6)。
(4)使用系统函数pow(x,y)计算x^y的值,注意包含头文献cmath。
3、实验规定
(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。
(2)独立完毕所布置习题。
(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。
(4)认真完毕每次实验,并写出实验报告。
4、实验环节:
(1)编写函数float Convert(float TempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名为lab2_1.cpp.
(2)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab2_2.cpp。
参考程序如下:
#include <iostream>
using namespace std;
int max1(int a=0,int b=0)
{
return a>b?a:b;
}
int max1(int a,int b,int c)
{
int tmp=max1(a,b);
return tmp>c?tmp:c;
}
double max1(double a,double b)
{
return a>b?a:b;
}
double max1(double a,double b,double c)
{
double tmp=max1(a,b);
return tmp>c?tmp:c;
}
int main()
{
int n1,n2,n3;
cout<<"请输1个整数:";
cin>>n1;
if (max1(n1)==0)
cout<<"这个数小于或等于0";
else
cout<<"这个数大于0";
cout<<"请输2个整数:";
cin>>n1>>n2;
cout<<"最大值为"<<max1(n1,n2)<<endl;
cout<<"请输3个整数:";
cin>>n1>>n2>>n3;
cout<<"最大值为"<<max1(n1,n2,n3)<<endl;
double d1,d2,d3;
cout<<"请输2个实数:";
cin>>d1>>d2;
cout<<"最大值为"<<max1(d1,d2)<<endl;
cout<<"请输3个实数:";
cin>>d1>>d2>>d3;
cout<<"最大值为"<<max1(d1,d2,d3)<<endl;
return 0;
}
(3)若将三个整数的函数给定缺省参数值0,重新编译,观测编译的结果。
(4)在main()函数中提醒输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。程序名:lab2_2.cpp。
实验三 类的定义与使用(2学时)
1、 实验目的
(1)掌握类的定义和使用
(2)掌握类的定义和对象的声明
(3)观测构造函数和析构函数的执行过程。
(4)观测具有不同访问属性的成员的访问方式。
2、实验内容
(1)定义一个TDate类,包含年(year)、月(month)、日(day)等属性,有三个公有成员函数:SetDate来设立日期、AddOneDay来对日期进行加1天的操作、print来输出日期;
(2)对构造函数或成员函数进行重载;
(3)设立构造函数或成员函数的缺省参数
(4)观测构造函数和析构函数的调用顺序;
(5)观测具有不同访问属性的成员的访问方式。
3、实验规定
(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。
(2)独立完毕所布置习题。
(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。
(4)认真完毕每次实验,并写出实验报告。
4、实验环节
(1)添加一个头文献TDate.h来定义TDate类。包含:
1)私有数据成员:年(year)、月(month)、日(day)等;
2)定义2个构造函数,并对其中的一个构造函数设立缺省参数;
3)定义1个析构函数。
4)定义成员函数SetDate来设立日期,AddOneDay来对日期进行加1天的操作,print来输出日期。
(2)添加一个源文献TDate.cpp来实现成员函数。
(3)在主程序中定义若干个TDate类的对象,调用其成员函数,观测类对象的构造与析构顺序,以及成员函数的调用。写在此外一个cpp文献中。
(4)将成员函数print的访问属性设为private或protected后,重新编译,观测编译结果。
//======日期类定义部分TDate.h======//
#include <iostream>
using namespace std;
#ifndef TDate_H
#define TDate_H
class TDate
{
public:
TDate()
{
year=2023;month=1;day=1;
cout<<"调用缺省的构造函数"<<endl;
}
TDate(int y,int m=1,int d=1)
{
year=y;month=m;day=d;
cout<<"调用带参数的构造函数"<<endl;
};
void SetDate(int y,int m,int d);
void AddOneDay();
void print();
~TDate(){cout<<"调用析构函数"<<endl;}
private:
int year;
int month;
int day;
};
#endif
//======日期类实现部分TDate.cpp ======//
#include "TDate.h"
int maxDays(int,int);
void TDate::print()
{cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;}
void TDate::SetDate(int y,int m,int d)
{ year=y; month=m; day=d; }
void TDate::AddOneDay()
{
day=day+1;
if (day>maxDays(year,month))
{month=month+1; day=1;}
if (month>12)
{year=year+1; month=1; }
}
int maxDays(int y,int m)
{
int days;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31; //31天
break;
case 2:
if ((y%4==0&&y%100!=0)||y%400==0)//闰年29天
days=29;
else
days=28;
break;
//}
default://30天
days=30;
break;
}
return days;
};
//======主函数部分Lab3.cpp ======//
int main()
{
TDate d0;
cout<<"不带参数的日期对象:"; d0.print();
TDate d1(2023);
cout<<"带1个参数的日期对象:"; d1.print();
TDate d2(2023,12);
cout<<"带2个参数的日期对象:"; d2.print();
TDate d3(2023,10,14);
d3.AddOneDay();
cout<<"带3个参数的日期对象加一天后:"; d3.print();
d3.SetDate(2023,4,8);
cout<<"重新设定日期后:"; d3.print();
return 0;
}
实验四 静态成员与常成员的使用(2学时)
1、 实验目的
(1)学习静态成员的使用
(2)学习常成员的使用
(3)掌握静态数据成员与常数据成员的初始化
2、实验内容
(1)某商店经销一种货品,货品成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不同样,因此,商店需要记录下目前库存的货品的总重量,现在规定设计一个Goods类并使用静态成员来模拟商店货品购进和卖出的情况;
(2)为上面的Goods类添加一个常数据成员(货品名称),并对货品名称进行初始化;
(3)将前面已定义的某些成员函数改写为常成员函数,观测是否该类中所有的成员函数是否都可设定为常成员函数。
3、实验规定
(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。
(2)独立完毕所布置习题。
(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。
(4)认真完毕每次实验,并写出实验报告。
4、实验环节
(1)添加一个头文献Goods.h来定义Goods类。包含:
1)私有数据成员货品重量(weight)、私有静态数据成员库存总重量(totalWeight);
2)定义构造函数来描述进货过程;
3)定义成员函数Sell来描述货品卖出过程,成员函数GetWeight来获取当前货品重量。
4)定义静态成员函数GetTotalWeight来读取当前货品的库存总重量。
5)自定义若干个成员函数。
(2)添加一个源文献Goods.cpp来实现成员函数。
(3)在主程序中定义若干个Goods类的对象,模拟进货与卖出的过程。查看运营结果。
(4)为Goods类添加一个常数据成员const char * name来表达货品名称,改写构造函数及主程序的调用,在构造函数的成员初始化列表中对货品名称赋初值。重新编译,观测运营结果。
(5)将前面已定义的某些成员函数改写为常成员函数,观测是否该类中所有的成员函数是否都可设定为常成员函数。
参考程序如下:
#include <iostream.h>
class Goods
{
public:
Goods(int w);
int GetWeight() const;
void Sell();
static int GetTotalWeight();
private:
int weight;
static int totalWeight;
public:
const char* name;
};
Goods::Goods(int w):name("鸡蛋")
{
weight=w;
totalWeight+=w;
}
void Goods::Sell()
{
totalWeight-=weight;
weight=0;
}
int Goods::GetWeight() const
{
return weight;
}
int Goods::GetTotalWeight()
{
return totalWeight;
}
int Goods::totalWeight=0;
int main()
{
int w;
cout<<"购进第1箱货品重量为:";
cin>>w;
Goods g1(w);
cout<<"购进第2箱货品重量为:";
cin>>w;
Goods g2(w);
cout<<"库存货品重量为:";
cout<<Goods::GetTotalWeight()<<endl;
g2.Sell();
cout<<"卖掉第2箱货品后,库存货品重量为:";
cout<<g1.GetTotalWeight()<<endl;
cout<<"货品名称为:"<<g1.name<<endl;
return 0;
}袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈
芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈
展开阅读全文