Net实验1
实验一 语言基础
一、实验目的
1. 熟悉Visual Stido.NET 实验环境;
2. 掌握控制台程序的编写方法;
3. 掌握C#程序设计语言的语法基础;
4. 掌握控制语句和数组的使用。
二、实验要求
根据题目要求,编写 C#程序,并将程序代码和运行结果写入实验报告。
三、实验内容
1. 编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出。
源码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace experiment1
{
class sy1
{
public static void Main(string[] args)
{
Console.WriteLine("************************** 实验一开始 **************************");
//1. 编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出。
//计算三角形
bool flag1 = false;//控制三角形循环
bool flag2 = false;//控制长方形循环
bool flag = true;//控制选择循环
while (flag)
{
Console.WriteLine("输入1计算三角形,输入2计算长方形,输入0跳过,输入其他视为错误");
int n = int.Parse(Console.ReadLine());
if (n == 1)//打开三角形循环,关闭选择循环
{
flag1 = true;
flag = false;
}
else if (n == 2)//打开长方形循环,关闭选择循环
{
flag2 = true;
flag = false;
}
else if (n == 0)//关闭选择循环
{
flag = false;
}
else
{
Console.WriteLine("输入错误请重新输入");
}
}
while (flag1)
{
Console.WriteLine("请输入三角形的第一条边的边长");
double rec_a = double.Parse(Console.ReadLine());
Console.WriteLine("请输入三角形的第二条边的边长");
double rec_b = double.Parse(Console.ReadLine());
Console.WriteLine("请输入三角形的第三条边的边长");
double rec_c = double.Parse(Console.ReadLine());
if (rec_a <= 0 || rec_b <= 0 || rec_c <= 0 || (rec_a + rec_b) <= rec_c || (rec_a + rec_c) <= rec_b || (rec_c + rec_b) <= rec_a)
{
Console.WriteLine("输入的边长不符合要求,不能组成三角形");
}
else
{
Console.WriteLine("三角形的周长为" + (rec_a + rec_b + rec_c));
double p = rec_a + rec_b + rec_c;
double h = p / 2;
double area = Math.Sqrt(h * (h - rec_a) * (h - rec_b) * (h - rec_c));
Console.WriteLine("三角形的面积为" + area);
flag1 = false;
}
while (flag2)
{
Console.WriteLine("请输入长方形的第一条边的边长");
double d = double.Parse(Console.ReadLine());
Console.WriteLine("请输入长方形的第二条边的边长");
double e = double.Parse(Console.ReadLine());
if (d > 0 && e > 0)
{
Console.WriteLine("长方形的周长为" + (2 * d + 2 * e));
Console.WriteLine("长方形的面积为" + (e * d));
flag2 = false;
}
else
{
Console.WriteLine("输入的边长不符合要求,不能组成长方形");
}
}
Console.WriteLine("************************** 实验一结束 **************************");
}
}
}
运行截图如下:
- 编写一个控制台应用程序,可根据输入的月份判断所在季节。
- 源码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace experiment1
- {
- class sy2
- {
- public static void Main(string[] args)
- {
- Console.WriteLine("************************** 实验二开始 **************************");
- //2. 编写一个控制台应用程序,可根据输入的月份判断所在季节。
- bool flag = true;
- while (flag)
- {
- Console.WriteLine("输入1~12,判断月份对应的季节,输入0返回,输入其他认为错误");
- int m = int.Parse(Console.ReadLine());
- if (m >= 1 && m <= 12)
- {
- switch (m)
- {
- case 1:
- case 2:
- case 12:
- Console.WriteLine("大约在冬季...");
- break;
- case 3:
- case 4:
- case 5:
- Console.WriteLine("大约在春季...");
- break;
- case 6:
- case 7:
- case 8:
- Console.WriteLine("大约在夏季...");
- break;
- case 9:
- case 10:
- case 11:
- Console.WriteLine("大约在秋季...");
- break;
- }
- flag = false;
- }
- else if (m == 0)
- {
- flag = false;
- }
- else
- {
- Console.WriteLine("输入错误!");
- }
- }
- Console.WriteLine("************************** 实验二结束 **************************");
- }
- }
- }
- 运行截图如下:
3. 编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两
个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至
少有多少个。
源码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace experiment1
{
class sy3
{
public static void Main(string[] args)
{
Console.WriteLine("************************** 实验三开始 **************************");
//3. 编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两
//个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至
//少有多少个。
Console.WriteLine("要开始数鸡蛋了!");
int i = 2;
while (true)
{
if (i % 2 == 1)
{
if (i % 3 == 1)
{
if (i % 4 == 1)
{
Console.WriteLine("这篮子鸡蛋至少有" + i + "个");
break;
}
}
}
i++;
}
Console.WriteLine("************************** 实验三结束 **************************");
}
}
}
运行截图如下:
- 4.编写程序,计算数组中奇数之和和偶数之和。
- 源码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace experiment1
- {
- class sy4
- {
- public static void Main(string[] args)
- {
- Console.WriteLine("************************** 实验四开始 **************************");
- //4. 编写程序,计算数组中奇数之和和偶数之和。
- //定义数组
- int[] arg;
- int jsh = 0;//奇数和
- int osh = 0;//偶数和
- int num = 0;
- Console.WriteLine("请输入一个正整数,代表接下来数组的长度");
- int n = int.Parse(Console.ReadLine());
- //设置数组长度
- arg = new int[n];
- for (int i = 0; i < n; i++)
- {
- Console.WriteLine("请输入第" + (i + 1) + "个数字");
- num = int.Parse(Console.ReadLine());
- arg[i] = num;
- if (num % 2 == 0)
- {
- osh += num;
- }
- else
- {
- jsh += num;
- }
- }
- Console.WriteLine("该数组的奇数之和为" + jsh);
- Console.WriteLine("该数组的偶数之和为" + osh);
- Console.WriteLine("************************** 实验四结束 **************************");
- }
- }
- }
- 运行截图如下:
5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该
列上最小。有可能数组没有鞍点)。要求:
- 二维数组的大小、数组元素的值在运行时输入;
- 程序有友好的提示信息。
- 源码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace experiment1
- {
- class sy5
- {
- public static void Main(string[] args)
- {
- Console.WriteLine("************************** 实验五开始 **************************");
- //5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该
- // 列上最小。有可能数组没有鞍点)。
- // 要求:
- // 1.二维数组的大小、数组元素的值在运行时输入;
- // 2.程序有友好的提示信息;
- int[,] arg;//定义二维数组
- int count = 0;//记录鞍点个数
- Console.WriteLine("请按要求一次输入二维数组的行和列,系统将自动找到鞍点,默认每一行出现的第一个相等的值为最大值");
- Console.Write("\n\n");
- Console.WriteLine("请输入二维数组的行的个数");
- int r = int.Parse(Console.ReadLine());
- Console.WriteLine("请输入二维数组的列的个数");
- int c = int.Parse(Console.ReadLine());
- arg = new int[r, c];//设置二维数组的行列
- //录入
- for (int i = 0; i < r; i++)
- {
- for (int j = 0; j < c; j++)
- {
- Console.WriteLine("请输入第" + (i + 1) + "行,第" + (j + 1) + "列的数");
- arg[i, j] = int.Parse(Console.ReadLine());
- }
- }
- int index = 0;//记录行最大
- //寻找鞍点
- //遍历行
- for (int i = 0; i < r; i++)
- {
- //遍历列
- for (int j = 0; j < c; j++)
- {
- if (arg[i, index] < arg[i, j])
- {
- index = j;
- }
- }
- //判断是否是列最小
- bool flag = true;
- for (int j = 0; j < r; j++)
- {
- if (arg[i, index] >= arg[j, index] && j != i)
- {
- flag = false;
- }
- }
- //输出鞍点
- if (flag)
- {
- count++;
- Console.WriteLine("存在鞍点,在第" + (i + 1) + "行,第" + (index + 1) + "列,值为" + arg[i, index]);
- }
- index = 0;
- }
- //没有鞍点
- if (count == 0)
- {
- Console.WriteLine("该数组没有鞍点");
- }
- Console.WriteLine("************************** 实验五结束 **************************");
- }
- }
- }
- 运行截图如下: