程序设计基础第10章

合集下载

《C语言程序设计》教材习题答案第10章

《C语言程序设计》教材习题答案第10章

一、选择题1. 设已定义“int a,* p”,下列赋值表达式中正确的是:C)p=&a2. 设已定义“int x,*p=&x;”,则下列表达式中错误的是:B)&*x3. 若已定义“int a=1 ,*b=&a;”,则“printf(“%d \n”,*b);”的输出结果为:A)a的值。

4. 设已定义“int x,*p,*pl=&x,*p2=&x;”,则下列表达式中错误的是:C)p=p1+p2.5. 设有函数定义“void p(int *x){printf(“%d\n”,*x);}”和变量定义“int a=3;”,则正确的函数调用是:C)p(&a)6. 函数“int fun(char * x){char * y=x; while(*y)y++;return(y-x); }”的功能是A)求字符串的长度。

7. 运行一下程序,输出结果为:B)5 6int fun (int a,int *b){a++;(*b)++;return a+*b;}void main(){int x=1,y=2;Printf(“%d”,fun(x,&y));Printf(“%d”,fun(x,&y));}8. 运行以下程序,输出结果为:C)58#include<stdio.h>Int * fun(int a ,int *b){a++;(*b)++;*b=a+*b;return b;}Void main(){Int x=1,y=2,*z;Z=fun(x,&y);Printf(“%d”,*z);Z=fun(x,&y);Printf(“%d”,*z);}9. 若已定义“int a[]={1,2 ,3,4},*p=a;”,则下面表达式中值不等于2的是C)*(++a)10. 若已定义“int a[]={1,2 ,3,4},*p=a+1;”,则p[2]的值为C)411. 设已定义“int x[4][10],*p=x[0];”,则下列表达式中的值为整形的是B)*(p+1)12. 设已定义“char s[]=”ABCD”;”,”printf(“%s”,s+1)”的值为C)BCD13. 设已定义“char str[]=”abcd”,*ptr=str;”,则*(prt+4)的值为B)014. 下面对字符串变量的初始化或赋值操作中,错误的是C)char a[10];a=”OK”;15. 设已定义“char *ps[2]={“abc”,”1234”};”,则以下叙述中错误的是A)ps为指针变量,它指向一个长度为2的字符串数组16. 设已定义“struct {int a,b;} s,*ps=&s;”,则错误的结构体成员引用是C)*ps.a17. 设已有以下定义,则表达式的值为2的是A)k=++p->datastruct st {int data;st *link;} a[3]={1,a+1,3,a+2,5,0},*p=a;二、编程题1. 输入3个字符串,输出其中最大的字符串(用字符指针)#include <stdio.h>#include <stdlib.h>#define str_count 3#define str_length 100int main(int argc, char *argv[]){char a[str_count][str_length],*p;printf("请输入3个字符串:");int i;for(i=0;i<str_count;i++){scanf("%s",a[i]);}p=a[0];for(i=1;i<str_count;i++){if(strcmp(p,a[i])<0){p=a[i];}}printf("最大的字符串为:%s",p);system("PAUSE");return 0;}2. 定义一个函数,函数的功能是求已知半径的圆的周长和面积。

JAVA程序设计第10章

JAVA程序设计第10章

