0505.Net 基础班第十七天(GDI绘图)

基础知识复习+练习(带*为选做)

以下练习题做的时候如果遇到不会做的,请跳过本题继续向后做。

  1. 编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来。判断依据如下:等级={优 (90~100分);良 (80~89分);中 (60~69分);差 (0~59分);}
  2. 编程输出九九乘法表。
  3. 定义长度50的数组,随机给数组赋值,并可以让用户输入一个数字n,按一行n个数输出数组  int[]  array = new int[50];     Random r = new Random();  r.Next();
  4. 编写一个函数,接收一个字符串,把用户输入的字符串中的第一个字母转换成小写然后返回(命名规范  骆驼命名)   name       s.SubString(0,1)      s.SubString(1);
  5. 编写一个函数,接收一个字符串,把用户输入的字符串中的第一个字母转换成大小然后返回(命名规范  帕斯卡)
  6. 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。扩展(*):不使用第三个变量如何交换?
  7. 用方法来实现:将上题封装一个方法来做。提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。(*)
  8. 请用户输入一个字符串,计算字符串中的字符个数,并输出。
  9. 用方法来实现:计算两个数的最大值。思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:params)。
  10. 用方法来实现:计算1-100之间的所有整数的和。
  11. 用方法来实现:计算1-100之间的所有奇数的和。
  12. 用方法来实现:判断一个给定的整数是否为“质数”。
  13. 用方法来实现:计算1-100之间的所有质数(素数)的和。
  14.  
  15. 用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。
  16. 用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。
  17. 请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。
  18. 为教师编写一个程序,该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后计算平均成绩。
  19. 有如下字符串:【"患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:请统计出该字符中“咳嗽”二字的出现次数,以及每次“咳嗽”出现的索引位置。
  20. 将字符串"  hello      world,你  好 世界   !    "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。
  21. 制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。效果如图:
                           
  22. 题目内容同上题,再增加一个显示姓“王”的同学的个数,此处不考虑复姓问题。效果如图:
  23. 请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。然后输出反转后的数组。不能用数组的Reverse()方法。
  24. 创建一个Person类,属性:姓名、性别、年龄;方法:SayHi() 。再创建一个Employee类继承Person类,扩展属性Salary,重写SayHi方法。

案例:使用WinForm窗体,制作一个简易计算器,默认为“请选择”。要求具有+、-、*、/功能,当用户点击“等于”按钮时,如果输入的为非数字则提示用户。效果如图:

  1. 编写代码说明什么是方法重载。要求:至少编写3个方法。

//方法名相同参数不同  (方法的重载)

 

