期末练习

news/2025/1/6 4:40:48/文章来源:https://www.cnblogs.com/yaolicheng/p/18651234

知识储备

//字符串转化为Char数组
1. str.ToCharArray();//字符串转化为double数组
2. Console.ReadLine().Split(' ').Select(double.Parse).ToArray();//正则表达式替换(一至多个空格,替换为一个空格)
3. Regex.Replace(str, @"\s+", " ");//判空抛异常
4. throw new ArgumentNullException(nameof(name))//字符串类型转化为日期类型,并判断格式是否正确
//将old_str转化为日期格式,转化失败返回Flase,成功则返回new_Time。
5. DateTime.TryParse(old_str, out new_Time);//提取字符串中的元素(从第四个元素开始,后面两个)
6.str.Substring(4,2);

1.逆序输出

string str = textBox1.Text;
char[] arr = str.ToCharArray();
string result = "";
for(int i = arr.Length-1; i >= 0; i--)
{result += arr[i];
}
textBox2.Text = result;-------------------------------------------string str = textBox1.Text;
char[] arr = str.ToCharArray();
Array.Reverse(arr);
string newStr = new string(arr);
textBox2.Text = newStr;

2.编程判断a、b、c的值是否构成三角形,如构成三角形,则计算并输出三角形的面积,否则输出“不能构成三角形”

 //s=0.5*(a+b+c)   area= s*(s-a)*(s-b)*(s-c)再开根double a, b, c;a = double.Parse(textBox1.Text);b = double.Parse(textBox2.Text);c = double.Parse(textBox3.Text);        if (a + b > c && a + c > b && b + c > a){double s = (a + b + c) / 2;double area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));MessageBox.Show("三角形的面积为:" + area.ToString());}else{   //消息窗口(对话框)MessageBox.Show("不能构成三角形");}   

3.输入 10个数,计算平均值,统计低于平均值数据个数并把低于平均值的数据输出。

public void Print1()
{Console.WriteLine("请输入10个数字,以空格分隔:");//控制台输入10个数字,select().ToArray()方法将字符串转换为double数组double[] input = Console.ReadLine().Split(' ').Select(double.Parse).ToArray();double avg,num=0;int sum = 0;for (int i=0;i<input.Length;i++){num += input[i];}avg = num / input.Length;Console.WriteLine("平均值为:" + avg);foreach(double i in input){if (i < avg){sum++;Console.Write(i + " ");}}Console.WriteLine("\n小于平均值的个数为:" + sum);
}

4.输入一些整数,分别统计正数、负数、0的个数,并输出他们的和。

public void Print2()
{Console.WriteLine("请输入任意整数,以空格分隔:");string str = Console.ReadLine();int[] input = str.Split(' ').Select(int.Parse).ToArray();int zhengshu=0,fushu=0,zero=0;int sum = 0;foreach(int i in input){if (i>0){zhengshu++;}else if (i < 0){fushu++;}else{zero++;}sum += i;}Console.WriteLine("正数个数:{0}\n负数的个数:{1}\n零的个数:{2},和为:{3}",zhengshu,fushu,zero,sum);}

5.输入一班 20名同学的数学成绩,求出该班数学成绩的最高分、最低分、平均分以及低于平均分的人数。

public void Print3()
{Console.WriteLine("请输入20名同学的成绩,以空格分隔:");double[] input = Console.ReadLine().Split(' ').Select(double.Parse).ToArray();double avg, num = 0;int sum = 0;for (int i = 0; i < input.Length; i++){num += input[i];}double max =input[0],min = input[0];avg = num / input.Length;Console.WriteLine("平均值为:" + avg);foreach (double i in input){if (i < avg){sum++;}if (i<min){min = i; }if (i>max){max = i;}}Console.WriteLine($"该班级的最低分:{min},最高分:{max},平均分:{avg}和低于平均分的人数为:{sum}");}

6.输入一些正整数,统计奇数和偶数的个数并输出,并输出所有奇数和偶数

