阅读以下说明和Visual Basic代码,填入(n)处。
[说明]
在一些财务软件中,经常需要将阿拉伯数字的账目转化为汉语习惯中的金额计数方法,例如:
“3.45”转化为“叁元四角五分”;
“3.4”转化为“叁元四角”;
“3.40”转化为“叁元四角零分”;
“3.456”转化为“叁元四角五分”;
“345.00”转化为“叁百四十五元零角零分”;
“345”转化为“叁百四十五元”;
以下Visual Basic代码实现了小写金额转换为大写金额。界面如图10-9所示。结合实际例子说明,仔细阅读下面代码,将(n)代码补充完整。
[代码7-1]
Begin VB.FormForm1
Caption = "小写金额转换为大写金额"
//...窗体描述(略)
Begin VB.CommandButton Command1
Caption = "退出"
//...窗体描述(略)
End
Begin VB.TextBox Text2
//...窗体描述(略)
End
Begin VB.TextBox Text1
Enabled = 0 'False
//…窗体描述(略)
End
Begin VB.Labe1 Labe12
Caption = "转换为大写金额"
//...窗体描述(略)
End
Begin VB.Labe1 Labe11
Caphon = "请输入数字"
//...窗体描述(略)
End
End
[代码7-2]
Private Function setdata (num As Integer) As String '数字转换
Select CaSe num
Case 0
setdata="零"
Case 1
Setdata="壹"
Case 2
Setdata="贰"
Case 3
Setdata="叁"
Case4
Setdata="肆"
Case 5
Setdata="伍"
Case 6
Setdata="陆"
Case 7
Setdata="柒"
Case 8
Setdata="捌"
Case 9
Setdata="玖"
End Select
End Function
Private Function chang (aaa As Integer) As String '位数转换
Select CaSe aaa
Case 1
chang=""
Case 2
chang="十"
Case 3
chang="百"
Case 4
chang="千"
Case 5
chang="万"
Case 6
chang="十"
Case 7
chang="百"
Case 8
chang="千"
Case 9
chang="亿"
Case 10
chang="十"
End Select
End Function
[代码7-3]
Private Sub Text2_Change () '小写转大写
Dim i As Integer
Dim j As Integer
Dim myint As Integer
Dim myint1 As Integer
Dim mydoub As Double
Dim mystr As String
Dim mystr1 As String
Dim mystr2 As String
Dim mystr3 As String
Dim mystr4 As String
Dim money As Long
Dim money1 As Integer
Dim money2 As Long
mystr=Text2.Text
myint=InStr (mystr, ".")
If myint=0 Then
mystr=Text2.Text
Else
mystr3=Right(Text2.Text, Len (Text2.Text ) - myint)
If mystr3<>""Then '转换小数位
mystr4=Left(mystr3, 1)
mystr3=Right(mystr3, Len(mystr3 )
第1题
阅读以下说明和JAVA 2代码,填入(n)处。
[说明]
以下JAVA程序设计了类CSet,使用同一个名称(set)的method来传入数据。仔细阅读[代码6-1)、[代码6-2]和[代码6-3]和相关注释,将程序补充完整。
[代码6-1]
import java.io.*;
class CSet
{
private int width;
private int height;
(1)
public void set(String color)
{
col=color; //(a)可输入长方形的颜色
}
public void set (iht w, int h)
{
width=w; //(b)可输入长方形的宽和高
height=h;
}
public void set (String color, int w, int h)
{
col=color; //(c)可输入长方形的颜色、宽和高
width=w;
height=h;
}
public void show ( )
{
System.out.println ("n\长方形的颜色为: "+col);
System.out.println ("n\长方形宽为: "+width+" 长方形高为: "+height");
}
}
[代码6-2]
public class hw8_3
{
public static void main (String args[]) throws IOException
{
intw, h; //声明宽、长变量,并给予赋值
String color, k;
CSet rect1;
rect1=new CSet ( );
System.out.print ("\n请输入颜色:: ");
color=input ( );
System.out.print ("请输入宽度:: ");
k=input ( );
w=Integer.parseInt (k);
System.out.print ("请输入高度:: ");
k=input( );
h=Integer.parseInt (k);
(2)//设置长方形的颜色
(3)//设置长方形的宽、高
rectl.show ( );
(4)//设置长方形的颜色和宽、高
rectl.show ( );
}
[代码6-3]
public static String input( ) throws IOException//输入函数
{
String str;
BufferedReader buf;
(5)
str=buf.readLine ( )
return str;
}
}
第3题
阅读以下说明和流程图8-11,完成程序(n)处的语句写在对应栏内。
[说明]
对于数学上一个猜想:任何自然数平方的36倍等于两对孪生素数的和。初始的情形如下:
12×36=(5+7)+(11+13)
22×36=(29+31)+(41+43)
32×36=(11+13)+(149+151)
再往下,N取4,5,6,时,只要N不太大,也都可以找到N(上标)2×36等于两对孪生素数的和。但是当N是一个任意的正整数时,证明N2×36总是等于两对孪生素数的和,这还是一个目前尚未解决的问题。甚至当考察的数较大时,找出一组符合条件的两对孪生素数都是计算量相当大的工作。每尝试一次,都要作4次是否是素数的判断,要作许多次的尝试,才可能找到一组解。下面流程图设计了一种优化算法来对这个猜想进行验证。仔细阅读流程图8-11,完成程序部分。
[程序部分]
main ()
{
int t, i, j, prime_index; is_p rime:
long n, p, p1, p2, p3, p4, s, s1;
long primes [ 16000 ];
for (n=1; n<98; ++n)
{
t=0;
s= n* n* 36;
prime_index= 2;
primes[0]=2; primes[1]=3;
for (p=5: p<=s/2; p=p+2)
{
is_p rime= 1;
for ( i=1;(1)++i)
if ( p%primes [i] = = 0 ) is_p rime= 0;
if ( is_p rime)
{
(2)
}
}
for ( i=1; (3)++i)
{
(4)
if ( p2=p1+ 2 )
{
s1=s- (p1+p2)
p3=sl/2-1; p4=p3+2:
for ( j=0; j<=prime_index-1; ++j )
if ((5))
{
printf ( "%d* % d*36= (%d+ %d) + (%d+%d) \n", \ n,n, p1, p2, p3, p4 ) ;
++t;
}
}
}
if ( t! = 0 ) printf ("%d\n", t )
else
printf ( "%d* %d*36=no so lution\n ", n, n ) ; }
}
}
第4题
阅读以下说明和流程图,从供选择的答案中选出应填入流程图(n)处的字句写在对应栏内。
[说明]
以下是某图像二元树存储与还原算法的主要思想描述。
设一幅2n×2n的二值图像,以:“1”表示黑像素点,以“0”表示白像素点。图像二元树结构表示依赖于图像的二元分割,即交替在X轴方向和Y轴方向上分割。先进行水平分割,分成两个2n-1×2n图像子块,然后进行垂直分割,分成4个2n-1×2n-1的正方形块,如此分割,直到子块只含同一像素点为止。如图8-8为一“E”字的二值图像,对其进行二元分割,相应的二元树如图8-9所示。根据图像二元树的0叶结点和1叶结点的数目,删除多者,保留少者。如“E”字图像的二元树0叶结点较多,裁剪后如图8-10所示。
裁剪后图像二元树有4类结点,分别用二进制编码如下:
◆ 左右儿子都有的结点,编码为11;
◆ 仅有左儿子的结点,编码为10;
◆ 仅有右儿子的结点,编码为01;
◆ 叶结点,编码为00。
存储时,先存储剩余叶结点的类型编码,二进制码00表示0叶结点,11表示1叶结点。再按层次顺序,自左至右存储裁剪后图像二元树各结点的编码。
图像二元树的存储算法用C语言描述所定义的数据结构及函数如下:
struct Node{ /*图像二元树结点*/
street Node*Left;
street Node*Righ t;
char Pixel;
}
struct Node Queue[MaxLen]; /*队列*/
InitQueue() /*初始化队列Queue的函数; */
EmptyQueue () /*判断队列Queue是否为空的数,若空返回1,否则返回0; */
AddQueue(Item) /*将Item加到队列Queue的数; */
GetQueue() /*取队列Queue第一个元素的函数; */
PutCode(Code) /*写2位二进制码Code到文件的函数*/
还原算法是存储算法的逆过程,将文件中的二进制码序列转换成图像二元树。还原算法的数据结构与函数与存储算法的相同,还原算法新增了一个函数GetCode ()。
GetCode() /*从文件中读2位二进制码的函数*/
[C程序]
存储算法
void Backup (char CutPixel,st ruct Node ImageTree)'/*Cu tP ixel=0表示裁剪0叶结点*/
{ InitQueue();
AddQueue ( ImageTree ) ;
PutCode ( 1-CutPixel ) ;
While ( !EmptyQueue ( ) )
{ TreeNode= GetQueue ( ) ;
if (TreeNode→Left==NULL)
{ PutCode (0) ;
continue:
}
Tl= TreeNode→Left;
Tr= TreeNode→R igh t;
if ( Tl→Left= = NULL && Tl→Pixel= = CutPixel )
L=0;
else
{
(1);
AddQueue ( Tl ) ;
}
if ( Tr→Left= = NULL && Tr→Pixel= = CutPixel )
R=0;
else
{
(2)
AddQueue (T) ;
}
(3)
}
}
还原算法
void Restore ( struct Node *TreeRoot )
{ TreeRoot= ( strut Node*)malloc ( sizeof (struct Node)
InitQueue ( );
AddQueue ( TreeRoot ) ;
CutPixel= 1- GetCode ( ) ;
while ( ! EmptyQueue ( ) )
{ TrecNode= GetQueue ( Queue ) ;
NodeCode= GetCode ( ) ;
switch ( NodeCode )
{
case 0:
TreeNode→Left = NULL ;
TreeNode→Right= NULL
&
第7题
阅读下列说明和E-R图,回答问题1至问题4,
[说明]
图2-1是某医院组织的结构图。该医院分为多个病区,每个病区有一个唯一的编号,一个病区包括多个病房,多名医生:每位医生有一个唯一的编号,负责管辖其主治病人的所有病房;病人住院后给以一个唯一的编号,根据“患何病科”住在相应病区的某个病房里,有且仅有一位医生担任主治医生,除主治医生外其他医生不对其负责。
现假定病区名称有“内科”和“外科”, “内科”病区又细分为多个病区,以编号区分,名称都为“内科”; “外科”病区亦然。图2-2是经分析得到的E-R图。
[图2-1]
[图2-2]
实体间的联系有“一对一”、“一对多”和“多对多”,指出图2-2中各联系分别属于哪一种。
第9题
读下列算法说明和图4-5,回答问题1至问题3。
【算法说明】
某旅馆共有N间客房。每间客房的房间号、房间等级、床位数及占用状态分别存放在数组 ROOM、RANK、NBED和STATUS中。房间等级值为1、2或3。房间的状态值为0(空闲)或1(占用)。客房是以房间(不是床位)为单位出租的。
本算法根据几个散客的要求预订一间空房。程序的输入为:人数M,房间等级要求R(R=0表示任意等级都可以)。程序的输出为:所有可供选择的房间号。
图4-5描述了该算法。
假设当前该旅馆各个房间的情况如表4-3所示。
当输入M=4,R=0时,该算法的输出是什么?
第10题
阅读以下说明和Visual Basic 码,将应填入(n)处的字名写在对应栏内
[说明] 已有一个工程文件,窗体上有两个图片框,名称为P1,P2。分别用来表示信号灯合汽车,其中在P1中轮流装入“黄灯.ico”、“红灯.ico”、“绿灯.ico”文件来实现信号灯的切换;还有两个计时器 Timer1 和Timer2,Timer1 用于变换信号灯,黄灯1秒,红灯2秒,绿灯3秒;Timer2用于控制汽车向左移动。运动时,信号灯不断变换,单击“开车”按钮后,汽车开始移动,如果移动到信号灯前或信号灯下,遇到红灯或黄灯,则停止移动。下面是实现上述功能的程序,请填空。
Private Sub Timer41_ Timer()
a=a+1
If (1) Then
a=1
End If
Select Case a
Case 1
P1. Picture = LoadPicture( “黄灯.ico” )
Case 2, 3
P1. Picture = LoadPicture( “红灯”.ico” )
Case4, 5, 6
P1. Picture = LeadPicture( “绿灯. ico” )
(2)
End Select
End Sub
Private Sub Timer2_Timer( )
If (3) And (P2. Left > P1. Left And P2. Left < P1. Left + P1. Width) Or P2. Left < = 100 Then
Timer2. Enabled = False
Else
(4)
End If
End Sub
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!