练习1-3

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace 练习1_3
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //Console.WriteLine("请输入你的考试成绩");
 14             //int score = Convert.ToInt32(Console.ReadLine());
 15 
 16             //for (int i = 1; i <= 9; i++)
 17             //{
 18             //    for (int j = 1; j <=9 ; j++)
 19             //    {
 20             //        Console.Write("{0}*{1}={2}\t", i, j, i * j);
 21             //    }
 22             //    Console.WriteLine();
 23             //}
 24             //Console.ReadKey();
 25 
 26             //定义长度50的数组,随机给数组赋值,并可以让用户输入一个数字n,按一行n个数输出数组 
 27             //int[]  array = new int[50];     Random r = new Random();  r.Next();
 28             //int[] nums = new int[50];
 29             //Random r = new Random();
 30             //for (int i = 0; i < nums.Length; i++)
 31             //{
 32             //    int rNumber = r.Next(0, 10);
 33             //    nums[i] = rNumber;
 34             //}
 35             //Console.WriteLine("请输入一个数字");
 36             //int n = Convert.ToInt32(Console.ReadLine());
 37             //for (int i = 0; i < nums.Length; i++)
 38             //{
 39             //    Console.Write(nums[i]+"\t");
 40             //    if ((i + 1) % n == 0)
 41             //    {
 42             //        Console.WriteLine();
 43             //    }
 44             //}
 45             //Console.ReadKey();
 46 
 47             //编写一个函数,接收一个字符串,把用户输入的字符串中的第一个字母转换成小写然后返回(命名规范  骆驼命名) 
 48             //name       s.SubString(0,1)      s.SubString(1);
 49             //string s = "AAbcd";
 50             //string sNew = ProcessStr(s);
 51             //Console.WriteLine(sNew);
 52             //Console.ReadKey();
 53 
 54             int n1 = 10;
 55             int n2 = 20;
 56 
 57             //n1 = n1 - n2;//n1=-10 n2=20
 58             //n2 = n1 + n2;//n1=-10 n2=10
 59             //n1 = n2 - n1;//
 60             //int temp = n1;
 61             //n1 = n2;
 62             //n2 = temp;
 63             Change(ref n1, ref n2);
 64             Console.WriteLine(n1);
 65             Console.WriteLine(n2);
 66             Console.ReadKey();
 67         }
 68         public static void Change(ref int n1,ref  int n2)
 69         {
 70             int temp = n1;
 71             n1 = n2;
 72             n2 = temp;
 73         }
 74 
 75 
 76         public static string ProcessStr(string str)
 77         {
 78             string s = str.Substring(0, 1).ToLower();
 79             return s + str.Substring(1);
 80         }
 81 
 82         public static string GetLevel(int score)
 83         {
 84             string level = null;
 85             switch (score / 10)
 86             {
 87                 case 10:
 88                 case 9: level = "";
 89                     break;
 90                 case 8: level = "";
 91                     break;
 92                 case 7: level = "";
 93                     break;
 94                 case 6: level = "";
 95                     break;
 96                 default: level = "不及格";
 97                     break;
 98             }
 99             #region if else-if的写法
100             //if (score >= 90)
101             //{
102             //    level = "优";
103             //}
104             //else if (score >= 80)
105             //{
106             //    level = "良";
107             //}
108             //else if (score >= 70)
109             //{
110             //    level = "中";
111             //}
112             //else if (score >= 60)
113             //{
114             //    level = "差";
115             //}
116             //else
117             //{
118             //    level = "不及格";
119             //} 
120             #endregion
121             return level;
122         }
123     }
124 }
View Code

练习8-9

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 练习8_9
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             //请用户输入一个字符串,计算字符串中的字符个数,并输出。
14             //string s = "abcdef";
15             //Console.WriteLine(s.Length);
16             //Console.ReadKey();
17 
18             //用方法来实现:计算两个数的最大值。
19             //思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:params)。
20 
21             //Console.WriteLine("请输入第一个数字");
22             //int n1 = Convert.ToInt32(Console.ReadLine());
23             //Console.WriteLine("请输入第二个数字");
24             //int n2 = Convert.ToInt32(Console.ReadLine());
25             //int max = GetMax(n1, n2);
26             //Console.WriteLine(max);
27             int[] nums = { 1, 2, 3, 4, 5 };
28             int max = GetMax(1,2,3,4,5,6);
29             Console.WriteLine(max);
30             Console.ReadKey();
31         }
32 
33         public static int GetMax(params int[] nums)
34         {
35             int max = nums[0];
36             for (int i = 0; i < nums.Length; i++)
37             {
38                 if (nums[i] > max)
39                 {
40                     max = nums[i];
41                 }
42             }
43             return max;
44         }
45 
46 
47         public static int GetMax(int n1, int n2)
48         {
49             return n1 > n2 ? n1 : n2;
50         }
51     }
52 }
View Code

练习10-14

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 练习10_14
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             //while (true)
14             //{
15             //    Console.WriteLine("请输入一个数字");
16             //    int n = Convert.ToInt32(Console.ReadLine());
17             //    bool b = IsPrime(n);
18             //    Console.WriteLine(b);
19             //    Console.ReadKey();
20             //}
21             //用方法来实现:计算1-100之间的所有质数(素数)的和。
22             int sum = GetPrimeSum();
23             Console.WriteLine(sum);
24             Console.ReadKey();
25         }
26 
27         public static int GetPrimeSum()
28         {
29             int sum = 0;
30             for (int i = 2; i <= 100; i++)
31             {
32                 bool b = true;
33                 for (int j = 2; j < i; j++)
34                 {
35                     if (i % j == 0)
36                     {
37                         b = false;
38                         break;
39                     }
40                 }
41                 if (b)
42                 {
43                     sum += i;
44                 }
45             }
46             return sum;
47         }
48 
49 
50         public static bool IsPrime(int n)
51         {
52             if (n < 2)
53             {
54                 return false;
55             }
56             else//>=2
57             {
58                 for (int i = 2; i < n; i++)
59                 {
60                     if (n % i == 0)
61                     {
62                         return false;
63                     }
64                 }
65                 return true;
66             }
67         }
68         public static int GetSum()
69         {
70             int sum = 0;
71             for (int i =2; i < 101; i+=2)
72             {
73                 sum += i;
74             }
75             return sum;
76         }
77     }
78 }
View Code