Runnable接口 接口
• Runnable接口是 接口是ng包中的一个接口, 包中的一个接口, 接口是 包中的一个接口 它只提供了一个抽象的run方法,为: 方法, 它只提供了一个抽象的 方法 public void run() • 通过实现 通过实现Runnable接口进行多线程编程, 接口进行多线程编程, 接口进行多线程编程 只需实现Runnable接口的 接口的run方法,然后通 方法, 只需实现 接口的 方法 过Thread类中包含 类中包含Runnable类型参数的构 类型参数的构 类中包含 造方法创建并运行线程就可以了 。
• Thread(Runnable target,String name) ,
– 创建一个新的线程对象,并为线程对象命名为参数 name的值,以参数target为运行对象。
Thread类 类
• 1.Thread类中的静态方法 . 类中的静态方法 • public static boolean interrupted()
– 同步方法:用synchronized修饰的方法实现同步。 – 同步语句:用synchronized语句实现同步。
同步方法
• 同步方法的实现非常简单,只需要在方法定义时, 同步方法的实现非常简单,只需要在方法定义时, 在方法名前面添加synchronized关键字。同步方 关键字。 在方法名前面添加 关键字 法实现的语法如下: 法实现的语法如下: • synchronized returnType functionName (paralist){ ){ • //方法体实现 //方法体实现 • } • 其中,returnType为方法的返回类型, 其中, 为方法的返回类型, 为方法的返回类型 functionName为方法的名字,paralist为方法的 为方法的名字, 为方法的名字 为方法的 参数。 关键字修饰的方法, 参数。由synchronized关键字修饰的方法,在同 关键字修饰的方法 一时刻只能被一个线程访问。 一时刻只能被一个线程访问。

C--程序设计--第10章-多态性及虚函数

C--程序设计--第10章-多态性及虚函数

使用重载函数注意:
不要使用重载函数描述不相干的函数 在类中,构造函数和普通成员函数均可以
重载 避免与函数的默认参数产生二义性
二、运算符重载
运算符重载(operate overloading)就是 赋予已有的运算符多重含义。
运算符重载实质是函数重载,运算符重载 的选择与函数重载类似,会根据运算符的 操作数的类型、个数和顺序来进行运算符 函数的选择。
#include<iostream.h> str#iinngc:l:usdter<isntgr(icnhga.rh>*s) v{}ossccsssc{s{{ittohtttolsstlsssls*drruarrrueptrepttepsi1trii3tc{pn=rin=rrn=pmn.<nn.<lprgncngncign=agp<*ggp<auitepgtepnte'irssrssbv\hwy:hwyghwnsit1ssitsla0=(:=(:=(tnr=ttnrit'scssscs:sc)rt1"rrt3scesss~ivci;thpt1hpsih1(.T23(.t::tttsnohn}ra,r.a,tza()gh(()grrrrttiatlrsilrsrer";eass;eiiiirdre[)ne[1i;[Ttt1ttnnnniglnl;gnl.nlhl)rlggggnep*e(e}(gesgeiei;2e(((gtrsnsnstnp(nsns)ncsi(lipg)gthg)ig(;(htn)en;t;tr;t;nti)a)artnthhih}ths<<ri{((;+n++<p<snd))}1g1s1aere*ige;]]i]nonszl{{;&;z;ddgd)&eercseelrl;s=teo1)m;a;/18etu)om/)0ut..;)构sr<""/;pn<造);//;s;/复}lp函构e<制n<数造ge构tn函hd造;l数};重} 载

谭浩强《C++程序设计》课件 第10章

谭浩强《C++程序设计》课件 第10章

通过运算符重载,扩大了 通过运算符重载,扩大了C++已有运算符的作用范 已有运算符的作用范 使之能用于类对象. 围,使之能用于类对象. 运算符重载对C++有重要的意义,把运算符重载和 有重要的意义, 运算符重载对 有重要的意义 类结合起来,可以在C++程序中定义出很有实用意 类结合起来,可以在 程序中定义出很有实用意 义而使用方便的新的数据类型.运算符重载使C++ 义而使用方便的新的数据类型.运算符重载使 具有更强大的功能,更好的可扩充性和适应性, 具有更强大的功能,更好的可扩充性和适应性,这 最吸引人的特点之一. 是C++最吸引人的特点之一. 最吸引人的特点之一
c.imag=imag+c2.imag; return c;} void Complex∷display( ) //定义输出函数 ∷ 定义输出函数 {cout<<〃(〃<<real<<〃,〃<<imag<<〃i)〃<<endl;} int main( ) {Complex c1(3,4),c2(5,-10),c3; c3=plex_add(c2); cout<<〃c1=〃; c1.display( ); cout<<〃c2=〃; c2.display( ); cout<<〃c1+c2=〃; c3.display( ); return 0; }
Complex operator+ (Complex& c1,Complex& c2);
在定义了重载运算符的函数后,可以说: 在定义了重载运算符的函数后,可以说: 函数 operator+重载了运算符 . 重载了运算符+. 重载了运算符 为了说明在运算符重载后,执行表达式就是调用函 为了说明在运算符重载后, 数的过程, 数的过程,可以把两个整数相加也想像为调用下面 的函数: 的函数:

《C++程序设计》电子教案第10章 流类库与输入输出

《C++程序设计》电子教案第10章  流类库与输入输出

