java 輸入某年某月某日,判斷這一天是這一年的第幾天?_第1頁
java 輸入某年某月某日,判斷這一天是這一年的第幾天?_第2頁
java 輸入某年某月某日,判斷這一天是這一年的第幾天?_第3頁
java 輸入某年某月某日,判斷這一天是這一年的第幾天?_第4頁
java 輸入某年某月某日,判斷這一天是這一年的第幾天?_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、許樹炯Java語言課程作業(第一次)Java語言課程作業(第一次)題 目 第 2題 學 院 計算機學院 專 業 網絡工程 班 別 學 號 姓 名 2012年4月6日7一、 課程題目 輸入某年某月某日,判斷這一天是這一年的第幾天?二、題目分析與設計 1. 論述題目的需求。題目需要輸入一個日期(年、月、日),判斷日期是否正確,然后判斷這一天是這一年的第幾天,輸出結果2. 制定對應程序的功能,對各個功能及其分解成的子功能作出相應闡述,。輸入功能:輸入年月日數值并賦給相應的整型變量year,month,day;日期正誤功能:判斷year是否大于0,是否為閏年;判斷month是否大于0且小于等于12;判

2、斷day是否大于0且小于該月份的最大天數;重新輸入功能:如果日期有誤,返回上層重新輸入日期;日期計算功能:根據year,month,day判斷該日期使這一年的第幾天;輸出功能:輸出結果;3. 繪制程序功能層次圖和程序結構流程圖。功能層次圖輸入判斷天數判斷正誤輸出結構流程圖4. 注明所使用的開發環境(Eclipse、NetBeans,JBuilder),解析關鍵代碼部分的實現。開發環境:myeclipse 8.5關鍵代碼:if(year<1)a=true;/判斷年份是否出錯if(month>12 | month<1)b=true;/判斷月份是否出錯int dayOfMonth

3、= 31,28,31,30,31,30,31,31,30,31,30,31;/將每個月的日期寫在數組里if(IsLeapYear(year)dayOfMonth1=29;/如果是閏年的話2月天數變為29if(month>11 | month<1)i=true;elsetemporaryDay = dayOfMonthmonth-1;if(day<1 | day>temporaryDay) i = true;/判斷日期是否正確return i;if(year%4=0 && year%100!=0 | year%400=0)i=true;/判斷閏年與否for

4、(i=0;i<=month-2;i+)/計算這個月之前的總天數dayCount = dayCount + dayOfMonthi;三、測試分析1. 典型測試數據的構建,并且給出測試數據的預計結果測試數據預計結果2013 4 6第96天2013 4 33出錯重新輸入2013 13 6出錯重新輸入0 4 6出錯重新輸入2013 0 6出錯重新輸入2013 4 0出錯重新輸入2012 2 29 第60天2013 2 29出錯重新輸入2400 2 29第60天2300 2 29出錯重新輸入2. 本程序的測試情況,與預計結果作對比測試數據測試情況預計結果2013 4 6請輸入年月日,格式為 年 月

5、 日 2013 4 6您輸入的日期是 2013年4月6日這一天是這一年的第96天第96天2013 4 33請輸入年月日,格式為 年 月 日 2013 4 33輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日出錯重新輸入2013 13 6請輸入年月日,格式為 年 月 日 2013 13 6輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日出錯重新輸入0 4 6請輸入年月日,格式為 年 月 日 0 4 6輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日出錯重新輸入2013 0 6請輸入年月日,格式為 年 月 日 2013 0 6輸入出錯,請檢查后重新輸入請輸入年月日,格

6、式為 年 月 日 出錯重新輸入2013 4 0請輸入年月日,格式為 年 月 日 2013 4 0輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日 出錯重新輸入2012 2 29 請輸入年月日,格式為 年 月 日 2012 2 29您輸入的日期是 2012年2月29日這一天是這一年的第60天第60天2013 2 29請輸入年月日,格式為 年 月 日 2013 2 29輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日 出錯重新輸入2400 2 29請輸入年月日,格式為 年 月 日 2400 2 29您輸入的日期是 2400年2月29日這一天是這一年的第60天第60天2300 2

7、 29請輸入年月日,格式為 年 月 日 2300 2 29輸入出錯,請檢查后重新輸入請輸入年月日,格式為 年 月 日出錯重新輸入附錄:源代碼小四字體,1.5倍行距。必須帶適量注釋。著重考察編碼風格、程序結構層次的設計等。import java.io.IOException;import java.util.Scanner;/題目:輸入某年某月某日,判斷這一天是這一年的第幾天?class DayCounts public static void main(Stringargs) throws IOExceptionint dayOfMonth = 31,28,31,30,31,30,31,31,

8、30,31,30,31;/將每個月的日期寫在數組里int i=0;int year,month,day;/年、月、日int dayCount =0;/天數for(;i+)/判斷是否輸入有錯誤Scanner date = new Scanner(System.in);System.out.println("請輸入年月日,格式為 年 月 日 ");year = date.nextInt();month = date.nextInt();day = date.nextInt();if(IsWrong(year,month,day)System.out.println("

9、輸入出錯,請檢查后重新輸入");else break;System.out.println("您輸入的日期是" + " " + year + "年" + month + "月" + day + "日");if(IsLeapYear(year)dayOfMonth1=29;/判斷閏年后2月份變為29天for(i=0;i<=month-2;i+)/計算這個月之前的總天數dayCount = dayCount + dayOfMonthi;dayCount = dayCount + da

10、y;System.out.println("這一天是這一年的第" + dayCount +"天");private static boolean IsWrong(int year, int month, int day) /判斷年月日是否有錯 boolean a=false,b=false,c=false;if(year<1)a=true;if(month>12 | month<1)b=true;if(IsDayWrong(day,year,month)c=true;return (a | b | c);private static boolean IsDayWrong(int day, int year, int month) /判斷日期是否有錯boolean i=false;int temporaryDay;/臨時日期int dayOfMonth = 31,28,31,30,31,30,31,31,30,31,30,31;if(IsLeapYear(year)dayOfMonth1=29;if(month>11 | month<1)i=true;elsetemporaryDay = dayOfMonthmonth-1;if(day<1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論