传智的光辉岁月-C#基础篇十小练习

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P03练习
{
    class Program
    {
        static void Main(string[] args)
        {
            Test05();
        }

        public static void Test01()
        {
            /*请编写1个方法,求一列数的规则如下: 1、1、2、3、5、8、13、21、34、55......  求指定位数的值是多少.并返回这个数
             * (前2位为1,后面每1位为前2位的和.)
             */
            int res = Test01_1(6);
            Console.WriteLine(res);
        }

        public static int Test01_1(int plugNum)
        {
            //1.如果输入的位数是 <=2的,直接返回 1
            if (plugNum <= 2) return 1;

            //2.如果大于2的话,则进行运算
            int prev1 = 1;
            int prev2 = 1;
            int res = 0;

            for (int i = 1; i <= plugNum - 2; i++)
            {
                res = prev1 + prev2;
                prev1 = prev2;
                prev2 = res;
            }

            return res;
        }

        public static void Test02()
        {
            /* 2.写1个方法,接收圆的半径. 将圆的面积和周长返回. π取值3.14 圆的面积=π*半径的平方、圆的周长=π* 2*半径(10分) */
            float[] arrResult = new float[2];//下标为0 代表 面积;下标为 1 代表 周长
            Test02_01(5, arrResult);
            Console.WriteLine("半径为{0}圆圈的 面积是{1},周长是{2}", 5, arrResult[0], arrResult[1]);
        }

        /// <summary>
        /// 计算 周长 和 面积
        /// </summary>
        /// <returns></returns>
        public static void Test02_01(int half, float [] arr)
        {
            arr[0] = 3.14f * half * half;
            arr[1] = 2 * 3.14f * half;
        }

        public static void Test03_01()
        {
            /* 请编写1个程序,该程序从控制台接收用户的输入班级的人数,然后分别从控制台接收每1个人的成绩.只要有1个的成绩不合法(不在0-100的范围或者输入的不是整数),就提示用户重新输入该名学生的成绩.当所有的学生的成绩输入完毕之后,请打印出全班平均分,然后再求出去掉1个最高分和去掉1个最低分后的平均分,然后将成绩由高到低的顺序打印出来.(25分)
             */
            Console.WriteLine("接收学员的个数:");
            int max = 0;//最高分
            int min = 0;//最低分
            int scoreTotal = 0;//总分数
            int count = int.Parse(Console.ReadLine());//总人数
            int[] arrScore = new int[count];//分数数组

            for (int i = 0; i < count; i++)
            {
                int score = Test03_01_01("请输入第" + (i + 1) + "学员的分数:");
                arrScore[i] = score;
                if (i == 0)
                {
                    max = score;
                    min = score;
                }
                scoreTotal += score;//加入总分数
                if (max < score) max = score;//判断是否为本次循环之内的最高分
                if (min > score) min = score;//判断是否为本次循环之内的最低分
            }

            float avg0 = (scoreTotal - max - min) * 1.0f / (count - 2);

            //1.0 排序
            List<int> list = arrScore.ToList();
            list.Sort();

            Console.WriteLine("总人数为{0},全班平均分为{1},去掉最高分后最低分后的平均分为{2}",
                count,
                scoreTotal * 1.0f / count,
                avg0);

            Console.WriteLine("由低到高显示分数:");
            foreach (int i in list)
            {
                Console.WriteLine(i);
            }
        }
        //提示用户输入一个 整型的数值,并且 必须在1-100之间
        public static int Test03_01_01(string strMsg)
        {
            int res = -1;
            while (true)
            {
                Console.WriteLine(strMsg);
                string str = Console.ReadLine();
                if (int.TryParse(str, out res))//将用户输入的字符串转成 数值
                {
                    if (res >= 0 && res <= 100)//判断数值知否为 0-100之间的数
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("必须是0-100之间的数值!");
                    }
                }
                else
                {
                    Console.WriteLine("必须输入数值~~!");
                }
            }
            return res;
        }

        public static void Test04()
        {
            /* 编一个程序,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录并退出程序 */
            string okName = "";
            string okPwd = "";
            int i = 0;
            while (true)
            {
                Console.WriteLine("请输入您的用户名:");
                okName = Console.ReadLine();
                Console.WriteLine("请输入您的密码:");
                okPwd = Console.ReadLine();
                if (okName == "james" && okPwd == "123")
                {
                    Console.WriteLine("用户登录成功了~~~!");
                    break;
                }
                else
                {
                    Console.WriteLine("用户名或密码输入错误~~!");
                    i++;
                    if (i >= 3)
                    {
                        Console.WriteLine("对不起,您的输入次数超过3次程序退出~~");
                        Console.ReadLine();
                        break;
                    }
                }
            }
        }

        public static void Test05()
        {
            /*
             * 有1个整型的数组,假设每1个元素的值都是1个正整数(意思就是每1个元素的值都是大于0的.)
             * 请编写1个方法,该方法将数组中重复的元素去掉,并返回1个没有重复数据的数组.
             * 比如:有数组A={1,2,3,3,4,4,5,6,6},方法返回1个新数组B={1,2,3,4,5,6}
             */

            int[] arr = { 1, 2, 100, 99, 99, 88, 77, 3, 3, 4, 4, 5, 6, 6, 99 };
            int[] arrNew = GetANewArr(arr);
        }

        public static int[] GetANewArr(int[] arr)
        {
            int[] arrTemp = new int[arr.Length];
            int indexNum = 0;//记录不重复数值的数量

            //1.循环 找出  不重复的 数值,存入临时数组中
            for (int i = 0; i < arr.Length; i++)
            {
                int num = arr[i];//取出 一个  源数组里的 数值
                bool isExist = false;//记录本轮数字 是否在 临时数组中存在

                for (int j = 0; j < arrTemp.Length; j++)//用 源数组里的 数值,去 临时数组中比较,如果没有一样的,则标记一下
                {
                    if (arrTemp[j] == num)
                    {
                        isExist = true;
                    }
                }
                if (!isExist)//如果 原数组数值 在 临时数组中不存在,则 保存到 临时数组中
                {
                    arrTemp[indexNum] = arr[i];
                    indexNum++;//自增 不重复数值的 个数
                }
            }
            //2.按照找出的不重复数值的个数,创建新数组
            int [] arrNew = new int[indexNum];
            //2.1将 不重复的数值 从 临时数组中 复制到 新数组中
            for (int i = 0; i < indexNum; i++)
            {
                arrNew[i] = arrTemp[i];
            }
            //2.2返回新数组
            return arrNew;
        }

    }
}

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P04练习
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.ReadLine();
        }

        public static void No1()
        {
            /*
             * 定义1个汽车类,有品牌 轮子数量 颜色 价格 型号 座位数量 字段,
             * 有1个行驶的方法,
             * 还有1个停止的方法
             * 还有1个自己介绍自己的方法(显示自己的品牌 轮子 颜色 价格 型号 座位。。信息.);
             * 创建对象并测试.
             */

            QiChe qicheNo1 = new QiChe();
            qicheNo1.XingShi();
            qicheNo1.TingZhi();
        }

        public static void No2()
        {
            Student stu = new Student();
            stu.Name = "";
            /*
             * 定义1个学生类,有姓名、年龄、手机号码、学号四个属性,
                要求学生的姓名不能为空串,并且长度不能小于2,否则使其默认值为”无名”,
                年龄只能在0-100之间,否则默认值为18,
                手机号码只能为11位的数字。否则就给默认值13444444444
                学号要求为10个数字,否则赋值为默认值”0000000000”.
                再定义1个方法介绍自己,将自己的姓名年龄手机号码打印出来。

                然后再定义1个教师类,教师类也有姓名年龄手机号码三个属性要求和学生类一样,
                但是教师类还有1个属性工资 要求值再1000-2000之间,否则默认值为1000,、
                教师也有介绍自己自己的方法(显示自己的所有信息 姓名 年龄 性别 工资)
             */
        }
    }
}

  汽车类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P04练习
{
    /// <summary>
    /// 汽车
    /// </summary>
    public class QiChe
    {
        private string pinPai;
        private int lunZiShuLiang;
        private string yanSe;

        #region 1.0 行驶方法 +void XingShi()
        /// <summary>
        /// 行驶方法
        /// </summary>
        public void XingShi()
        {
            Console.WriteLine("汽车在行驶~~~");
        }
        #endregion

        #region 2.0 停止方法 刹车 +void TingZhi()
        /// <summary>
        /// 停止方法 刹车
        /// </summary>
        public void TingZhi()
        {
            Console.WriteLine("汽车在停住了~~~");
        }
        #endregion

        #region 3.0 介绍自己  void Show()
        /// <summary>
        /// 3.0 介绍自己
        /// </summary>
        public void Show()
        {

        }
        #endregion
    }
}

  学生类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P04练习
{
    /// <summary>
    /// 学员类
    /// </summary>
    public class Student
    {
        private int id;
        private string name;
        private int age;
        private int cellphone;

        #region 1.0 姓名 +string Name
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name
        {
            get { return name; }
            set
            {
                if (string.IsNullOrEmpty(value) || value.Length < 2)
                {
                    name = "无名";
                }
                else
                {
                    name = value;
                }
            }
        }
        #endregion

    }
}

  