练习15-18

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace 练习15_18
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。
 14             //string[] names = { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" };
 15             //string max = GetLongest(names);
 16             //Console.WriteLine(max);
 17             //Console.ReadKey();
 18 
 19 
 20             //用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。
 21             //要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。
 22 
 23             //  int[] numbers = { 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 };
 24             //  double avg = GetAvg(numbers);
 25             //  avg = Convert.ToDouble(avg.ToString("0.00"));
 26             //  Console.WriteLine(avg);
 27             ////  Console.WriteLine("{0:0.00}", avg);
 28             //  Console.ReadKey();
 29 
 30             ////请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。
 31             //int[] nums = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };
 32             //Array.Sort(nums);//升序
 33             //Array.Reverse(nums);//翻转
 34             //for (int i = 0; i < nums.Length - 1; i++)
 35             //{
 36             //    for (int j = 0; j < nums.Length-1-i; j++)
 37             //    {
 38             //        if (nums[j] > nums[j + 1])
 39             //        {
 40             //            int temp = nums[j];
 41             //            nums[j] = nums[j + 1];
 42             //            nums[j + 1] = temp;
 43             //        }
 44             //    }
 45             //}
 46 
 47             //for (int i = 0; i < nums.Length; i++)
 48             //{
 49             //    Console.WriteLine(nums[i]);
 50             //}
 51             // Console.ReadKey();
 52 
 53             //为教师编写一个程序,该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后计算平均成绩。
 54             //int[] nums = new int[30];
 55             //Random r = new Random();
 56             //for (int i = 0; i < nums.Length; i++)
 57             //{
 58             //    nums[i] = r.Next(1, 101);
 59             //}
 60 
 61 
 62             //double sum = 0;
 63             //for (int i = 0; i < nums.Length; i++)
 64             //{
 65             //    sum += nums[i];
 66             //}
 67             //double avg = sum / nums.Length;
 68             //avg = Convert.ToDouble(avg.ToString("0.00"));
 69             //Console.WriteLine(avg);
 70             //Console.ReadKey();
 71             //string[] s=new String;
 72 
 73 
 74         }
 75 
 76         public static double GetAvg(int[] nums)
 77         {
 78             double sum = 0;
 79             for (int i = 0; i < nums.Length; i++)
 80             {
 81                 sum += nums[i];
 82             }
 83             return sum / nums.Length;
 84         }
 85 
 86 
 87         public static string GetLongest(string[] names)
 88         {
 89             string max = names[0];
 90             for (int i = 0; i < names.Length; i++)
 91             {
 92                 if (names[i].Length > max.Length)
 93                 {
 94                     max = names[i];
 95                 }
 96             }
 97             return max;
 98         }
 99     }
100 }
View Code

