第二章
1、编写一个控制台程序,要求:
接受从控制台输入的姓名,如:张三
程序响应:你好,张三。
在代码中使用规范的注释,说明程序的功能
编译程序,并执行。
程序执行效果如下图:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { //接受从控制台输入的姓名,如:张三 Console.WriteLine("请输入姓名:"); //程序响应:你好,张三。 string name = Console.ReadLine(); //在代码中使用规范的注释,说明程序的功能 //编译程序,并执行。 Console.WriteLine("你好,"+name); } } }
第三章
1. 编写一个控制台程序,要求将字符串中的每个字符颠倒输出。
2. 编写一个控制台程序,要求去掉字符串中的所有空格。
3. 编写一个控制台程序,主要实现从字符串中分离文件路径、文件名及扩展名的功能。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { //1. 编写一个控制台程序,要求将字符串中的每个字符颠倒输出。 string str; str = "ABCDE"; Console.WriteLine(str); for (int i = str.Length - 1; i >= 0; i--) { Console.Write(str[i]); } Console.WriteLine(); //2. 编写一个控制台程序,要求去掉字符串中的所有空格。 string str2 = "as bn nh n b"; Console.WriteLine(str2); str2=str2.Replace(" ",""); Console.WriteLine(str2); //3. 编写一个控制台程序,主要实现从字符串中分离文件路径、文件名及扩展名的功能。 string path=@"F:\c#\qq.exe"; Console.WriteLine(path); string[] paths=path.Split('.'); Console.WriteLine("扩展名:"+paths[1]); paths=paths[0].Split('\\'); Console.WriteLine("文件名:"+paths[paths.Length-1]); Console.Write("路径:"); for(int i=0;i<paths.Length-1;i++) { Console.Write(paths[i]+@"\"); } } } }
第四章
1、编写一个能进行加减乘除四则运算的程序,要求:输入一个整数和一个单精度数,然后输入一个操作符号,计算这两个数的运算结果并输出。
2、编写一个控制台应用程序,输入本金p、利率r和存款年限y,输出y年后的本息总额。提示:y年后的本息总额为平p×(1+r)y
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { //1、编写一个能进行加减乘除四则运算的程序, //要求:输入一个整数和一个单精度数,然后输入一个操作符号,计算这两个数的运算结果并输出。 Console.WriteLine("请输入一个整数:"); int num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入一个单精度的数:"); float fl = (float)Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入运算符:"); char single = Convert.ToChar(Console.ReadLine()); switch (single) { case '+': Console.WriteLine(num+"+"+fl+"="+(num+fl)); break; case '-': Console.WriteLine(num + "-" + fl + "=" + (num - fl)); break; case '*': Console.WriteLine(num + "*" + fl + "=" + (num * fl)); break; default: Console.WriteLine(num + "/" + fl + "=" + (num / fl)); break; } //2、编写一个控制台应用程序,输入本金p、利率r和存款年限y, Console.WriteLine("输入本金p、利率r和存款年限y"); int p = Convert.ToInt32(Console.ReadLine()); int r= Convert.ToInt32(Console.ReadLine()); int y = Convert.ToInt32(Console.ReadLine()); //输出y年后的本息总额。 Console.WriteLine(y+"年后的本息总额:"+p*y*(1+r) ); //提示:y年后的本息总额为平p×(1+r)y } } }
第六章
1、声明一个int类型的一维数组,该数组包含10个元素;然后使用foreach语句遍历该数组中的元素。
2、创建一个控制台应用程序,声明一个int类型的一维数组,使用冒泡算法对数组中的元素从小到大进行排序,并输出结果。
3、创建一个控制台应用程序,首先将两个一维数组合并成一个新的一维数组,然后再将定义的两个维数组合并为一个新的二维数组。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { // 1、声明一个int类型的一维数组,该数组包含10个元素;然后使用foreach语句遍历该数组中的元素。 int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; foreach (int item in num) { Console.Write (item+" "); } Console.WriteLine(); //2、创建一个控制台应用程序,声明一个int类型的一维数组,使用冒泡算法对数组中的元素从小到大进行排序,并输出结果。 int[] num2 = new int[] { 1, 3, 2, 4, 2, 5, 3 }; Array.Sort(num2); foreach (int item in num2) { Console.Write (item+" "); } Console.WriteLine(); //3、创建一个控制台应用程序,首先将两个一维数组合并成一个新的一维数组, int[] num3= new int[num.Length+num2.Length]; for (int i = 0; i < num2.Length; i++) { num3[i] = num[i]; } for (int i = 0; i < num2.Length; i++) { num3[i+num.Length] = num2[i]; } Console.WriteLine("!!!!!!!!!!!!!!!!!!"); foreach (int i in num3) { Console.Write(i+" "); } Console.WriteLine(); //然后再将定义的两个维数组合并为一个新的二维数组。 int[,] nums1 = new int[2, 2] { {1,2},{3,4} }; int[,] nums2=new int[2,2]{{1,2},{3,4}}; int[,] nums3 = new int[2, 4] ; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { nums3[i, j] = nums1[i, j]; } } for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { nums3[i, j+2] = nums2[i, j]; } } Console.WriteLine("**************"); foreach (int item in nums3) { Console.Write(item + " "); } Console.WriteLine(); } } }
第十章
1、模拟ATM机进行账户余额查询。
提示
(1)编写账户类,字段:账户余额,方法:查询余额 、存款、取款
(2)编写测试类,实现存款、取款,并显示账户余额
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //1、模拟ATM机进行账户余额查询。 //(1)编写账户类,字段:账户余额,方法:查询余额 、存款、取款 class user { public int balance; public int searchb() { return balance; } public void put(int money) { balance = balance + money; } public void get(int money) { balance = balance - money; } public user() { this.balance = 100; } } //(2)编写测试类,实现存款、取款,并显示账户余额 class test { static void Main(string[] args) { user user1 = new user(); Console.WriteLine("1:存钱"); Console.WriteLine("2:取钱"); Console.WriteLine("3:查询余额"); int single = Convert.ToInt32(Console.ReadLine()); switch (single) { case 1: { Console.WriteLine("存储数量:"); int money = Convert.ToInt32(Console.ReadLine()); user1.put(money); Console.WriteLine("存储完成"); Console.WriteLine("您的余额:" + user1.searchb()); } break; case 2: { Console.WriteLine("取款金额:"); int money = Convert.ToInt32(Console.ReadLine()); user1.get(money); Console.WriteLine("取款完成"); Console.WriteLine("您的余额:" + user1.searchb()) ; } break; case 3: { Console.WriteLine("余额:"+ user1.searchb()); } break; default: Console.WriteLine("指令不正确!"); break; } } } }
3、使用面向对象的思想编写一个计算器,可以实现两个数的加、减、乘、除运算。提示:
编写Calculator类:
(1)定义成员变量为运算数1(num1)和运算数2(num2)
(2)实施成员方法“加”(add),“减”(minus),“乘”(multiple),“除”(divide)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //3、使用面向对象的思想编写一个计算器,可以实现两个数的加、减、乘、除运算。提示: //编写Calculator类: //(1)定义成员变量为运算数1(num1)和运算数2(num2) //(2)实施成员方法“加”(add),“减”(minus),“乘”(multiple),“除”(divide) class Calculator { public int num1; public int num2; public int add() { return num1 + num2; } public int minus() { return num1 - num2; } public int multiple() { return num1 * num2; } public double divide() { return (double)num1 / num2; } public Calculator(int num1, int num2) { this.num1=num1; this.num2=num2; } } class test { static void Main(string[] args) { Calculator ca = new Calculator(2, 3); Console.WriteLine(ca.num1+"+"+ca.num2+"="+ca.add()); Console.WriteLine(ca.num1 + "-" + ca.num2 + "=" + ca.minus()); Console.WriteLine(ca.num1 + "*" + ca.num2 + "=" + ca.multiple()); Console.WriteLine(ca.num1 + "/" + ca.num2 + "=" + ca.divide()); } } }
4、设计一个类CalculateArea,重载其方法Area,以实现能够计算圆(1个参数)、长方形(正方形)(2个参数)、三角形的面积(3个参数);并编写测试类,显示计算的面积。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //4、设计一个类CalculateArea,重载其方法Area,以实现能够计算圆(1个参数)、长方形(正方形)(2个参数)、三角形的面积(3个参数); //并编写测试类,显示计算的面积。 //5、设计一个类MyClass,重载其方法Max,以实现能够比较2个整数或2个字符串的大小;并编写测试类,显示比较结果。 //6、在类中定义一个方法,实现计算不定数量整数的平方和。如:222+332+122=1717 class CalculateArea { public double Area(int r) { return Math.PI*r*r; } public double Area(int longs,int width) { return longs*width; } public double Area(int di,int h,int num3) { return 1 / 2.0 * di * h; } } class test { static void Main(string[] args) { CalculateArea ca= new CalculateArea(); Console.WriteLine("半径为1 的圆的面积为:"+ca.Area(1)); Console.WriteLine("长为1,宽为2的长方形的面积为:" + ca.Area(1,2)); Console.WriteLine("底为1,高为2的三角形的面积为:" + ca.Area(1,2,3)); } } }
5、设计一个类MyClass,重载其方法Max,以实现能够比较2个整数或2个字符串的大小;并编写测试类,显示比较结果。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //5、设计一个类MyClass,重载其方法Max,以实现能够比较2个整数或2个字符串的大小;并编写测试类,显示比较结果。 class MyClass { public int Max(int num1,int num2) { if (num1 > num2) { return 1; } else if (num1 < num2) { return -1; } else { return 0; } } public int Max(string num1, string num2) { return string.Compare(num1, num2); } } class test { static void Main(string[] args) { MyClass my = new MyClass(); Console.WriteLine(my.Max(1, 2)); Console.WriteLine(my.Max("aaa","bbb")); } } }
6、在类中定义一个方法,实现计算不定数量整数的平方和。如:222+332+122=1717
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //6、在类中定义一个方法,实现计算不定数量整数的平方和。如:222+332+122=1717 class cu { public int cunum(params int[] num) { int rel=0; for (int i = 0; i < num.Length; i++) { rel =rel+ num[i] * num[i]; } return rel; } } class test { static void Main(string[] args) { cu cu = new cu(); int[] num = new int[] { 1,2,3}; Console.WriteLine( cu.cunum(num)); } } }
2、假设某动物园管理员每天需要给他所负责饲养的狮子、猴子和鸽子喂食。我们用一个程序来模拟他喂食的过程。建立三个类Lion、Monkey、Pigeon分别代表三种动物。饲养员用一个Feeder类来表示。
(1) 由于三种动物吃的东西不一样,Feeder类必须拥有喂三种动物的公有方法。
(2) 狮子、猴子和鸽子都是动物,可以建立一个Animal抽象基类,让狮子、猴子和鸽子从其派生出来。
(3) 不同的动物吃不同的食物,所以在Animal类中定义一个抽象的Eat方法,由子类负责实 现此方法。
(4) 编写一个测试类,测试饲养员喂养上述3种动物。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { //(1) 由于三种动物吃的东西不一样,Feeder类必须拥有喂三种动物的公有方法。 //(2) 狮子、猴子和鸽子都是动物,可以建立一个Animal抽象基类,让狮子、猴子和鸽子从其派生出来。 //(3) 不同的动物吃不同的食物,所以在Animal类中定义一个抽象的Eat方法,由子类负责实 现此方法。 abstract class animal { public abstract void eat(); } class Lion:animal { public override void eat() { Console.WriteLine("狮子吃肉"); } } class Monkey:animal { public override void eat() { Console.WriteLine("猴子吃香蕉"); } } class Pigeon:animal { public override void eat() { Console.WriteLine("鸽子吃粮食"); } } class Feeder{ public void feed(animal an) { an.eat(); } } //(4) 编写一个测试类,测试饲养员喂养上述3种动物。 class test { static void Main(string[] args) { Feeder fd = new Feeder(); Pigeon pi= new Pigeon(); Monkey mo = new Monkey(); Lion li= new Lion(); fd.feed(pi); fd.feed(mo); fd.feed(li); } } }