首页 > 代码库 > 01---Net基础加强

01---Net基础加强

 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,使用第三个变量!

    class Program    {        static void Main(string[] args)        {            int n1 = 10;            int n2 = 20;            int temp = n1;            n1 = n2;            n2 = temp;            Console.WriteLine("n1:{0},n2:{1}",n1,n2);            Console.ReadKey();        }    }

 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,不使用第三个变量!

 class Program    {        static void Main(string[] args)        {            int n1 = 10;            int n2 = 20;            n1 = n1 + n2;            n2 = n1 - n2;            n1 = n1 - n2;            Console.WriteLine("n1:{0},n2:{1}", n1, n2);            Console.ReadKey();        }    }

 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,使用方法!  

    class Program    {        static void Main(string[] args)        {            int n1 = 10;            int n2 = 20;            Swap(ref n1, ref n2);//方法存根快捷键Ctrl+K+M建立方法   ref表示按引用传递            Console.WriteLine("n1:{0},n2:{1}", n1, n2);            Console.ReadKey();        }        static void Swap(ref int num1, ref int num2)        {            int temp = num1;            num1 = num2;            num2 = temp;        }           }

 请用户输入一个字符串,计算字符串中的字符个数,并输出。(“你好ycz” 的字符个数为5)字符串的Length属性表示字符串中字符的个数,无论中文字符还是英文字符,一个字符就是一个字符,不是字节数。

    class Program    {        static void Main(string[] args)        {            Console.WriteLine("请输入一个字符串");            string msg = Console.ReadLine();            Console.WriteLine("字符个数为:{0}", msg.Length);            Console.ReadKey();        }       }

定义方法来实现:计算两个数的最大值。提示:方法有几个参数?返回值是什么?      ···········定义方法时一定要有参数和返回值!

class Program    {        static void Main(string[] args)        {            int max = GetMax(100,101);            Console.WriteLine("最大值为:{0}", max);            Console.ReadKey();        }        static int GetMax(int n1,int n2)        {            return n1>n2?n1:n2;        }       }

计算任意多个数间的最大值(提示:params)。

    class Program    {        static void Main(string[] args)        {            int max = GetMax(100,101,22,24,35,333);            Console.WriteLine("最大值为:{0}", max);            Console.ReadKey();        }        static int GetMax(params int[] nums)//params可变参数        {            int max=nums[0];            for (int i = 1; i < nums.Length; i++)            {              if(nums[i]>max)                max=nums[i];            }            return max;        }       }

 用方法来实现:计算1-100之间的所有整数的和。

 class Program    {        static void Main(string[] args)        {           int sum= GetSum(1,100);            Console.WriteLine(sum);            Console.ReadKey();        }        static int GetSum(int StartNumber,int EndNumber)        {            int sum = 0;            for (int i = StartNumber; i <= EndNumber; i++)            {                sum += i;            }            return sum;        }    }

 用方法来实现:计算1-100之间的所有奇数的和。

        static void Main(string[] args)        {           int sum= GetOddSum(1,100);            Console.WriteLine(sum);            Console.ReadKey();        }        static int GetOddSum(int StartNumber,int EndNumber)        {            int sum = 0;            for (int i = StartNumber; i <= EndNumber; i++)            {                if (i % 2 != 0)                {                    sum += i;                }            }            return sum;        }

用方法来实现:判断一个给定的整数是否为“质数”;

 class Program    {        static void Main(string[] args)        {            string s;            Console.WriteLine("请输入一个正整数:");            int n = Convert.ToInt32(Console.ReadLine());            if (IsZhiShu(n))            {                s = "这个数是质数";                Console.WriteLine(s);                Console.ReadKey();            }            else            {                s = "这个数不是质数";                Console.WriteLine(s);                Console.ReadKey();            }        }        static bool IsZhiShu(int num)        {            bool b = true;            for (int i = 2; i <= Math.Sqrt(num); i++)  //对num开根号            {                if (num % i == 0)                {                   b=false;                }            }            return b;        }

用方法实现:计算1-100之间所有质数的和。

   class Program    {        static void Main(string[] args)        {            int sum = 0;            for (int i = 2; i <= 100; i++)            {                // 对于每个数字判断是否是一个质数                if (IsZhiShu(i))                {                    sum += i;                }            }            Console.WriteLine(sum);            Console.ReadLine();        }               static bool IsZhiShu(int num)        {            bool b = true;            for (int i = 2; i <=Math.Sqrt(num); i++)  //对num开根号            {                if (num % i == 0)                {                   b=false;                }            }            return b;        }    }

用方法来实现:有一个数组,找出其中最大值并输出。不能调用数组的Max()方法。

    class Program    {        static void Main(string[] args)        {            int[] arrInt = {1,3,5,66,6,8,99,55 };            int max = GetMax(arrInt);            Console.WriteLine(max);            Console.ReadLine();        }               static int GetMax(int[] arr)        {            int max = arr[0];            for (int i = 1; i < arr.Length;i++ )            {                if (arr[i] > max)                {                    max = arr[i];                }            }            return max;        }    }
用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出字符数最多的字符串。
 class Program    {        static void Main(string[] args)        {            string[] arrName = { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" };            string  maxName = GetMaxString(arrName);            Console.WriteLine(maxName);            Console.ReadLine();        }               static string GetMaxString(string[] arrName)        {            string maxName = arrName[0];            for (int i = 1; i < arrName.Length;i++ )            {                if (arrName[i].Length > maxName.Length)                {                    maxName = arrName[i];                }            }            return maxName;        }    }

用方法实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。Math.Round()

    class Program    {        static void Main(string[] args)        {            int[] arrInt = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10};            Console.WriteLine(GetAvg(arrInt));            Console.ReadLine();        }               static double GetAvg(int[] arr)        {            int sum = 0;            for (int i = 1; i < arr.Length;i++ )            {               sum += arr[i];            }            return Math.Round((double)sum/ arr.Length, 2); //Math.Round()对数字执行四舍五入,保存两位小数。注意*两个整数相除结果还是整数,可以将一个强制转换成double类型        }    }

通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。

  class Program    {        static void Main(string[] args)        {            int[] arrInt = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };            for (int i = 0; i < arrInt.Length-1; i++)            {                for (int j = arrInt.Length - 1; j > i; j--)                {                    if (arrInt[j] < arrInt[j - 1])                    {                        int temp = arrInt[j];                        arrInt[j] = arrInt[j - 1];                        arrInt[j - 1] = temp;                    }                }            }            for (int i = 0; i < arrInt.Length; i++)            {                Console.WriteLine(arrInt[i]);            }            Console.ReadLine();        }     }

有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:①请统计出该字符中“咳嗽”一词的出现次数,以及每次“咳嗽”出现的索引位置。②扩展(*):统计出每个字符的出现次数。    JavaScript indexOf() 方法

    class Program    {        static void Main(string[] args)        {            string msg = "患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?";            string keywords="咳嗽";            int count = 0;            int index = 0;            while ((index = msg.IndexOf(keywords, index)) != -1)//使用IndexOf(),该方法返回在整个字符串中,指定的字符或字符串第一次出现的索引位置,如果没有找到指定的字符或者字符串则返回-1,如果找到了返回索引位置            {                count++;                Console.WriteLine("第{0}次,出现【咳嗽】,索引时{1}", count,index);                index = index + keywords.Length;            }            Console.WriteLine("【咳嗽】一词,共出现了{0}次,", count);            Console.ReadKey();        }    }

 将字符串"      hello world,你 好 世界 !      "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。 Trim用法  Split用法,Join用法

    class Program    {        static void Main(string[] args)        {            string msg = "       Hello World       你  好    世界     ";            msg = msg.Trim();            string[] words = msg.Split(new char[]{‘ ‘},StringSplitOptions.RemoveEmptyEntries);            string full = string.Join(" ", words);            Console.WriteLine(full);            Console.ReadKey();        }    }

 制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。并统计姓王的个数!

class Program    {        static void Main(string[] args)        {            List <string> ListNames=new List<string>();//初始化一个集合            int count = 0;            while (true)            {                Console.WriteLine("请输入姓名:");                string name = Console.ReadLine();                if (name[0] == ‘王‘)                {                    count++;                }                if (name.ToLower() == "quit")                {                    break;                }                ListNames.Add(name);            }            Console.WriteLine("你共输入了:{0}个名字",ListNames.Count);            foreach (string name in ListNames)            {                Console.WriteLine(name);            }            Console.WriteLine("姓王的同学的个数:{0}", count);            Console.ReadKey();        }    }

将普通日期格式:“2014年7月8日”转换成汉字日期格式:“二零一四年七月八日”。(暂时不考虑10日,13日,23日)

 class Program    {        static void Main(string[] args)        {            string date = "2014年7月8日";            date = ConvertDate(date);            Console.WriteLine(date);            Console.ReadKey();        }        private static string ConvertDate(string date)  //字符串具有不可变性,不能直接修改字符串        {            //将字符串转换成一个真正的char数组            char[] chs = date.ToCharArray();            for (int i = 0; i < date.Length;i++ )            {                switch (chs[i])                {                     case ‘0‘:                             chs[i] = ‘零‘;                             break;                    case ‘1‘:                             chs[i] = ‘一‘;                             break;                    case ‘2‘:                             chs[i] = ‘二‘;                             break;                    case ‘3‘:                             chs[i] = ‘三‘;                             break;                    case ‘4‘:                             chs[i] = ‘四‘;                             break;                    case ‘5‘:                             chs[i] = ‘五‘;                             break;                    case ‘6‘:                             chs[i] = ‘六‘;                             break;                    case ‘7‘:                             chs[i] = ‘七‘;                             break;                    case ‘8‘:                             chs[i] = ‘八‘;                             break;                    case ‘9‘:                             chs[i] = ‘九‘;                             break;                }            }            return new string(chs);        }    }

创建一个Person类,属性:姓名、性别、年龄;方法:SayHi() 。再创建一个Employee类继承Person类,扩展属性Salary,重写SayHi方法。

 class Person    {        private string _name;        public string Name        {            get             {                return _name;            }            set             {                _name = value;            }        }        public bool Gender { get; set;}        public int Age{ get; set;}        public virtual void SayHi()  //加上virtual,子类才能重写它        {            Console.WriteLine("Hi!!!!!!");        }    }
 class Employee:Person    {        public double Salary { get; set; }        public override void SayHi()//对这个方法重写        {            Console.WriteLine("子类中的SayHi!!!");        }    }

请编写一个类:ItcastClasss,该类中有一个私有字段_names.数据类型为字符串数组,数组长度为5,并有5个默认的姓名。要求:为ItcastClass编写一个索引器,要求该索引器能够通过下标访问_names中的内容。

  class ItCastClass    {        private string[] _names = { "叶长重", "王少伟", "杨中科", "苏坤", "科比" };        public string this[int index]  //索引器        {            set  {                _names[index] = value;                 }            get {                 return _names[index];                }        }    }
static void Main(string[] args)        {            ItCastClass itcast = new ItCastClass();            //Console.WriteLine(itcast._names[0]);//没有索引器的情况下得这样写!            Console.WriteLine(itcast[0]);            Console.WriteLine(itcast[3]);            Console.ReadKey();        }

使用WinForm窗体,制作一个简单的计算器,默认值为“请选择”。要求具有+、-、*、/功能! 

  public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            this.comboBox1.SelectedIndex = 0;        }        private void button1_Click(object sender, EventArgs e)        {            //校验用户选择的“操作符”            if (comboBox1.SelectedIndex > 0)            {                int n1 =Convert.ToInt32( textBox1.Text.Trim());                int n2 = Convert.ToInt32(textBox2.Text.Trim());                //int n2 = int.Parse(textBox2.Text.Trim());//这个也可以                switch (comboBox1.Text)                {                     case "+":                        label1.Text = (n1 + n2).ToString();                        break;                    case "-":                        label1.Text = (n1 - n2).ToString();                        break;                    case "*":                        label1.Text = (n1 * n2).ToString();                        break;                    case "/":                        label1.Text = (n1 / n2).ToString();                        break;                    default:                        break;                }            }            else            {                MessageBox.Show("请选择操作符");            }        }     }

什么是方法重载。(方法重载1.方法名必须一致。2,方法参数列表不同)

 请将字符串数组(“中国”,“美国”,“巴西”,“澳大利亚”,“加拿大”)中的内容反转,然后输出反转后的数组,不能用数组的Reverse()方法。

  static void Main(string[] args)        {            string[] names = { "中国", "美国", "巴西", "澳大利亚", "加拿大" };            ReverseArray(names);            for (int i = 0; i < names.Length; i++)  //快捷键 打上for再按Tab键            {                Console.WriteLine(names[i]);                }            Console.ReadKey();        }        private static void ReverseArray(string[] names) //数组本身就是引用类型,不需要返回值        {            for (int i = 0; i < names.Length/2; i++)            {                string temp = names[i];                names[i] = names[names.Length -1-i];                names[names.Length -1-i] = temp;            }        }    }

编程遍历WinForm窗体上所有TextBox控件并给它赋值为“叶长重”。

 public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            foreach (Control ctrl in this.Controls)//遍历这个窗体中所有控件            {                 //判断控件是不是文本框                if (ctrl is TextBox)                {                    ctrl.Text = "叶长重";                }            }        }    }

随机生成10个1-100内的非重复数字放入ArrayList集合中。

  class Program    {        static void Main(string[] args)        {            int count = 0;            ArrayList arrList = new ArrayList();            Random rdm = new Random();//()内不能放参数,不然会产生一样的,里面是种子,种子确定,产生的数是一样的!            while (arrList.Count < 10)            {                //Random rdm = new Random();//这句话不能放到这里,系统用当前时间做种子                count++;               int n = rdm.Next(1, 101);               if (!arrList.Contains(n))               {                   arrList.Add(n);               }            }            for (int i = 0; i < arrList.Count; i++)            {                Console.WriteLine(arrList[i]);//快捷键 cw+Table            }            Console.WriteLine("循环了{0}次",count);            Console.ReadKey();        }    }

 .net程序基本编写、执行流程(c#) 

          1>编写c#代码,保存为.cs文件。
          2>通过csc.exe程序来将.cs文件编译为.net程序集(.exe或.dll)。此时的exe或dll并不是机器码(cpu不可理解)。【>csc /out:c:\a.exe c:\program.cs】
          3>程序运行时通过JIT编译(Just In Time)即时编译,将程序集编译为cpu能理解的机器码,这时cpu才能执行。(这个编译过程会与当前机器有关(根据当前机器的内存、cpu等))。ngen.exe  
 面向对象(OO) 
          什么是面向对象?一种分析问题的方式(增强了程序的可扩展性)。
          面向对象三大特性:封装、继承、多态。
          什么是类?什么是对象?类和对象的区别?如何写一个汽车类?
          类是模具,创建对象的模具,抽象的。
          类是一种数据类型,用户自定义的数据类型
          类组成:字段、属性、方法、构造函数等
          对象是具体的,是类的具体实例。对象具有属性(特征)和方法(行为)
          类中包含了数据(用字段表示)与行为(用方法(函数、功能)表示,方法为一块具有名称的代码)  (先用类后有对象)
添加一个教师类和一个学生类:
  public  class Teacher    {        //构造函数特点:1、函数名和类名完全一样 2、不能有返回值,哪怕是void 3、一般访问修饰符为public        public Teacher()        {                 }        //构造函数重载         public Teacher(string name)        {        }        public string Name { get; set; }        public int  Age { get; set; }        public void Teach()        {            Console.WriteLine("上课。。。");        }    }
    class Student    {        public string Name { get; set; }        public string  SId { get; set; }        public void shangke()        {            Console.WriteLine("上课。。。");        }    }
  class Program    {        static void Main(string[] args)        {            //当写好一个类以后就会有一个默认的无参的构造函数。            Teacher t = new Teacher();        }    }

 

 

01---Net基础加强