日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

当你感到学习困难的时候,你在走上坡路!

發布時間:2024/9/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 当你感到学习困难的时候,你在走上坡路! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

GIT地址https://github.com/MinChanDu
GIT用戶名MinChanDu
學號后五位62305
博客地址https://www.cnblogs.com/Mchandu/
作業鏈接https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793

一、

VS安裝及環境配置問題:之前學習C#的時候就已經安裝過了,除了使用反應慢了點沒有什么問題。當時初次安裝的時候,安裝完畢過后出現了路徑不對,打開錯誤的問題,又重新卸載干凈后,在選擇路徑的時候有留意過,解決了。

二、

?代碼設計思路:(PS:本人把之前學的所有東西都忘了,在完成本次作業之前,偷偷摸摸把前知識學習了,才動了手,哭哭)

(1)生成四則運算肯定是要選取隨機數,采用了Random()函數

問題:測試生成數時發現數字重復率很大

解決:百度c#隨機數生成不重復?

參考博客主文章:http://www.cnblogs.com/huangfr/archive/2012/03/27/2420464.html(博客是個好東西,你可以站在別人的肩膀上)

明白了,去重可以設置時間種子,設計檢驗是否生成的隨機數有重復的函數(產生隨機數放在數組里面),部分代碼如下圖:

?

public int getNum(int[] arrNum, int tmp, int minNum, int maxNum, Random ra){int n = 0;while (n <= arrNum.Length - 1){if (arrNum[n] == tmp) //利用循環判斷是否有重復 {tmp = ra.Next(minNum, maxNum); //重新隨機獲取。getNum(arrNum, tmp, minNum, maxNum, ra);//遞歸:如果取出來的數字和已取得的數字有重復就重新隨機獲取。 }n++;}return tmp;}public int[] getRandomNum(int num, int minNum, int maxNum){Random ra = new Random(unchecked((int)DateTime.Now.Ticks));int[] arrNum = new int[num];int tmp = 0;for (int i = 0; i <= num - 1; i++){tmp = ra.Next(minNum, maxNum); //隨機取數arrNum[i] = getNum(arrNum, tmp, minNum, maxNum, ra); //取出值賦到數組中 }return arrNum;}

?

(2)四則運算符號也用隨機數除余抽取,主要問題在于非負和非整問題,于是本人限制了乘號和除號的位置只能在第一個(后面去取符號就不用判斷前面的結果,也沒有乘除法在后面的優先處理了,所以用switch循環處理符號只有在第一個switch中有’*/’),至于處理產生負數的問題,本人用變量存儲了每一步結果,遇到減號需要判斷大小。部分代碼如下(以生成只有兩個運算符的算式為例子):

?

public void Two_op(){int p, t;int[] arr = getRandomNum(5, 1, 100); //從1至100中取出5個互不相同的隨機數,其中4,5決定操作符int[] b = new int[1];//存儲每次操作符后的結果char[] c = new char[2];//存儲確定的操作符string d1; //存儲算式及結果,后續輸入到文件中p = arr[3] % 3;switch (p){case 0:b[0] = arr[0] + arr[1];c[0] = '+';break;case 1:if (arr[0] < arr[1])//排除負數結果,用大數減去小數 {t = arr[0];arr[0] = arr[1];arr[1] = arr[0];}b[0] = arr[0] - arr[1];c[0] = '-';break;case 2:if (arr[0] % arr[1] == 0)//判斷m是否可以整除n,可以就打印除法,否則做乘法 {b[0] = arr[0] / arr[1];c[0] = '/';}else{b[0] = arr[0] * arr[1];c[0] = '*';}break;default:break;}p = arr[4] % 2;//第二個操作符switch (p){case 0:c[1] = '+';b[0] += arr[2];break;case 1:if (b[0] < arr[2])//排除負數結果 {c[1] = '+';b[0] += arr[2];}else{c[1] = '-';b[0] -= arr[2];}break;default:break;}Console.WriteLine("{0}{1}{2}{3}{4}=", arr[0], c[0], arr[1], c[1], arr[2]);//打印算式d1 = Convert.ToString(arr[0]) + Convert.ToString(c[0]) + Convert.ToString(arr[1]) + Convert.ToString(c[1]) + Convert.ToString(arr[2]) + "=" + Convert.ToString(b[0]);PutFile(d1);} public void Two_op(){int p, t;int[] arr = getRandomNum(5, 1, 100); //從1至100中取出5個互不相同的隨機數,其中4,5決定操作符int[] b = new int[1];//存儲每次操作符后的結果char[] c = new char[2];//存儲確定的操作符string d1; //存儲算式及結果,后續輸入到文件中p = arr[3] % 3;switch (p){case 0:b[0] = arr[0] + arr[1];c[0] = '+';break;case 1:if (arr[0] < arr[1])//排除負數結果,用大數減去小數 {t = arr[0];arr[0] = arr[1];arr[1] = arr[0];}b[0] = arr[0] - arr[1];c[0] = '-';break;case 2:if (arr[0] % arr[1] == 0)//判斷m是否可以整除n,可以就打印除法,否則做乘法 {b[0] = arr[0] / arr[1];c[0] = '/';}else{b[0] = arr[0] * arr[1];c[0] = '*';}break;default:break;}p = arr[4] % 2;//第二個操作符switch (p){case 0:c[1] = '+';b[0] += arr[2];break;case 1:if (b[0] < arr[2])//排除負數結果 {c[1] = '+';b[0] += arr[2];}else{c[1] = '-';b[0] -= arr[2];}break;default:break;}Console.WriteLine("{0}{1}{2}{3}{4}=", arr[0], c[0], arr[1], c[1], arr[2]);//打印算式d1 = Convert.ToString(arr[0]) + Convert.ToString(c[0]) + Convert.ToString(arr[1]) + Convert.ToString(c[1]) + Convert.ToString(arr[2]) + "=" + Convert.ToString(b[0]);PutFile(d1);}

?

(3)每一步的數字和符號轉換成字符串存在變量的d1中,用輸入文件中,函數代碼如下:

public void PutFile(string x)//將算式打印到文件中 {string path = @"D:\subject.txt";FileInfo fileInfo = new FileInfo(path);StreamWriter sw = fileInfo.AppendText();sw.WriteLine(x);sw.Close();}

?

(4)主函數用于接收題目個數,代碼如下:

?

static void Main(string[] args){Operation A = new Operation();//新建生成算式對象int n, x, y, i, j;Console.WriteLine("請輸入您想生成的四則運算題目個數:");n = Convert.ToInt32(Console.ReadLine());//題目個數x = n / 2;//生成的含有2個運算符的題目個數y = n - x;//生成的含有3個運算符的題目個數for (i = 0; i < x; i++){A.Two_op();//生成x個含有2個運算符的算式 }for (j = 0; j < y; j++){A.Third_op();//生成n-x個含有2個運算符的算式 }}

?

(5)結果運行截圖:(博客寫到這里我也是激動的,相信看客們,不止我一個人寫一點,就需要去查資料吧,就那個文件覆蓋問題,我也是掉了頭發的~)

?

?

?

?

三、

用Git克隆提交代碼:(前面注冊和阿超克隆不詳寫,史上使用GIT最慘博主)

容許本人說下經歷:先是安裝它,就十幾次,找不到文件,本人跑到圖書館git下載起了,VS不行,于是回到寢室,繼續git,蒼天啊,總算安裝起了。已經式深夜了,開始提交代碼,pushpush~(此處省略N次push),搞笑的是還有人問深夜不睡,心事?(不,心肌梗塞!)不詳細抱怨了,過程苦并快樂著,莫名覺得滿高大上的項目。(貢獻經驗,git提交問題處理參考:希望對git使用有問題的同學有所幫助哦~

鏈接一:https://www.cnblogs.com/jackchensir/p/8306448.html

鏈接二: https://blog.csdn.net/hanghangaidoudou/article/details/83501185)

最完美的一次push附上:

?

?

?

?

?

四、

單元測試和回歸測試:(這段比較有意思的就是斷點,可以詳細的看到每個參數信息,本人開始“啟動新項目”出錯,就是因為在單元測試里面點的,想運行原項目,就出錯了,后來關閉了測試通過的單元項目就好了)附上部分圖:

?

?

還有就是查看CPU占用,以前并不清楚代碼的背后,看到分析,還是感到神奇:

?

五、

總結:

  • 首先,本次作業花費時間最大的問題就在于git安裝,本人的電腦不能用git(找不到路徑文件),到圖書館機房的電閱室做的;
  • 隨機數的生成問題,雖然百度解決了問題,但是在運行結果中,還是可以看出會有相同的算式;
  • 非負,和非整問題,開始的思路是不滿足,就重新生成,還要判斷符號位置,覺得復雜,就采用了固定乘號除號只能生成在第一個;
  • 第一次做這種作業,有點難度,但是苦并快樂著,因為很充實,自己思考出來的解決方法,雖然仍然缺點很多,但是成就感很足;
  • 第一篇博客就有寫,重新認真,最然很晚提交作業,但是這次作業是用心完成的,缺點很多,但是對比以前的自己進步很大,每次作業后,都希望對自己的要求慢慢提升一些,埋頭苦干,只希望自己在上坡前進!
  • GIT真的是個新東西,之前有聽過,不愛學習,就沒有去管,通過這次作業了解還可以創建自己的代碼創庫,神奇!
  • 也希望看到這篇博客的同學加油吧,遇到困難,自暴自棄不是辦法,解決完了,你會發現自己還不錯!
  • 轉載于:https://www.cnblogs.com/Mchandu/p/10616674.html

    總結

    以上是生活随笔為你收集整理的当你感到学习困难的时候,你在走上坡路!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。