第三次上机实验参考答案

合集下载

c程序设计实验参考答案

c程序设计实验参考答案
编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;

C语言程序设计实验指导书参考答案

C语言程序设计实验指导书参考答案

C 语言程序设计上机实验指导与习题参考答案(仅供教师内部参考)华南农业大学目录上机实验 (1)实验 1 C 语言程序初步 (1)一、实验目的 (1)二、实验内容 (1)实验 2 基本数据类型、运算和表达式 (3)一、实验目的 (3)二、实验内容 (3)实验 3 基本输入与输出 (5)一、实验目的 (5)二、实验内容 (5)实验 4 选择结构程序设计 (4)一、实验目的 (4)二、实验内容 (4)实验 5 循环结构程序设计(一) (9)一、实验目的 (9)二、实验内容 (9)实验 6 循环结构程序设计(二) (15)一、实验目的 (15)二、实验内容 (15)实验7 数组 (17)一、实验目的 (17)二、实验内容 (17)实验8 字符数组的应用 (22)一、实验目的 (22)二、实验内容 (22)实验9 函数的基本应用 (24)一、实验目的 (24)二、实验内容 (24)实验10 指针与结构体 (26)一、实验目的 (26)二、实验内容 (26)*实验11 链表 (29)一、实验目的 (29)二、实验内容 (29)*实验12 文件 (32)一、实验目的 (32)二、实验内容 (32)上机实验实验1 C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C 程序。

(3)通过运行简单的 C 程序,初步了解C 程序的特点。

(4)在教师的指导下,学会使用JudgeOnline 实验系统。

二、实验内容1. 运行第一个C 程序[题目:The first C Program]将下列程序输入TC(或VC++),编译、连接和运行该程序。

void main(){printf("The first C Program\n");}[具体操作步骤]以Turbo C 上的操作为例(1)Windows 进入后,按照第一章中介绍的方法,进入Turbo C。

SAS上机练习题全部含参考答案

SAS上机练习题全部含参考答案

重庆医科大学--卫生统计学统计软件包SAS上机练习题(一)1、SAS常用的窗口有哪三个?请在三个基本窗口之间切换并记住这些命令或功能键。

2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不同颜色的含义;并根据日志窗中的信息修改完善程序。

3、将第2题的程序、结果及日志保存到磁盘。

4、试根据如下例1的程序完成后面的问题:表1 某班16名学生3门功课成绩表如下问题:1)建立数据集;2)打印至少有1门功课不及格同学的信息;(提示,使用if语句)参考程序:data a;input id sh wl bl;cards;083 68 71 65084 74 61 68085 73 75 46086 79 80 79087 75 71 68084 85 85 87085 78 79 75086 80 76 79087 85 80 82088 77 71 75089 67 73 71080 75 81 70118 70 54 75083 70 66 84084 62 73 65099 82 70 79;run;data b;set a;if sh<60 or wl<60 or bl<60then output;run;proc print data=b;var id sh wl bl;run;5、根据下列数据建立数据集表2销售数据开始时间终止时间费用2005/04/28 25MAY2009 $123,345,0002005 09 18 05OCT2009 $33,234,5002007/08/12 22SEP2009 $345,600提示:(计算,如果读入错误,可试着调整格式的宽度;显示日期需要使用输出格式) 开始时间,输入格式yymmdd10.终止时间,输入格式date10.费用,输入格式dollar12.参考程序:data a;input x1 yymmdd10. x2 date10. x3 dollar13.;cards;2005/04/28 25MAY2009 $123,345,0002005 09 18 05OCT2009 $33,234,5002007/08/12 22SEP2009 $345,60020040508 30JUN2009 $432,334,500;run;proc print;run;proc print;format x1 yymmdd10. x2 date9. x3 dollar13.;run;6、手机号码一编码规则一般是:YYY-XXXX-ZZZZ,其YYY为号段;XXXX一般为所在地区编码;ZZZZ为对应的个人识别编号。

UML实验指导书

UML实验指导书

《面向对象设计UML建模》---08本新版上机实验(一)创建用例及用例图一.实验目的:在Rose 2003 环境下设计应用系统的UML用例图(Use Case Diagram)。

