第二章
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); } } }