描述
给定主函数如下,使用c#实现下图的4个方法:
reverseChar,参数是一个字符串,返回结果是按照字符逆序输出该字符串;
reverseWord,参数也是一个字符串,返回结果是按照单词逆序输出字符串;
shortage,参数是字符串,返回该字符串的每个单词的首字母,并将首字母大写,然后输出;
printScore, 从命令行输入平时成绩和期末成绩,按照平时30%+期末70%的比例,计算最终成绩,并划分优(90 ~ 100、良(75 ~ 90)、中(60 ~ 75) 、差(<60)。
分析
如何安装C#环境这里就不细说了,很简单!!!推荐使用Visual Studio来进行编写代码!
这是VS下载链接,直接点击即可
VS下载链接
如果有Visual Studio Code这个软件的话,可以参考以下步骤。。。
先打开vscode,然后
这是.Net SDK下载链接,直接点击即可
.Net SDK下载链接
点击左侧创建launch.json文件
安装这个exe文件,没有什么步骤,直接一路点击下一步即可
如何按F5运行不了的话,按键盘上的Ctrl+~可以调出控制台,然后输入dotnet run,然后回车即可
题目分析
由题目
要求可知,本题主要考察字符串反转和大小写字母转换方法的使用
C#语言已经为我们封装好了字符串反转的方法Array.Reverse(),和大小写字母转换的方法Char.ToUpper(),拿来直接用即可。
1.printScore()
方法的实现
该方法的实现比较简单,思路如下:
- 输出语句用Console.Write()或Console.WriteLine(),后者可换行
- 输入语句用Console.ReadLine(),但是ReadLine()是用来出入字符串的,故我们在输入数字的时候需要强制转换以下,有以下两种方法
- int psScore = Convert.ToInt32(Console.ReadLine());
- int psScore =int.Parse(Console.ReadLine());
- 定义一个flag,以便在最终成绩之后输出成绩的等级
具体代码如下,应该一看就能看懂
public void printScore()
{
Console.Write("-请输入平时成绩:");
int psScore = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("----------");
Console.Write("-请输入期末成绩:");
int qmScore = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("----------");
double endScore = psScore * 0.3 + qmScore * 0.7;
//定义一个flag
string flag = "优";
if(endScore < 90 && endScore > 75)
{
flag = "良";
} else if(endScore > 60)
{
flag = "中";
} else
{
flag = "差";
}
Console.WriteLine("----------");
Console.WriteLine("-最终成绩为:" + endScore + " " + flag);
Console.WriteLine("----------");
}
}
2.reverseChar()
方法的实现
算法思想:
- 将string类型转换为char类型,数组
- 用Array.Reverse()方法反转字符串
- 将反转后的char转换成string
public void reverseChar(String str)
{
/* 算法思想:
1.将string类型转换为char类型,数组
2.用Array.Reverse()方法反转字符
3.将反转后的char转换成string
*/
char[] strs = str.ToCharArray();
Array.Reverse(strs);
String newStr = new string(strs);
Console.WriteLine("----------");
Console.WriteLine("-反转后的字符串为: " + newStr);
Console.WriteLine("----------");
}
3.reverseWords()
方法的实现
算法思想:
- 用split方法分割字符串
- 然后用Reverse方法反转字符串序列
- 如果直接输出strs实际输出的是strs在内存中的地址,所以要重写输出
- 用for循环拼接字符串
public void reverseWords(String str)
{
/* 算法思想:
1.用split方法分割字符串
2.然后用Reverse方法反转字符串序列
3.如果直接输出strs实际输出的是strs在内存中的地址,所以要重写输出
4.用for循环拼接字符串
*/
String[] strs = str.Split(' ');
Array.Reverse(strs);
String newStr = "";
for(int i = 0;i < strs.Length; i++)
{
newStr += strs[i] + " ";
}
Console.WriteLine("-反转后的单词为: " + newStr);
Console.WriteLine("----------");
}
4.shortage()
方法的实现
算法思想:
- 用split方法分割字符串
- 用ToUpper方法转换大小写并拼接
public void shortage(String str)
{
/* 算法思想:
1.用split方法分割字符串
2.用ToUpper方法转换大小写并拼接
*/
String[] strs = str.Split(' ');
String newStr = "";
for(int i = 0;i < strs.Length;i++)
{
newStr += Char.ToUpper(strs[i][0]) + " ";
}
Console.WriteLine("-转换大写后的字符串为: " + newStr);
Console.WriteLine("----------");
}
完整代码
using System;
namespace MyConsole
{
class EmptyClass
{
//反转字符串
public void reverseChar(String str)
{
/* 算法思想:
1.将string类型转换为char类型,数组
2.用Array.Reverse()方法反转字符
3.将反转后的char转换成string
*/
char[] strs = str.ToCharArray();
Array.Reverse(strs);
String newStr = new string(strs);
Console.WriteLine("----------");
Console.WriteLine("-反转后的字符串为: " + newStr);
Console.WriteLine("----------");
}
public void reverseWords(String str)
{
/* 算法思想:
1.用split方法分割字符串
2.然后用Reverse方法反转字符串序列
3.如果直接输出strs实际输出的是strs在内存中的地址,所以要重写输出
4.用for循环拼接字符串
*/
String[] strs = str.Split(' ');
Array.Reverse(strs);
String newStr = "";
for(int i = 0;i < strs.Length; i++)
{
newStr += strs[i] + " ";
}
Console.WriteLine("-反转后的单词为: " + newStr);
Console.WriteLine("----------");
}
public void shortage(String str)
{
/* 算法思想:
1.用split方法分割字符串
2.用ToUpper方法转换大小写并拼接
*/
String[] strs = str.Split(' ');
String newStr = "";
for(int i = 0;i < strs.Length;i++)
{
newStr += Char.ToUpper(strs[i][0]) + " ";
}
Console.WriteLine("-转换大写后的字符串为: " + newStr);
Console.WriteLine("----------");
}
public void printScore()
{
Console.Write("-请输入平时成绩:");
int psScore = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("----------");
Console.Write("-请输入期末成绩:");
int qmScore = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("----------");
double endScore = psScore * 0.3 + qmScore * 0.7;
//定义一个flag
string flag = "优";
if(endScore < 90 && endScore > 75)
{
flag = "良";
} else if(endScore > 60)
{
flag = "中";
} else
{
flag = "差";
}
Console.WriteLine("----------");
Console.WriteLine("-最终成绩为:" + endScore + " " + flag);
Console.WriteLine("----------");
}
}
class TestClass
{
static void Main(string[] args)
{
//EmptyClass前面的MyConsole加不加都可
EmptyClass ec = new EmptyClass();
//如果要写成Console.WriteLine(ec.reverseChar("Thank you"));这中形式,直接
//在对应的方法中添加return语句即可,切记将方法的修饰符由void改为string,并将方
//并将方法中的输出语句删除即可。
ec.reverseChar("Thank you");
ec.reverseWords("Welcome to Beijing");
ec.shortage("as soon as possible");
ec.printScore();
}
}
}
效果图
不要直接提交这张截图哦!!!