C++中所有流都是相同的 , 但文件可以不同 。 中所有流都是相同的, 但文件可以不同。 中所有流都是相同的 使用流以后, 使用流以后 , 程序用流统一对各种计算机设备 和文件进行操作,使程序与设备、 和文件进行操作 , 使程序与设备 、 程序与文件 无关,从而提高了程序设计的通用性和灵活性。 无关 , 从而提高了程序设计的通用性和灵活性 。 也就是说, 也就是说 , 无论与流相联系的实际物理设备差 别有多大,流都采用相同的方式运行。 别有多大 , 流都采用相同的方式运行 。 这种机 制使得流可以跨越物理设备平台, 制使得流可以跨越物理设备平台 , 实现流的透 明运作,而与实际的物理设备无关。例如, 明运作 , 而与实际的物理设备无关 。 例如 , 往 显示器上输出字符和向磁盘文件或打印机输出 字符,尽管接受输出的物理设备不同, 字符 , 尽管接受输出的物理设备不同 , 但具体 操作过程是相同的。 操作过程是相同的。
返回本节
10.2 格式化 格式化I/O
10.2.1 10.2.2 10.2.3 10.2.4 ios类中的枚举常量 类中的枚举常量 使用ios成员函数 使用 成员函数 使用I/O操作符 使用 操作符 检测流操作的错误
返回首页
10.2.1 ios类中的枚举常量 类中的枚举常量
在根基类ios中定义有三个用户需要使用的枚举类型, 在根基类 中定义有三个用户需要使用的枚举类型,由 中定义有三个用户需要使用的枚举类型 于它们是在公用成员部分定义的, 于它们是在公用成员部分定义的,所以其中的每个枚举类 型常量在加上ios::前缀后都可以为本类成员函数和所有外 型常量在加上 前缀后都可以为本类成员函数和所有外 部函数访问。 部函数访问。 在三个枚举类型中有一个无名枚举类型, 在三个枚举类型中有一个无名枚举类型,其中定义的每个 枚举常量都是用于设置控制输入输出格式的标志使用的。 枚举常量都是用于设置控制输入输出格式的标志使用的。 该枚举类型定义如下: 该枚举类型定义如下: enum { skipws,left,right,internal,dec,oct,hex,sh owbase,showpoint, uppercase,showpos,scientific,fixed,unitbuf, stdio };

自考Java程序设计一(第10章网络与数据库编程基础)

自考Java程序设计一(第10章网络与数据库编程基础)

3
1、网络基础知识
Ø Ø Ø Ø
TCP(传输控制协议)是面向连接的、可靠的点对点的传输协议。 UDP(用户数据报协议)是无连接的不可可靠的传输协议。 IP是网络层协议,实现按IP地址的网络路由的功能。 IP地址:标识计算机等网络设备的网络地址,由四个8位的二进制数组成,中 间以小数点分隔。如:166.111.136.3, 166.111.52.80 主机名(hostname):网络地址的助记名,按照域名进行分级管理。如 服务类型(service):网络的各种服务。 如:web服务, ftp服务, smtp服务, Telnet 服务等
8
Java网络程序设计支持机制
Java网络应用系统
支持URL的类 支持Socket通信的类
•利用URL访问网络资源 •利用Socket通信
网 络
Java网络程序设计支持机制
• Ø Ø
支持网络通信的类在包中。 URL, URLConnection, Socket, ServerSocket ,使用TCP实现网络通信。 DatagramPacket, DatagramSocket, MulticastSocket 支持 UDP 通信方式。
Ø
网络进程:就是网点机(连入网络的计算机)上运行的程序。 网络进程在通信协议中用端口(port)标识,而它驻留的网点机则用其IP地址或域 名来标识。
Ø Ø
通信协议指网络进程之间的通信必须遵循预定的规则。 TCP/IP是一组在Internet网络上的不同计算机之间进行通信的协议的总称,它由 应用层的HTTP、FTP、SMTP和传输层的TCP及网络层的IP等一系列协议组成。
第10章
网络与数据库编程
本章重点
Ø支持JAVA程序访问网上资源的类及其方法 Ø网络编程应用 Ø支持Java程序与数据库连接的类及其方法 Ø支持Java程序的数据表查询、数据记录修改 和插入的类及其方法 46389) 欢迎❤加入...欢迎❤交流...止不住的惊喜等 着你.........

C语言程序设计第10章文件及其应用

C语言程序设计第10章文件及其应用