计算器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P05计算器
{
    public enum CulType
    {
        Jia = 1,
        Jian = 2,
        Chen = 3,
        Chu = 4
    }
}

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P05计算器
{
    /// <summary>
    /// 计算器
    /// </summary>
    public class JiSuanQi
    {
        #region 1.0 计算 +void JiSuan()
        /// <summary>
        /// 1.0 计算
        /// </summary>
        public void JiSuan()
        {
            //1.要求用户输入 运算符号 +,-,*,/
            Console.Write("请输入运算符(1+,2-,3*,4/):");
            int curType = int.Parse(Console.ReadLine());

            //2.接收 第一个数值
            Console.WriteLine("请输入第一个数值:");
            int numA = int.Parse(Console.ReadLine());
            //3.接收 第二个数值
            Console.WriteLine("请输入第二个数值:");
            int numB = int.Parse(Console.ReadLine());
            //运算结果
            int res = -1;

            //4.根据操作符进行运算
            CulType type = (CulType)curType;
            #region 根据操作符进行运算
            switch (type)
            {
                case CulType.Jia:
                    {
                        res = numA + numB;
                        break;
                    }
                case CulType.Jian:
                    {
                        res = numA - numB;
                        break;
                    }
                case CulType.Chen:
                    {
                        res = numA * numB;
                        break;
                    }
                case CulType.Chu:
                    {
                        res = numA / numB;
                        break;
                    }
            }
            #endregion

            Console.WriteLine("{0} {1} {2}={3}", numA, GetOpeName(type), numB, res);
        }
        #endregion

        #region 1.1 根据枚举返回对应的 运算符号 -string GetOpeName(CulType type)
        /// <summary>
        /// 1.1 根据枚举返回对应的 运算符号
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        string GetOpeName(CulType type)
        {
            string name = "";
            switch (type)
            {
                case CulType.Jia:
                    {
                        name = "+";
                        break;
                    }
                case CulType.Jian:
                    {
                        name = "-";
                        break;
                    }
                case CulType.Chen:
                    {
                        name = "*";
                        break;
                    }
                case CulType.Chu:
                    {
                        name = "/";
                        break;
                    }
            }
            return name;
        }
        #endregion
    }
}

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P05计算器
{
    class Program
    {
        static void Main(string[] args)
        {
            JiSuanQi jsq = new JiSuanQi();
            jsq.JiSuan();
            Console.ReadLine();
        }
    }
}

  

