C#-第一次实验报告(含源代码,注释)x
时间:2020-09-15 12:27:11 来源:勤学考试网 本文已影响 人
.NET程序设计
.NET程序设计
PAGE
PAGE # / 8
实验一一 语言基础
、实验目的
熟悉Visual Stido.NET实验环境;
掌握控制台程序的编写方法;
掌握C#程序设计语言的语法基础;
掌握控制语句和数组的使用。
、实验要求
根据题目要求,编写C#程序,并将程序代码和运行结果写入实验报告。
、实验内容
编写一个控制台应用程序,输入三角形或者长方形边长, 计算其周长和面积并输
出。
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespacesy1_1
{ - --
class Program {
static void Main( string [] args)
int i; double t_1, t_2, t_3;//三角形及长方形的变量等Con sole .WriteLi ne(while ( true )double r_le nth, r_width;double cir, area;欢迎进入几何图形周长、面积计算系统*******");/ 2 - t_3));Con sole .WriteLi ne("Con sole .WriteL in e("请输入序号:1. 三角形 2. 长方形
int i; double t_1, t_2, t_3;
//三角形及长方形的变量等
Con sole .WriteLi ne(
while ( true )
double r_le nth, r_width;
double cir, area;
欢迎进入几何图形周长、面积计算系统
*******"
);
/ 2 - t_3));
Con sole .WriteLi ne("
Con sole .WriteL in e("请输入序号:
1. 三角形 2. 长方形
");
int .Parse( Console.ReadLine()); switch (i) {
case 1:
Con sole .WriteLi ne( float .Parse(
Con sole .WriteLi ne(
float .Parse(
Con sole .WriteLi ne( float .Parse(
2 + t_3;
3.退出
I!
);
t_3 =
cir = t_1 area = //无法将double隐式转换为float,
Con sole .WriteLi ne( Con sole .WriteLi ne( break;
case 2:
"请输入第一条边长: Con sole .ReadL in e());
"请输入第二条边长:
Con sole .ReadL in e());
"请输入第三条边长: Con sole .ReadL in e());
");
");
");
//
//
//三角形周长及面积算法
//用户依次输入三个边长
输入结束 计算三角形周长及面积
Math.Sqrt(cir / 2 * (cir / 2 - t_1) * (cir / 2 - t_2) * (cir
之前用的float类型的边长等,sqrt函数返回为double "该三角形周长为:{0}" ,cir);
"该三角形面积为:{0}" ,area);
//长方形周长及面积算法
PAGE
PAGE # / 8
Con sole .WriteLi ne("请输入长方形的长:“);//用户依次输入三个边长 r_lenth = float .Parse( Console.ReadLine());
Con sole .WriteLi ne("请输入长方形的宽:”); r_width = float .Parse( Console.ReadLine());
cir = 2 * (r_lenth + r_width); // 长方形周长及面积
area = r_le nth * r_width;
Con sole .WriteLi ne("该长方形周长为:{0}" , cir);
Con sole .WriteL in e("该长方形面积为:{0}" , area); break;
case 3: Con sole .WriteLi ne("欢迎您的下次进入!!! ”); break;
default : Console.WriteLine("输入错误!!! "); break ;
} //switch 结束
if (i == 3) break; //判断用户是否退岀系统
} //while循环结束
}
}
}
&> sy_ -I - '1 CTEJSDtt VlE^J3 i.udio
体泵百復(口文件旧希旧m^(Vl顿目训生咸(B)错试;DI SkilMi無内"(Tj;R?苗?二 jj』A -J ?k - J ' ,J '》恥问 *
体泵百復(口
==!9 C:\wi ndt>w£\cyctp*in d .pms1Program-CG X_2O1 b3236^sy 1 = l Program j-~z骗台一*柠制台应用狎才"于怖|
==!
9 C:\wi ndt>w£\cyctp*in d .pms1
Program-CG X
_2O1 b3236^sy 1 = l Program j
-~z骗台一*柠制台应用狎才
"于怖|
F^ixig1 Syrt c?;
可 usin^ Sys± rat- Cpllcctiorid usd ne 5yst eir ? Lina:
t UEzng Sysdt en.- Text ; '
7 L nine 5fiC.ce _^£01 S3236_sy 1J
屮卄"欧迎退人丿川.|暨土丙怏、 .“ 、1- 一當影 工 KTr?
?頁输A序号*
1
请输八弟一乘辺长: 齧報人第—条边长r
后输/■第三条辺长*
g iu ii
Id 茁 疋
17
IS
19
2C
2 I
23
『I叮
int 1: dnuh U Consol#. Wril while (true )1
nnsnl划
Consolo^ i - iiit+ switch |
F]
:衷三幷壬
该三角驹 誠人^号:'" 超龍人长方形的长’
H瞞人怅方形的宽’
4
OW: II
.12
;&
1.三角形 2.长方形
目形 2.长方也
謀斟鶴小!
3一退岀
图1求周长、面积截图
编写一个控制台应用程序,可根据输入的月份判断所在季节。
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespacesy1_2 {
class Program
{
static void Main( string [] args)
{
int i;Con sole .WriteLi ne(\\***********欢迎进入季节判断系统(
int i;
Con sole .WriteLi ne(
\\***********
欢迎进入季节判断系统(气象划分法)***************"
);
while ( true )
{
Con sole .WriteLi ne(
"菜单:“);
Con sole .WriteLi ne(
" 1.1 月
2.2
月
3.3
月
I!
);
Con sole .WriteLi ne(
" 4.4 月
5.5
月
6.6
月
I!
);
Con sole .WriteLi ne(
" 7.7 月
8.8
月
9.9
月
I!
);
Con sole .WriteLi ne(
" 10.10 月
11
11月
12.12 月
I!
);
Con sole .WriteLi ne(
" 13. 退岀
I!
);
Con sole .WriteLi ne(
"请输入月份序号:")
i = int .Parse( Console.ReadLine());
switch (i)
{
case 3:
case 4:
case 5:
Con sole .WriteLi ne(
"此月份在春季。。。
");break;
case 6:
case 7:
case 8:
Con sole .WriteLi ne(
"此月份在夏季。。。
");break;
case 9:
case 10:
case 11:
Co nsole.WriteLi ne(
"此月份在秋季。。。
");break;
case 12:
case 1:
case 2:
Con sole .WriteLi ne(
"此月份在冬季。。。
");break;
case 13:
Co nsole.WriteLi ne(
"退岀成功,再见!!
! "); break
default
:Console.WriteLine(
"输入错误!!!");
break;
} //switch 结束
if (i == 13) break; // 退岀系统
} //while 结束
}
}
}
//■} IS 2CL71D1Ok vs Lag Syjst *nt;usLXis effL. Coll ect i un suaiJig Sy-oi-onti Linq;u i ing Syft em. 7 貝Kt:/ .iy1 2.=lii cy r d rnttO 2C153235 syl -2 r iicrosoft \ isjal Cttdi-c
//■} IS 2CL71D1O
k vs Lag Syjst *nt;
usLXis effL. Coll ect i un s
uaiJig Sy-oi-onti Linq;
u i ing Syft em. 7 貝Kt:
/ .iy1 2.=lii cy r d rn
ttO 2C153235 syl -2 r iicrosoft \ isjal Cttdi-c 文為就EJ阳■医M 販岂円
7
B
9
IQ
JI
TI£
2Dl53235.syl.
二工匚gran
int i.
cn^olo ? Irtti urhlle (trutj
CmsoI*.
月或□】a^(M:弟#g 工只⑴ 体盂绪口:匚i
IJ ■ i~l ' i^L i# n*lhiiin J vfl-ri
3] C:\iwirdows\sy^r?m 52\cmd #*#■
hlA
生4月
10. 10^
13,退出
2. 2R £5月 s. EH
11.11 月
3.3月
'j. G月
9. Q月
1人1?月
;L 7J
.fi
.7
:B
Codec lc^i
CansnlA.,
Corm Is
厂 rwnurn 1 o
1.[月
4.明
7” 7月 10.
13.退出
z.二
&頤 圧8月 u n月
3.3月
6- B月
9. §月
12.123
月
I月
m m月 is. BBdj
2.纭
5> 5匸 毬.2匚
11. 11
冃冃frr
3 6 9 ■
3_dJ9.12
图2判断月份截图
编写程序,用 while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两
个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至 少
有多少个。
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespacesy1_3
{ - --
class Program
{
static void Main( string [] args)
{
int sum=2; //鸡蛋个数总量
bool flag = false ;
while (sum < int .MaxValue&&flag== false ) { //循环条件:鸡蛋总量没有超岀int所表示
最大值,且没找到一个符合条件的
{
if (sum % 2 == 1 && sum % 3 == 1 && sum % 4 == 1)
//满足题目条件,已找到
Console.Write("这篮鸡蛋至少有{0}" , sum); Con sole .WriteL in e("个。“);
flag =
}
true ;
else
//没找到,增加鸡蛋数量
sum++;
} //while循环结束
}
}
}
Programxs X5y1J.Prcgram1214
Programxs X
5y1J.Prcgram
1
2
1
4
5
6
T"编写理席,用
|个数,多金一个?
"于博
musing
using
using
usingSyEten: System. Collec System? Linq; System? Text:
rhile馆环语句实理T列功能:有一篮鸣蛋,孑
二f 二不封】 霜全一金,甬P1不网个黏,也磊#
国3 Cj\winda\iyctem d.色炖
85/1 -3 - Mkfosoft Visual Studio
立样旧対旧观團(V)重构?顼目冏生战⑹渭应D}団认(M】强g J
[同▼ d ” H ◎搭2达
■話
―耳卜 Debug
? |)cft&
二二电釘检庭|率學匚殳| 口
」"■Xj V
图3求出鸡蛋数量截图
编写程序,计算数组中奇数之和和偶数之和。
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; // 头文件,包含 Arraylist 类型(c# 中的动态数组) namespacesy1_4
{
class Program
{
static void Main( string [] args)
{
Console .WriteLine( "******* 欢迎进入计算一组数中奇 (偶) 数之和系统 ******* :"); while ( true )
{
Console .WriteLine( "菜单: ");
Console .WriteLine( "1. 固定数量 (10 个) 2. 不固定数量 ");
Console.WriteLine( "3. 退出");
Console.WriteLine( "请选择 :" );
int i; int Jsum = 0, Osum = 0;
// 定义奇、偶总和
i=
int .Parse( Console .ReadLine());
r
switch (i)
{
case 1:
// 普通数组,固定数量,仅 10个
int [] numarr = new int [10];
// 定义数组
for ( int j = 0; j < 10; j++)
//for 循环输入 10个数
{
Console .WriteLine( "请输入第 {0} 个数: ", j + 1); numarr[j] = int .Parse( Console .ReadLine());
}
for ( int s = 0; s < 10; s++) // 计算数组中奇数之和和偶数之和
{
if (numarr[s]%2==0) Osum += numarr[s]; // 判断数组中的值是偶数并累加 else Jsum += numarr[s]; // 奇数累加
}
Console .WriteLine( "奇数之和为 " + Jsum + "\n 偶数之和为 " + Osum); break ; case 2: // 动态数组,不固定个数 ArrayList numbers = new ArrayList (); int sum;
Console .WriteLine( " 请输入要输入的数的总个数: ");
sum = int .Parse( Console .ReadLine());
for ( int k = 0; k < sum; k++)
{
Console .WriteLine( "请输入第 {0} 个数: ", k+ 1); numbers.Add( int .Parse( Console.ReadLine()));
}
for ( int s = 0; s < sum; s++)
{
if (( int )numbers[s] % 2 == 0) Osum +=( int )numbers[s]; // 判断数组中的 值是偶数并累加(运算符%无法应用于object和int类型,需要强制转换)
else Jsum += ( int )numbers[s]; // 奇数累加
}
Console.WriteLine( "奇数之和为 " + Jsum + "\n 偶数之和为 " + Osum); break; case 3: Console.WriteLine( "欢迎下次使用!!! "); break ;
default : Console.WriteLine( "输入错误!!! "); break ;
} //switch 结束
if (i == 3) break ; // 跳出 while 循环
} //while 结束
}
}
}
* ;□迅
吟?m ?剧"尽
k D^bdg 〒|
1186
文恃旧 帝&冋 视閨m 里构;民 项目巳 生总(即 调试2)au(M) sjukia} 工具e 体黒暗构心)丙
^2015525 5&y 1 . Prog rom
Program.匚 £ x
6
7
b:
y io n
12
"肺2逞用,计算験過中氏姒之和和隅数之和"*/ "于?宙 2(J 1; 11.10
F u^inc
asin'g
lie ing:
System;
Crl 1 Systtm,Xinq System.T&Kt Sy st em- C 匚1J
仝甜?
IL najiBspace _2Cllt3d
el-as 3 Fi I i fljw
姉出
中奇〔偶)放之■和奪统**杆壮屮:
14
1&
16
17
1B
19
20
21
22
23
24
25
26
O1?
五亍审二串㈣=1;牛战
-已舸性应 InF 'n
"匚I: ?t兰上dtjy晞塞薄弟儈幾茨蕊苦?■娄滋霍董
Jj— rf?也二4*0—I 47.ill< ■? Xl fi ? C
图4求数组中奇偶之和(固定大小)截图
oo环
Programmes X
Visual Studio
C:\wi n d ows\syste m 3 2\cm d .exe
證S s/L4Fpgy ①
门嵋写程序,计算執组中?
/;于博 2C17101J F
tu*mg
u£ing
using
using
using
System;
Syst ent. CsllsctioE
System, Linq,
System. T*xt,
System. Collection
9
9
10
11
12
14
I- najnespace5yl H , _ _
l- class ProgcajL
吕tatic void llai
數N和为30
1「直宗数量(1介)£不固定数董 退出
岸输人更输入的数的总个数: WA第1个蠟
p
请端入第戈个数:
謀入第3个数;
奇教之罪为9
彎徐乙加为0
1.底危数盲(1。个)N不固定数量 b H-J
>_iri i I ]
请进择:
3
ir : I
图5求数组中奇偶数之和(不固定数组大小)截图
5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该
列上最小。有可能数组没有鞍点)。要求:
二维数组的大小、数组元素的值在运行时输入;
程序有友好的提示信息。
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespacesy1_5
{
class Program
{
static void Main( string [] args)
Console .WriteLine( "请选择: 1.输入二维数组, 0.退出" ); int flag = int .Parse( Console .ReadLine());
while (flag == 1)
Console .WriteLine( " 请输入二维二维数组的行数 int row = int .Parse( Console .ReadLine());Console .WriteLine( " 请输入二维二维数组的列数 int column
Console .WriteLine( " 请输入二维二维数组的行数 int row = int .Parse( Console .ReadLine());
Console .WriteLine( " 请输入二维二维数组的列数 int column = int .Parse( Console .ReadLine()); float [,] a = new float [row, column];
Console .WriteLine( " 请输入二维二维数组元素: ( int i = 0; i < row; i++)
:" );
:" );
for
//
");
//
创建该二维数组
每行循环
for ( int j = 0; j < column; j++)
//
每列循环
a[i, j] =
a[i, j] =
float .Parse( Console.ReadLine());
int
forcount= 0;( int i = 0; i <
int
for
count= 0;
( int i = 0; i < row; i++)
//
// 计数器
行循环
int
for
maxj = 0;
( int j = 0; j < column; j++)
//
//
初始化该行最大的值所在列
查找该行最大值的所在列
if (a[i, j] > a[i, maxj])
maxj = j;//把每行中最大的列号赋给 maxj
maxj = j;
//
把每行中最大的列号赋给 maxj
//
int
找到该行最大数
minx = 0;
// 初始化该行最大的值所在列中最小的
值所在行
for( int j
for
( int j = 0; j < row; j++)
// 查找该行最大值的所在列中该列的最
小值
if (a[j, maxj] < a[minx, maxj])
minx = j;//
minx = j;
// if (a[i, maxj] == a[minx, maxj])
找到该行最大数所在列的最小值
//
判断该行最大数所在列的最小值的行号是
否为该行
count++; }}Console .Write( "马鞍点 [{0} ,{1}] :
count++; }
}
// 行循环结束
if (count== 0) Console.WriteLine( " 没有马鞍点数 "); else
Co nsole.WriteL in e("马鞍点总数为:"+ cou nt);
}
Con sole .WriteLi ne("请选择:1.输入二维数组,0.退岀"); flag = int .Parse( Console.ReadLine());
} //while循环结束
}
}
}
图6找数组马鞍点截图
四、实验总结
无法将double隐式转换为float。在运用Math的sqrt求三角形面 积时出现此问题。原因是返回值为 double类型,而我用的float类型, 修改为double类型后解决了。
季节与月份的关系不唯一。百度了一下,选择了气象划分法。
第四题没有说数组大小可以在运行时输入,学习了 Arraylist类型,
解决了一维数组的动态输入大小问题。
C#中对Enter的处理不如C++好,运行时不小心按到会导致异常。
多写用户输入的提示信息,使程序更友好。