1.  //题目:求两个数的最大值 (求三个数最大值及更多值的最大值)

求最大值
 1  static void Main(string[] args)
 2         {
 3             //题目:求两个数的最大值 (求三个数最大值及更多值的最大值)
 4             int[] sss = { 200, 120, 90, 180, 110 };
 5             int a = 10;
 6             int b = 0;
 7             int c = 99;
 8             int d = 1000;
 9             int max = Max(Max(a, b), c);//用两个大小的比较来比较,求abc的最大值
10             int max2 = Max(a, b, c, d);//是可变变量比较,求abcd的最大值
11             int max3 = Max(sss);//求数组sss中所有元素的最大值
12             Console.WriteLine(max);
13             Console.WriteLine(max2);
14             Console.WriteLine(max3);
15             Console.ReadKey();
16 
17         }
18         //多个值比较大小的方法,使用了可变变量(关键字 params)
19         static int Max(params int[] i)
20         {
21             int max = 0;
22             foreach (int item in i)
23             {
24                 if (item > max)
25                 {
26                     max = item;
27                 }
28             }
29             return max;
30         }
31         //两个值大小比较的方法
32         static int Max(int i1, int i2)
33         {
34             if (i1 > i2)
35             {
36                 return i1;
37             }
38             else
39             {
40                 return i2;
41             }
42         }

2.题目:交换两个数的值

交换两个变量的值
1  //题目:交换两个变量的值
2             int i1 = 5;
3             int i2 = 6;
4             int tem;
5             tem = i1;
6             i1 = i2;
7             i2 = tem;
8             Console.WriteLine("i1={0},i2={1}", i1, i2);
9             Console.ReadKey();

3.题目:求一定范围内的所有奇数的和

View Code
 1  static void Main(string[] args)
 2         {
 3             //题目:求一定范围内的所有奇数的和
 4             //..什么是奇数(不能被2整除的数)
 5             int sum = JiSuHe(0, 100);//输入了0-100,就是求0到100之间的奇数和
 6             Console.WriteLine(sum);
 7                 Console.ReadKey();
 8 
 9         }
10         //求奇数和的方法
11         private static int JiSuHe(int st,int end)
12         {
13             int sum = 0;
14             for (int i = st; i <= end; i++)
15             {
16                 if (i % 2 != 0)
17                 {
18                     sum = sum + i;
19                 }
20             }
21             return sum;
22         }

4.题目:c#时间格式转换汉字大写 比如: 2013年5月9日 转换成 二零一三年五月九日

View Code
 1 static void Main(string[] args)
 2         {
 3             //c#时间格式转换汉字大写 比如: 2013年5月9日 转换成 二零一三年五月九日
 4 
 5             string date = "2013年12月19日";//不考虑空字符,假设输入都是正确的
 6             Console.WriteLine( xiaoToDa(date));
 7             Console.ReadKey();
 8 
 9         }
10 
11         private static string  xiaoToDa(string date)//给一个数字格式的日期,转化为大写的日期
12         {
13             //对字符第一步处理开始
14             string[] fenge = date.Split('', '', '');//用年月日分割字符串 得到:年  月  日
15             for (int i = 1; i <= 2; i++)//操作split分割出的  月  和日,对其中的数字进行处理,如“10”-“十”,“15”-“十5”
16             {
17                 if (fenge[i].Length == 2)//如果月或日的字符串长度为2 (表明月或日都是 10及其以上)
18                 {
19                     if (fenge[i][1] == '0')//如果长度为2的月或日 第二个字符是"0"(表明是10、20、30)
20                     {
21                         if (fenge[i][0] == '1')//
22                         {
23                             fenge[i] = "";
24                         }
25                         else
26                         {
27                             fenge[i] = fenge[i][0] + "";
28                         }
29                     }
30                     else
31                     {
32                         if (fenge[i][0] == '1')
33                         {
34                             fenge[i] = "" + fenge[i][1];
35                         }
36                         else
37                         {
38                             fenge[i] = fenge[i][0] + "+" + fenge[i][1];
39                         }
40                     }
41 
42                 }
43             }//对字符第一步处理结束
44             //第二步字符串处理开始
45             string hebing = fenge[0] + "" + fenge[1] + "" + fenge[2] + "";//对处理好的字符串进行重新续接
46             string daxie = "零一二三四五六七八九";//给出大写的所有
47             string xiaoxie = "0123456789";//给出小写的所有字符
48             char[] hebingchar = hebing.ToCharArray();//得到第一步处理好的字符串的char数组
49             for (int i = 0; i < hebingchar.Length; i++)//遍历char数组
50             {
51                 if (xiaoxie.Contains(hebingchar[i]))//判断char[i]是否包含小写的char
52                 {
53                     hebingchar[i] = daxie[xiaoxie.IndexOf(hebingchar[i])];//让该小写的char 替换为大写的
54                 }
55             }
56             string dateToCh = new string(hebingchar);//把处理好的char数组转化为字符串
57             return dateToCh;
58             //第二步字符串处理结束
59 
60         }

 

