华北电力大学C++第十五讲
华北电力大学保定电机学同步发电机的基本电磁关系概要PPT课件
Ea =4.44fNkw1Φa
Ea a Fa I
Ea jIxa
式中:xa 称为电枢反应电抗
xa
Ea I
xa 是对称负载下每相电流为1安时所感应的电枢反应电动势。
第21页/共73页
§10-3 隐极同步发电机的电动势方程式、同步电抗和相量图
➢一、不考虑饱和时的电动势方程式、同步电抗和相量图
4、漏电抗:
第10页/共73页
1.试说明同步电机中的 、 、 、 、 、等物理量哪些是空间矢量?哪些是时间相量?试述两种矢(相) 量之间的统一性。如果不把相轴和时轴重合,那么时、空相(矢)量之间的关系怎样?
I Ff 1 Fa B0 Ba E0
第11页/共73页
§10-2 三相同步发电机的电枢反应
➢三、不同ψ角时的电枢反应
第5页/共73页
§10-2 三相同步发电机的电枢反应
➢二、时空相矢图-分析电枢反应时采用时间相量和空间矢量统一 图,这种图简称为“时空相矢图”
1.空间矢量:凡是沿空间按正弦分布的量都可表示为空间矢量。
基波励磁磁动势
Ff
及其磁密
1
B0
为一空间矢量。该矢量位于转子
的极轴线上,方向为N极指向,以同步速旋转,如图10-3所示。
B
t E0 IA (I)
IB
A t
E0
Fa
I
Ff 1
N
B0
图10-6 时空相矢图
第9页/共73页
§10-2 三相同步发电机的电枢反应
➢二、时空相矢图-分析电枢反应时采用时间相量和空间矢量统一 图,这种图简称为“时空相矢图”
3.时空相矢图:
结论:在时空相矢图上E0 总是落后于 Ff1 以90度,Fa 总是与I 重 合。E0与 I 之间相位差 随着负载的性质不同而改变。而 Fa 与Ff1 之间相对位置又完全取决于ψ角 (它们之间的空间相位差为 90 角),所以电枢反应的性质是由ψ角决定的,也就是说单机运行 时电枢反应的性质是由负载的性质决定的。
电机学课件--华北电力大学(保定)
L2
结论二:作用在闭合磁路上的总的磁 动势,等于各段磁路上磁压降之和。
i2
L1
22
0.5.2 磁路定律
(3)磁路欧姆定律
某段磁路的磁压降
定义磁阻 Rmi =
Hi Li Li
μi Si
=
Bi
μi
Li
=
Φ Si
μi
Li
L3
= Φ Li
μi Si
L4 L3
磁导的定义
Λ mi
=
1 Rmi
=
μi Si
(A/m2) 磁通密度 B
(Wb/m2)
电动势 E
(V) 磁动势 F= wi
(AT)
电阻 R=ρl∕S
(Ω)
电导 G=1∕R
(S)
电压降 U=I R
(V)
节点电流定律 Σ i=0
磁阻 Rm=lm∕(μSm) (1/H)
磁导 Λm=1∕Rm (H)
磁压降 Φ Rm
(A)
磁通连续性原理 ΣΦ =0
回路电压定律 Σ e=Σ u 电路欧姆定律 I=U∕R
社. 1996. 李发海主编. 电机学(第三版). 科学出版社. 2001. 孙旭东主编. 电机学习题与例题. 科学出版社. 2001. 辜承林主编. 电机学. 华中科技大学出版社. 2001. 龚世缨主编. 电机学实例解析. 华中科技大学出版社. 2001.
2
公共邮箱
3
绪论
0.1 概述 0.2 电机的分类 0.3 电机所用材料 0.4 铁磁材料的磁性能 0.5 主要电磁定律复习 0.6 电机中的能量守恒及效率
f 为磁场交变的频率,Bm为磁通密度的最大值。
z
C 测试系统使用说明学生华北电力大学
C++测试系统操作说明书(服务器地址:202.206.223.115)2、学生操作说明2.1登录输入用户名、密码(学生的用户名和初始密码都是学号),点击“登录”后进入学生界面。
2.2查看作业点击左侧导航栏的第一项“查看作业”,右侧显示已布置的所有作业。
2.2.1已结束的作业列出所有已过截止时间的作业,点击作业名称,可查看该次作业的具体情况。
页面上方列出的是该次作业的题目,下方列出的是该学生提交的正确的程序。
2.2.2未结束的作业列出所有未过截止时间的作业,点击作业名称,可继续完成该次作业。
第1个子页面列出作业题目,第2个子页面用来提交程序文件,第3个子页面显示答题情况。
学生在第1个子页面阅读完题目以后,自行在VC环境中编写程序,编写完成后在第2个子页面中将cpp文件提交上来,提交方法:首先选择题号,然后点击“浏览”按钮找到要提交的文件,最后点击“提交”按钮。
稍后,“提交”按钮的下方会显示判断结果。
判断结果有以下几种情况:①程序正确:运行结果正确,该题得分;②编译有错:程序中有语法错误,未通过编译;③结果不对:编译通过,但运行结果不对;④系统问题,请稍后:服务器无法读出正确答案,无法判断对错;⑤上传失败:服务器上传文件有问题(服务器上可能没有该学生的文件夹);⑥运行超时:程序运行超过10秒,仍未运行完,按错误处理。
判断结果也可能是以下两种情况:①上传成功:程序正确与否看不出来。
②上传失败这是由于老师在布置本次作业时选择了批量判卷的方式,致使上传以后看不到结果。
只有等截止时间到了并且老师执行了判卷操作后才能看到判断结果。
2.3查看测试点击左侧导航栏的第一项“查看测试”,右侧显示已布置的所有测试。
2.3.1已结束的测试列出所有已过截止时间的测试,点击测试名称,可查看该次测试的具体题目和提交的正确程序。
2.3.2正在进行的测试列出所有未过截止时间的测试,点击测试名称,可继续完成该次测试。
第一次点击该测试时,进行抽题,以后再次点击该测试,题目是不变的。
前言
核安1301 核电1301
邮箱
daydayup2051@ daydayup2052@
核电1302
daydayup2053@
C语言程序设计
主讲教师— 刘海青
华北电力大学控制与计算机工程学院
办公室:主楼 E1143 电话: 6177-2798 E-mail:hqliu@
本课程旨在培 养学生的计算思维 和程序设计能力。 通过该课程的学习, 学生不仅要掌握高 级程序设计语言, 还要学习程序设计 的思想和方法,培 养问题求解和语言 的应用能力。
4
讲课内容学时分配
• • • • • 第1、2章 简介及基础知识 第3、4章 选择、循环结构 第6、7章 数组、函数 第8章 指针 第9章 结构体 详见【教学日历】 4学时 8学时 8学时 6学时 2学时
实验内容
根据课程进度安排相关实验。结课综合实 验(考核)。
5
要求每一个学生要求有自己的e-mail帐户。 信息发布公共邮箱: daydayup2050@ Password:ncepu12345 有任何疑问,可面询,或发邮件至443 460 690@,请在主 题中注明班级、学号、姓名。 作业交付:在规定的交付日期11:59pm之前,发至指定的作业邮 箱。邮箱分配如下:
2
目 录
• • • • • • • • 第1章 第2章 第3章 第4章 第6章 第7章 第8章 第9章 C语言程序设计简介 C语言程序基础 选择结构 循环结构程序设计 数组 函数 指针 结构体
本课程教学要求及特点
• 学时分配:总共56学时,其中讲课30学时(5~ 19周),上机实践26学时(7~19周)。 • 教学日历:参见公共邮箱中的相应附件。 • 考试方式:期末70﹪+上机20﹪+平时10﹪= 最终成绩。 • 特别奖励政策:成绩“卓越”(最终成绩 排名前5%,即前4名;最终成绩90+)的同 学,将邀请函——刘老师请客
华北电力大学数据通信教学课件.
2.3 TCP/IP协议体系结构
TCP/IP的应用
TELNET:提供远程登录的能力,它使得某台终端或个 人计算机上的用户能够登录到一台远程计算机上,并使之能 够像直接连接到这台计算机上一样工作。该协议的设计是为 了在简单的滚屏式终端上工作。实际上,TELNET由两个模 块实现:用户TELNET与终端的I/O模块交互,以便与本地终 端通信,它将实际终端的特性转换成网络标准,反之亦然。 服务器TELNET与应用程序之间进行交互,它被当做是一个 代理终端处理器,以使远程终端看起来好像是应用程序的本 地终端一样。用户TELNET和服务器TELNET之间的终端通 信量由TCP连接运载。
为什么OSI模型和以此模型为框架开发的协议没有主宰计算 机领域,并最终取代各种专用的协议?
糟糕的时机(Bad timing)
糟糕的技术(Bad technology)
糟糕的实现(Bad implementations) 糟糕的策略(Bad politics)
2.4 OSI
糟糕的时机(Bad timing)
2.1 协议体系结构的必要性
The philosopher-translator-secretary architecture.
2.2 简单的协议体系结构
通信功能是由一组结构化的模块共同实现的,而不是由 单一的模块来完成的。这种模块结构就称为协议体系结构。
2.3 TCP/IP协议体系结构
TCP/IP模型将通信任务分割成五个相对独立的层: 物理层 网络接入层 互联网层 主机对主机或传输层 应用层
2.4 OSI
OSI和TCP/IP协议体系结构的比较
2.4 OSI
华北电力大学精品课程-电力系统继电保护(黄少锋教授)—距离(3-123原理、特性、实现)
第 3 章电网的距离保护一、距离保护基本原理二、阻抗继电器动作特性及其实现方法三、距离保护的整定计算及对距离保护的评价四、距离保护的振荡闭锁五、故障类型判别及故障选相六、距离保护特殊问题的分析七、工频故障分量距离保护第3.1节距离保护基本原理及构成电流保护:反映故障电流大小。
简单、经济、工作可靠,但是,受系统运行方式变化的影响较大,难以满足高压和超高压电网快速、有选择性地切除故障的要求。
一般适用于35kV及以下电网。
因此,还需要研究其他方式的保护,以便克服电流保护的不足。
——过电流保护——低电压保护——阻抗(距离)保护——纵联差动保护(高频、微波、光纤)——零序或负序分量保护——瓦斯保护、过热保护等短路的主要特征归纳:1)电流增大2)电压降低3)阻抗减小4)两侧电流大小和相位的差别5)不对称分量出现6)非电气量所以,还能反映短路点到保护安装处的距离l m ,因此,也称为:距离保护。
对于输电线路,由于3.1.1 距离保护基本原理与构成利用保护安装处测量电压和测量电流的比值所构成的继电保护方式称为阻抗保护,m m I U m 1m m m l z Z I U == 。
短路点的距离—抗;线路单位长度的正序阻—其中,)km (l z m 1。
即:m m m Z IU = 如果计算出具体的数值,还具有测距的功能。
K 212K 1依据测量阻抗在不同情况下的“差异”,保护就能够区分出系统是否发生故障,以及故障发生的范围——正向及范围,或反向。
11K m l z Z =21K m l z Z =K 3保护范围正比关系(三个短路点位置的例子)31K m l z Z -=距离保护的保护范围和灵敏度受运行方式的影响较小,尤其是距离保护Ⅰ段的保护范围比较稳定,同时,还具备判别短路点方向的功能。
,称为距离保护。
反映距离—护;反映阻抗,称为阻抗保—m m 1m m m m l l z Z IU Z == 二者几乎反映了同一个性质。
华北电力大学c++实验指导函数的应用习题参考答案
实验指导函数的应用习题解答1.改错题见文件“实验指导改错题习题解答”。
2.填空题(在空白处填入适当内容,将程序补充完整,并上机调试)(1)请补充fun函数,该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,如果为“是”,则返回1;为“否”,则返回0。
#include <iostream.h>int fun(int n){ int g,s,b;g=n%10;s=n/10%10;b=n/100;if(g+b==s)return 1;elsereturn 0;}void main(){ int num;cin>>num;if(fun(num)==1)cout<<"yes"<<endl;elsecout<<"no"<<endl;}(2)题略#include <iostream.h>void main(){ int SunFun(int);cout<<"sum="<<SunFun(10)<<endl;}int SunFun(int n){ int F(int);int x,s=0;for(x=0;x<=n;x++)s+=F(x);return s;}int F(int x){return (x*x+1);}#include <iostream.h> double fun(int n){ int i;float sum=0.0;for(i=1;i<=n;i++)if(i%3==0||i%7==0)sum+=1.0/i;return sum;}void main(){ int n;double s;cout<<"Input n:"; cin>>n;s=fun(n);cout<<"s="<<s<<endl; }(3)题略#include <iostream.h> double fun(int n){ int i;float sum=0.0;for(i=1;i<=n;i++)if(i%3==0||i%7==0)sum+=1.0/i;return sum;}void main(){ int n;double s;cout<<"Input n:"; cin>>n;s=fun(n);cout<<"s="<<s<<endl; }(4)题略#include <iostream.h> double f(int n){ int i;long s;s=1;for(i=1;i<=n;i++)s=s*i;}void main(){ long s;int k,n;cin>>n;s=0;for(k=0;k<=n;k++)s=s+f(k); cout<<s<<endl;}(5)题略#include <iostream.h> double fun(double q){ int n;double s;n=2;s=2.0;while(s<=q){ s=s+(n+1.0)/n;n++;}return s;}void main(){ cout<<fun(50)<<endl;}(6)题略#include <iostream.h>int c1,c2,c3;void fun(long n){ c1=c2=c3=0;while(n){switch(n%10){case 1:c1++;break;case 2:c2++;break;case 3:c3++;break;}n=n/10;}}{ long n=123114350;fun(n);cout<<"c1="<<c1<<" c2="<<c2<<" c3="<<c3<<endl; }(7)题略#include <iostream.h>#include <math.h>double f(double x){if(fabs(x-0.0)<1e-6||fabs(x-2.0)<1e-6)return 0;else if(x<0)return (x-1)/(x-2);elsereturn (x+1)/(x-2);}double fun(int n){int i;double s=0.0,y;for(i=-n;i<=n;i++){y=f(1.0*i);cout<<y<<endl;s+=y;}return s;}void main(){ cout<<fun(5)<<endl;}(8)题略#include <iostream.h>double fun(int n){int i,j;double sum=0.0,t;for(j=1;j<=n;j++){t=0.0;for(i=1;i<=j;i++)t+=i;sum+=1/t;}return sum;}void main(){int n;double s;cout<<"Input n:";cin>>n;s=fun(n);cout<<"s="<<s<<endl;}(9)略(10)略3.按要求编写下列程序,并上机调试运行1.程序如下:#include <iostream.h>#include <math.h>unsigned fun(unsigned w){ unsigned n,k;n=0;k=w;while(w>10) //循环结束,n中为w的位数-1 {n++;w=w/10;}return k%(int)pow(10,n);}void main(){unsigned num;cout<<"Input num:";cin>>num;if(num>10)cout<<"result="<<fun(num);elsecout<<"Data Error";}2.程序如下:#include <iostream.h>int pd(char w){ if(w>='0'&&w<='9')return 1;else return 0;}void main(){char c;cout<<"Input c:";cin>>c;if(pd(c)==1)cout<<c<<"是数字字符";elsecout<<c<<"不是数字字符";}3.程序如下:#include <iostream.h>int zh(int a,int b){ int c;c=a/10*1000+b*10+a%10;return c;}void main(){int a,b,c;cout<<"Input a and b:";cin>>a>>b;c=zh(a,b);cout<<"合并后的数:"<<c;}4.程序如下:#include <iostream.h>float sum(int n){ int i,f;float s;f=-1;s=0;for(i=1;i<=n;i++){f=-f;s+=f*1.0/(i*(i+1));}return s;}void main(){int n;float sum(int);cout<<"Input n:";cin>>n;cout<<"和:"<<sum(n);}5.程序如下:(由于sum为整型,所有要求n在10以内)#include <iostream.h>int sum(int n){ int i,t,s;t=0;s=0;for(i=1;i<=n;i++){t=t*10+1;s+=t;}return s;}void main(){int n;cout<<"Input n:";cin>>n;cout<<"和:"<<sum(n);}扩展:编写子函数,计算:sum=a+aa+aaa+a……a。
大学电路第十五章割集
返 回
上 页
下 页
3. 关联矩阵的作用: ①用A表示KCL的矩阵形式 设:
i i1
i2 i3 i4 i5 i6
T
以结点④为参考结点 -1 -1 1 0 0 0 [A][ i ]= 0 0 -1 -1 0 1 1 0 0 1 1 0
i1 i 2 1 2 3 i 4 6 0 3 3 i 4 1 4 5 i 5 i 6
l
矩阵B的每一个元素定义为: 1 支路 j 在回路 i 中,且方向一致; 支路 j 不在回路 i 中。
返 回 上 页 下 页
bij
-1 支路 j 在回路 i中,且方向相反; 0
例 取网孔为独立回路,顺时针方向
支1 2 回 3 4 5 6 3
② 4
16 2 ① ③ 5 2 3 ④ 1 注意 给定B可以画出对应的有向图。
.
I Sk
.
.
U Sk
+
Zk (Yk)=0
.
I Sk
.
-
U Sk
+
I Sk 0
Zk (Yk)=0
返 回
上 页
下 页
二.支路方程的矩阵形式
1. 电路中电感之间无耦合
U k (I
k
I Sk ) Z k U Sk
. .
.
如有b条支路,则有:
I k I ek
Zk (Yk)
矩阵形式的KVL:[ B ][ u ]= 0
返 回 上 页 下 页
②用回路矩阵[B]T表示矩阵形式的KCL方程
设: [i] [i1 i3
华北电力大学电力系统继电保护课程课程
A'电力系统继电保护原理课程教案目录电网的电流保护和方向性电流保护 电网的距离保护 输电线纵联保护自动重合闸电力变压器的继电保护 发电机的继电保护 母线的继电保护第一章绪论、电力系统继电保护的作用1. 继电保护包括继电保护技术和继电保护装置。
*继电保护技术是一个完整的体系,它主要包括电力系统故障分析、 各种继电保护原理及实现方法、继电保护的设计、继电保护运行及维护等技术。
*继电保护装置是完成继电保护功能的核心。
P1继电保护装置就是能反应电力系统中电气元件发生故障或不正常运行状态, 并动作于断路器跳闸或发出信号的一种自动装置。
2. 电力系统的故障和不正常运行状态:(三相交流系统)*故障:各种短路(d ⑶、d (2)、d ⑴、d (1-1)))和断线(单相、两相),其中最常见且最危险的是各 种类型的短路。
其后果:1•电流I 增加 危害故障设备和非故障设备; 2 •电压U 降低或增加 影响用户的正常工作;3 .破坏系统稳定性,使事故进一步扩大(系统振荡,电压崩溃)4.发生不对称故障时,出现12,使旋转电机产生附加发热;发生接地故障时出现 I o ,—对相邻通讯系统造成干扰 *不正常运行状态:电力系统中电气元件的正常工作遭到破坏,但没有发生故障的运行状态。
如:过负荷、过电压、 频率降低、系统振荡等。
3. 继电保护的作用:(1) 当电力系统发生故障时,自动、迅速、有选择性的将故障元件从电力系统中切除,使故 障元件免于继续遭到破坏,保证其他无故障设备迅速恢复正常运行;(2) 反映电气元件的不正常运行状态,并根据运行维护的条件(例如有无经常值班人员)而动作于发出信号、减负荷或跳闸 。
第一早 绪论第三章第四章 第五早 第六章第七章第八章A'二、继电保护的基本原理、构成与分类:1.基本原理:为区分系统正常运行状态与故障或不正常运行状态一一必须找出两种情况下的区别。
①I增加故障点与电源间一>过电流保护②U降低母线电压—>低电压保护Uarg |③相位变化,变化;正常:为负何的功率因数角般为0-30左右短路:为输电线路的阻抗角一般为60°〜85 —>方向保护.U④测量阻抗降低,Z= 1模值减少增加—>阻抗保护⑤双侧电源线路外部故障:1入1出内部故障:1入1电流差动保护。
复变函数课程自学指导书-华北电力大学.docx
复变函数与积分变换课程自学辅导资料二OO八年四月《复变函数与积分变换》课程自学进度表教材:《复变函数与积分变换》教材编者:徐大申等出版社:中国电力出版社出版时间:2005年8月注:期中(第10周左右)将前半部分测验作业寄给班主任,期末血授时将后半部分测验作业直接交给任课教师。
总成绩中,作业占15分。
参考教材:I《复变函数》(笫以版),西安交通大学高等数学教研室编,北京,高等教育出版社,19962《复变两数与积分变换》(第二版),华屮科技人学数学系编,北京,高等教育出版社,2003《复变函数与积分变换》课程自学指导书第一章复数及复变函数一. 本章的核心.重点及前后联系(一)本章的核心复数及运算,区域,复变函数及映射理解复数、复变函数、极限及连续的概念;掌握复数运算及几何表示法;了解区域及有关定义。
(二)本章重点复数及运算,区域,复变函数及映射(三)本章前后联系本章介绍了复数的概念、运算及其表示和复变函数的概念及其极限、连续两部分内容。
是后续各章的基础。
二、本章的基本概念、难点及学习方法指导(-)本章的基本概念复数及运算,区域,复变函数及映射(-)本章难点及学习方法指导1.复数的概念、运算及其表示方法是学习复变函数的基础,通过学习复数,做到熟练掌握,灵活应用。
学习时要注意下边几点:(1)止确理解辅角的多值性,见(1-5)式;(2)熟悉两个复数乘积和商的辅角公式,见(2・3)和(2-4)式;(3)由于复数可以用平面上的点与向量表示,因此能用复数形式的方程(或不等式)表示一些平面图形,解决有关的儿何问题,见例1.3及相关习题;(4)了解无穷远点和扩充复平而的概念,它们是为了用球而上的点来表示复数而引入。
无穷远点和无穷大oo这个复数相对应。
这里的无穷大-是指模为正无穷大(辅角无意义)的唯一的一个复数;2.复变函数及其极限、连续等概念是《高等数学》屮相应概念的推广,它们有相似之处,乂有不同之点,在学习中要善于比较,深刻理解。
华电高电压技术()讲课文档
13
第13页,共50页。
负离子的形成
有时电子和气体分子碰撞非但没有电离出新电子,反而是 碰撞电子附着分子,形成了负离子
有些气体形成负离子时可释放出能量。这类气体容易形成 负离子,称为电负性气体(如氧、氟、SF6等)
负离子的形成起着阻碍放电的作用
14
第14页,共50页。
金属(阴极)的表面电离
x
f (x) e
如果起始有n0个质点(或一个质点的相继n0次 碰撞),则其中行过距离x后,尚未被碰撞的 质点数(或次数)n(x)应为
x
n(x) n0e
9
第9页,共50页。
一、气体中带电质点的产生和消失
气体中带电质点的产生 (一)气体分子的电离可由下列因素引起: (1)电子或正离子与气体分子的碰撞电离 (2)各种光辐射(光电离) (3)高温下气体中的热能(热电离) (4)负离子的形成 (二) 金属(阴极)的表面电离
辉光放电 电弧放电 火花放电 电晕放电 刷状放电
21
第21页,共50页。
辉光放电
当气体压强不大,电源功率很小(放电回路中串入很大阻 抗)时,外施电压增到一定值后,回路中电流突增至明显 数值,管内阴极和阳极间整个空间忽然出现发光现象
特点是放电电流密度较小,放电区域通常占据了整个电极 间的空间。霓虹管中的放电就是辉光放电的例子。管中所 充气体不同,发光颜色也不同
26
第26页,共50页。
(二)非自持放电和自持放电
27
第27页,共50页。
非自持放电
外施电压小于U0时,间隙内虽有电
流,但其数值甚小,通常远小于微安 级,因此气体本身的绝缘性能尚未被 破坏,即间隙还未被击穿。而且这时 电流要依靠外电离因素来维持,如果 取消外电离因素,那么电流也将消失 。
C1
C 程序书写格式自由
C程序没有行号 一行可以写几个语句,一个语句也可以写在多行上 23:31:00 第一章 C 语言概述
C程序的结构特点
注释
/* */为注释,不能嵌套;/* 不产生编译代码 */必须成对出现
程序语句
C程序由语句组成 用“;”作为语句终止符,不识别回车、空格符
输入输出语句
输入/输出的操作通过调用库函数(scanf,printf)完成。
23:31:00
第一章
C 语言概述
第一章
C 语言概述
内容提要:
C语言的起源与发展
C语言的特点
简单的C程序介绍 C程序的上机步骤
23:31:00
第一章
C 语言概述
程序语言简介
第一代:机器语言 是一种CPU机器语言。由数字0、1组 合而成。 优点: 机器可直接执行,速度快。
缺点: 程序长,难记,难理解,不易查错。
程过程中 一个函 优点:灵活,易于理解,容易查错。
数实现一个功能,
缺点:对大型程序而言维护性较差,对“拟定”好
的程序难以扩充,修改。 第四代:非过程化的高级语言 是一种面向对象的设计语言,如:C++ ,Java 等 对象是包含数 据和相关操作 优点:灵活、易于理解、维护、修改、扩充。 的集合 缺点:掌握难度较大。 23:31:00 第一章 C 语言概述
会读、会编、会调试C程序
23:31:00
第一章
C 语言概述
C 语言程序设计
学习要点: 熟记C语言的语法、句法 学会算法分析与算法设计 本课难点:第八章(函数) 第十章(指针) 书面考试题型: 选择题 判断题 改错题 读程序题 编程序题
23:31:00 第一章 C 语言概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构体----结构体变量
定义结构体类型变量的方法 结构体变量的初始化 和其他类型变量一样,结构体变量也可以初始化。 初始化时将结构体变量的成员所对应的初始值按顺序给出 struct date { int year; int month; int day; }; struct student { int num; char name[20]; date birthday; float score; } st1={101,“zh",1991,1,2,97}; student st2={101,"lili",1993,10,2,85};
结构体----结构体变量
定义结构体类型变量的方法 方法二 方法三 定义结构体类型的同时定义变量 格式 直接定义结构体类型变量 struct 结构体名 例如: { 成员表 }变量表; struct { int num; 例如: char name[20]; struct student float score; { int num; }st1,st2; char name[20]; 不出现结构体名 float score; }st1,st2;
„L‟
„\0‟
…
tt[1] {100002,"WL",78.5,}}; cout<<tt[0].num<<tt[0].name<< tt[0].score;
78.5
成员score
结构体----结构体数组
#include <stdio.h> 例2 编程统计某次选举中各候选人的票数。假设有三位候选人, #include <string.h> 每张选票中有三位候选人的名字,只能选其一,要求逐一输入每 void main() 张选票选中的候选人,统计并输出各候选人的选举最终得票数。 { struct person 定义结构体类型 { char name[20]; int count; } lx[3]={"ZS",0,"LS",0,"WW",0}; char xp[20]; int i,j; for(i=0;i<10;i++) { gets(xp); void main() for(j=0;j<3;j++) {struct person if(strcmp(xp,lx[j].name)==0) { char name[20]; lx[j].count++; } int count; for(i=0;i<3;i++) }; person lx[3]={"ZS",0,"LS",0,"WW",0}; printf("\n%5s:%d", lx[i].name,lx[i].count);} 定义结构体数组
stu_1
成员num
name[0]
……
name[19] 成员score
……
成员name
结构体-指向结构体类型数据的指针
#include <iostream.h> 指向结构体变量的指针 定义指向结构体类型的指针变 void main() 101zj96.7 例如:struct student *p; 量 { struct student 101zj96.7 指针变量指向结构体变量 { int num; 101zj96.7 将结构体变量的地址赋给指针变量 char name[20]; 例如:p=&stu_1; float score;}stu_1,*p; 用指针变量引用结构体变量 student stu_2={101,"zj",96.7}; *p 引用stu_1 p=&stu_1;//p指向stu_1 等 (*p).num 引用stu_1.num *p=stu_2;//stu_2的值赋给stu_1 价 p->num 引用stu_1.num stu_1 //输出stu_2 p 成员num cout<<stu_2.num<< &stu_1 stu_<<stu_2.score; cout<<endl<<(*p).num<< 成员name (*p).name<<(*p).score; cout<<endl<<p->num<< 成员score p->name<<p->score;}
结构体----结构体变量
定义结构体类型变量的方法
结构体变量在内存中的存储方式
//定义结构体类型 struct student { int num; char name[20]; float score; }; //定义结构体变量 student st1; struct student st2;
成员num
tt[0] tt[1] tt[9]
100001 成员num
„Z‟
tt[0]
„X‟ „\0‟
…
name[0] name[1] name[2] 成员name name[19]
90.5
„W‟
成员score
name[0] name[1] name[2] 成员name name[19]
100002 成员num
st1 name[0] name[19] 成员score
……
……
成员name
结构体----结构体变量
定义结构体类型变量的方法 结构体成员可以是一个结构体变量 例如:定义一个包含年、月、日的结构体类型date,然后再 定义一个包含学号、姓名、生日、成绩的结构体类型student struct date { int year; 定义结构体类型date int month; int day; }; struct student { int num; 定义结构体类型student char name[20]; date birthday; float score; };
结构体----结构体变量
结构体变量的引用 #include <iostream.h> 例1 输入一个学生的姓名和4门课程的成绩,求出其平均分。 void main() 定义结构体类型 { struct student student { char name[20] ; student的成员: int score[4]; name 字符数组 float ave;}st1; score 整型数组 int i;st1.ave=0;cin>>; for(i=0;i<4;i++) ave 平均值 { cin>>st1.score[i]; 定义结构体变量 st1.ave+=st1.score[i];} struct student st1.ave=st1.ave/4; { char name[20] ; cout<<<<" "; int score[4] ; for(i=0;i<4;i++) float ave; cout<<st1.score[i]<<" "; }; cout<<st1.ave; student st1; }
……
结构体----概述
问题的提出 如何存储某个同学的个人信息 <iostream.h> #include #include <string.h> void main() 定 { struct student 方法二 用结构体变量存储 义 { int num; 结 结构体的概念 char name[20]; 构 构造数据类型。 体 float score; 若干个不同类型但相关的变量 类 }; 构成数据集合体 型 集合体使用一个唯一的名称, student st1; 定义结构 其中的每一个变量称为成员。 体变量 st1.num=100001; 结构体的使用方法 ...... 定义结构体类型 cout<<st1.num; 定义这种结构类型的结构体变量 ...... } 引用结构体st1中的成员num 引用结构体变量
……
Hale Waihona Puke ……tt[0]结构体----结构体数组
结构体数组初始化 和普通数组初始化方式一样 结构体数组元素的引用方法 和普通的结构体变量的引用 方法一样 数组tt tt[0] 例如: tt[1] struct table tt[2] { int num; char name[20]; float score; tt[9] }; table tt[10]={{100001,"ZX",90.5}, ......
高级语言程序设计
结构体、共用体、位运算和文件
– 结构体
– 共用体 – 位运算 – 文件
结构体
概述 结构体变量 结构体数组 指向结构体类型数据的指针 用指针处理链表
结构体----概述
问题的提出 如何存储某个同学的个人信息
方法一
定义6个变量(或数组) 名字 类型 存储内容 num 整型变量 学号 name 字符数组 姓名 sex 字符变量 性别 age 整型变量 年龄 score 实型变量 成绩 addr 字符数组 住址 问题 需要存储的6个数据项具有相 关性,都属于一个同学 存储这6个数据项的变量相互 独立,难以反映数据之间的内 在联系 应当把6个数据项组织成一个 组合项 ——结构体
结构体----结构体变量
定义结构体类型变量的方法 方法一 先定义结构体类型,再定义变量 定义结构体类型 格式二 typedef struct 结构体名 格式一 struct 结构体名 { 成员表 }; { 成员表 }; 例如: 或 struct student typedef struct { int num; { 成员表 } 结构体名; char name[20]; float score; 例如: }; typedef struct student 定义结构体变量 { int num; char name[20]; 结构体名 变量表 float score; 例如: }; student st1; struct student st2;