您现在的位置是:首页 >

编译原理第三版清华大学出版社 急求清华大学出版社, 审计学基础 第三版 (王守龙 王珠强) 课后答案!

火烧 2022-11-25 12:45:18 1108
急求清华大学出版社, 审计学基础 第三版 王守龙 王珠强 课后答案! 急求清华大学出版社, 审计学基础 第三版 王守龙 王珠强 课后答案!:we ku. aidu./view/78c180d850e2

急求清华大学出版社, 审计学基础 第三版 (王守龙 王珠强) 课后答案!  

急求清华大学出版社, 审计学基础 第三版 (王守龙 王珠强) 课后答案!

:wenku.baidu./view/78c180d850e2524de5187ee4.
这个全,请查收

求离散数学第三版屈婉玲课后答案。清华大学出版社

天猫上找离散数学习题指导
第三版和第二版也不会差很大,该略的依然略,该有过程的还是有的

求《运筹学》清华大学出版社第三版答案

你去到书店买一本参考书吧,电子版的很难找呀

求清华大学出版社韩玉良编的经济数学基础微积分第三版课后习题答案

这书似乎找不到电子版答案的,
你还有两个选择,1可以去图书馆看看,学校的图书馆一般都有
2用同济第6版的答案,里面的题目其实都差不多,相近的可以相互套用.....
答题不易,请及时采纳,谢谢!

统计学基础课后答案 清华大学出版社 罗洪群 你找到没?

没有

java语言程式设计(第三版)清华大学出版社答案