练习19-22

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace 练习19_22
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //string str = "患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”";
 14             //int index = str.IndexOf("咳嗽");
 15             //int i = 1;
 16             //Console.WriteLine("第1次出现咳嗽的位置是{0}", index);
 17             //while (index != -1)
 18             //{
 19             //    i++;
 20             //    index = str.IndexOf("咳嗽", index + 1);
 21             //    if (index == -1)
 22             //    {
 23             //        break;
 24             //    }
 25             //    Console.WriteLine("第{0}次找到咳嗽的位置是{1}",i,index);
 26             //}
 27             //Console.ReadKey();
 28 
 29 
 30 
 31             //将字符串"  hello      world,你  好 世界   !    "
 32             //两端空格去掉,并且将其中的所有其他空格都替换成一个空格,
 33             //输出结果为:"hello world,你 好 世界 !"。
 34             //string s = "  hello      world,你  好 世界   !    ";
 35             //s = s.Trim();
 36             //string[] sNew = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 37 
 38             //string strNew = string.Join(" ", sNew);
 39             //Console.Write(strNew);
 40             //Console.ReadKey();
 41 
 42 
 43 
 44             //存储用户输入的姓名
 45             //List<string> list = new List<string>();
 46             //while (true)
 47             //{
 48             //    Console.WriteLine("请输入学员姓名,输入quit退出");
 49             //    string name = Console.ReadLine();
 50             //    if (name != "quit")
 51             //    {
 52             //        list.Add(name);
 53             //    }
 54             //    else
 55             //    {
 56             //        break;
 57             //    }
 58             //}
 59             //int i = 0;
 60             //Console.WriteLine("您刚才一共录入了{0}个人的成绩,分别是:",list.Count);
 61             //foreach (string item in list)
 62             //{
 63             //    if (item[0] == '王')
 64             //    {
 65             //        i++;
 66             //    }
 67             //    Console.WriteLine(item);
 68             //}
 69             //Console.WriteLine("姓王的同学的个数一共有{0}个",i);
 70             //Console.ReadKey();
 71 
 72 
 73 
 74             //请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。然后输出反转后的数组。不能用数组的Reverse()方法。
 75 
 76             //string[] names = { "中国", "美国", "巴西", "澳大利亚", "加拿大" };
 77             //for (int i = 0; i < names.Length / 2; i++)
 78             //{
 79             //    string temp = names[i];
 80             //    names[i] = names[names.Length - 1 - i];
 81             //    names[names.Length - 1 - i] = temp;
 82             //}
 83 
 84 
 85             //foreach (var item in names)
 86             //    Console.WriteLine(item);
 87             //if(...)
 88             //{.....}
 89 
 90             //创建一个Person类,属性:姓名、性别、年龄;方法:SayHi() 。
 91             //再创建一个Employee类继承Person类,扩展属性Salary,重写SayHi方法。
 92             Console.ReadKey();
 93         }
 94     }
 95 
 96     public class Person
 97     {
 98         public string Name
 99         {
100             get;
101             set;
102         }
103 
104         public char Gender
105         {
106             get;
107             set;
108         }
109 
110         public int Age
111         {
112             get;
113             set;
114         }
115 
116 
117         public virtual void SayHi()
118         {
119             Console.WriteLine("父类打招呼");
120         }
121     }
122 
123 
124     public class Employee : Person
125     {
126         public double Salary
127         {
128             get;
129             set;
130         }
131 
132         public override void SayHi()
133         {
134             Console.WriteLine("子类重写父类");
135         }
136     }
137 
138 }
View Code

