.NET程序设计实验一
实验一 语言基础
一、实验目的
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()
{
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("************************** 实验一结束 **************************");
}
}
}

2. 编写一个控制台应用程序,可根据输入的月份判断所在季节。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace experiment1
{
class sy2
{
public static void main()
{
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()
{
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()
{
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. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该
列上最小。有可能数组没有鞍点)。要求:
u 二维数组的大小、数组元素的值在运行时输入;
u 程序有友好的提示信息。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace experiment1
{
class sy5
{
public static void main()
{
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("************************** 实验五结束 **************************");
}
}
}

四、实验总结
注:本部分写本次实验过程中出现的问题、如何解决、注意事项、以及自己的经 验体会。
这是第一次实验,刚刚开始使用C# 写的时候连怎么输出都不会,甚至连创建什么样子的文件都摸索了半天,然后再网上看了看相关的语法,很快的就上手了,学过其他语言就感觉到C#非常容易上手,另外和C语言相比C#更加的易操作,尤其是让我感觉很舒服的就是数组的使用。二维数组用“,”来区分行列,看起来更加的清晰不容易混乱。
中间也遇到了一些问题,比如在接受键盘输入的数据的时候只能接到String类型或者是Char类型,在网上查看了相关资料之后学会了用Parse来转换,和Java里用integer内部的Parse方法类似。
.NET程序设计实验一的更多相关文章
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告
20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- 20162311 实验二 Java面向对象程序设计 实验报告
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 实验四 Android程序设计 实验报告
实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...
- 实验二Java面向对象程序设计实验报告(2)
实验二 Java面向对象程序设计 实验概述: 课程:程序设计与数据结构 班级:1623班 姓名: 邢天岳 学号:2309 指导老师:娄老师 王老师 实验日期:2017.4.16 实验名称: Java面 ...
- 实验二 Java面向对象程序设计实验报告
实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...
随机推荐
- JZ-054-字符流中第一个不重复的字符
字符流中第一个不重复的字符 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g&q ...
- git-切换远程仓库
1. 查看远程仓库地址 git remote -v 2. 切换远程仓库地址 (1)直接切换 git remote set-url origin URL //URL为新地址 (2)先删除后添加 git ...
- Python中的os.environ系列的用法
>>> import os >>> os.environ.keys() ['LC_NUMERIC', 'GOPATH', 'GOROOT', 'GOBIN', 'L ...
- 实践1使用XGB实现酒店信息消歧
XGB算法是决策树衍生出来的一种算法 场景:酒店的业务人员希望我们能够提供一个算法服务去为酒店信息做一个自动化的匹配,以通过算法的手段,找到那些确定相同的酒店和确定不同的酒店 以下代码为部分 理解业务 ...
- 腾讯2021LIGHT公益创新挑战赛赛题分析
前些日子老师让我们报名了LIGHT挑战赛,之后又简单的进行了分析,今天我总结复盘一下,一是为了捋一下自己选题的思路,二是以后遇见类似的项目,更容易找到方向或者触类旁通. 赛题介绍 赛题一:安全教育/保 ...
- 写博客的技巧整理——基于Markdown
我们需要掌握各种技巧,这样才能在写博客时游刃有余,以下内容觉得不错就点个赞吧 文章目录 1.目录与目录跳转 目录一(示例用勿点) 目录二(示例用勿点) 目录三(示例用勿点) 2.文字与图片 3.引用 ...
- Java案例——字符串拼接
/*案例:将一个int数组中的元素拼接为一个字符串 分析:1.静态定义一个int数组 2.定义方法将数组元素遍历并拼接,返回类型为String 3.定义变量接受方法所拼接出来的字符串 4.输出* */ ...
- [XNUCA 进阶篇](web)writeup
XNUCA 靶场练习题writeup default 阳关总在风雨后 题目过滤很多,*,#,/ ,and,or,|,union,空格,都不能用 盲注,最后的姿势是:1'%(1)%'1 中间的括号的位置 ...
- Java多线程之线程同步【synchronized、Lock、volatitle】
线程同步 线程同步:当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多. ...
- windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看
windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看 1. 新建excel表格 A B C D E 姓 名 全名 登录名 密码 李 四 李四 李四 test123!@ ...