<C#任务导引教程>练习五
阅读原文时间:2023年07月08日阅读:3

//27,创建一个控制台应用程序,声明两个DateTime类型的变量dt,获取系统的当前日期时间,然后使用Format格式化进行规范
using System;
class Program
{
    static void Main()
    {
        DateTime dt = DateTime.Now;
        string strDate = String.Format("{0:D}", dt);
        Console.WriteLine("今天的日期是:" + strDate);
    }
}
//28,创建一个控制台应用程序,声明一个string类型变量str1,并初始化为“我钟爱C#语言程序设计”,然后用copy方法复制字符串str1,并赋值给字符串str2,最后输出字符串str2
using System;
class Program
{
    static void Main()
    {
        string str1 = "我钟爱C#语言程序设计";
        string str2;
        str2 = string.Copy(str1);
        Console.WriteLine(str2);
    }
}
//29,CopTo方法
using System;
class Program
{
    static void Main()
    {
        string str = "我钟爱C#语言程序设计";
        Console.WriteLine("原字符串:\n" + str);
        char[] myChar = new char[5];
        str.CopyTo(0, myChar, 0, 5);//CopyTo(int需要复制的字符的起始位置,cha[]目标字符数名,指定目标数组中的开始存放位置,int指定要复制的字符个数)
        Console.WriteLine("复制的字符串:");
        Console.WriteLine(myChar);
    }
}

我可以给你们大概算一下有多少个模块 就单纯说些代码的 硬件部门不算
构成设定CLI ,装置维护CLI,环境设定CLI,装置信息查看CLI.快照备份CLI,数据分割CLI,资源分割CLI,性能优化CLI。。。

server, mainserver 设定server,状态监视server,性能监视server,snapshotserver,备份还原server……

还有各种外部tools,还不算OS部门和FW部门

