第一题实验报告
一 设计题目一
使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。
1 基本设计要求
设计要求实现如下功能:
1) 建立职工信息数据,包括职工编号、姓名、性别和年龄。
2) 根据职工信息表,建立只含有姓名和年龄的职工信息简表。
3) 使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。
4) 编写同名display()成员函数,用来输出数组的内容。
5) 另外编制一个函数printer(),用来根据实际对象输出它们的内容。
2 进一步的要求
设计菜单,简单界面为:
1. 增加职工记录
2. 生成信息简表
3. 显示原始记录
4. 显示简表记录
5. 结束程序运行
选择1-5:
3 涉及到的主要知识点:
(1)函数的定义;(2)类的定义;(3)类的继承;(4)对象数组(向量数组)等。
二、内容要求
1、设计题目
使用继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。
2、设计要求
设计要求实现如下功能:
(1).建立职工信息数据,包括职工编号、姓名,性别和年龄。
(2)据职工信息表,建立只含姓名和年龄的职工信息简表。
(3)使用继承的方法构造2个类,使用相应的对象数组放置10个职工信息。
(4)编写同名display( )成员函数,用来输出数组的内容。
(5)编写函数printer( ),用来根据实际对象输出它们的内容。
三、设计思想
1、类的结构
这里把简表的内容作为基类worker,由它派生详表类workers。这样,简表可以由赋值兼容规则得到。例如workers的一个对象wks为:
编 号 姓 名 性 别 年 龄
1001 张三 男 25
则worker的对象wk可以通过以下赋值兼容规则得到:
wk=wks;
这时wk的信息为:
姓名 年龄
张三 25
2、多态性
将worker的display()成员函数设计为虚函数,printer()函数使用基类worker对象的引用作为参数,即可实现多态性。
void printer(worker&s)
{
s.display();
}
3、设计主函数
要求编写最多输入10个职工的信息表,这里的意思是可以少于10个职工。使用ch存放读入的字符,当输入0时退出输入,同时将输入个数作为输出语句的循环次数。例如使用整型变量number存放输入个数,则可使用如下方法实现:
if(0==w_num)
{
number=i;
break;
}
使用const定义一个常量SIZE=10,这样可以增加程序的灵活性。
四、程序代码
#include<iostream>
#include<string>
using namespace std;
const int SIZE=10;
//职工简表类
class Worker{
private:
int age;
public:
char name[100];
void setname(char n[100]);
char getname();
void setage(int a);
int getage();
virtual void display();
};
class Workers:public Worker{
private:
int num;
char sex[6];
public:
void setnum(int n);
int getnum();
void setsex(char s[SIZE]);
char getsex();
void display();
};
void printer(Worker&);
void Worker::setname(char n[100])
{strcpy(name,n);}
char Worker::getname()
{ cout<<name;
return(1);
}
void Worker::setage(int a)
{age=a;}
int Worker::getage()
{return age;}
void Worker::display(){
cout<<"\t"<<name<<"\t"<<age<<endl;
}
void Workers::setnum(int n)
{num=n;}
int Workers::getnum()
{return num;}
void Workers::setsex(char s[SIZE])
{strcpy(sex,s);}
char Workers::getsex()
{cout<<sex;
return(1);
}
void Workers::display(){
cout<<num<<"\t"<<name<<"\t"
<<getage()<<"\t"<<sex<<endl;
}
//显示职工信息处理函数
void printer(Worker&s)
{s.display();}
//主函数
void main(){
Workers wks[SIZE];
Worker wk[SIZE];
int number;
int w_num;
char ch[10];
int w_age;
cout<<endl<<endl<<"\t"<<"职工信息表"<<endl<<endl;
cout<<"请输入职工信息,以输入编号为0结束!"<<endl;
for(int i=0;i<SIZE;i++){
cout<<"编号:";
cin>>w_num;
if(0==w_num){
number=i;
break;
}
wks[i].setnum(w_num);
cout<<"姓名:";
cin>>ch;
wks[i].setname(ch);
cout<<"性别:";
cin>>ch;
wks[i].setsex(ch);
cout<<"年龄:";
cin>>w_age;
wks[i].setage(w_age);
cout<<endl;
}
cout<<endl;
for(i=0;i<number;i++)
wk[i]=wks[i];
cout<<"\t职工信息详表"<<endl;
cout<<"编 号"<<"\t姓 名"<<
"\t年 龄"<<"\t性 别"<<endl;
for(i=0;i<number;i++)
printer(wks[i]);
cout<<endl;
cout<<"\t职工信息简表"<<endl;
cout<<"\t姓 名"<<"\t年 龄"<<endl;
for(i=0;i<number;i++)
printer(wk[i]);
}
int main()
{
int sum=0; //计算职工人数
workers worker[10];
circle: cout<<"\t\t职工信息记录\n"; //破碎之圆
cout<<"\t按1后, 增加职工记录\n";
cout<<"\t按2后, 显示职工人数\n";
cout<<"\t按3后, 显示所有职工简表记录\n";
cout<<"\t按4后, 显示所有职工原始记录\n";
cout<<"\t按5后, 显示特定编号的职工\n";
cout<<"\t按6后, 结束程序(数据无法保存)"<<endl<<endl;
cout<<"-----------选择任一操作后,按enter-----------"<<endl;
cout<<"你要按:"<<endl;
int select;
cin>>select;
switch (select)
{
case 2: //显示职工人数
{
cout<<"\t职工人数为\t:"<<sum<<endl;
goto circle;
}
case 1: //增加职工信息
{
++sum;
worker[10].write(worker ,sum);
goto circle;
}
case 3: //显示职工简表
{
worker[10].displaySim(worker, sum);
goto circle;
}
case 4: // 显示所有职工
{
worker[10].displayAll(worker, sum);
goto circle;
}
case 5:
{
cout<<"\t输入要显示职工的编号\n";
int num;
cin>>num;
worker[10].priter(worker, sum);
goto circle;
}
case 6:
break;
default:
{
cout<<"请输入1-6的数字!"<<endl;
goto circle;
}
}
return 0;
}
运行结果:
第二篇:电工实验报告思考题答案(1)
实验二
思考题一、在叠加原理实验中,要令U1、U2分别单独作用,应如何操作?可否直接将不作用的电源(U1或U2)短接置零?
在叠加原理中,当某个电源单独作用时,另一个不作用的电压源处理为短路,做实验时,也就是不接这个电压源,而在电压源的位置上用导线短接就可以了。
思考题二、实验电路中,若有一个电阻器改为二极管,试问叠加原理的迭加性与齐次性还成立吗?为什么?
电阻器与二极管不能替换使用。电阻器是双通器件,二极管是单通器件,当二极管两端电压低于二极管启动电压,二极管的电阻是无限大的,当二极管单通运用,二极管的电阻又是非常小的。
当然不成立,有了二极管就不是线性系统了,但可能在一定范围内保持近似线性,从而叠加性与齐次性近似成立。如果误差足够小,就可以看成是成立。
实验三
思考题一(1)UL和UD的代数和为什么大于U?(2)并联电容器后,总功率P是否变化?为什么?三相负载根据什么条件作星形或者三角形连接?
(1)因为他们的方向不同,是向量相加,三角形关系。(2)并联电容器后,会产生无功功率,总规律会变大。在感性负载中并联一定大小容量的电容,才可使电源(如变压器等)的视在功率减少。纯电阻电路中不减反增。三相负载根据负载设计的额度电压和实际的电源电压决定星形或三角形连接。
比如负载额定电压220V,电源额定电压380V,就接成星形连接,这时负载获得220V电压。
比如负载额定电压220V,电源额定电压220V,就接成角形连接,这时负载获得220V电压。
比如负载额定电压380V,电源额定电压380V,就接成角形连接,这时负载获得380V电压。
思考题二、复习三相交流电路有关内容,是分析三相星形连接不对称负载在无中线情况下。当某相负载开路或短路时会出现什么情况?如果接上中线,情况又如何?
1、当某相负载开路时,就相当于另外两组串联在380V电压下使用,那么电阻大的那组,分得的电压高,如超过其额定电压就会烧毁。
2、如某相负载短路,那么另外两组都处于380V电压下,都将烧毁。
3、如接上中线,可正常使用,中线有电流.。
实验四
思考题一、中线的作用?
当负载作星形接法时,负载三相不平衡时,使得三相负载上的电压仍处于平衡。无中线,出现负载三相不平衡时,三相负载上的电压则不平衡。
实验五
思考题一、如何判断异步电动机的6个引自线?电动机的额定电压与电动机接线方法有什么关系?
用手转动电动机转子,同时观察万用表指针,万用表指针不会偏转(摆动)。测量方法二: (一)万用表选档:直流50u (二)测量过程: 1、将电动机一个绕组的两引出线分别接在万用表的两表笔上,另一绕组的一根引出线接在电池的一极,另一引出线去碰电池的另一极,同时注意观察万用表的指针偏转情况:如指针正向偏转,说明电池正极所接线与万用表负极(黑表笔)所接线同为首端(或尾端),另外两根引出线同为尾端(或首端)。
电机的额定电压(其实就是电机内部各绕组的相电压)应该等于电源电压。比如额定电压是380V的三相电机,在380/220(最常用的电源)系统中应该接成三角形,而在煤矿等一些特殊行业的660/380供电系统中,就应该接成星形。同样,额定电压为220V的三相电机(通常都是小于4KW的),在380/220的供电系统中应该接成星形,而当采用输出为三相220V的变频器拖动时,就应该接成三角形。
思考题二、缺相三相异步电动机运行中的一大故障,在启动或运转时发生缺相会出现什么现象?有何后果?
有时缺相会动但速度很慢,还有恩恩的声音。因为旋转磁场不对。正常下缺相会烧电机。
思考题三、电动机转子被卡住不能转动。如果定子绕组接通三相电源将会发生什么后果?
转子卡住之后,定子绕组接通电源之后,首先电动机会发出嗡嗡声,然后线圈电流加剧上升.同时电机温升加快,最后的结果就是线圈损坏,相间短路,开关保护性跳闸.
思考题四、分析用电流表法判定三相绕组首、末端方法的原理。
通电试验法:先用万用表的欧姆档将六个引线头分成三组,然后将任意两组串联接在交流电源上,第三组上串联一个灯泡(15或25W,大功率不亮)。通电后,如果灯泡发亮,表示串联的两组为首尾相接;如果灯泡不亮,表示尾尾相连或首首相连,以此类 推。
电池定向法:先用万用表的欧姆档将六个引线头分成三组,然后将第一组的两个线头分别接于万用表毫安档的正负极,将第二组的第一个线头用手指按在干电池的负极上用另一头触碰电池正极,如果万用表的指针偏向右侧,说明万用表的正极线头与干电池的负极线头为头(尾),如果指针偏向左侧,则说明万用表正极线头与干电池正极线头为头(尾),以此类推。
转向法:对于小型电动机,不用万用表也可判别绕组的首尾端,判别时首先分清那两个线头是同一相,,然后每相任取一个线头,将三个先头接成一点,并将该点接地,用两根380V电源线分别顺序接在电动机的两个引线头上,观察电动机的旋转方向。若三次接上去,电动机转向相同,则表明三相首尾接线正确;若三次接上去,电动机有两次反转,则表明参与过这两次反转的那相绕组接反。。例如第一次A、B相,第二次B、C相都反转,B相两次都参与,说明B相首尾接反,将B相的两个线头对调即可。