学一学
1.定义文件指针 一般形式为: FILE * fp; 其中fp就是所定义文件指针。 FILE类型 以及所有的文件读写函数和相关常量都定 义在文件stdio.h中,在源程序的开头要 包含头文件 stdio.h 。
学一学
2.打开文件 C语言中,使用fopen函数来打开文件。打开文件是使 一个文件指针变量指向被打开文件的结构变量,以便通 过该指针变量访问打开的文件。fopen函数的调用形式 如下: fopen(chFileName,mode); 以mode 方式打开文件chFileName。其中,参数 chFileName 是将要读写文件的文件名,mode为文件 的操作方式。若文件打开成功,返回一个文件指针,若 打开失败,则返回空值NULL,NULL在stdio.h中被定 义为0。文件操作方式mode是一个整数,其取值及含 义如表10-1所示。

流程图
开始 定义文件指针fp,定义整型数组 iArray[5],定义循环变量i 以写二进制文件方式打开文件 fp=fopen("test.dat","wb") N i=0
fp==NULL Y
i<5 Y 输入1个整数存入 数组元素iArray[i]
N
i++
把数组iArray中5 个整数写入文件
显示出错信息 关闭文件 exit(0)
试一试
问题10.1编一程序从键盘输入一串字符“may friendship forever! ”,然后保存在文件myInfo.txt中。 【解题步骤】 1.定义文件指针fp; 2.定义字符数组chInfo用来存输入的字符串; 3.以写文本文件方式打开文件myInfo.txt; 4.如果打开文件失败,则输出错误信息并结束程序; 5.否则,打开文件成功,则从键盘输入数据; 5.将字符数组chInfo中的字符写入文件myInfo.txt; 6.关闭文件。

大一上学期第10章 程序设计基础

大一上学期第10章  程序设计基础

2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23
第】在例10-3的基础上添加工具栏。如下图。 放置4个复选框控件,分别用于完成“效果”菜单 下的四个功能。 给复选框的ToolTipText属性分别设置功能提示: 删除线、下划线、粗体、斜体。
Check1~ Check4
24
第 十 章 界 面 设 计
分别在复选框控件的Click事件过程中编写代码: Private Sub Check1_Click() Text1.FontStrikethru = Check1.Value End Sub Private Sub Check2_Click() Text1.FontUnderline = Check2.Value End Sub Private Sub Check3_Click() Text1.FontBold = Check3.Value End Sub Private Sub Check4_Click() Text1.FontItalic = Check4.Value End Sub
13
第 十 章 界 面 设 计
Private Sub DD4_Click() If DD4.Checked = True Then Text1.FontItalic = False DD4.Checked = False Else Text1.FontItalic = True DD4.Checked = True End If End Sub 可以在应用程序运行期间动态修改菜单项, 如修改菜单标题、隐藏某些菜单项、使某些菜单 项无效等。 【例10-2】 见P215 自学 14
菜单设计: 通过“菜单编辑器”完成。
打开菜单编辑器:

首先使窗体成为当前窗体
执行“工具”菜单下的“菜单编辑器”命令 单击标准工具栏的“菜单编辑器”按钮 从窗体快捷菜单中选择“菜单编辑器”命令 菜单编辑器结构: 属性区、编辑区、菜单列表区
4
第 属 十 性 Shortcut 章 区 界 面 编辑区 设 菜 单 Checked Enabled Visible WindowList(MDI) 计 列 表 HelpContextID NegotiatePosition 区
19
(3) 在窗体的MouseDown事件过程中编写代码 第 十 章 界 面 设 计 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then
第 十 章 界 面 设 计 组AA1,共享以下事件过程: Private Sub AA1_Click(Index As Integer) Text1.Font = AA1(Index).Caption End Sub
(2) ―字号”菜单下的菜单项设计成一个控件数组
BB1,共享以下事件过程: Private Sub BB1_Click(Index As Integer) Text1.FontSize = Val(BB1(Index).Caption) End Sub
21
第 十 章 界 面 设 计
Private Sub FF1_Click() Form1.BackColor = vbRed End Sub Private Sub FF2_Click() Form1.BackColor = vbGreen End Sub Private Sub FF3_Click() Form1.BackColor = Fcolor End Sub
第 十 章 界 面 设 计
第10章
本章要点: 菜单的设计
界面设计
工具栏的设计
状态栏的设计 对话框的设计 多文档界面的设计
1
10.1 菜单的设计
第 十 章 界 面 设 计 Windows环境下几乎所有的应用软件都通过菜
单实现各种操作。菜单将应用程序的各种操作分
组显示在界面上,用户可以方便地从菜单中选择 执行各种功能。 两种菜单类型:
9
第 十 章 界 面 设 计
(3)“颜色”菜单下的各菜单项为独立的菜单控件, 因此应分别在其单击事件过程中编写代码, 各事件过程如下: Private Sub CC1_Click() Text1.ForeColor = vbRed End Sub Private Sub CC2_Click() Text1.ForeColor = vbGreen End Sub Private Sub CC3_Click() Text1.ForeColor = vbBlue End Sub
17
第 十 章 界 面 设 计
' 用Fcolor 保存窗体初始背景颜色值 Dim Fcolor As Long Private Sub Form_Load() Fcolor = Form1.BackColor End Sub
18
第 十 章 界 面 设 计
(2) 在文本框的MouseDown事件过程中编写代码 Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu EE, 0 Or 0 只接受左键单击 End If 左上角位于坐标处 End Sub 参数Button: 1 —按下鼠标的左按钮 2 —按下鼠标的右按钮 4 —按下鼠标的中间按钮
10.1.2 弹出式菜单 第 十 章 界 面 设 计 弹出式菜单:上下文菜单、快捷菜单、右键菜单 为某对象设计弹出式菜单的步骤: (1) 在菜单编辑器中设计各菜单项,然后将顶级菜 单设置为不可见。 (2) 在对象的MouseDown事件过程中编写代码,用 以下的PopupMenu方法显示弹出式菜单: [<窗体名>.]PopupMenu <菜单名> ,flags[,x[,y[,boldcommand]]]] 功能: 在当前鼠标位置或指定的坐标位置显示弹 出式菜单。 参数说明: 见P217
(续表)
标 题
第 十 章 界 面 设 计 颜色(&C) ....红色 ....绿色 ....蓝色
名称
CC CC1 CC2 CC3
索引 快捷键 说