二.实验内容:根据用户“需求陈述”创建Use Case框图。

包括:案例1. 绘制“自动饮料机售货”的Use Case框图(包括功能扩展)案例2. 用例之间的三种关系练习案例3. 设计“网上学生选课系统”的Use Case 框图案例4. 设计“图书管理系统”的Use Case 框图三.操作步骤:案例1.①建立用例图的步骤:。

右击Use Case View。

选New Use Case Diagram。

起名,比如:Buy Drink。

双击Buy Drink图标,这时工具栏变成适合Use Case作图的形式。

设计Use Case Diagram.②“自动饮料机售货”需求陈述:“顾客通过自动饮料售货机, 可以方便地买到一听饮料。

而自动饮料售货机除了卖给顾客饮料外,还具备以下功能:·供应商可以向自动饮料售货机添加饮料(需要打开和关闭自动饮料售货机的门);·收银员可以从自动饮料售货机取钱. (需要打开和关闭自动饮料售货机的门)”经过分析可知自动饮料售货机系统涉及到的名词及概念有:Customer Supplier Cashier Buy drink Set drink Take moneyOpen machine Close machine显然, 前三个名词为参与者. 后面的那些功能为Use Case .③绘制自动饮料售货机售货的用例图. (提示:首先找出参与者和用例之间的关系, 建立初步用例图, 然后细化用例建立用例之间的《include》或《extend》关系。

)案例2. 用例之间的三种关系练习·分析用例之间的“泛化关系”、“include”和“extend”关系。

·在Rose下创建包括以上三种关系的Use Case图。

c语言上机实验题及参考答案

c语言上机实验题及参考答案
4、编写程序,求1-3+5-7+...-99+101的值。(文件名为44.c。备注:程序运行结果为51,关于符号转换的问题可以参考教科书上的例6.6)
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}

Matlab上机实验题及参考解答

Matlab上机实验题及参考解答

