C#WinForm基础编程
视频课:https://edu.51cto.com/course/20906.html
第一章:C#基础入门
单词:int, byte,short,long,float,double,char,boolean,string,date,form,console,write,writeLine,read,text,if,else,switch,name,parse
第一节:数据类型和变量
一、数据类型:
基本数据类型
int,byte,short,long
float,double
char
boolean
扩展数据类型
String,Date…所有定义的类型
Form1 f1=new Form1();
二、声明变量:
数据类型 变量名;int a;
数据类型 变量名=变量值; int a=9; String name=“张无忌”; “name”,“Form1”
字符串的值必须用双引号包裹:“ ”,注意无论什么变量一旦被双引号包裹,都将变成对应的字符串而失去原来的意义。
int a; a = 8; a = 78; string b = "东方不败"; char c = 'n'; double num = 56.5; bool d = true; bool e = false; int f; f = a; Console.WriteLine(a); Console.Read();//仅仅是利用读取方法让程序暂停,能够看到窗口结果。
变量赋值:
int a=9;
int b=a;
是将变量a中的值9复制一份赋值给另一个变量b,变量a中仍然保留原来的值9;
变量命名:
首字母必须是字母、$、下划线_,后面可以跟字母、下划线、数字,不能有特殊字符(&%^#),语言的保留字不能用来命名变量,string ,int,if ,else,true,false,double。。。
第二节:运算符:
一、算术运算符:
- / % + - * ++ –
f = a + num * 5; int u = a % 5; int a=9; Console.WriteLine(a++); Console.WriteLine(++a);
示例1: 4大碗面,8元一碗;2小碗面,5元一碗;3盘小菜,12每盘;问没人均摊多少?
int bigCount = 4, litCount = 2, caiCount = 3; double bigPrice = 8, litPrice = 5, caiPrice = 12; double sum = bigCount * bigPrice + litCount * litPrice + caiCount * caiPrice; double avg = sum / (bigCount + litCount); Console.WriteLine(avg); Console.Read();
二、比较运算符
== > < >= <= !=
int a = 7,b=6; bool test = a >= b; Console.Write(test); Console.Read();
C# 宿舍管理系统 https://edu.csdn.net/course/detail/27107
第二章:判断
第一节:if条件判断
if,switch
一、单个if-else
if(条件){
代码功能
}else{
另一种代码功能
}
示例1:输入一个学生成绩,如果大于等于90分,师傅说给你个武林秘籍,否则,面壁思过
Console.WriteLine("请输入令狐冲的Java成绩"); string sc = Console.ReadLine();//等待用户的窗口输入 double score = double.Parse(sc);//将字符串转化为double类型的值 if (score >= 90) { Console.WriteLine("奖励《葵花宝典》"); }else { Console.WriteLine("面壁思过"); } Console.ReadLine();
if(txt_num2.Text=="0"){ txt_result.Text="除数不能为0"; }
登录界面判断用户名和密码是否正确
string username = txt_username.Text; String pass = txt_pass.Text; if (username == "admin" && pass == "1234") { //MessageBox.Show("用户名密码正确", "成功提示"); FmMain fm=new FmMain();//创建主窗体 fm.Show();//显示主窗体 this.Hide();//让当前登录窗体隐藏 } else { MessageBox.Show("用户名或密码错误","提示"); }
退出系统:需要在主窗体的FormClosed事件中添加:Application.Exit();
二、多重if-else
语法:
if(条件1){ 语句1; }else if(条件2){ 语句2; }else{ 语句3; }
判断学生成绩的等级
Console.WriteLine("请输入令狐冲的Java成绩"); string sc = Console.ReadLine(); double score = double.Parse(sc); if (score >= 90) { Console.WriteLine("优秀"); } else if(score>=75) { Console.WriteLine("良好"); }else if (score >= 60) { Console.WriteLine("及格"); }else { Console.WriteLine("不及格"); } Console.Read();
string str=txt_score.Text; double score=double.Parse(str); if(score>=90){ lab_level.Text="优秀"; }else if(score>=75){ lab_level.Text="良好"; }else if(score>=60){ lab_level.Text="及格"; }else{ lab_level.Text="不及格"; }
二元表达式:
变量=表达式?结果1:结果2;
int b = 9; /* string a; if (b > 7) { a = "你好"; }else { a = "你渣"; }*/ string a = b>7?"你好":"你渣"; Console.WriteLine(a); Console.Read();
三、switch结构
语法:
switch(表达式){ case 常量1: 语句; break; case 常量2: 语句; break; default 语句 }
示例3:输入学生的考试名次,第一名:武林盟主,第二名:武当掌门,第三名:峨眉掌门,第四名:逐出师门
string mingci=txt_mingci.Text; switch(mingci){ case "第一名": MessageBox.Show("武林盟主","比赛结果"); break; case "第二名": MessageBox.Show("武当掌门","比赛结果"); break; case "第三名": MessageBox.Show("峨眉掌门","比赛结果"); break; default: MessageBox.Show("逐出师门","比赛结果"); break; }
示例4:输入年份和月份,判断该月有多少天
Console.WriteLine("请输入年份"); int y=int.Parse(Console.ReadLine()); Console.WriteLine("请输入月份"); int m=int.Parse(Console.ReadLine()); switch(m){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: Console.WriteLine("有31天","月天数计算"); break; case 4: case 5: case 9: case 11: Console.WriteLine("有30天","月天数计算"); break; case 2: if(y%4==0&&y%100!=0||y%400==0){ Console.WriteLine("有29天","月天数计算"); }else{ Console.WriteLine("有28天","月天数计算"); } break; default: Console.WriteLine("你输错了","警告"); break; }
四、强制类型转换:
int a=9;
double b=a;
double c=888.6;
int d=(int)c;//强制类型转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RwyEySc0-1672665634017)(assets\1545207092425.png)]
string h=“123”;
//int n=(int)h;//不同类型之间不能进行强制转换
int n=int.Parse(h);
double n=double.Parse(h);
类型转换的流向图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KcFU3Q7J-1672665634019)(assets\1545207180681.png)]
视频课:https://edu.csdn.net/course/detail/27107
第三章:循环
什么是循环?
条件:条件成立
循环的操作,
语法
while(条件){
循环操作
}
第一节:while循环
示例1:从1加到100
int i = 1,sum=0; while (i <= 100) { sum += i; i++; } Console.WriteLine(sum); Console.Read();
示例2:循环输入一组学生成绩,求总成绩,当输入成绩为-1时候停止输入。
double sum = 0,score = 0; while (score != -1) { Console.WriteLine("请输入学生成绩"); String sco=Console.ReadLine(); score = double.Parse(sco); if (score != -1) { sum += score; } } Console.WriteLine("学生总成绩是:"+sum);
示例2:循环输入一组学生成绩,求总成绩和平均成绩
double sum = 0,score = 0,i=0; while (score != -1) { Console.WriteLine("请输入学生成绩"); String sco=Console.ReadLine(); score = double.Parse(sco); if (score != -1) { sum += score; i++; } } Console.WriteLine("学生总成绩是:"+sum); Console.WriteLine("学生平均成绩是:"+sum/i);
第二节:do-while循环
语法:
do{
循环操作
}while(条件);
示例3:节目彩排
string ans = ""; do { Console.WriteLine("欧阳锋弹吉他"); Console.WriteLine("岳不群跳街舞"); Console.WriteLine("张无忌拉提琴"); Console.WriteLine("小尼姑行不行?"); ans = Console.ReadLine(); } while (ans == "不行"); Console.WriteLine("彩排结束");
第三节:for循环
语法:
for(变量的初始化 ; 条件判断 ; 变量的变化){
循环操作
}
示例4:从1+…+100
double sum = 0; for(int i=1;i<=100;i++) { sum += i; } Console.WriteLine("1+...+100="+sum);
示例5:实现以下效果
请输入一个数字: 6 0+6=6 1+5=6 2+4=6 3+3=6 4+2=6 5+1=6 6+0=6
Console.WriteLine("请输入一个数字"); int num = int.Parse(Console.ReadLine()); for(int i=0,j=num ;i<=num ; i++, j--) { Console.WriteLine(i+"+"+j+"="+num); }
第四节:continue和break
continue是继续进行下一次循环的意思,不管continue后面有多少语句都不再执行,而是回到循环条件,进行下一次循环。
示例:6:说数字游戏,输出1~100之间的数字,不能输出明7和暗7
for(int j = 1; j <= 100; j++) { if (j % 10 == 7 || j / 10 == 7 || j % 7 == 0) { continue; } Console.Write(j+"\t"); } Console.ReadLine();
break是结束循环,调到循环结尾,执行之后的代码。
练习:
1、输出从1~100之间能被3整除的数
2、输出从1~100之间的素数
3、输出9*9乘法表
5、猜数游戏,随机给出一个1~100之间的数,给5次机会,每次猜数后给出提示:大了还是小了,猜对后输出成功。获得随机数:
Random rand=new Random(); rand.Next(1,100);
6.编写程序,输出10000—30000中能同时被3、5、7、23整除的数及个数。
7.编写程序,求100—999中的“水仙花”数(也叫阿姆斯特朗数)及个数。(注:若3个数其各个位数字立方和等于该数本身,即为水仙花数,如153=1+125+27,则153是一个“水仙花”数。)
8.编写程序,求2—999中的同构数(也叫自守数)及其个数。(正整数n若是它平方数的尾部,则称n为同构数。例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。)
9.输出1—999中能被3整除且至少有位数字是5的所有整数及其个数。
10.从键盘输入两个正整数m和n,找出它们的最小公倍数。
11.输出Fibonacci数列1,1,2,3,5,8,13,…中前32项的值。
作业:讲解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6A7Ned7G-1672665634020)(E:\政通路\课堂笔记\S1\C#课堂笔记\assets\image-20200905091805558.png)]
思路:
不要背代码,第一步:观察九九乘法表有9行;有9列;
第一步能不能把九九乘法表的问题,给分解成先输出9行;
第四章:数组
定义:一组连续的内存空间,保存一组同类型的数据,数组有编号(下标)
第一节:数组的声明和遍历
数据类型[] 数组名称=new 数据类型[5];
数据类型[] 数组名称=new 数据类型[5]{数组的元素};
一、数组的声明和遍历
示例1:
int[] arr=new int[6]; string[] names=new string[4]{"王重阳","李逵","张无忌","张三丰"}; arr[0] = 6; // arr[6] = 88; 数组下标越界 //arr[2]="令狐冲"; 整型数组只能装整型值 //Console.WriteLine(names[5]); 数组下标越界 //names.Length 数组长度属性:Length for(int i = 0; i < names.Length; i++) //遍历数组中的每一个元素 { Console.WriteLine(names[i]); }
数组一旦创建完毕,它的长度是不能改变的,数组的下标从0开始。最大下标是数组的长度减一。
二、数组的比较大小
示例:2:求学生成绩的最高分(最低分、平均分)
double[] scores = new double[] { 89, 58, 99, 100, 110, 66, 95, 78, 45.6, 98.6, 88 }; double max = scores[0]; //让数组的第一个元素站到擂台上 for (int i = 1; i < scores.Length; i++) { if (scores[i] > max)//将数组中后面的元素依次和擂台上的数进行比较, { max = scores[i];//比擂台上数字大的站到擂台上 } } Console.WriteLine("学生的最高成绩是:"+max);
三、查找数组中的元素
示例3:查找指定的数值在数组中的位置
int[] arr = new int[] {4,6,8,9,2,11,33,46 }; Console.WriteLine("请输入要查找的数"); string str=Console.ReadLine(); int num = int.Parse(str); int index = -1; for(int i = 0; i < arr.Length; i++) { if (num == arr[i]) { index = i; break; } } if (index != -1) { Console.WriteLine("你要找的数字"+num+"在下标为"+index+"的位置"); }else { Console.WriteLine("没有找到你要的数"+num); }
C#WinForm基础编程(二)https://developer.aliyun.com/article/1433701