访问键Alt+C
效果(&E)
....删除线 ....下划线
DD
DD1 DD2
访问键Alt+E
....粗体
....斜体
DD3
DD4
8
(1) “字体”菜单下的菜单项设计成一个控件数

下拉式菜单

弹出式菜单
2
10.1.1 下拉式菜单 第 十 章 界 面 设 计 1. 下拉式菜单的结构 快捷键 访问键 顶级菜单
子 菜 单
主菜单标题 主菜单栏 子 菜 单 分隔条
3
菜单命令
2. 菜单编辑器 第 十 章 界 面 设 计 菜单项: 看成控件,具有其属性、事件、方法。 菜单项也称为菜单控件。
25
10.2.2 使用ToolBar控件制作工具栏
设计步骤:
第 十 章 界 面 设 计
(1) 向工具箱添加ToolBar控件、 ImageList控件。 工程→部件→ 选择 “Microsoft Windows Common Controls 6.0‖ 常用ImageList控件提供工具栏所需的图片。 (2) 向窗体上添加ToolBar控件、ImageList控件 (3) 设置ImageList控件。 (4) 设置ToolBar控件的“属性页”。定义按钮对象集 。
只接受左键单击
PopupMenu FF,8 Or 0, , ,FF3 End If End Sub
右上角位于坐标处 FF3菜单项显示为粗体
x,y省略,但要保留逗号
20
第 十 章 界 面 设 计
(4) 编写实现菜单命令功能的代码 Private Sub EE1_Click() Text1.FontSize = Text1.FontSize + 1 End Sub Private Sub EE2_Click() Text1.FontSize = Text1.FontSize – 1 End Sub Private Sub EE3_Click() If EE3.Caption = "锁定" Then EE3.Caption = "取消锁定" Text1.Locked = True Else EE3.Caption = "锁定" Text1.Locked = False End If End Sub
Text1
各子菜单结构见P213
6
第 十 章 界 面 设 计
菜单编辑器设置如下表: 标 题 名称 索引 快捷键 说 明 AA 字体(&F) 访问键Alt+F AA1 1 Ctrl+A 定义成控件 ....宋体 数组AA1; AA1 2 Ctrl+B AA1(3) 用 于 ....黑体 生成分隔条 ....AA1 3 AA1 4 Ctrl+C ....隶书 ....楷体_GB2312 AA1 5 Ctrl+D BB 字号(&S) 访问键Alt+S ....14 BB1 1 定义成控件 数组BB1 ....16 BB1 2 ....18 BB1 3 ....20 BB1 4 7
12
第 十 章 界 面 设 计
Private Sub DD3_Click() If DD3.Checked = True Then Text1.FontBold = False DD3.Checked = False Else Text1.FontBold = True DD3.Checked = True End If End Sub
11
第 十 章 界 面 设 计
相关文档
最新文档