练习25

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace 练习25
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20         private void Form1_Load(object sender, EventArgs e)
21         {
22             comboBox1.SelectedIndex = 0;
23         }
24 
25         private void button1_Click(object sender, EventArgs e)
26         {
27             try
28             {
29                 int n1 = Convert.ToInt32(textBox1.Text.Trim());
30                 int n2 = Convert.ToInt32(textBox2.Text.Trim());
31                 string oper = comboBox1.SelectedItem.ToString();
32                 switch (oper)
33                 {
34                     case "+": label1.Text = (n1 + n2).ToString();
35                         break;
36                     case "-": label1.Text = (n1 - n2).ToString();
37                         break;
38                     case "*": label1.Text = (n1 * n2).ToString();
39                         break;
40                     case "/": label1.Text = (n1 / n2).ToString();
41                         break;
42                     default: MessageBox.Show("请选择正确的操作符");
43                         break;
44                 }
45             }
46             catch
47             {
48                 MessageBox.Show("请输入正确的数字");
49             }
50         }
51     }
52 }
View Code
  1 namespace 练习25
  2 {
  3     partial class Form1
  4     {
  5         /// <summary>
  6         /// 必需的设计器变量。
  7         /// </summary>
  8         private System.ComponentModel.IContainer components = null;
  9 
 10         /// <summary>
 11         /// 清理所有正在使用的资源。
 12         /// </summary>
 13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 14         protected override void Dispose(bool disposing)
 15         {
 16             if (disposing && (components != null))
 17             {
 18                 components.Dispose();
 19             }
 20             base.Dispose(disposing);
 21         }
 22 
 23         #region Windows 窗体设计器生成的代码
 24 
 25         /// <summary>
 26         /// 设计器支持所需的方法 - 不要
 27         /// 使用代码编辑器修改此方法的内容。
 28         /// </summary>
 29         private void InitializeComponent()
 30         {
 31             this.textBox1 = new System.Windows.Forms.TextBox();
 32             this.textBox2 = new System.Windows.Forms.TextBox();
 33             this.comboBox1 = new System.Windows.Forms.ComboBox();
 34             this.button1 = new System.Windows.Forms.Button();
 35             this.label1 = new System.Windows.Forms.Label();
 36             this.SuspendLayout();
 37             // 
 38             // textBox1
 39             // 
 40             this.textBox1.Location = new System.Drawing.Point(37, 88);
 41             this.textBox1.Name = "textBox1";
 42             this.textBox1.Size = new System.Drawing.Size(100, 21);
 43             this.textBox1.TabIndex = 0;
 44             // 
 45             // textBox2
 46             // 
 47             this.textBox2.Location = new System.Drawing.Point(285, 88);
 48             this.textBox2.Name = "textBox2";
 49             this.textBox2.Size = new System.Drawing.Size(100, 21);
 50             this.textBox2.TabIndex = 1;
 51             // 
 52             // comboBox1
 53             // 
 54             this.comboBox1.FormattingEnabled = true;
 55             this.comboBox1.Items.AddRange(new object[] {
 56             "请选择操作符",
 57             "+",
 58             "-",
 59             "*",
 60             "/"});
 61             this.comboBox1.Location = new System.Drawing.Point(144, 88);
 62             this.comboBox1.Name = "comboBox1";
 63             this.comboBox1.Size = new System.Drawing.Size(121, 20);
 64             this.comboBox1.TabIndex = 2;
 65             // 
 66             // button1
 67             // 
 68             this.button1.Location = new System.Drawing.Point(392, 88);
 69             this.button1.Name = "button1";
 70             this.button1.Size = new System.Drawing.Size(75, 23);
 71             this.button1.TabIndex = 3;
 72             this.button1.Text = "=";
 73             this.button1.UseVisualStyleBackColor = true;
 74             this.button1.Click += new System.EventHandler(this.button1_Click);
 75             // 
 76             // label1
 77             // 
 78             this.label1.AutoSize = true;
 79             this.label1.Location = new System.Drawing.Point(489, 95);
 80             this.label1.Name = "label1";
 81             this.label1.Size = new System.Drawing.Size(41, 12);
 82             this.label1.TabIndex = 4;
 83             this.label1.Text = "label1";
 84             // 
 85             // Form1
 86             // 
 87             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
 88             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 89             this.ClientSize = new System.Drawing.Size(762, 433);
 90             this.Controls.Add(this.label1);
 91             this.Controls.Add(this.button1);
 92             this.Controls.Add(this.comboBox1);
 93             this.Controls.Add(this.textBox2);
 94             this.Controls.Add(this.textBox1);
 95             this.Name = "Form1";
 96             this.Text = "Form1";
 97             this.Load += new System.EventHandler(this.Form1_Load);
 98             this.ResumeLayout(false);
 99             this.PerformLayout();
100 
101         }
102 
103         #endregion
104 
105         private System.Windows.Forms.TextBox textBox1;
106         private System.Windows.Forms.TextBox textBox2;
107         private System.Windows.Forms.ComboBox comboBox1;
108         private System.Windows.Forms.Button button1;
109         private System.Windows.Forms.Label label1;
110     }
111 }
View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6 
 7 namespace 练习25
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }
View Code