时间: 2024-12-22 19:13:59

传智的光辉岁月-C#基础篇十小练习的相关文章

传智的光辉岁月-C#基础篇一编译原理

时间过的真快,不知不觉已经从传智出来,工作一个月了啊,想想当初自己的所有努力和付出都是值得的,当初来传智可以说是走头无路,唯有努力的向前冲,在这里满满的正能量,激烈着我一直努力,胜利就在前面,只要你能坚持坚持~~~对于我这样的一个新手而言,现在最重要的就是技术积累,一入IT深似海,我要学的东西还真的很多很多... 以前一直没时间,现在在工作之余,想把自己以前学的东西整理一套笔记,供.NET爱好者,和自己以后翻阅参考.... 好了直接上代码... using System; namespace H

传智的光辉岁月-C#基础篇七类和静态成员

1.new关键字做的4个事情 1.1 开辟堆空间 a.开辟多大的空间呢? 当前类 所有的 成员变量类型所占空间的总和 + 类型指针(方法表的地址) b.开辟了空间干什么用呢? 存放 成员变量 1.2 创建对象 a.将对应类型 中的 实例成员模板区 里的 实例变量 复制到 堆空间空间中: b.将 对应类型 的 方法表地址 设置 对象! 1.3 调用构造函数 a.将 前面创建 的对象 的堆地址,先传给 构造函数里的 this! b.再 执行 构造函数里的代码! 1.4 返回堆地址 2.静态成员 和

