C#相关程序设计.docx
相关程序设计、实现个Window窗体应用程序,可以实现画圆、计算、画五环与填充颜色的功能代码部分创建一个新类,名叫DrawPic.csusing System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Text;namespace CaseOlclass DrawPic(#region 属性字段坐标值private int x;public int X(get return x;set if (value <= 0 | value >= 300)x = 150;elsex = value;)private int y;public int Y(get return y;set(if (value < 100 | value > 130)y = 100;elsey = value;)字段宽高private int p_width;public int P_widthget return p_wi出h;setif (value <=10 | value >= 380)p_width - 200;elsep_width = value;)private int p_height;public int P_height(get return p_height;set(if (value <= 10 | value >= 160)p_height = 200;elsep_height = value;)/结构颜色Color c_color;const double pi = 3.14F;#endregion#region构造函数public DrawPic()()III <summary>/指定坐标和寛高/ </summary>III < pa ram name="x">x 坐标值</param>III <param name="y">y 坐标值</param>III <param name="pwidth">宽度</param>III < pa ram namepheighf'>咼度 </param>public DrawPic(string X,string Y,string P_width,stringP_height)(this.X = int.Parse(X);this.Y = int.Parse(Y);this.P_width = int.Parse(P_width);this.P_height = int.Parse(P_height);)III <summary>Ill指定坐标和宽高构造函数重载III </summary>/ < pa ram name="x">x 坐标值</param>/ <param name="y">y 坐标值</param>/ <param namepwi出h">宽度</param>III < pa ram name="pheighf'> 咼度 </param>/ < pa ram namecolors”>颜色 </param>public DrawPic(string X, string Y, string P_width, stringP_height, Color colors)(this.X = int.Parse(X);this.Y = int.Parse(Y);this.P_width = int.Parse(P_width);this.P_height = int.Parse(P_height);this.c_color = colors;)#endregionIII <summary>III实现画圆III </summary>III < pa ram namef">所需画圆的窗体</param>public void DrawCircle(System.Windows.Forms.Form f)在窗体上绘制个画图图面(画布) Graphics g = f.CreateGraphics();创造个画笔指定画笔颜色及画笔宽度Pen pen = new Pen(Color.Black, 3);/指定画出的图形质量使用消除锯齿 g.SmoothingModeSystem.Drawing. Drawing2D.SmoothingMode. AntiAlias;/使用画笔画圆g.DrawEllipse(pen,newRectangle(x,y,p_width,p_height);/释放画布 g.Dispose();/释放画笔 pen.Dispose();)public void FillColor(System.Windows.Forms.Form f) (Graphics g = f.CreateGraphics();Pen pen = new Pen(Color.Black, 3);g.SmoothingModeSystem.Drawing. Drawing2D.SmoothingMode. AntiAlias;g.lnterpolationMode System.Drawing. Drawing2D.lnterpolationMode. High;定义个使用颜色的填充对象Brush b = new SolidBrush(c_color);/填充一个形状在固定的坐标上g.FillEllipse(b, x + 1.5F, y + 1.5F, p_height - 3, p_wi出h - 3);g.Dispose();pen.Dispose();)public string getResult( int d)(double c = pi * d;double s = pi * (d / 2) * (d / 2);return string.Format("当前圆的周长是0:F2,面积是 1:F2!", c, s);)二、关于属性的使用创建一Window窗体应用程序例子:学生年龄输入合法性的判断(成功实现)1、关于Form1.cs查看代码可得:using System;using System.Collections.Generic;using System.ComponentModel;using Sy stem. Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Case02(public partial class Forml : Form(public Forml ()(lnitializeComponent();)private void btnMsg_Click(object sender, EventArgs e)(student myStudent = new student();myStudent.Age = int.Parse(txtAge.Text.Trim();MessageBox.Show(stri ng. Format("年龄是:0",myStudent.Age.ToString(),"显示年龄",MessageBoxButtons.OK, MessageBoxIcon. Information);/myStudent.Name = "zane"/string grade = myStudent.Grade;private void btnNo_Click(object sender, EventArgs e)MessageBox.Show("该用户的今年、t" + txtAge.Text + "T岁","显示年龄", MessageBoxButtons.OK,MessageBoxIcon. Information);)2、添加类 student.esusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Case02 (class studentprivate int age;public int Ageget return age;set(if (value > 0 && value <110)(age = value;)elseage = 18;)private string name;III <summary>III只读/ </summary>public string Nameget return name;)private string grade;III <summary>III只写III </summary>public string Grade(set grade = value;)三、参数的值传递(使用ref与。ut进行)自定义计算税后资事例:资计税的方法为:低于等于3500不计税,超出3500的部分按10%缴税查看form.cs的代码加以编写using System;using System.Collections.Generic;using System.ComponentModel;using Sy stem. Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Case03(public partial class Forml : Form(public Forml ()(lnitializeComponent();private void btnAccount_Click(object sender, EventArgs e) (int pay = int.Parse(txtPay.Text.Trim();double result = 0.00F;getResult(ref pay, out result);MessageBox.Show(string.Format("您的工资总额是:0n超出起征点1 :F2元'n应缴纳2:F2元个人所得税 ",txtPay.Text.Trim(),pay,result),"税 率 计 算",MessageBoxButtons.OK, MessageBoxIcon.Information);private void getResult(ref int pay, out double result)pay -= 3500;if (pay < 1500)(result = 0.00F;)else if (pay >= 1500 && pay < 4500)(result = pay * 0.1F;)else if (pay >= 4500 && pay < 9000)(result = pay * 0.2F;)else if (pay >= 9000 && pay < 35000)(result = pay * 0.25F;)else if (pay >= 35000 && pay < 55000) result = pay * 0.3F;)else if (pay >= 55000 && pay < 80000)(result = pay * 0.35F;)else(result = pay * 0.45F;)四、构造函数的使用应先添加Window窗体,代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using Sy stem. Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Case04public partial class MainForm : Form(public MainForm()lnitializeComponent();)private void btnExit_Click(object sender, EventArgs e)(this.Close();)private void btnTestStudentClass_Click(object sender, EventArgs e)(/Student zhang = new Student();/zhang.Name ="张靓靓";/zhang. Age = 20;/zhang. Hobby ="唱歌歌";Student scofield = new Student("Scofield", 28,"越狱狱)Student zhang = new Student("张靓靓、 20,"唱歌歌");Student jay = new Student("周杰杰",21,"耍双节棍棍 ");/Student scofield = new Student("Scofield");scofield.SayHi();zhang.SayHi();jay.SayHi();)事例:学生的自我介绍,代码如下:Student.cs 代码using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;namespace Case04class Studentpublic Student() public Student(string name)(this.Name = name;)public Student(string name, int age, string hobby)(this.Name = name;this.Age = age;this.Hobby = hobby;)/ <summary>III姓名III </summary>private string name;public string Nameget return name;set name = value;Ill <summary>/年龄/ </summary>private int age;public int Ageget return age;set(属性是聪明的字段if (value > 0 && value < 100)(age = value;)else(age = 18;)/ <summary>/Z爱好Ill </summary>private string hobby;public string Hobby(get return hobby;set hobby = value;)public void SayHi()(string message;message = string.Format("大家好,我是0同学,今年1岁了,我喜欢2 ",name, this.age, this.hobby);MessageBox.Show(message);)五、应先添加Windows图体(MainForm.es査看代码并进行编辑)使用构造函数实例化1、StriictStudent.cs 的代码如下using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;namespace CaseStructpublic enum Genders(Male, Female)结构版Studentstruct StructStudent(public string Name;public Genders Gender;public int Age;public string Hobby;public int Popularity;public StructStudent(string name, Genders gender, int age, string hobby): this(name, gender, age, hobby, 100) public StructStudent(string name, Genders gender, int age, string hobby, int popularity)(this.Name = name;this.Gender = gender;this.Age = age;this.Hobby = hobby;this.Popularity = popularity;)public void SayHi()(string message;message = string.Format("大家好,我是0同学,今 年1岁了,我喜欢2。我的人气值高达3 !",this.Name, this.Age, this.Hobby, this.Popularity);MessageBox.Show(message);)2、MainForm.es 代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using Sy stem. Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace CaseStruct(public partial class MainForm : Formpublic MainForm()(lnitializeComponent();)private void btnExit_Click(object sender, EventArgs e)(this.Close();) private void btnTest_Click(object sender, EventArgs e)不使用new/TestStruct();/使用newTestStructNew();)private void TestStruct()(StructStudent myStu;my Stu. Age = 20;myStu.Gender = Genders.Female;myStu.Hobby ="唱歌歌";myStu.Name ="张靓靓";myStu.Popularity = 100;myStu.SayHi();)private void TestStructNew()(StructStudent myStu = new StructStudent("张靓靓", Genders.Female, 20,"唱歌歌",100);myStu.SayHi();)六、mySchoo! 类使用索引器知识点1、MainForm.cs的代码入下:using System;using System.Collections.Generic;using System.ComponentModel;using Sy stem. Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace MySchoolpublic partial class MainForm : Form(public MainForm()(lnitializeComponent();)private void btnExit_Click(object sender, EventArgs e)this.Close();)/测试入口private void btnTestStudentClass_Click(object sender,Eve nt Args e)(/TestValueReference();TestArrayParameter();/Testi ndexer();)/值类型和引用类型参数演示private void TestValueReference()(传递引用类型参数Student scofield = new Studentf'Scofield", Genders.Male, 28,”越狱狱;scofield.SayHi();Vote(ref scofield);scofield.SayHi();/传递值类型参数/StructStudentscofieldnewStructStudentf'Scofield", Genders.Male, 28,”越狱狱/scofield.SayHi();/Vote (ref scofield);/scofield.SayHi();)/数组参数演示private void TestArrayParameter()(int odd = 1,3, 5;PrintArray(odd);ChangeToEven(odd);PrintArray(odd);)索引器演示private static void Testindexer()(/采用数组属性的方式/MyClassl myClassl = new MyClass1("T01");/myClassl .Students2.SayHi();myClass1.Students”周杰杰".SayHi(); 编译出采用索引器的方式MyClass myClass = new MyClass("T01");myClass.Students2.SayHi();myClass.Students周杰杰”.SayHi();)/投票每次投票增加人气值1private void Vote(ref Student stu)(stu.Popularity+;)/投票每次投票增加人气值1private void Vote(ref StructStudent stu)(stu.Popularity+;)private void ChangeToEven(int arr)(for (int i = 0; i < arr.Length; i+)(arri = i * 2;)private void PrintArray(int arr)for (int i = 0; i < arr.Length; i+)Console.WriteLine("arr0=1i, arri);)2、MyClass.esusing System;using System.Collections.Generic;using System.Text;namespace MySchool(III <summary>III班级类/ </summary>class MyClasspublic MyClass(string name)this.name = name;this.students = new Students();)班级名称private string name;public string Name(get return name;set name = value;学员集合private Students students;internal Students Studentsget return students;set students = value;3、MyClassl .csusing System;using System.Collections.Generic;using System.Text;namespace MySchool(class MyClassl(public MyClassl (string name)(this.name = name;this.students = new Student3;studentsO = new Student("Scofield", Genders.Male, 28,"越狱狱;students1 = new Student("张靓靓",Genders.Female, 20,"唱歌歌”);students2 = new Student("周杰杰",Genders.Male, 21,"耍双节棍棍"); )班级名称private string name;public string Nameget return name;set name = value;)/学员集合private StudentQ students;public Student Students(get return students;set students = value;)4、StructStudent.esusing System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;namespace MySchool结构版Studentstruct StructStudent public string Name;public Genders Gender;public int Age;public string Hobby;public int Popularity;public StructStudent(string name, Genders gender, int age, string hobby): this(name, gender, age, hobby, 100) public StructStudent(string name, Genders gender, int age, string hobby, int popularity)(this.Name = name;this.Gender = gender;this.Age = age;this.Hobby = hobby;this.Popularity = popularity;)public void SayHi()string message;message = string.FormatC,大家好,我是0同学,今 年1岁了,我喜欢2。我的人气值高达3 this.Name, this.Age, this.Hobby, this.Popularity );MessageBox.Show(message);)5、Student.esusing System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;namespace MySchool public enum Genders(Male, Female 类版 Studentclass Studentpublic Student。: this("张靓靓",Genders.Female, 20,“唱歌歌",100) public Student(string name) : this(name, Genders.Male,20,"打篮球",10) public Student(string name, Genders gender, int age,string hobby): this(name, gender, age, hobby, 100) public Student(string name, Genders gender, int age,string hobby, int popularity)this.Name = name;this.Gender = gender;this.Age = age;this.Hobby = hobby;this.Popularity = popularity;III <summary>III姓名III </summary> private string name;public string Nameget return name;set name = value;)III <summary>/性别/ </summary>private Genders gender; public Genders Gender (get return gender; set gender = value;)/ <summary>III年龄/ </summary> private int age; public int Age (get return age; set(属性是聪明的字段if (value > 0 && value < 100)age = value;)elseage = 18;)人气指数private int popularity;public int Popularity(get return popularity;set popularity = value;)III <summary>/Z爱好/ </summary>private string hobby;get return hobby;set hobby = value;)public void SayHi()(string message;message = string. Format("大家好,我是0同学,今 年1岁了,我喜欢2。我的人气值高达3 !'*, this.name, this.age, this.hobby,this.popularity );MessageBox.Show(message);)6、Students.esusing System;using System.Collections.Generic;using System.Text;namespace MySchoolclass Students private StudentQ students = new Student3;public Students()(studentsO = new Student("Scofield", Genders.Male, 28,"越狱狱students1 = new Student("张靓靓",Genders.Female, 20,"唱歌歌");students2 = new Student("周杰杰",Genders.Male, 21,"耍双节棍棍");)/基本索引器根据数组下标查找学员public Student thisint index(get return studentsindex;)与Java中的getter方法类比 证明方法可以返回一个 类型/public Student GetStudent(int index)/ return studentsindex;/)重载的索引器 根据姓名查找学员public Student thisstring name(get(int i;bool found = false;for (i = 0; i < students.Length; i+)(if (studentsi.Name = name) (found = true;break;)if (found)(return studentsi; elsereturn null;)七、string的相关应用事例:stringMethod发送电子邮件的相关代码1、CheckMail.csusing System;using System.Collections.Generic;u