使用GDI绘制简单的图形

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace 使用GDI绘制简单的图形
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20         private void Form1_Load(object sender, EventArgs e)
21         {
22             //一根笔 颜色  一张纸  两点 绘制直线的对象
23         }
24 
25         private void button1_Click(object sender, EventArgs e)
26         {
27             //创建GDI对象
28             Graphics g = this.CreateGraphics();// new Graphics();
29             //创建画笔对象
30             Pen pen = new Pen(Brushes.Red);
31             //创建两个点
32             Point p1 = new Point(30, 50);
33             Point p2 = new Point(250, 250);
34             g.DrawLine(pen, p1, p2);
35 
36         }
37         int i = 0;
38         private void Form1_Paint(object sender, PaintEventArgs e)
39         {
40             i++;
41             label1.Text = i.ToString();
42             Graphics g = this.CreateGraphics();// new Graphics();
43             //创建画笔对象
44             Pen pen = new Pen(Brushes.Red);
45             //创建两个点
46             Point p1 = new Point(30, 50);
47             Point p2 = new Point(250, 250);
48             g.DrawLine(pen, p1, p2);
49 
50         }
51 
52         private void button2_Click(object sender, EventArgs e)
53         {
54             Graphics g = this.CreateGraphics();
55             Pen pen=new Pen(Brushes.Yellow);
56             Size size=new System.Drawing.Size(80,80);
57             Rectangle rec=new Rectangle(new Point(50,50),size);
58             g.DrawRectangle(pen,rec);
59         }
60 
61         private void button3_Click(object sender, EventArgs e)
62         {
63             Graphics g = this.CreateGraphics();
64             Pen pen=new Pen(Brushes.Blue);
65             Size size=new System.Drawing.Size(180,180);
66             Rectangle rec=new Rectangle(new Point(150,150),size);
67             g.DrawPie(pen, rec, 60, 60);
68         }
69 
70         private void button4_Click(object sender, EventArgs e)
71         {
72             Graphics g = this.CreateGraphics();
73             g.DrawString("老赵是最帅的", new Font("宋体", 20, FontStyle.Underline), Brushes.Black, new Point(300, 300));
74         }
75     }
76 }
View Code
  1 namespace 使用GDI绘制简单的图形
  2 {
  3     partial class Form1
  4     {
  5         /// <summary>
  6         /// 必需的设计器变量。
  7         /// </summary>
  8         private System.ComponentModel.IContainer components = null;
  9 
 10         /// <summary>
 11         /// 清理所有正在使用的资源。
 12         /// </summary>
 13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 14         protected override void Dispose(bool disposing)
 15         {
 16             if (disposing && (components != null))
 17             {
 18                 components.Dispose();
 19             }
 20             base.Dispose(disposing);
 21         }
 22 
 23         #region Windows 窗体设计器生成的代码
 24 
 25         /// <summary>
 26         /// 设计器支持所需的方法 - 不要
 27         /// 使用代码编辑器修改此方法的内容。
 28         /// </summary>
 29         private void InitializeComponent()
 30         {
 31             this.button1 = new System.Windows.Forms.Button();
 32             this.label1 = new System.Windows.Forms.Label();
 33             this.button2 = new System.Windows.Forms.Button();
 34             this.button3 = new System.Windows.Forms.Button();
 35             this.button4 = new System.Windows.Forms.Button();
 36             this.SuspendLayout();
 37             // 
 38             // button1
 39             // 
 40             this.button1.Location = new System.Drawing.Point(367, 12);
 41             this.button1.Name = "button1";
 42             this.button1.Size = new System.Drawing.Size(145, 23);
 43             this.button1.TabIndex = 0;
 44             this.button1.Text = "绘制一条直线";
 45             this.button1.UseVisualStyleBackColor = true;
 46             this.button1.Click += new System.EventHandler(this.button1_Click);
 47             // 
 48             // label1
 49             // 
 50             this.label1.AutoSize = true;
 51             this.label1.Location = new System.Drawing.Point(418, 118);
 52             this.label1.Name = "label1";
 53             this.label1.Size = new System.Drawing.Size(41, 12);
 54             this.label1.TabIndex = 1;
 55             this.label1.Text = "label1";
 56             // 
 57             // button2
 58             // 
 59             this.button2.Location = new System.Drawing.Point(367, 170);
 60             this.button2.Name = "button2";
 61             this.button2.Size = new System.Drawing.Size(145, 23);
 62             this.button2.TabIndex = 2;
 63             this.button2.Text = "绘制一个矩形";
 64             this.button2.UseVisualStyleBackColor = true;
 65             this.button2.Click += new System.EventHandler(this.button2_Click);
 66             // 
 67             // button3
 68             // 
 69             this.button3.Location = new System.Drawing.Point(367, 240);
 70             this.button3.Name = "button3";
 71             this.button3.Size = new System.Drawing.Size(145, 23);
 72             this.button3.TabIndex = 3;
 73             this.button3.Text = "绘制一个扇形";
 74             this.button3.UseVisualStyleBackColor = true;
 75             this.button3.Click += new System.EventHandler(this.button3_Click);
 76             // 
 77             // button4
 78             // 
 79             this.button4.Location = new System.Drawing.Point(367, 139);
 80             this.button4.Name = "button4";
 81             this.button4.Size = new System.Drawing.Size(145, 23);
 82             this.button4.TabIndex = 4;
 83             this.button4.Text = "绘制一个文本";
 84             this.button4.UseVisualStyleBackColor = true;
 85             this.button4.Click += new System.EventHandler(this.button4_Click);
 86             // 
 87             // Form1
 88             // 
 89             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
 90             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 91             this.ClientSize = new System.Drawing.Size(564, 417);
 92             this.Controls.Add(this.button4);
 93             this.Controls.Add(this.button3);
 94             this.Controls.Add(this.button2);
 95             this.Controls.Add(this.label1);
 96             this.Controls.Add(this.button1);
 97             this.Name = "Form1";
 98             this.Text = "Form1";
 99             this.Load += new System.EventHandler(this.Form1_Load);
100             this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
101             this.ResumeLayout(false);
102             this.PerformLayout();
103 
104         }
105 
106         #endregion
107 
108         private System.Windows.Forms.Button button1;
109         private System.Windows.Forms.Label label1;
110         private System.Windows.Forms.Button button2;
111         private System.Windows.Forms.Button button3;
112         private System.Windows.Forms.Button button4;
113     }
114 }
View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6 
 7 namespace 使用GDI绘制简单的图形
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }
View Code