//30,字符串的加密与解密示例
using System;
class Program
{
    static void Main()
    {
        string list = "kczutmhsuasasahsuihsuw";
        char[] str = new char[80];
        int i, j;
        Console.Write("请输入一小写字母串(长度小于80):");
        string c = Console.ReadLine();
        Console.Write("加密后成为:");
        for (i = 0; i < c.Length; i++)         {             str[i] = c[i];             j = str[i] - 97;             str[i] = list[j];             Console.Write("{0}", str[i]);         }         Console.WriteLine();     } } //31,字符串的解密示例 using System; class Program {     static void Main()     {         string list = "qwertyuioplkjhgfdsazxcvbnm";         char[ ] str = new char[80];         int i, j;         Console.Write("请输入需解密的字符串:");         string c = Console.ReadLine();         Console.Write("原字符串是:");         for (i = 0; i < c.Length; i++)         {             str[i] = c[i];//             j = 0;             while (str[i] != list[j])                 j++;             str[i] = (char)(j + 97);                 Console.Write("{0}",str[i]);         }         Console.WriteLine();     } } //32,有三个字符串,要求找出其中最大者 using System; class Program {     static void Main()     {         Console.WriteLine("请先后输入三个字符串,每输入一个请按Enter键确认!");         string str;         Console.Write("请输入第1个字符串:");         string a = Console.ReadLine();         Console.Write("请输入第2个字符串:");         string b = Console.ReadLine();         Console.Write("请输入第3个字符串:");         string c = Console.ReadLine();         int m = String.Compare(a, b);         if (m > 0)
            str = String.Copy(a);
        else
            str = String.Copy(b);
        int n = String.Compare(c, str);
        if (n > 0)
            str = String.Copy(c);
        Console.WriteLine("最大的字符串是:{0}", str);
    }
}
//33,选择排序
using System;
class Program
{
    static void Main()
    {
        string[ ] names = new string[5];
        string max;
        int i, j;
        for(i=0;i<5;i++)         {             Console.Write("请输入{0}个国家的名字:",i+1);             names[i] = Console.ReadLine( );         }         for (i = 0; i < names.Length - 1; i++)         {             for(j=i+1;j 0)
        {
            n--;
            pow *= x;
        }
        return pow;
    }
    static void Main()
    {
        int n = 3;
        int x = 4;
        char c = 'a';
        Console.WriteLine("power({0},{1},{2})", x, n, power(x, n));
        Console.WriteLine("power('{0}',{1})={2}", c, n, power(c, n));
        Console.WriteLine("power({0},{1}))={2}", n,x, power(n,x));
    }
}
//37,输入两个整数,通过方法的调用输出其中较大的数,求两个整数中的较大数,用方法完成
using System;
class Program
{
    static int max(int x, int y)
    {
        return (x >= y) ? x : y;
    }
    static void Main()
    {
        Console.WriteLine("请输入两个整数:");
        Console.Write("a= ");
        int a = Convert.ToInt32(Console.ReadLine());
        Console.Write("b= ");
        int b=Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("{0:D}和{1:D}较大的数是:{2:D}",a,b,max(a,b));
    }
}
//38,试编程实现方法的嵌套调用
using System;
class Program
{
    static void prnline( )
{
    Console.Write(" - ");
}
    static void print()
    {
        Console.Write(" * ");
        prnline();
        return;
    }
    static void Main()
    {
        int i, j;
        for (i = 0; i < 2; i++)
        {
            for (j = 0; j < 3; j++)
            {
                print();
            }
            Console.WriteLine( );
        }
    }
}
//39,阶乘
using System;
class MainClass
{
    static int fac(int n)
    {
        int y;
        if (n == 1)
            y = 1;
        else
            y = n * fac(n - 1);
        return y;
    }
    static void Main()
    {
        Console.WriteLine("4!={0}",fac(4));
    }
}
//40,n+n^2+n^3+---n^n
//n(1+n(1+n(1+n----)))
using System;
class MainClass
{
    static int fun(int n, int m)
    {
        if (m == 1)
            return n;
        else
            return n * (1 + fun(n, m - 1));
    }
    static void Main()
    {
        Console.WriteLine("n=1:{0}", fun(1, 10));
        Console.WriteLine("n=2:{0}", fun(2, 10));
        Console.WriteLine("n=3:{0}", fun(3, 10));
    }

}
//41,汉诺塔问题
using System;
class Program
{
    static void hanoi(int n, char A, char B, char C)
    {
        if (n == 1)
            Console.WriteLine("将第{0}个盘子从{1}柱搬到{2}柱上;", n, A, C);
        else
        {
            hanoi(n-1,A,C,B);
            Console.WriteLine("将第{0}个盘子从{1}柱搬到{2}柱上",n,A,C);
            hanoi(n-1,B,A,C);
        }
    }
    static void Main()
    {
        char A = 'A', B = 'B', C = 'C';
        Console.WriteLine("请输入A柱上的盘子总数:");
        int n = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("当A柱上有{0}个盘子时,移动步骤依次为:", n);
        hanoi(n, A, B, C);
    }
}
//42,引用参数ref使用示例
using System;
class Program
{
    static void Swap(ref int x, ref int y)
    {
        int temp = x;
        x = y;
        y = temp;
    }
    static void Main()
    {
        int i = 1, j = 2;
        Swap(ref i,ref j);
        Console.WriteLine("i={0},j={1}", i, j);
    }
}
//43,输出参数out使用示例
using System;
class Program
{
    static void Divide(int x, int y, out int result, out int reminder)
    {
        result = x / y;
        reminder = x % y;
    }
    static void Main()
    {
        int res, rem;
        Divide(10, 3, out res, out rem);
        Console.WriteLine("res={0} rem={1}", res, rem);
    }
}
//44.用引用参数ref实现对8名学生各两门成绩的统计,求每门成绩的最低分
using System;
class Program
{
    static void Main()
    {
        int[,] score = { { 98, 82 },{80,76}, { 96, 80 }, { 88, 90 }, { 98, 87 }, { 75, 84 }, { 68, 92 }, { 83, 66 } };
        int min1 = score[0, 0];
        int min2 = score[0, 1];
        minmum(score, ref min1, ref min2);
        Console.WriteLine("课程1最低分:" + min1 + "\n课程2最低分" + min2);
    }
    static void minmum(int[,] score, ref int min1, ref int min2)
    {
        for (int i = 1; i < score.GetLength(0); i++)             if (score[i, 0] < min1)                 min1 = score[i, 0];         for (int i = 1; i < score.GetLength(0); i++)             if (score[i, 1] < min2)                 min2 = score[i,1];     } } //45,用输出参数out实现对8名学生各两门成绩的统计,求每门的最高分 using System; class Program {     static void Main()     {         int[ , ]score={{98,82},{80,76},{96,80},{88,90},{98,87},{75,84},{68,92},{83,66}};         int max1, max2;         maxmum(score, out max1, out max2);         Console.WriteLine("课程1最高分:" + max1 + "\n课程2最高分:" + max2);     }     static void maxmum(int[,] score, out int max1, out int max2)     {         max1 = score[0, 0];         max2 = score[0, 1];         for (int i = 1; i < score.GetLength(0); i++)             if (score[i, 0] > max1)
                max1 = score[i, 0];
        for (int i = 1; i < score.GetLength(0); i++)         {             if (score[i, 1] > max2)
                max2 = score[i, 1];
        }
    }
}
//46,定义了3个学生代表,每个学生4次测试成绩对应一个3x4的数组,求所以学生各次考试成绩中的最高成绩
using System;
class Program
{
    static void Main()
    {
        int[,] s = new int[3, 4] { { 68, 77, 73, 86 }, { 87, 96, 78, 89 }, { 90, 70, 81, 86 } };
        Console.WriteLine("最高成绩是:{0}", max(s, 3, 4));
    }
    static int max(int[,] g, int p, int t)
    {
        int m = 0;
        for(int i=0;im)
                    m=g[i,j];
        return m;
    }
}
//47,输出双精度示例
using System;
class Program
{
    static void Main()
    {
        double a = 123.456789012345;
        Console.WriteLine(a);
        Console.WriteLine("{0:F6}", a);
        Console.WriteLine("{0:F2}", a);
    }
}
//48,设置输出值得货币值与输出宽度示例
using System;
class Program
{
    static void Main()
    {
        int a = 80;
        int b = 8000;
        Console.WriteLine("{0:C2}", a);
        Console.WriteLine("{0:C2}", b);
        Console.WriteLine("{0,5}", a);
        Console.WriteLine("{0,6}", b);
    }
}
//49,利用控制符完成两位小数输出
using System;
class Program
{
    static void Main()
    {
        float x = 168.56f;
        Console.WriteLine("每件平均单价为:{0:F2}", x / 3);
        Console.WriteLine("每件平均单价为:{0:C2}", x / 3);
    }
}
//50,由键盘输入一个华氏温度,将其转化为摄氏温度
using System;
class Program
{
    static void Main()
    {
        Console.Write("请输入华氏温度:");
        String s = Console.ReadLine();
        float f = float.Parse(s);
        float c=(f-32)/1.8f;
        Console.WriteLine("相应的摄氏温度是:{0:F1}", c);
    }
}
//51,由键盘输入三角形的三条边a,b,c,试编程用海伦公式计算任意三角形的面积
using System;
class Program
{
    static void Main()
    {
        double s, area;
        Console.WriteLine("请输入三角形的三条边长:");
        Console.Write("a= ");
        string x = Console.ReadLine();
        Console.Write("b= ");
        string y = Console.ReadLine();
        Console.Write("c= ");
        string z= Console.ReadLine();
        double a = double.Parse(x);
        double b = double.Parse(y);
        double c = double.Parse(z);
        s = 1.0 / 2 * (a + b + c);
        area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
        Console.WriteLine("a={0:F2} b={0:F2} c={0:F2} s={3:F2}", a, b, c, s);
        Console.WriteLine("area={0:F2}", area);
    }
}
//52.设计一个方法,根据三角形的三边长求面积,如果不能构成三角形,给出提示信息
using System;
class Program
{
    static double TriangleArea(float a, float b, float c)
    {
        if ((a + b <= c) || (a + c <= b) || (b + c) <= a)
            return -1;
        double s = (a + b + c) / 2.0;
        return Math.Sqrt(s * (s - a) * (s - b) * (s - c));
    }
    static void Main()
    {
        Console.WriteLine("请输入a,b,c:");
        Console.Write("a= ");
        int a = Convert.ToInt32(Console.ReadLine());
        Console.Write("b= ");
        int b = Convert.ToInt32(Console.ReadLine());
        Console.Write("c= ");
        int c = Convert.ToInt32(Console.ReadLine());
        double area = TriangleArea(a, b, c);
        if(area==-1)
            Console.WriteLine("{0},{1},{2}不能构成三角形!",a,b,c);
        else
        Console.WriteLine("边长为{0},{1},{2}三角形的面积:{3:F1}",a,b,c,area);
    }
}
//53,用方法求两个不等长的数组元素的平均值
using System;
class Program
{
    static void Main()
    {
        double[] a = new double[5] { 2, 3, 6, 8, 10 };
        double[] b = new double[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        double aver1, aver2;
        aver1 = average(a, 5);
        Console.WriteLine("a数组元素的平均值:{0}", aver1);
        aver2 = average(b,10);
        Console.WriteLine("a数组元素的平均值:{0}", aver2);
    }
    static double average(double[] array, int len)
    {
        double sum = 0;
        for (int i = 0; i < len; i++)
        {
            sum += array[i];
        }
        return sum / len;
    }
}