public void Print4()
{Console.WriteLine("请输入任意正整数,以空格分隔:");string str = Console.ReadLine();int[] input = str.Split(' ').Select(int.Parse).ToArray();int oushu = 0, jishu = 0;for (int i = 0; i < input.Length; i++){if (input[i] % 2 == 0){oushu++;Console.Write(input[i] + " ");}else{jishu++;Console.Write(input[i] + " ");}}Console.WriteLine("偶数个数:{0}\n奇数个数:{1}", oushu, jishu);
}

7.写方法,统计一段英文短文中单词的平均长度和最长的单词。要求:单词之间由若干个空格隔开。

public void Print1()
{int max=0, avg,sum=0;string Max_World = "";string str = " This   is   a  sample  string  with   multiple   spaces. ";/*这里利用了正则表达式的替换功能:Regex.Replace方法用于在给定的输入字符串中进行替换操作。正则表达式\s + 表示匹配一个或多个空白字符(包括空格、制表符、换行符等),将其替换为单个空格,从而实现去掉多余空格只保留一个的目的。*/string newstr = Regex.Replace(str, @"\s+", " ");string[] strList = newstr.Split(' ').ToArray();for (int i = 0; i < strList.Length; i++){if (strList[i].Length > max){max = strList[i].Length;Max_World = strList[i];}sum += strList[i].Length;}avg = sum/strList.Length;Console.WriteLine($"长度最长的单词是: {Max_World}, 其长度为:{max},单词平均长度为{avg}" );}

8.写方法,分别统计字符串中英文字母和数字字符的个数。

public void Print2()
{string str = "as35dfa1s54w3545w345455e/,.[//";int num_shuzi = 0, num_yingwen = 0;for (int i=0;i<str.Length;i++){if (str[i]>='0'&&str[i]<='9'){num_shuzi++;}if (str[i]>='a'&&str[i]<='z' || str[i]>='A'&&str[i]<='Z'){num_yingwen++;}}Console.WriteLine($"字符串中的英文字母的个数为{num_yingwen},数字字符的个数为:{num_shuzi}");}

学生类(简易版)

创建一个学生类(Student),要求:
(1)有及其子类研究生类(Graduate),学生类包含私有成员字段 name,credit
并包含其属性 Name,Credit;
(2)有自己的无参、有参构造方法;
(3)有输出信息的方法。
创建其子类研究生类,要求:
(1)有私有变量 postCredit;并包含其属性 PostCredit;
(2)有自己的无参、有参构造方法;
(3)有输出信息的方法。
创建一个研究生对象并设置其 postcredit,另建立学生数组(研究生作为其一
个元素),要求打印输出该学生数组的姓名和学分信息。

    //主类internal class Program{static void Main(string[] args){// 创建一个研究生对象并设置其postCreditGraduate gra = new Graduate("张三",120,130);// 创建学生数组,包含研究生对象作为其中一个元素Student[] stu = new Student[1];stu[0] = gra;// 遍历学生数组,并调用其方法foreach (Student i in stu){Console.WriteLine(i.ShowInfo());}Console.ReadKey();}//学生类(基类)internal class Student{//姓名和学分private string name;private double credit;public string Name{get { return name; }set{if (value != null){this.name = value;}}}public double Credit{get { return credit; }set { this.credit = value; }}public Student(){this.name = "NULL";this.credit = 0;}public Student(string name, double credit){this.name = name ?? throw new ArgumentNullException(nameof(name));this.credit = credit;}public string ShowInfo(){return $"学生的姓名为:{name}学号为:{credit}";}}//研究生类(子类)internal class Graduate : Student{//研究生学分private int postCredit;public Graduate(){  }//base()方法:重构父类构造函数public Graduate(string name, double credit, int postCredit) : base(name,credit){this.postCredit = postCredit;}public int PostCredit{get => postCredit; set =>postCredit = value; }public void PrintInfo(){return "该学生信息:"+ShowInfo()+",研究生学分:"+postCredit;}}

图书类(优化版)