Matlab上机实验题及参考解答目录实验一Matlab初步实验 (2)一matlab基本功能介绍 (2)二Matlab扩展功能 (2)三练习 (2)四练习题参考解答 (3)实验二概率模型实验 (5)一复习 (5)二事件的响应 (5)三Matlab中随机数字的生成与处理 (5)四练习 (5)五练习题参考解答 (5)实验三插值与拟合 (7)实验四线性规划与非线性规划 (8)4.1 实验目的 (8)4.2 实验内容 (9)4.3 综合练习 (10)4.4 课外作业 (11)实验五数值计算 (12)5.1 实验目的 (12)5.2 实验内容 (12)4.3 综合练习 (15)4.4 课外作业 (15)实验六计算机图像处理 (16)6.1 实验目的 (16)6.2 实验内容 (16)6.3 综合练习 (17)6.4 课外作业 (19)实验七综合练习 (19)7.1 实验目的 (19)7.2 实验内容 (19)7.3 综合练习 (20)7.4 课外作业 (21)实验一 Matlab 初步实验 一 matlab 基本功能介绍1 编程环境2语法规范:for … end; if …else if …end; 3 矩阵运算 4 图形绘制二 Matlab 扩展功能1 编程练习:(1) 绘出序列kk x x r r 0(1),0.2083=+=;(2) 绘出曲线rtx t x e t 0(),0=>2 扩展功能(1) 矩阵中全部数据、部分数据的截取、更改; (2) 矩阵的初始化与赋值如:A=zeros(5,5); A(2:2:)=[1,2 3 4 5] 3 微积分基础(见实验4) 符号计算三 练习(课上编程完成下列练习,课后上机验证) 1 求和S=1+2+3+…+100; 2 求和e 1111!2!10!1...=++++3求和S 1112310!1...=++++4设A 234576138⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦, 求A 的逆、特征值和特征向量;验证Ax=λx 5 画函数图()011mrtm x x t x e x -=⎛⎫+- ⎪⎝⎭6 展开 (x-1)(x-2)…(x-100)7 因式分解 x 8—y 8; 因数分解200520068 求极限312lim +∞→⎪⎭⎫⎝⎛++n n n n9 )](sin[cos 22x x y += 求dxdy10 求积分x xdx 10ln ⎰11 求积分3⎰并且画出所求的平面区域12 设x+2y=1, 2x+3y=6, y=2x 2, 画出各个方程图形,求出曲线交点.四 练习题参考解答%MatlabTrain1.m clear all % 2nd e=1; temp=1; for I=1:1:10temp=temp*I; e=e+1/temp; end e%%%%%%%%%%% clear all % 3nd S=0; temp=1;for I=1:1:100temp=temp*I; endfor J=1:1:temp S=S+1/J; end S%%%%%%%%%%%%%% clear all % 11ndx=linspace(0,4); y=1./sqrt(x.^5+1); plot(x,y) for t=1:0.1:3yt=1./sqrt(t.^5+1);hold online([t,t],[0,yt]);end%fill(t,yt,'b') %%%%%%%%%%%%% clear all% 12ndx=linspace(-2,2);y=[0.5-0.5*x; 2-2/3.*x; 2*x.^2]; plot(x,y)grid实验二概率模型实验一复习1 小结上次编程练习中存在的问题,讲述部分习题答案2 画图命令介绍:line二事件的响应(1) 获取鼠标的位置%MatlabTrain2.mclear all% 鼠标响应p=ginput(3)plot(p(:,1),p(:,2),'r*')(2) 键盘输入相应t=input('How many apples? t=');m=t+3三Matlab中随机数字的生成与处理1 随机数的生成2 产生随机数字3 产生某区间的整数4 生日模拟问题的Montecaro法设计技术、思路学生尝试编程四练习(1) 编程验证人数在不同年龄段的生日的概率计算(2) 编程实现游戏”聪明伶俐100分”(3) 编程实现两家电影院的座位数问题(4) 编程实现某图形面积的计算五练习题参考解答(1) 生日问题程序示例:%birthPro.mn=0;nStudents=30;for I=1:1000 %how many times testy=0;x=1+floor(365*rand(1,nStudents));%get nStudents random numbersfor J=1:nStudents-1for K=J+1:nStudentsif x(J)==x(K)y=1;break;endendendn=n+y;%count, n times of that there are two people's dirthday in the same dayendfreq=n/I % caculating the frequently(2) 编程实现游戏”聪明伶俐100分”参考答案%MatlabTrain2.mclear all% 鼠标响应x=floor(10*rand(1,4))t=input('填入四个数字[n1 n2 n3 n4]=');flag=0;A=0;B=0;for I=1:1:8flag=flag+1;A=0;B=0;if t==xswitch flagcase 1disp('聪明绝顶!');case 2disp('聪明!');case 3disp('有点聪明!');case 4disp('还可以!');case 5disp('聪明伶俐100分!');case 6disp('聪明伶俐90分!');case 7disp('聪明伶俐85分!');case 8disp('聪明伶俐80分!');otherwisedisp('赫赫!');endbreak;endfor J=1:1:4for K=1:1:4if x(J)==t(K) & J==KA=A+1;else if x(J)==t(K) & J~=KB=B+1;endendendends='AABB';s(1)=INT2STR(A);s(3)=INT2STR(B);disp(s);t=input('不重复填入四个数字[n1 n2 n3 n4]=');endif flag>0disp('太烂了! 正确答案是:');xend实验三插值与拟合一复习讲述聪明伶俐100分的编程中的问题二插值三拟合课堂练习2 某之股票价格from 2003 09 01 to 2004 01 02,试进行插值、拟合%TimerS.m%from 2003 09 01 to 2003 01 02clear all;dataST=[15.09 14.7514.95 14.722.88 21.8619.82 19.09];plot(dataST)四课外练习112)进行多项式拟合,求出拟合多项式,并求出多项式在t=4, 5处的值.实验四线性规划与非线性规划4.1 实验目的1 用Matlab求解线性规划2 用Matlab求解非线性规划4.2 实验内容4.2.1 线性规划求解实用格式:x=lp(c, A, b, xLB,xUB,x0,nEq)可以求解下列线性规划模型:min f=c’xs.t. Ax=<=b(其中前nEq个约束为等式约束,即等式约束的个数,其余是不等式约束<=) xLB<=x<=xUB函数中x0参数是算法迭代的初始点,任意取值例1 求解下列线性规划1)123123123123min2..360210200,1,2,3jz x x xs t x x xx x xx x xx j=--+⎧⎪++≤⎪⎪-+≤⎨⎪+-≤⎪≥=⎪⎩,2)1235635623416367min..3621060,1,,7jz x x x x xs t x x xx x xx xx x xx j=-++-⎧⎪++=⎪⎪+-=⎪⎨-+=⎪⎪++=⎪≥=⎪⎩例1求解示例c=[-2 -1 1]';%book page 72 Number 16-1A=[3 1 1;1 -1 2;1 1 -1];b=[60 10 20]';xlb=[0 0 0]';xub=[inf inf inf]';x0=[0 0 0]'; x=lp(c,A,b,xlb,xub,x0,0)% x=(15 5 0)'例2 求解示例c2=[1 -1 1 0 1 -1 0]';%book page 72 Number 16-3A2=[0 0 3 0 1 1 0;...0 1 2 -1 0 0 0;...-1 0 0 0 0 1 0;...0 0 1 0 0 1 1];b2=[6 10 0 6]';xlb2=[0 0 0 0 0 0 0]';xub2=[inf inf inf inf inf inf inf]';x02=[0 0 0 0 0 0 0]';x2=lp(c2,A2,b2,xlb2,xub2,x02,4)% unbounded4.2.2 非线性规划1)命令格式1:[X, OPTIONS]=constr(‘FUN’, X, OPTIONS,VLB,VUB)2)命令格式2:X=FMINCON(FUN,X0,A,B,Aeq,Beq)% minimizes FUN subject to the linear equalities% Aeq*X = Beq as well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.)例2 求解非线性规划y x x x x s t x3211221min22 ..1=++-≤-求解示例%unconop.mfunction y=unconop(x)y=x(1).^3+2*x(1).*x(2)+2*x(2).^2;%book page 148 ex.7-1 后建立调用函数xx=fmincon('unconop',[0 0]',[-1 0],-1,[],[])%book page 148 ex.7-1 4.3 综合练习学生独立编写程序,求解一个含有2个变量的线性规划问题,要求:1)编写程序,把可行域画上阴影;2)求出最优解,在可行域上标出最优解;3)求出基本解,并在上图中表示出来;4)求出基本可行解,观察单纯形方法迭代时,顶点的变化.可行域画图与表出阴影示例:syms x y[u(1),v(1)]=solve('y=x+2','y=2*x');%求出交点坐标[u(2),v(2)]=solve('y=-x+2','y=2*x');[u(3),v(3)]=solve('y=x+2','y=-x+2');x=linspace(0,3,5); %直线作图y=[2*x;-x+2;x+2];line(x,y); gridpatch(double(u),double(v),'b'); 运行结果:4.4 课外作业1 求解线性规划131223min ..250.530,1,2,3i x x s t x x x x x i +⎧⎪+≤⎪⎨+=⎪⎪≥=⎩ (1) 求解线性规划;x *=()(2) 目标函数中c 1由1变为(-1.25)时求最优解;(3) 目标函数中c 1由1变为(-1.25),c 3由1变为2时求最优解;(4) 约束条件中53b ⎛⎫= ⎪⎝⎭变为21b -⎛⎫'= ⎪⎝⎭时,求解;(5) 约束条件中53b ⎛⎫= ⎪⎝⎭变为23b ⎛⎫'= ⎪⎝⎭时,求解[刁在筠,运筹学(第二版),高等教育出版社,2004,01 p74第20题]2 求解非线性规划y x x x x x x x 3221122233min 2223=++++ 注:无约束非线性规划问题, 命令:fminunc子函数% unconop.mfunction y=unconop(x)y=x(1).^2+2*x(1).*x(2)+2*x(2).^2+2*x(2).*x(3)+3*x(3).^2;%book page 148 ex.7-1 主函数:xx=fminunc('unconop',[0.1 0.1 1]')思考:绘出两个变量的线性规划问题的可行域、标出可行的整数解和求出可行解;演示单纯形方法的迭代过程,如j z x x s t x x x x x j 121212min 2..360200,1,2=--⎧⎪+≤⎪⎪+≤⎨⎪⎪≥=⎪⎩实验五 数值计算5.1 实验目的1 掌握代数数值计算2 掌握常微分方程数值计算5.2 实验内容5.2.1 关于多项式设多项式1110()n n n n p x a x a x a x a --=++++表示为110[,,,,]n n p a a a a -=1)求多项式的根 roots(p) %求出p(x)=0的解。