1.5请参照本章例题,编写一个C程式,输出以下资讯:
**************************
Very Good!
**************************
解:
mian()
{printf(“**************************”);
printf(“n”);
printf(“Very Good!n”);
printf(“n”);
printf(“**************************”);
}
1.6 编写一个程式,输入a、b、c三个值,输出其中最大值。
解:
mian()
{int a,b,c,max;
printf(“请输入三个数a,b,c:n”);
scanf(“%d,%d,%d”,&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf(“最大数为:“%d”,max);
}
第三章
3.6写出以下程式执行的结果。
main()
{char c1=’a’,c2=’b’,c3=’c’,c4=’101’,c5=’116’;
printf(“a%cb%ctc%ctabcn”,c1,c2,c3);
printf(“tb%c %c”,c4,c5);
}
解:
aaㄩbbㄩㄩㄩㄩㄩㄩㄩㄩㄩabc
AㄩN
3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程式,用赋初值的方法使cl、c2、c3、c4、c5五个变数的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
解:
#include <stdio.h>
main()
{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("密码是%c%c%c%c%cn",c1,c2,c3,c4,c5);
}
执行结果:
密码是Glmre
3.9求下面算术表示式的值。
(1)x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
(1)2.5
(2)3.5
3.10写出程式执行的结果。
main()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
解:
9,11,9,10
3.12 写出下面表示式运算后a的值,设原来a=12。设a和n都已定义为整型变数。
(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a
(5) a%=(n%=2),n的值等于5
(6)a+=a-=a*=a
解:
(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0
第四章
4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程式(包括定义变数型别和设计输出)。
a=_3_ _b=_4_ _c=_5
x=1.200000,y=2.400000,z=-3.600000
x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40
c1=ˊaˊ_or_97(ASCII)
c2=ˊbˊ_or_98(ASCII)
main()
{int a=3,b=4,c=5;
long int u=51274,n=128765;
float x=1.2,y=2.4,z=3.6;
char c1=’a’,c2=’b’;
printf("a=%2d b=%2d c=%2dn",a,b,c);
printf("x=%f,y=%f,z=%fn",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2fn",x+y,y+z,z+x);
printf("u=%6ld n=%9ldn",u,n);
printf("%s %s %d%sn","c1=’a’","or",c1,"(ASCII)");
printf("%s %s %d%sn","c2=’a’","or",c2,"(ASCII)");
}
4.7用scanf下面的函式输入资料,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?
main()
{
int a,b;float x,y;char c1c2;
scanf("a=%d_b=%d",&a,&b);
scanf("_x=%f_y=%e",&x,&y);
scanf("_c1=%c_c2=%c",&c1,&c2);
}
a=3_b=7
_x=8.5_y=71.82
_c1=A_c2=a
4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入资料,输出计算结果,输出时要求文字说明,取小数点后两位数字。请程式设计序。
main()
{float r,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
printf("C1=%.2fn",C1);
printf("Sa=%.2fnSb=%.2fnVa=%.2fnVb=%.2fn",Sa,Sb,Va,Vb);
}
4.9输入一个华氏温度,要求输出摄氏温度。公式为
c=5(F-32)/9
输出要求有文字说明,取位2小数。
main()
{float F,c;
scanf("%f",&F);
c=5*(F-32)/9;
printf("c=%.2f",c);
}
4.10程式设计序,用getchar函式读入两个字元给c1、c2,然后分别用函式和函式输出这两个字元。并思考以下问题:(1)变数c1、c2应定义为字元型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函式还是printf函式?(3)整形变数与字元变数是否在任何情况下都可以互相代替?如:
char c1,c2;

int c1,c2;
是否无条件的等价?
#include"stdio.h"
main()
{char c1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(’n’);putchar(c2);putchar(’n’);
}
#include"stdio.h"
main()
{char c1,c2;
c1=getchar();c2=getchar();
printf("c1=%d c2=%dn",c1,c2);
printf("c1=%c c2=%cn",c1,c2);
}
第五章
5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?
解:略。

5.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
解:设有一个逻辑表示式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3&&5的值为“真”,系统给出3&&5的值为1。

5.3 写出下面各逻辑表示式的值。设a=3,b=4,c=5。
(1) a+b>c&&b==c
(2) a||b+c&&b-c
(3) !(a>b)&&!c||1
(4) !(x=a)&&(y=b)&&0
(5) !(a+b)+c-1&&b+c/2

解:
(1) 0
(2) 1
(3) 1
(4) 0
(5) 1
5.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。

解:
方法一
#include <stdio.h>
main()
{ int a,b,c;
printf("请输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
if(b<c) printf("max=%dn",c);
else printf("max=%dn",b);
else if(a<c) printf("max=%dn",c);
else printf("max=%dn",a);
}
方法二:使用条件表示式,可以使程式更加简明、清晰。
程式如下:
#include <stdio.h>
main()
{ int a,b,c,temp,max;
printf("请输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("3个整数的最大数是%dn”,max);
}
5.5 有一函式:
写一程式,输入x值,输出y值。
解:
#include <stdio.h>
main()
{int x,y;
printf("输入x:");
scanf("%d",&x);
if(x<1)
{ y=x;
printf("x=%3d, y=x=%dn",x,y);
}
else if (x<10)
{ y=2*x-1;
printf("x=%3d, y=2*x-1=%dn",x,y);
}
else
{ y=3*x-11;
printf("x=%3d, y=3*x-11=%dn",x,y);
}
}
5.6 给一个百分制成绩,要求输出等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~90分为’B’,70~79分为’C’,60分以下为’D’。
解:
程式如下:
#include <stdio.h>
main()
{ float score;
char grade;
printf("请输入学生成绩:");
scanf("%f",&score);
while(score>100||(score<0)
{ printf("n输入有误,请重新输入:");
scanf("%f",&score);
}
switch((int)(score/10))
{ case 10:
case 9: grade=’A’;break;
case 8: grade=’B’;break;
case 7: grade=’C’;break;
case 6: grade=’D’;break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: grade=’E’;
}
printf("成绩是%5.1f,相应的等级是%c。n",score,grade);
}
说明:对输入的资料进行检查,如小于0或大于100,要求重新输入。(int)(score/10)的作用是将 (score/10) 的值进行强制型别转换,得到一个整型值。
5.7 给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数字。例如原数为321,应输出123。
解:
#include <stdio.h>
main()
{ long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;

printf("请输入一个整数(0~99999):");
scanf("%ld",&num);
if (num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("place =%dn", place);
ten_thousand=num/10000;
thousand=num/1000%10;
hundred=num/100%10;
ten=num%100/10;
indiv=num%10;
switch(place)
{ case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("n反序数字为;");
printf("%d%d%d%d%dn",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("n反序数字为:");
printf("%d%d%d%dn",indiv,ten,hundred,thousand);
break;
case 3: printf("%d,%d,%d",hundred,ten,indiv);
printf("n反序数字为:");
printf("%d%d%dn",indiv,ten,hundred);
break;
case 2: printf("%d,%d",ten,indiv);
printf("n反序数字为:");
printf("%d%dn",indiv,ten);
break;
case 1: printf("%d",indiv);
printf("n反序数字为:");
printf("%dn",indiv);
break;
}
}

5.8 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10% ;利润高于10万元,低于20万元(100000<I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000<I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000〈I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句程式设计序;(2)用switch语句程式设计序。
解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。
(1) 用if语句程式设计序。

#include <stdio.h>
main()
{ long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf("请输入利润i:");
scanf("%ld",&i);
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;
else if(i<=400000)
bonus=bon2+(i-200000)*0.05;
else if(i<=600000)
bonus=bon4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf(”奖金是%10.2fn",bonus);
}
此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金。即100000ⅹ0.1;②10万元以上部分应得的奖金。即(num-100000)ⅹ0.075。同理,20万~40万这个区间的奖金也应由两部分组成:①利润为20万元时应得的奖金,即100000ⅹ0.1ⅹ10万ⅹ0.075;②20万元以上部分应得的奖金,即(num-200000)ⅹ0.05。程式中先把10万、20万、40万、60万、100万各关键点的奖金计算出来,即bon1、bon2、bon4、bon6、hon10;然后再加上各区间附加部分的奖金。

(2) 用switch语句程式设计序。
输入利润i,确定相应的提成等级branch
根据branch确定奖金值
0 奖金=i*0.1
1 奖金=bon1+(i-105)*0.075
2 奖金=bon2+(i-2*105)*0.05
3
4 奖金=bon4+(i-4*105)*0.03
5
6 奖金=bon6+(i-6*105)*0.015
7
8
9
10 奖金=bon10+(i-106)*0.01
输出奖金
#include <stdio.h>
main()
{ long i;
float bonus, bon1, bon2, bon4, bon6, bon10;
int c;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf("请输入利润i:");
scanf("%ld",&i);
c=i/100000;
if(c>10) c=10;
switch(c)
{ case 0: bonus=1*0.1;break;
case 1: bonus=bon1+(i-100000)*0.075;break;
case 2 :
case 3: bonus=bon2+(i-200000)*0.05; break;
case 4:
case 5: bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9: bonus=bon6+(i-600000)*0.015;break;
case 10: bonus=bon10+(i-1000000)*0.01;
}
printf("奖金是%10.2f",bonus);
}
5.9 输入4个整数,要求按由大到小的顺序输出。
解:此题采用依次比较的方法排出其大小顺序。在学习了回圈和阵列以后,可以有更多的排序方法。
#include <stdio.h>
main()
{ int t,a,b,c,d;
printf("请输入4个整数:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("n a=%d,b=%d,c=%d,d=%dn",a,b,c,d);
if(a>b) {t=a; a=b; b=t;}
if(a>c) {t=a; a=c; c=t;}
if(a>d) {t=a; a=d; d=t;}
if(b>c) {t=a; b=c; c=t;}
if(b>d) {t=b; b=d; d=t;}
if(c>d) {t=c; c=d; d=t;}
printf("排序结果如下:n");
printf("%d, %d, %d, %dn",a,b,c,d);
}

5.10 有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的座标,求该点的建筑高度(塔外的高度为零)。
程式如下:
#include <stdio.h>
main()
{ int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;
printf("请输入一个点(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d2=(x-x2)*(x-x2)+(y+y2)*(y+y2);
d3=(x+x3)*(x+x3)+(y-y3)*(y-y3);
d4=(x+x4)*(x-x4)*(y+y4)*(y+y4);
if(d1>1&&d2>1&&d3>1&&d4>1) h=0;
printf("该点高度为%dn",h);
}

第六章
第六章 回圈控制

6.1输入两个正整数m和n,求其最大公约数和最小公倍数。
main()
{long m,n,i=1,j,s;
scanf("%ld,%ld",&m,&n);
for(;i<=m&&i<=n;i++)
{if(m%i==0&&n%i==0) s=i;}
if(m>=n) j=m;
else j=n;
for(;!(j%m==0&&j%n==0);j++);
printf("s=%ld,j=%ldn",s,j);
}
6.2输入一行字元,分别统计出其中英文字母、空格、数字和其他字元的个数。
#include"stdio.h"
main()
{char c;int i=0,j=0,k=0,l=0;
while((c=getchar())!=’n’)
{if(c>=65&&c<=90||c>=97&&c<=122) i++;
else if(c>=48&&c<=57) j++;
else if(c==32) k++;
else l++;}
printf("i=%d,j=%d,k=%d,l=%dn",i,j,k,l);
}
6.3求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。
#include"math.h"
main()
{int n,sum=0,i=1,s=2;
scanf("%d",&n);
while(i<=n)
{sum=sum+s;s=s+2*pow(10,i);
i++;}
printf("sum=%dn",sum);
}
6.4 求 ,(即求1!+2!+3!+4!+5!+…+20!)
main()
{int n,i=1;long sum=0,s=1;
scanf("%d",&n);
while(i<=n) {s=s*i;sum=sum+s;i++;}
printf("sum=%ldn",sum);
}
6.5 求
main()
{double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum;
for(;i<=100;i++) s1=s1+i;
for(;j<=50;j++) s2=s2+j*j;
for(;k<=10;k++) s3=s3+1/k;
sum=s1+s2+s3;
printf("sum=%fn",sum);
}
6.6打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
#include"math.h"
main()
{int x=100,a,b,c;
while(x>=100&&x<1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;
if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x);x++;}
}
6.7一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。程式设计序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1、2、3
main()
{int m,i,j,s;
for(m=6;m<10000;m++)
{s=1;
for(i=2;i<m;i++)
if(m%i==0) s=s+i;
if(m-s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("n");}
}
}

main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=m-1;
for(i=2;i<m;i++)
if(m%i==0) s=s-i;
if(s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("n");}
}
}
6.8有一分数序列:

求出这个数列的前20项之和。
main()
{int i=1,n;double t,x=1,y=2,s,sum=0;
scanf("%ld",&n);
while(i<=n) {s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}
printf("%fn",sum);
}
6.9一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?
main()
{int i,n;double h=100,s=100;
scanf("%d",&n);
for(i=1;i<=n;i++)
{h*=0.5;if(i==1) continue;s=2*h+s;}
printf("h=%f,s=%fn",h,s);
}
6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
main()
{int i=1,sum=0;
for(;i<=10;sum=2*sum+1,i++);
printf("sum=%dn",sum);
}
6.11用迭代法求 。求平方根的迭代公式为:

要求前后两次求出的得差的绝对值少于0.00001。
#include"math.h"
main()
{float x0,x1,a;
scanf("%f",&a);
x1=a/2;
do
{x0=x1;x1=(x0+a/x0)/2;}
while(fabs(x0-x1)>=0.00001);
printf("%.3fn",x1);
}
6.12 用牛顿迭代法求方程在1.5附近的根。

编译原理第三版清华大学出版社 急求清华大学出版社, 审计学基础 第三版 (王守龙 王珠强) 课后答案!

main()
{double x,y;x=1.5;
do{y=2*x*x*x-4*x*x+3*x-6;
x=x-y/(6*x*x-8*x+3);}
while(y!=0);
printf("x=%.3fn",x);
}
6.13用二分法求方程在(-10,10)之间的根

main()
{double x1,x2,y1,y2;x1=-10;x2=10;
do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
x1=x1-y1/(6*x1*x1-8*x1+3);}
while(y1!=0);
do
{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;
x2=x2-y2/(6*x2*x2-8*x2+3);}
while(y2!=0);
printf("x1=%.3f,x2=%.3fn",x1,x2);
}
6.14列印以下图案
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

财务管理第三版陈玉菁清华大学出版社课后练习答案详解

从专门网站上下载的

点选下载即可

uml系统建模基础教程(清华大学出版社)课后题答案

UML习题答案
第一章 面向物件设计与UML
1. 填空题
(1) 基本构造块 UML规则 公共机制
(2) 名字 属性 操作
(3) 封装 继承 多型
(4) 继承
(5) 瀑布模型 喷泉模型 基于元件的开发模型 XP开发模型
2. 选择题
(1)C
(2)A B C D
(3)A B C D
(4)A B C
(5)A
3.简答题
(1)类是具有相同或相似结构、操作和约束规则的物件组成的集合,而物件是某一类的具体化例项,每一个类都是具有某些共同特征的物件的抽象。类与物件的关系就如模具和铸件的关系,类的例项化结果就是物件,而对一类物件的抽象就是类.类描述了一组有相同特性和相同行为的物件。
(2)1.UML是一种语言。 2. UML是用来建模的。 3.UML是统一的标准。
(3)建模能够帮助我们按照实际情况或按我们需要的形式对系统进行视觉化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文件化。
在建模时应遵循以下原则:选择要建立什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联络的;单个模型不充分;对每个重要的系统最好用一组几乎独立的模型去处理。
(4)UML和面向物件软体开发之间有紧密的关系,可以说是面向物件软体开发促使了UML的产生。但是由于在UML标准化的过程中,吸收了业务建模、工作流建模和资料库建模等领域的标准规范,形成了适应性很强的标准。
(5)在软体设计过程中,使用UML建模是为了能够更好地理解正在开发的系统。通过UML建模,可以达到以下目的:有助于按照实际情况或按照所需要的样式对系统进行视觉化;能够规约系统的结构或行为;给出了指导构造系统的模板;对做出的决策进行文件化。
第二章 UML通用知识点综述
1.填空题
(1)依赖 泛化 关联 实现
(2)检视 图 模型元素
(3)实现检视 部署检视
(4)构造型 标记值 约束
(5)规格说明 修饰 通用划分
2. 选择题
(1)D
(2)C
(3)A
(4)A B
(5)D
3.简答题
(1)在UML中,定义了四种基本的面向物件的事物,分别是结构事物、行为事物、分组事物和注释事物等。
(2)构件种类有:原始码构件、二进位制构件和可执行构件。
(3)在UML中主要包括的检视为静态检视、用例检视、互动检视、实现检视、状态机检视、活动检视、部署检视和模型管理检视。
(4)检视和图是包含和被包含的关系。在每一种检视中都包含一种或多种图。
(5)UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML在各种图中新增适当的描述资讯,从而完善UML的语义表达。通常,使用模型元素的基本功能不能够完善的表达所要描述的实际资讯,这些通用机制可以有效地帮助表达,帮助我们进行有效的UML建模。UML提供的这些通用机制,贯穿于整个建模过程的方方面面。前面我们提到,UML的通用机制包括规格说明、修饰和通用划分三个方面。
第三章 Rational统一过程
1.填空题
(1)角色 活动 产物 工作流
(2)逻辑检视 过程检视 物理检视 开发检视 用例检视
(3)设计 开发 验证
(4)二维
(5)周期 迭代过程 里程碑
2.选择题
(1)A B C D
(2)A C D
(3)A C D
(4)A B C
(5)A B C D
3.简答题
(1)初始阶段、细化阶段、构造阶段和移交阶段。
(2)迭代式软体开发、需求管理、基于构件的架构应用、建立视觉化的软体模型、软体质量验证和软体变更控制。
(3)在Rational统一过程的开发流程中,分别使用角色、活动、产物和工作流四种建模元素来进行表达。
(4)对于一个以架构为中心的开发组织,需要对架构的目的、架构的表示和架构的过程进行关注。
(5)Rational统一过程是Rational软体开发公司的一款软体产品,并且和Rational软体开发公司开发的一系列软体开发工具进行了紧密的整合。Rational统一过程拥有自己的一套架构,并且这套架构是以一种大多数专案和开发组织都能够接受的形式存在的。它提供了如何对软体开发组织进行管理的方式,并且拥有自己的目标和方法。
(6)实现Rational统一过程的步骤:评估当前状态、建立明确目标、识别过程风险、计划过程实现、执行过程实现和评价过程实现。
(7)Rational统一过程作为一种软体工程过程为开发组织提供了如何在开发过程中如何对软体开发的任务进行严格分配、如何对参与开发的人员职责进行严格的划分等方法。按照预先制定的计划,这些计划包括专案时间计划和经费预算,开发出高质量的软体产品,并且能够满足终端使用者的要求。Rational统一过程提供了一种以可预测的回圈方式进行软体开发的过程、一个用来确保生产高质量软体的系统产品、一套能够被灵活改造和扩充套件的过程框架和许多软体开发最佳实践,这些都使Rational统一过程对现代软体工程的发展产生了深远的影响。
第四章 Rational Rose的安装和操作
1.填空题
(1)新建 开启 最近使用的模型
(2)用例检视 逻辑检视 构件检视 部署检视
(3)编辑区
(4)模型内容 日志记录
(5)mdl
2.选择题
(1)A B C D
(2)A C D
(3)A B C
(4)A C D
(5)C
3.简答题
(1)Rational Rose 是一个完全的、具有能满足所有建模环境(包括Web开发、资料库建模以及各种开发工具和语言)需求能力和灵活性的一套解决方案。Rational Rose 允许系统开发人员、系统管理人员和系统分析人员在软体的各个开发周期内,建立系统地需求和系统的体系架构的视觉化模型,并且能够将这些需求和系统的体系架构视觉化模型转换成程式码,帮助系统开发。Rational Rose建模工具能够为UML提供很好的支援。
(2)从略,参照第二节。
(3)通过选择“File”(档案)选单栏下的“Import”(汇入)可以用来汇入模型、包或类等,可供选择的档案型别包含.mdl、.ptl、.sub或.cat等,汇入模型的对话方块。汇入模型,可以对利用现成的建模。
通过选择“File”(档案)选单栏下的“Export Model ...”(汇出模型)可以用来汇出模型,汇出的档案字尾名为.ptl,当选择一个具体的类的时候,比如选择一个类名称为“User”,然后我们可以通过选择“File”(档案)选单栏下的“Export User”(汇出User类)来汇出User类,弹出汇出的档案字尾名称为.ptl
(4)Rational Rose 2003的主介面主要是由标题栏、选单栏、工具栏、工作区和状态列构成。预设的工作区域包含四个部分,分别是左侧的浏览器,文件编辑区和右侧的图形编辑区域,以及下方的是日志记录。
第五章 使用Rose设计UML
1.填空题
(1)用例检视 逻辑检视 构件检视 部署检视
(2)非一致性检查 审查功能 审查功能 重用建模元素和图功能
(3)构件 构件图 包
(4)部署
(5)模型程式码库 执行档案 执行库 其他构件的资讯
2.选择题
(1)A B D
(2)A C D
(3)A C D
(4)A B C
(5)A B C D
3. 简答题
(1)使用Rational Rose建立的Rose模型中分别包括用例检视、逻辑检视、构件检视和部署检视。用例检视是系统功能的高层抽象。逻辑检视关是系统如何实现用例中所描述的功能。部署检视显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理节点上的物理分布,而在分析和设计中使用的构架检视。
(2)使用Rational Rose生成程式码有通过以下四个步骤进行:选择待转换的目标模型、检查语言的语法错误、设定程式码生成属性、最后生产程式码。
(3)在Rational Rose中,可以通过收集有关类、类的属性、类的操作、类与类之间的关系以及包和构件等静态资讯,将这些资讯转化成为对应的模型,在相应的图中显示出来。
(4)用例检视关注的是系统功能的高层抽象,适合于对系统进行分析和获取需求,而不关注于系统的具体实现方法。逻辑检视关注系统如何实现用例中所描述的功能,主要是对系统功能性需求提供支援,即在为使用者提供服务方面,系统所应该提供的功能。
第六章 用例图
1.填空题
(1)用例图
(2)参与者(角色) 用例 系统边界 关联
(3)包含 扩充套件 泛化
(4)用例粒度
(5)组成部分 系统外部
2.选择题
(1)D
(2)A C D
(3)C
(4)C
(5)D
3. 简答题
(1)识别用例的最好方法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者。当找到参与者之后,我们就可以根据参与者来确定系统的用例,主要是看各参与者如何使用系统,需要系统提供什么样的服务。对于这个被选出的用例模型,不仅要做到易于理解,还要做到不同的涉众对于它的理解是一致的
(2)我们可以在用例之间抽象出包含、扩充套件和泛化这三种关系。多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成为一个用例,然后让其他用例来包含这一用例。扩充套件关系往往被用来处理异常或者构建灵活的系统框架。使用扩充套件关系可以降低系统的复杂度,有利于系统的扩充套件,提高系统的效能。扩充套件关系还可以用于处理基础用例中的那些不易描述的问题,使系统显得更加清晰易于理解。当您发现系统中有两个或者多个用例在行为、结构和目的方面存在共性时,就可以使用泛化关系。这时,可以用一个新的(通常也是抽象的)用例来描述这些共有部分,这个新的用例就是父用例。
(3)视系统的复杂度决定。对于比较简单的系统,可以相对用的少些用例图,对于比较复杂的系统,为表示清楚系统功能必须多建立用例图。我们应该根据每个系统的具体情况,具体问题具体分析,在尽可能保证整个用例模型的易理解性前提下决定用例的大小和数目。
(4)用例图是从软体需求分析到最终实现的第一步,它显示了系统的使用者和使用者希望提供的功能,有利于使用者和软体开发人员之间的沟通。借助于用例图,系统使用者、系统分析人员、系统设计人员、领域专家能够以视觉化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。
(5)使用Rose建立用例图的步骤:识别参与者、建立用例,最后建立用例之间的关系。
4.上机题
(1)用例图位于光碟中学生管理系统.mdl. ->User Case View->系统管理员用例图
(2)用例图位于光碟中学生管理系统.mdl. ->User Case View->教师用例图
(3)用例图位于光碟中学生管理系统.mdl. ->User Case View->学生用例
第七章 类图与物件图
1.填空题
(1)物件 链
(2)依赖 泛化 关联 实现
(3)类
(4)类 介面 资料型别 构件
(5)共有型别 私有型别 受保护型别
2.选择题
(1)A B
(2)C
(3)D
(4)D
(5)C
3. 简答题
(1)类的组成元素有类的名称、类的属性、类的操作、类的职责、类的约束和类的注释。
(2)物件图是由物件和链组成的。
(3)在面向物件分析方法中,类和物件的图形表示法是关键的建模技术之一。它们能够有效的对业务领域和软体系统建立视觉化的物件模型,使用强大的表达能力来表示出面向物件模型的主要概念。UML中的类图和物件图显示了系统的静态结构,其中的类、物件是图形元素的基础。
(4)在类中包含三个部分,分别是类名、类的属性和类的操作。类的名称栏只包含类名。类的属性栏定义了所有属性的特征。类中列出了操作类中使用了关联连线,关联中使用名称、角色以及约束等特征定义。类是一类的物件的抽象,类不存在多重性。
物件包含两个部分:物件的名称和物件的属性。物件的名称栏包含“物件名:类名”。物件的属性栏定义了属性的当前值。物件图中不包含操作内容,因为对属于同一个类的物件,其操作是相同的。物件使用链进行连线,链中包含名称、角色。物件可以具有多重性。
4.上机题
(1)类图位于光碟中学生管理系统.mdl. -> User Case View->类图
(2)物件图位于光碟中学生管理系统.mdl. -> Logical View->类图
(3)物件图位于光碟中学生管理系统.mdl. -> Logical View->类图
类图位于光碟中学生管理系统.mdl. -> User Case View->类图
第八章 序列图
1.填空题
(1)序列图
(2)传送者 接收者 活动
(3)启用
(4)生命线
(5)矩形框 下划线
2.选择题
(1)A B C D
(2)A
(3)A C
(4)B
(5)A B C
3. 简答题
(1)序列图的用途包括:确认和丰富一个使用语境的逻辑表达。细化用例的表达。有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
(2)确定序列物件。建立物件。建立生命线。建立讯息。销毁物件。
(3)序列图显示不同的业务物件如何互动,对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的序列图能被当作一个需求档案使用,为实现一个未来系统传递需求。在专案的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。组织的技术人员也能通过序列图在记录一个未来系统的行为应该如何表现。在设计阶段,架构师和开发者能使用该图,挖掘出系统物件间的互动,这样充实整个系统设计
(4)销毁物件表示物件生命线的结束,在物件生命线中使用一个“X”来进行标识。给物件生命线中新增销毁标记的步骤如下:在序列图的图形编辑工具栏中选择 按钮,此时的游标变为“+”符号。单击欲销毁物件的生命线,此时该标记在物件生命线中标识。该物件生命线自销毁标记以下的部分消失。
4.上机题
(1)序列图位于光碟中学生管理系统.mdl->Loginal View->输入学生资讯1(序列图)
(2)序列图位于光碟中学生管理系统.mdl->Loginal View->输入学生资讯(序列图)
(3)序列图位于光碟中学生管理系统.mdl->Loginal View->修改学生资讯(序列图)
第九章 协作图
1.填空题
(1)物件 协作关系中的链
(2)物件 物件间 进行互动
(3)独立连线 关联
(4)协作图
(5)讯息
2.选择题
(1)B
(2)A B D
(3)D
(4)A B C
(5)A
3. 简答题
(1)协作图的作用:通过描绘物件之间讯息的传递情况来反映具体的使用语境的逻辑表达。显示物件及其互动关系的空间组织结构。协作图的另外一个作用是表现一个类操作的实现。
(2)物件、讯息和链,这三个元素构成了协作图。物件的角色表示一个或一组物件在完成目标的过程中所应起的那部分作用。通过一系列的讯息来描述系统的动态行为。链是两个或多个物件之间的独立连线,是关联的例项。
(3)协作图中讯息的种类有同步讯息和非同步讯息。同步讯息用于系统中使用多执行绪的场合。非同步讯息用于使用有并行的活动如讯息伫列的场合。
(4)协作图和序列图都是互动图,它们既是等价的,又有所区别。顺序图表示了时间讯息序列,但没有表示静态物件关系。顺序图可以有效的帮助我们观察系统的顺序行为。而协作图用于表示一个协同中的物件之间的关系和讯息以及描述一个操作或分类符的实现。在对系统进行行为建模时,通常做法是用顺序图按时间顺序对控制流建模,用协作图按物件组织对控制流建模。
4.上机题
(1)协作图位于光碟中学生管理系统.mdl->Loginal View->输入学生资讯1(协作图)
(2)协作图位于光碟中学生管理系统.mdl->Loginal View->输入学生资讯(协作图)
(3)协作图位于光碟中学生管理系统.mdl->Loginal View->修改学生资讯(协作图)
第十章 活动图
1.填空题
(1)活动图
(2)一个物件流
(3)动作状态
(4)入口动作和出口动作
(5)泳道
2.选择题
(1)A B D
(2)A B D
(3)C
(4)B
(5)A
3. 简答题
(1)活动图描述一个操作执行过程中所完成的工,作它对活动图对用例描述尤其有用,它可建模用例的工作流,显示用例内部和用例之间的路径。活动图可以说明用例的例项是如何执行动作以及如何改变物件状态。它显示如何执行一组相关的动作,以及这些动作如何影响它们周围的物件。活动图对理解业务处理过程十分有用。
(2)UML活动图中包含的图形元素有:动作状态、活动状态、组合状态、分叉与结合、分支与合并、泳道、物件流。
(3)分叉用来表示将一个控制流分成两个或者多个并发执行的分支,分叉具有一个输入转换,两个或者多个输出转换,每个转换都可以是独立的控制流。分支是转换的一部分,它将转换路径分成多个部分,每一部分都有单独的监护条件和不同的结果。当动作流遇到分支时,会根据监护条件(布林值)的真假来判定动作的流向。分支的每个路径的监护条件应该是互斥的,这样可以保证只有一条路径的转换被激发。
(4)动作状态是原子性的动作或操作的执行状态,它不能被外部事件的转换中断。动作状态的原子性决定了动作状态要么不执行,要么就完全执行,不能中断。动作状态不能有入口动作和出口动作,也不能有内部转移。动作状态是一种特殊的活动状态。可以把动作状态理解为一种原子的活动状态。
活动状态是非原子性的,用来表示一个具有子结构的纯粹计算的执行。活动状态可以分解成其他子活动或动作状态,可以被使转换离开状态的事件从外部中断。活动状态可以有内部转换,可以有入口动作和出口动作。活动状态具有至少一个输出完成转换,当状态中的活动完成时该转换激发。
4.上机题
(1)活动图位于光碟中学生管理系统.mdl->Loginal View->State/Activity Model->学生登入
(2)活动图位于光碟中学生管理系统.mdl-> User Case View-> State/Activity Model->学生登入
(3)活动图位于光碟中学生管理系统.mdl->Loginal View->State/Activity Model->删除学生资讯
第十一章 包图
1.填空题
(1)包 子系统 依赖关系
(2)公共的 私有的 受保护的
(3)模型元素 图
(4)包图
(5)模型
2.选择题
(1)A
(2)A B
(3)B C D
(4)B C D
(5)A B C
3. 简答题
(1)包和包之间的关系总的来讲可以概括为依赖关系和泛化。
(2)包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对图中各个包以及包之间关系的描述,展现出系统的模组与模组之间的依赖关系。包图是由包和包之间的联络构成的,它是维护和控制系统总体结构的重要工具。
(3)构成包图的基本元素有包、子系统和依赖关系。包是一个可以拥有任何种类的模型元素的通用的名称空间。在系统模型中,每个图必须被一个唯一确定的包所有,同样这个包可能被另一个包所包含。包构成进行配置控制、储存和访问控制的基础。若干个相对独立的子系统构成了一个大型的复杂系统,系统和子系统的关系基本上是组合关系。通过对包图中各个包以及包之间关系的描述,展现出系统的模组与模组之间的依赖关系。
(4)包是包图中最重要的概念,是最重要的组成部分。包图是由包和包之间的联络构成的,没有包就没有包图。
4.上机题
(1)包图位于光碟中学生管理系统.mdl->Loginal View->包图
第十二章 构件图和部署图
1.填空题
(1)程式码特征 身份特征
(2)构件图
(3)构件 构件 类和介面
(4)虚包
(5)部署图
2.选择题
(1)A B D
(2)B
(3)A B D
(4)A
(5)B
3. 简答题
(1)构件图适用于下列建模需求:系统原始码、系统的释出版本、物理资料库、自适应系统、用于建立业务模型和用于系统的开发管理等。
(2)二者都有名称,都可以实现一组介面,都可以参与依赖关系,都可以被巢状,都可以有例项,都可以参与互动。类描述了软体设计的逻辑组织和意图,而构件这描述了软体设计的物理实现,类可以有属性和操作,构件只有操作,只有通过构件使得接口才能使用。
(3)在一张基本构件图中,构件之间最常见的关系是依赖关系和实现关系。
(4)在UML中,构件主要包括配置构件、工作产品构件和可执行构件。
4.上机题
(1)构件图位于光碟中学生管理系统.mdl->Component View->构件图
(2)部署图位于光碟中学生管理系统.mdl-> Deployment View
第十三章 状态图
1.填空题
(1)物件
(2)状态图
(3)简单状态和组成状态
(4)历史状态
(5)事件
2.选择题
(1)A B C D
(2)A B
(3)A
(4)A C D
(5)A B C
3. 简答题
(1)状态图是由状态、初始状态、终止状态、转换和判定这几个要素构成的
(2)状态机是一种记录下给定时刻状态的装置,它可以根据各种不同的输入对每个给定的变化而改变其状态或引发一个动作。一个状态图(Statechart Diagram)本质上就是一个状态机,或者是状态机的特殊情况,它基本上是一个状态机中的元素的一个投影,这也就意味着状态图包括状态机的所有特征。状态图描述了一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
(3)在软体开发中使用状态图建模的作用:状态图清晰的描述了状态之间的转换顺序,通过状态的转换顺序也就可以清晰的看出事件的执行顺序;清晰的事件顺序有利于程式设计师在开发程式时避免出现事件错序的情况;状态图清晰的描述了状态转换时所必须的触发事件、监护条件和动作等影响转换的因素,有利于程式设计师避免程式中非法事件的进入;状态图通过判定可以更好的描述工作流因为不同的条件发生的分支。
(4)顺序组成状态的多个子状态之间是互斥的,不能同时存在的。一个顺序组成状态最多可以有一个初始状态和一个终态。并发组成状态可以有两个或者多个并发的子状态,每个并发子状态还可以进一步分解为顺序组成状态。一个并发组成状态可以没有初始状态,终态。
4.上机题
(1)状态图位于位于光碟中学生管理系统.mdl->Loginal View-> State/Activity Model->学生资讯
(2)状态图位于位于光碟中学生管理系统.mdl->Loginal View-> State/Activity Model->系统管理员

java程式设计第三版(辛运帏,饶一梅,马素霞 ) 清华大学出版社 课后答案

:wenku.baidu./link?url=xQ53YVgIplDwFMCJ4lvIenEaoa6xXS1JP5RBlP01HT6Ksknp4R7eOCSKmeUEt1CbjLsXksL0Jrb-tOe7xyG8pzMjjV2oRriBfBJRGDuTMNO

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码