实验一  语言基础

一、实验目的

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程序设计实验一的更多相关文章

  1. 160809208沈昊辰c语言程序设计实验选择结构设计

    <C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...

  2. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  3. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  4. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  5. 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告

    20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...

  6. Java程序设计 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  7. 20162311 实验二 Java面向对象程序设计 实验报告

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  8. 实验四 Android程序设计 实验报告

    实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...

  9. 实验二Java面向对象程序设计实验报告(2)

    实验二 Java面向对象程序设计 实验概述: 课程:程序设计与数据结构 班级:1623班 姓名: 邢天岳 学号:2309 指导老师:娄老师 王老师 实验日期:2017.4.16 实验名称: Java面 ...

  10. 实验二 Java面向对象程序设计实验报告

    实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...

随机推荐

  1. LeetCode-016-最接近的三数之和

    最接近的三数之和 题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只 ...

  2. 压力测试工具——jmeter

    Jmeter:这是一个绿色的工具,但是它需要依赖与jdk 8的环境,所以在安装的时候需要安装jdk8. 下载地址: 链接:https://pan.baidu.com/s/1pGj1hAqJBBoSHf ...

  3. tensorflow源码解析之framework-allocator

    目录 什么是allocator 内存分配器的管理 内存分配追踪 其它结构 关系图 涉及的文件 迭代记录 1. 什么是allocator Allocator是所有内存分配器的基类,它定义了内存分配器需要 ...

  4. 04 变量 变量作用域 常量final 变量的命名规范

    变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...

  5. 【UML】统一建模语言及工具

    共四个 Chapter,持续输出中. 参考资料: UML软件建模技术-基于IBM RSA工具(清华大学出版社) UML2.0基础与RSA建模实例教程(人民邮电) 面向对象葵花宝典(李运华)(电子工业出 ...

  6. 七天接手react项目 系列 —— react 脚手架创建项目

    其他章节请看: 七天接手react项目 系列 react 脚手架创建项目 前面我们一直通过 script 的方式学习 react 基础知识,而真实项目通常是基于脚手架进行开发. 本篇首先通过 reac ...

  7. Java基础——抽象类

    一.概述: 在Java中,一个没有方法体的方法应定义为抽象方法在public 修饰符后加 abstract修饰符,而类中如果有抽象方法,该类必须定义为抽象类在public 修饰符后加 abstract ...

  8. 装饰器property的简单运用

    property函数:在类中使用,将类中的方法伪装成一个属性 使用方法:在函数,方法,类的上面一行直接@装饰器的名字 装饰器的分类: 装饰器函数 装饰器方法:property 装饰类 class St ...

  9. VS code 设置中文语言环境(实现语言切换自由)

    1.打开vs code,然后按快捷键ctrl+shift+p,输入configure language>回车 2.选择Install Additional Languages... 3.在左侧选 ...

  10. go语言学习入门篇 3-- 程序执行流程

    先看下 Go 语言的程序结构: package main // 当前包名 import "fmt" // 导入程序中使用到的包 // 初始化函数 func init() { // ...