程序设计基础(C) 上机实验指导3 顺序结构

程序设计基础(C) 上机实验指导3  顺序结构
15

1.输入一个数,求该数个位,十位,百位上的数之和。
过程举例:123 1)123%10 2)123/10 3)123/10%10 4)123/100 123除以10的余数为3(个位) 123除以10商为12; 12除以10的余数为2(十位); 123除以100商为1(百位)
知识点说明: 1)% 求模(求余)运算,两整数相除,求余数 2)/ 除法运算,整数相除,结果为整数,实数相除,结果为double型数
含义同printf函数
可以是变量的地址,或字 符串的首地址
• 以%开始,以一个格式字符结束,中间可 以插入附加的字符
scanf("a=%f,b=%f,c=%f",&a,&b,&c); //bad scanf("%f %f %f",&a,&b,&c); // good
13
用scanf函数输入数据
2.使用scanf
3
强制类型转换运算符 #include <stdio.h> main( ) { float a=12.34; b=(int)a; printf(" %d, %f",b,a); return 0; } //以上代码有错,在哪里?
程序运行结果: 12, 12.340000
4
第三章
在C程序中用来实现输出和输入的,主要是printf函数和 scanf函数
16

#include "stdio.h" main( ) { int iNum; int i1,i2,i3,iSum; printf("please input a integer(100-999):"); scanf("%d",&iNum); i1=iNum%10; /*求个位数*/ i2=iNum/10%10; /*求十位数*/ i3=iNum/100; /*求百位数*/ iSum=i1+i2+i3; printf("The sum is: %d",iSum); }

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三次上机实验参考答案1、类对象的定义【项目要求】定义一个圆类,计算圆的面积和周长。