传智的光辉岁月-C#基础篇八构造函数和面向对象思想

3.关于 对象创建的几个关键词 Dog d1 = new Dog(); Dog d1 叫做 声明变量 new Dog() 叫做 实例化(创建)对象 4.关于对象.方法和 this 的关系 Dog d1 = new Dog();//在new关键字 开辟堆空间,创建完对象,开始调用构造函数的时候,会把对象的地址 传给 构造函数里的 this d1.ShowLove();//在调用方法时,会先将 d1里保存的 对象地址 传给 方法里的 this,然后再执行方法体: 5.静态方法 只能 访问 静态成员,

传智的光辉岁月-C#基础篇九OOP属性结构枚举

1.设计一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元/公里):-----------0-100公里 票价不打折101-200公里 总额打9.5折201-300公里 总额打9折300公里以上 总额打8折有一个方法,可以显示这张票的信息. 业务:不需要设计太多,只需要 提示用户 拥有的票的种类,然后让用户选择,选择后 按照价格打折后 显示给用户强调:只需要两个类(Ticket 票据类,Saler 售票员类)

传智的光辉岁月-C#基础篇五值类型和引用类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Method { class Program { static void Main(string[] args) { //int a1 = 11; //int b2 = 22; //Add2Num(a1, b2);//在调用方法时,为 方法括号中 传递的 值 就叫做 实参(实际参数) //Add2Nu

传智的光辉岁月-C#基础篇六飞行棋

飞行棋业务:我们要能够让2个玩家 在地图上 按照游戏规则 进行游戏 玩家类 变量:玩家位置,玩家名称,玩家标识,玩家是否在陷阱中 方法:投骰子,移动 地图类 变量:地图数据数组 方法:初始化地图数据,绘制地图,显示Logo 游戏规则类 变量: 方法:第一次游戏说明,判断玩家位置是否有障碍物,根据不同障碍物执行不同操作,判断游戏是否结束 using System; using System.Collections.Generic; using System.Linq; using System.T

传智的光辉岁月-C#基础篇三流程控制1

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Review { class Program { //全局变量如果没有初始化也没有复制,那么编译器会给它默认值: // 数值类型默认值:0 // bool 默认值:false // string 默认值:null //1.2全局变量(类的成员变量) static int count; static v

传智的光辉岁月-C#基础篇三流程控制2

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01ReviewAndWhile { class Program { static void Main(string[] args) { //Reg(); MulLoop(); Console.ReadLine(); } #region 9.2 多重循环练习:注册 void Reg() //9.2 多重循

传智的光辉岁月-C#基础篇四数组

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Array { class Program { static void Main(string[] args) { int[] arr = new int[2] { 22, 33 }; double dd = arr[0]; ArrTurnBig(); Console.ReadLine(); } #r