使用GDI绘制验证码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace 使用GDI绘制验证码
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20 
21         /// <summary>
22         /// 点击更换验证码
23         /// </summary>
24         /// <param name="sender"></param>
25         /// <param name="e"></param>
26         private void pictureBox1_Click(object sender, EventArgs e)
27         {
28             Random r = new Random();
29             string str = null;
30             for (int i = 0; i < 5; i++)
31             {
32                 int rNumber = r.Next(0, 10);
33                 str += rNumber;
34             }
35             //  MessageBox.Show(str);
36             //创建GDI对象
37             Bitmap bmp = new Bitmap(150, 40);
38             Graphics g = Graphics.FromImage(bmp);
39 
40             for (int i = 0; i < 5; i++)
41             {
42                 Point p = new Point(i * 20, 0);
43                 string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" };
44                 Color[] colors = { Color.Yellow, Color.Blue, Color.Black, Color.Red, Color.Green };
45                 g.DrawString(str[i].ToString(), new Font(fonts[r.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[r.Next(0, 5)]), p);
46             }
47 
48             for (int i = 0; i < 20; i++)
49             {
50                 Point p1=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
51                 Point p2=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
52                 g.DrawLine(new Pen(Brushes.Green), p1, p2);
53             }
54 
55             for (int i = 0; i < 500; i++)
56             {
57                 Point p=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
58                 bmp.SetPixel(p.X, p.Y, Color.Black);
59             }
60 
61 
62             //将图片镶嵌到PictureBox中
63             pictureBox1.Image = bmp;
64         }
65     }
66 }
View Code
 1 namespace 使用GDI绘制验证码
 2 {
 3     partial class Form1
 4     {
 5         /// <summary>
 6         /// 必需的设计器变量。
 7         /// </summary>
 8         private System.ComponentModel.IContainer components = null;
 9 
10         /// <summary>
11         /// 清理所有正在使用的资源。
12         /// </summary>
13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
14         protected override void Dispose(bool disposing)
15         {
16             if (disposing && (components != null))
17             {
18                 components.Dispose();
19             }
20             base.Dispose(disposing);
21         }
22 
23         #region Windows 窗体设计器生成的代码
24 
25         /// <summary>
26         /// 设计器支持所需的方法 - 不要
27         /// 使用代码编辑器修改此方法的内容。
28         /// </summary>
29         private void InitializeComponent()
30         {
31             this.pictureBox1 = new System.Windows.Forms.PictureBox();
32             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
33             this.SuspendLayout();
34             // 
35             // pictureBox1
36             // 
37             this.pictureBox1.Location = new System.Drawing.Point(140, 41);
38             this.pictureBox1.Name = "pictureBox1";
39             this.pictureBox1.Size = new System.Drawing.Size(439, 314);
40             this.pictureBox1.TabIndex = 0;
41             this.pictureBox1.TabStop = false;
42             this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
43             // 
44             // Form1
45             // 
46             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
47             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
48             this.ClientSize = new System.Drawing.Size(716, 448);
49             this.Controls.Add(this.pictureBox1);
50             this.Name = "Form1";
51             this.Text = "Form1";
52             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
53             this.ResumeLayout(false);
54 
55         }
56 
57         #endregion
58 
59         private System.Windows.Forms.PictureBox pictureBox1;
60     }
61 }
View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6 
 7 namespace 使用GDI绘制验证码
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }
View Code

 

posted on 2015-08-08 17:47  liuslayer  阅读(1092)  评论(0编辑  收藏  举报

导航