(1)控制台应用程序的参考代码如下:namespace SY3_1{class Program{static void Main(string[] args){double r;Console.Write("请输入圆的半径:");r = Convert.ToDouble(Console.ReadLine());Circle c1 = new Circle(r);Console.WriteLine("圆周长 = {0}\n 圆面积 = {1}", c1.getCircumference(), c1.getArea());Console.ReadLine();}}class Circle{private double radius;public Circle(double r){radius = r;}public double getArea(){return Math.PI * radius * radius;}public double getCircumference(){return 2 * Math.PI * radius;}}}//定义一个圆类,计算圆的面积和周长。

(2)用面向对象的思想实现Windows 应用程序,用户输入圆的半径,点击计算按钮能输出圆的面积和周长。

界面如图3-2 所示。

图 3-1 圆类求面积和周长参考代码如下:namespace SY3_2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){double r;r = Convert.ToDouble(tbRadius.Text);Circle c1 = new Circle(r);tbArea.Text = c1.getArea().ToString("F2");tbPeri.Text = c1.getCircumference().ToString("F2");}class Circle{private double radius;public Circle(double r){radius = r;}public double getArea(){return Math.PI * radius * radius;}public double getCircumference(){return 2 * Math.PI * radius;}}}}//用面向对象的思想实现Windows 应用程序,用户输入圆的半径,点击计算按钮能输出圆的面积和周长。

图 3-2 圆类求面积和周长2、类的继承【项目要求】编写一个程序,计算球、圆柱和圆锥的表面积和体积。