创建一个图书类,要求:
(1)封装图书的名称、ISBN、出版社、出版日期等信息;
(2)包含有参和无参的构造函数;
(3)名称不能为空而且长度小于 50;出版日期不能为空,而且必须是
日期;
(4)具有一个能输出书籍信息的方法;
创建一个图书数组,并为数组每个元素赋值,要求输出数组中书籍的信息。

//主类
internal class Program
{static void Main(string[] args){//录入书籍的数量Books[] books = new Books[3];for (int i = 0; i < 3; i++){//显示录入的提示信息(实时变化)Console.WriteLine("请输入" + (i + 1) + "本书籍的信息:");Console.WriteLine("请输入书名:");string name = Console.ReadLine();Console.WriteLine("请输入书籍的ISBN码:");string isbn = Console.ReadLine();Console.WriteLine("请输入出版社:");string chubanshe = Console.ReadLine();Console.WriteLine("请输入出版日期(YYYY-MM-DD):");string dateStr = Console.ReadLine();DateTime date;//验证日期格式是否正确;若格式不正确,则执行i--,回到上一轮循环,重新输入if(DateTime.TryParse(dateStr,out DateTime date1)){date = date1;}else{Console.WriteLine("日期格式不正确,请重新输入!");i--;continue;}books[i] = new Books(name, isbn, chubanshe,date);}Console.WriteLine("以下是书籍信息:");foreach (Books book in books){book.ShowInfo();}Console.ReadKey();}
}//图书馆类internal class Books{private string name;private string isbn;private string chubanshe;private DateTime publishDate;//| 构造函数 |初始化默认值public Books(){this.name = "没有信息";this.isbn = "没有信息";this.chubanshe = "没有信息";this.publishDate = DateTime.Now;}public Books(string name, string isbn, string chubanshe, DateTime publishDate){if(name == null){Console.WriteLine("书名不能为空!");}else{this.name = name;}this.isbn = isbn;this.chubanshe = chubanshe;//判断出版日期是否为空&& 格式是否正确//使用DateTime.TryParse(old_str, out new_str)方法进行格式转换并判断格式if (publishDate == null && DateTime.TryParse(publishDate.ToString("yyyy-MM-dd"), out publishDate)){Console.WriteLine("出版日期不能为空!");}else{this.publishDate = publishDate;}}public void ShowInfo(){Console.WriteLine($"书名:{name}、ISBN:{isbn}、出版社:{chubanshe}、出版日期:"+publishDate.ToString("yyyy-MM-dd") );}}

在 C#中,Math类提供了很多常用的数学方法,以下是一些主要的:

