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求數組中奇偶之和(固定大?。┙貓D
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求數組中奇偶數之和(不固定數組大?。┙貓D
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++好,運行時不小心按到會導致異常。
多寫用戶輸入的提示信息,使程序更友好。