(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆锥,都含有求体积的方法,可以都在构造方法中实现,也可以将求体积和输出写在一个方法或两个方法中,请比较使用;(3)定义主方法,求球、圆柱和圆锥的表面积和体积。

参考代码如下:namespace SY3_3{class MyCircle{double r;public MyCircle(double r){this.r = r;}}class MyBall : MyCircle{double volumn;public MyBall(double r) : base(r){volumn = Math.PI * r * r * r;Console.WriteLine("球的体积是:{0}", volumn);}}class MyCylinder : MyCircle{double volumn;public MyCylinder(double r, double h): base(r){}public void calvolumn(double r, double h){volumn = Math.PI * r * r * h;}public void print(){Console.WriteLine("圆柱体的体积是:{0}", volumn);}class MyCone : MyCircle{double h, volumn;public MyCone(double r, double h): base(r){this.h = h;}public void calvolumn(double r, double h){volumn = Math.PI * r * r * h / 3;Console.WriteLine("圆锥体的体积是:{0}", volumn);}}public class Test{public static void Main(){Console.Write("请输入球半径:");double r = Convert.ToDouble(Console.ReadLine());MyBall mb = new MyBall(r);Console.Write("请输入圆柱体高度:");double h = Convert.ToDouble(Console.ReadLine());MyCylinder mc = new MyCylinder(r, h);mc.calvolumn(r, h);mc.print();Console.Write("请输入圆锥体高度:");double h2 = Convert.ToDouble(Console.ReadLine());MyCone mo = new MyCone(r, h2);Console.WriteLine("h2={0},r={1}", h2, r);mo.calvolumn(r, h2);Console.ReadLine();}}}图3-3求球、圆柱和圆锥的表面积和体积3、文本文件的字节读写【项目要求】设计一个如图3-4所示的应用程序,要求:(1)单击【打开文件】按钮后,弹出一个通用对话框,选择文件后文件内容显示在文本框中;(2)单击【保存文件】按钮后,弹出一个通用对话框,确定文件名后保存;(3)单击【查找下一个】按钮后,就在文本文件中查找单词“SOA”,找到后以高亮度显示。

若再次单击【查找下一个】按钮,则继续查找。

图3-4文本文件的字节读写参考代码如下:namespace SY3_4{public partial class Form1 : Form{public Form1(){InitializeComponent();int index = 0;private void btOpen_Click(object sender, EventArgs e){openFileDialog1.FileName = "*.txt";openFileDialog1.InitialDirectory = "c:\\";openFileDialog1.Filter = "Text Files(*.Txt|*.Txt|All Files(*.*)|*.*";openFileDialog1.FilterIndex = 1;openFileDialog1.ShowDialog();if (openFileDialog1.FileName == null || openFileDialog1.FileName.Equals(""))return;int a;FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);tbInfo.Text = "";a = fs.ReadByte();while (a != -1){tbInfo.Text += ((char)a).ToString();a = fs.ReadByte();}fs.Close();}private void btSave_Click(object sender, EventArgs e){saveFileDialog1.InitialDirectory = "c:\\";saveFileDialog1.Filter = "Text Files(*.Txt|*.Txt|All Files(*.*)|*.*";saveFileDialog1.FilterIndex = 1;saveFileDialog1.ShowDialog();if (openFileDialog1.FileName == null || openFileDialog1.FileName.Equals(""))return;byte a;FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.Write);for (int i = 0; i < tbInfo.Text.Length; i++){a = (byte)tbInfo.Text[i];fs.WriteByte(a);}fs.Flush();fs.Close();}private void btSeach_Click(object sender, EventArgs e)tbInfo.Focus();index = tbInfo.Text.IndexOf("SOA", index);if (index >= 0){tbInfo.SelectionStart = index;tbInfo.SelectionLength = 3;index++;}elseMessageBox.Show("找不到!");}private void btClose_Click(object sender, EventArgs e){Application.Exit();}}}//(1)单击【打开文件】按钮后,弹出一个通用对话框,选择文件后文件内容显示在文本框中;//(2)单击【保存文件】按钮后,弹出一个通用对话框,确定文件名后保存;//(3)单击【查找下一个】按钮后,就在文本文件中查找单词“SOA”,找到后以高亮度显示。

相关文档
最新文档