1.C#基礎思維導圖
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
通過對C#基礎知識的學習讓我對對C#有了一定的了解,在學習過程中也能應用所學的知識編寫一些簡單的代碼程序。
比如求和,求質數,九九乘法表,收益計算器,數組分析器等等。
---------------------------------------------------------------------------------------------------------------------------
數組分析器
namespace ConsoleApplication27
{
class Program
{
static void Main(string[] args)
{
#region 創建數組
Console.Write("請輸入數組的長度:");
int len = int.Parse(Console.ReadLine());
int[] numbers = new int[len];
for (int i = 0; i < numbers.Length; i++)
{
Console.Write("請輸入數組的第" + (i + 1) + "項:");
numbers[i] = int.Parse(Console.ReadLine());
}
#endregion
Console.Clear();
#region 升序排序
for (int i = 0; i < numbers.Length - 1; i++)
{
for (int j = i + 1; j < numbers.Length; j++)
{
if (numbers[i] > numbers[j])
{
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
#endregion
#region 輸出數組
Console.WriteLine("您輸入的數字排序後如下:");
for (int i = 0; i < numbers.Length; i++)
{
Console.Write(numbers[i] + " ");
}
Console.WriteLine();
#endregion
#region 尋找奇數
Console.WriteLine("其中,以下數字是奇數:");
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 2 != 0)
{
Console.Write(numbers[i] + " ");
}
}
Console.WriteLine();
#endregion
#region 尋找質數
bool isFind = false;
Console.WriteLine("以下數字是質數:");
for (int i = 0; i < numbers.Length; i++)
{
for (int j = 2; j < numbers[i]; j++)
{
if (numbers[i] % j == 0)
{
isFind = true;
break;
}
}
if (!isFind)
{
Console.Write(numbers[i] + " ");
}
}
#endregion
Console.ReadLine();
}}}
這個程序包含了數組的創建,數組的排列,奇數和質數的尋找。使用了if判斷,for循環等等知識,
在我們學到數組這一章時這個數組分析器包含了我們所學是一道很全面的題。
-------------------------------------------------------------------------------------------------------------------------
控制台日歷
class Program
{
static void Main(string[] args)
{
while (true)
{
#region 獲取正確的年份和月份
int year, month;
while (true)
{
Console.Write("請輸入年份(1900-2100):");
year = int.Parse(Console.ReadLine());
if (year > 2100 || year < 1900)
{
Console.Write("年份輸入錯誤,按回車鍵後重新輸入");
Console.ReadLine();
Console.Clear();
}
else
{
Console.Write("請輸入月份(1-12):");
month = int.Parse(Console.ReadLine());
if (month < 1 || month > 12)
{
Console.Write("月份輸入錯誤,按回車鍵後重新輸入");
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
}
#endregion
#region 獲得該年該月的所有日期包括前面的空白,保存到一個字符串集合dates中
List<string> dates = new List<string>();
#region 將空白加入到集合
//1.計算1900年 到 year-1 年,經過的天數
int crossDaysOfYear = 0;
for (int i = 1900; i < year; i++)
{
//循環變量i就代表的是某一年
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
crossDaysOfYear += 366;
}
else
{
crossDaysOfYear += 365;
}
}
//2. 在變量year這一年,從1月到month-1月經過的天數
int crossDaysOfMonth = 0;
for (int i = 1; i < month; i++)
{
//循環變量i,就是某一月
if (i == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
crossDaysOfMonth += 29; //閏二月
}
else
{
crossDaysOfMonth += 28;//普通二月
}
}
else if (i % 2 != 0 && i <= 7 || i % 2 == 0 && i >= 8)
{
crossDaysOfMonth += 31;//大月
}
else
{
crossDaysOfMonth += 30;//小月
}
}
int crossDays = crossDaysOfYear + crossDaysOfMonth;//經過的總天數
int dayOfWeek = crossDays % 7 + 1;//year-month-1 是星期幾
int space = dayOfWeek - 1; //前面的空格數量
for (int i = 0; i < space; i++)
{
dates.Add("");
}
#endregion
#region 將日期數字加入到集合
int days;
//計算year-month 這一月的天數
if (month == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
days = 29;//閏二月
}
else
{
days = 28;//普通二月
}
}
else if (month <= 7 && month % 2 != 0 || month > 7 && month % 2 == 0)
{
days = 31;//大月
}
else
{
days = 30;//小月
}
for (int i = 1; i <= days; i++)
{
dates.Add(i.ToString());
}
#endregion
#endregion
#region 輸出結果
Console.WriteLine("**************************************************");
Console.Write("一\t二\t三\t四\t五\t六\t日");
for (int i = 0; i < dates.Count; i++)
{
if (i % 7 == 0)
{
Console.WriteLine();
}
Console.Write(dates[i] + "\t");
}
Console.WriteLine();
Console.WriteLine("**************************************************");
#endregion
Console.Write("按回車鍵後繼續");
Console.ReadLine();
}
}
}控制台日歷相比之下不僅涵蓋了我們近幾天所學更加需要我們去思考是一道動手能力很強的題
做這道題需要清晰地思路,先要畫好這道題的流程圖。
其中的關鍵就是獲取年份正確的日期。
------------------------------------------------------------------------------------------------------------------------