  1. Math.Abs(double value):返回指定数字的绝对值。例如,Math.Abs(-5)返回 5
  2. Math.Ceiling(double value):返回大于或等于指定数字的最小整数。例如,Math.Ceiling(4.2)返回 5。
  3. Math.Floor(double value):返回小于或等于指定数字的最大整数。例如,Math.Floor(4.8)返回 4。
  4. Math.Round(double value):将值四舍五入到最接近的整数或指定的小数位数。例如,Math.Round(4.5)返回 4 和 5 之间的偶数 4;Math.Round(4.6)返回 5。
  5. Math.Pow(double x, double y):返回指定数字的指定次幂。例如,Math.Pow(2, 3)返回 8。
  6. Math.Sqrt(double value):返回指定数字的平方根。例如,Math.Sqrt(9)返回 3。`
  7. Math.Max(int value1, int value2)等一系列重载方法:返回两个指定数字中的较大值。例如,Math.Max(5, 8)返回 8。 `
  8. Math.Min(int value1, int value2)等一系列重载方法:返回两个指定数字中的较小值。例如,Math.Min(5, 8)返回 5。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/864117.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基本共射极放大电路的分析

静态分析利用直流通路求Q点(静态工作点)\[I_{BQ}=\frac{V_{BB}-V_{BEQ}}{R_{b}} \]一般硅管\(V_{BE}=0.7V\),锗管\(V_{BE}=0.2V\),\(\beta\)已知 \[I_{CQ}=\beta I_{BQ} \]\[V_{CEQ}=(\frac{V_{CC}-I_{CQ}}{R_{c}}-I_{CQ})R_L \]动态分析交流通路分析画小信号等效模型\[r_{…

使用扣子实现营销获客套电机器人-工作流+多维表格+飞书机器人

V+: llike620 就是利用扣子的工作流,实现简单的获取线索机器人,然后对接在抖音音私信上 主要用于某汽车贴膜产品的获客,先获取车型,再获取联系方式增加了状态机制,不能让对方跳过业务流程新线索存入飞书多维表格,并通过飞书机器人进行通知 十年开发经验程序员,离职全心…

Qt配置和功能使用说明

1、执行qmake qmake 是 Qt 提供的一个构建工具,用于简化跨平台 Qt 应用的构建流程。它通过读取 .pro 文件生成适合目标平台的构建文件,例如 Makefile(windows & linux) 或 Visual Studio 工程文件(windows)2、Shadow Build(影子构建) Shadow Build 是 Qt Creator 提…

静态工作点对波形失真的影响

一、截止失真原因:当静态工作点设置过低,即\(I_{BQ}\)过小,\(V_{CEQ}\)过大时,输入信号的负半周可能会使晶体管进入截止区。 现象:输出波形的正半周被削顶,即正半周顶部被“切掉”一部分,这是因为在截止区,晶体管的集电极电流\(i_C\)几乎为零,不能跟随输入信号的变化而…

基本共射极放大电路

以下是关于基本共射极放大电路的详细介绍: 电路结构由晶体管(通常是BJT)、直流电源\(V_{CC}\)、基极偏置电阻\(R_b\)、集电极负载电阻\(R_c\)、输入电容\(C_1\)、输出电容\(C_2\)以及输入信号源\(v_s\)和负载电阻\(R_L\)组成。工作原理直流偏置:通过\(R_b\)和\(V_{CC}\)为晶…

20241322 《计算机基础与程序设计》课程总结

2024-2025-1 20241322 《计算机基础与程序设计》第十五周学习总结 作业信息 |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK15| |这个作业的目标|课程总结,文中的链…

《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例

《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例@目录7.Docker容器数据卷7.1坑7.2 回顾下上一讲的知识点,参数V7.3 是什么7.4 能干嘛7.5 数据卷案例7.5.1 宿主vs容器之间映射添加容器卷7.5.2 读写规则映射添加说明7.5.…

DIY笔记本散热器

前言我用的笔记本是R9000P 2021H,用了快三年才发现笔记本发热量有点高,GPU 3070倒是还好不用担心过热的问题,主要是这个CPU 5800H非常积热。最近也是清完灰、涂硅脂、换完风扇了,双烤测试了下功耗能到200W但是CPU有大概70C往上的样子,考虑到这是冬季测试下的结果,这个成绩…

BJT的共射极伏安特性曲线

BJT(双极型晶体管)共射极的伏安特性曲线包括输入特性曲线和输出特性曲线,以下是详细讲解:输入特性曲线定义:描述基极电流\(i_B\)与基极-发射极电压\(v_{BE}\)之间的关系,通常以集电极-发射极电压\(v_{CE}\)为参变量,即\(i_B = f(v_{BE})|_{v_{CE}=constant}\)。 曲线形状…

检索增强生成和思维链结合: 如何创建检索增强思维链 (RAT)?

论文地址:https://arxiv.org/pdf/2403.05313 Github地址:https://github.com/CraftJarvis/RAT 想象一下,一个人工智能助手可以像莎士比亚一样写作,像专家一样推理。这听起来很了不起,对吧?但是,如果这个助手有时难以确保事实准确性,依赖过时的信息或只是编造事实,该怎…

163MusicLyrics(歌词下载工具) v6.3

一款Windows 云音乐歌词获取,支持网易云、QQ音乐。 软件特点 支持网易云、QQ音乐两家音乐提供商 支持输入歌曲 ID、输入专辑 ID、完整链接的方式进行查询 支持批量查询 && 扫盘查询 支持多种歌词原文和译文的组织方式 支持提取(部分)歌曲试听链接 支持多种保存命名规…