一、代码书写规则
//代码要像诗篇一样

1、骆驼命名:第一个单词首字母小写,后续单词首字母大写。变量、字段用骆驼命名:如:string myName="屌丝哥";

2、帕斯卡命名:所有单词的首字母大写。类名、方法名用Pascal命名方法。如:Max(int num1,int num2);

 

二、面向对象-创建类、字段、属性、构造函数等复习

 

View Code
 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Student a = new Student("格格", "");//创建Student的一个实例 a ,
 6             //a.Sex = "看";//问题:此句抛异常 为什么上一句不抛异常
 7             //问题保留 创建构造函数的时候 this.sex=sex  还是 this.Sex=sex  //前者不可以控制输入,后者可以
 8             a.SayHello();//输出:你好我叫格格,性别看,年龄0,学号是
 9             Student b = new Student("屌丝哥", "", 25, "002");
10             b.SayHello();//输出: 你好我叫屌丝哥,性别男,年龄25,学号是002        
11             Console.Read();
12         }
13     }
14     class Student
15     {
16         //如果没有指定构造函数,则系统自动创建一个无参的构造函数
17         //如果指定了构造函数,则系统不创建无参构造,需要的话必须自己写(一般都要写)
18         //构造函数 是一个特殊的方法(用于快速初始化类内部的字段 )
19         //--创建构造函数---
20         public Student()  //手写无参构造
21         {
22         }
23 
24         public Student(string name, string sex)     //创建2个参数的构造函数
25         {
26             //this指前类的对象
27             this.name = name;
28             this.sex = sex;
29         }
30         public Student(string name, string sex, int age, string sNo)
31             : this(name, sex)//调用上面2参数构造的赋值,不要重复自己的代码
32         {
33             this.age = age;
34             this.sNo = sNo;
35         }
36         ////--创建构造函数---结束
37 
38         //创建并封装sNo字段-开始
39         private string sNo;
40         public string SNo
41         {
42             get { return sNo; }
43             set { sNo = value; }
44         }
45         //创建并封装sNo字段-结束
46         //创建并封装name字段-开始
47         private string name;
48         public string Name
49         {
50             get { return name; }
51             set { name = value; }
52         }
53         //创建并封装name字段-结束
54         //
55         private int age;
56         public int Age
57         {
58             get { return age; }
59             set { age = value; }
60         }
61         //
62         private string sex;
63         public string Sex
64         {
65             get { return sex; }
66             set
67             {
68                 if (value == "" || value == "")//如果value值只能为“男”或“女”
69                 {
70                     sex = value;
71                 }
72                 else
73                 {
74                     throw new Exception("年龄不合法");//抛出异常
75                 }
76             }
77         }
78         public void SayHello()//创建无返回值的SayHello()方法
79         {
80             Console.WriteLine("你好我叫{0},性别{1},年龄{2},学号是{3}", name, sex, age, sNo);
81         }
82     }

 

 

 

 问题:创建构造函数的时候 是用 this.name=name  还是  this.Name=name;

1 public Student(string name, string sex)     //创建2个参数的构造函数
2         {
3             //this指前类的对象
4             this.name = name;
5             this.sex = sex;
6         }

 //问题解答:如果只是简单的赋值使用字段和属性都可以.

      推荐使用 属性赋值,这样的话可以屏蔽无效值,不用担心程序跑的慢 (因为如果C#编译器检测到属性简单赋值 会自动替换成字段赋值的)

posted on 2013-05-09 01:43  星星daddy  阅读(583)  评论(2编辑  收藏  举报