電子萬年歷系統(tǒng)課程設計_第1頁
電子萬年歷系統(tǒng)課程設計_第2頁
電子萬年歷系統(tǒng)課程設計_第3頁
電子萬年歷系統(tǒng)課程設計_第4頁
電子萬年歷系統(tǒng)課程設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機學院信息管理與信息系統(tǒng)專業(yè)

《管理信息系統(tǒng)課程設計》報告

(2010/2011學年第一學期)

學生姓名:____________________________

學生班級:____________________________

學生學號:____________________________

指導教師:____________________________

2011年1月15日

目錄

第一章課程設計目的和要求..............................................1

1.1課程設計主要目的...............................................1

1.2本課程設計主要目標.............................................1

1.3課程設計要求...................................................1

第二章課程設計任務背景與內(nèi)容..........................................2

2.1任務背景介紹....................................................2

2.2任務內(nèi)容.......................................................2

第三章詳細設計說明....................................................3

3.1總體模塊圖.....................................................3

3.11程序設計組成框圖...............................................3

3.12程序流程圖.....................................................4

第四章程序運行及調(diào)試..................................................8

4.1調(diào)試與測試..................................................8

4.2分析及結(jié)論....................................................9

4.3程序運行調(diào)試圖...............................................10

第五章課程設計心得與體會.............................................13

附錄1參考文獻.......................................................14

附錄2程序...........................................................15

I

程序設計綜合課程設計

電子萬年歷系統(tǒng)

第一章課程設計目的和要求

1.1課程設計的目的

C++語言程序設計的主要目的是要求我們遵循軟件開發(fā)過程的基本規(guī)范,運用結(jié)

構(gòu)化程序設計的方法,按照課程設計的題目要求,分析、設計、編寫、調(diào)試和測試

C++語言程序及編寫設計報告。根據(jù)自己學習到的內(nèi)容,在設計的過程中充分的將老

師所教和課本固有充分發(fā)揮出來。使得理論和實踐聯(lián)系起來,同時也培養(yǎng)綜合運用

C++程序設計的素質(zhì)。培養(yǎng)用C++編寫程序的能力,和養(yǎng)成良好的編寫程序的習慣。

通過本次實踐學習,可以使自身對所學知識進一步消化,理解并掌握,鍛煉和

提高綜合運用所學知識解決實際問題的能力,熟悉編譯工具的使用方法和環(huán)境。

1.2課程設計的目標

本課程設計的目標:

1.鞏固和加深學生對C++語言課程的基本知識的理解和掌握;

2.掌握C++語言編程和程序調(diào)試的基本技能;

3.掌握利用C++語言進行軟件設計的方法;

4.提高書寫程序設計說明文檔的能力;

5.提高運用C++語言解決實際問題的能力。

1.3課程設計要求基本要求:

1.分析課程設計題目的要求;

2.對系統(tǒng)功能模塊進行分析,寫出詳細設計說明文檔;

3.編寫程序代碼,調(diào)試程序使其能正確運行;

4.設計完成的軟件要便于操作和使用;

5.設計完成后提交課程設計報告。

1

程序設計綜合課程設計

第二章課程設計任務內(nèi)容

2.1背景

隨著高科技時代的到來,人們越來越享受著電子信息技術(shù)給人生活帶來的便捷與

高效。人們也漸漸不能滿足于傳統(tǒng)的掛式日歷。傳統(tǒng)掛式日歷得使用方式較為繁瑣,

而且每天都要去手動翻頁。因此電子萬年歷漸漸地興起了。

2.2任務內(nèi)容

下面是本程序的具體功能要求:

1、輸入年(本程序要求年份為1990以上)月份檢驗輸入日期是否合法,如若正確顯

示本月的萬年歷

2、對該月的日期以萬年歷的形式顯示,其中包含本月的天數(shù)并且根據(jù)星期列表有序

的對日期進行排列

3、輸入本月的任意日期進行該天的星座查詢

4、顯示該天星座

2

程序設計綜合課程設計

第三章模版設計說明

3.1模塊

3.1.1程序設計組成框圖

圖1

3

程序設計綜合課程設計

3.1.2程序流程圖

開始

圖2

4

程序設計綜合課程設計

圖3

5

程序設計綜合課程設計

圖4

6

程序設計綜合課程設計

圖5

7

程序設計綜合課程設計

第四章程序運行及調(diào)試

4.1調(diào)試與測試

1.調(diào)試方法:

MicrosoftVisualC++6.0,先將各個功能函數(shù)的的內(nèi)容清空,只保留主函

數(shù)main(),然后編譯檢驗main()函數(shù)中是否有錯,如果沒有錯誤,再連接、運行。

確認main。函數(shù)一切無誤后,然后加入功能函數(shù)menu。函數(shù)與fl()函數(shù),由于menu。

函數(shù)比較簡單,所以與fl()函數(shù)一起進行調(diào)試,fl()函數(shù)中主要注意讀取文件,與

寫入文件,這都是二進制的形式。若menu()函數(shù)與fl()函數(shù)編譯、連接、運行沒

問題,繼續(xù)加入f2()函數(shù),就這樣的方法依次檢查調(diào)試f3()函數(shù)、f4()函數(shù)。當所

有的功能函數(shù)都加上且正確無誤時,就可以進入下一個環(huán)節(jié)一程序的測試。

2.測試方法:

運行程序,然后進入銷售管理系統(tǒng)的界面,在這里需要做的就是把自己當成

一個公司的程序使用者,來對該程序進行使用,看該程序有哪些方面用著不夠爽,

把這些問題依次整理出來,再對源程序進行修改,在這個過程中也需要對程序進

行調(diào)試,不過不必將各個功能函數(shù)的的內(nèi)容清空再進行如上述的調(diào)試方法,而是,

改一部份運行一次,看是否有無。

如fl()函數(shù)有誤,則先修改fl()函數(shù),一塊一塊的進行修改,就是遵循C++

語言的模塊化設計原理,若所有的都改過來了,且運行無誤,那就大功告成了。

3.在調(diào)試中遇到的問題:

在調(diào)試過程中,我們遇到諸多小問題,但都在我們共同討論后解決了。

(1)、問題:標點符號在輸入的時候,使用的是中文輸入法,這種錯誤一般都

難以發(fā)現(xiàn),讓修改的時候找不到目標。

解決方法:用“替換”。如果程序中的error很多,不管error是什么,將

標點替換成英文的標點。

(2)、問題:調(diào)試時,有的時候編譯后沒什么問題,就是在點擊連接link時出

現(xiàn)了錯誤。而且,這種錯誤讓我們不知道怎么修改。但是我們的程

序的確正確。

8

程序設計綜合課程設計

解決方法:將源程序保存(save),然后關(guān)掉MicrosoftVisualC++6.0,重

新啟動MicrosoftVisualC++6.0,

4.2分析及結(jié)論

1、在設計中我們實現(xiàn)了設計目標的所有內(nèi)容

即:1)、根據(jù)輸入的年月顯示日期顯示的形式。

2)、按照每月的天數(shù)進行計算,有序的按星期顯示日期

3)、輸入要查詢星座的日期

4)、輸出萬年歷以及星座

2、其中遇到了以下問題:

1)數(shù)據(jù)輸入文件的形式:

原本用“>>"以ASCLL碼的形式輸入.txt文件中,這樣對實現(xiàn)“數(shù)據(jù)的輸入

是否正確的判斷語句”的編寫很困難,而且ASCLL碼的形式輸入.txt文件保密性

差,不方便公司對文件的保密管理。

解決方案:

采用”>>”函數(shù)的二進制形式輸入.dat數(shù)據(jù)文件中解決了以上問題,使“數(shù)

據(jù)的輸入是否正確的判斷語句”

2)文件的創(chuàng)建方案及命名形式:

文件應在用戶計算數(shù)據(jù)時自動創(chuàng)建;文件創(chuàng)建時的擴展名.dat的添加困難。

解決方案:

用strcat(fname,".dat");將擴展名的.dat字符加到fname后面,令實現(xiàn)了文件的

命名,如1月的數(shù)據(jù)文件,在使用者輸入1時就實現(xiàn)了文件dat的創(chuàng)建。

3)輸入出錯的常見問題:

輸入時,cin()函數(shù)中出現(xiàn)非地址項,某變量未進行類型定義,以及語句末尾

缺少分號等常見的低等錯誤。

根據(jù)MicrosoftVisualC++6.0的錯誤提示(error)與警告(warning)回到源

程序中,逐一對錯誤或警告進行修改,每修改一條就編譯一次。

3、該程序的不足:

9

程序設計綜合課程設計

程序運行后界面有些單調(diào),簡單,不能達到賞心悅目的效果,作為展示大眾的萬年歷

應該花哨一些

4.3程序運行調(diào)試圖

運行電子萬年歷程序編碼,按任意鍵開始

輸入年份

C:\Windows\system32\Debug\eefaf.exe"|cz>11回1

睛輸入年份:

10

程序設計綜合課程設計

輸入月份。

顯示萬年歷,并且進入星座查詢

11

程序設計綜合課程設計

運行程序成功,編碼以及運行結(jié)果保存到計算機內(nèi)存。

"C:\Windows\system32\Debug\eefaf.exeICJIIBI|rf3w|

青輸入年份:

y1990

SuMoTuWeThFrSa

123

45678910

11121314151617

18192021222324

25262728

青輸入您的該月的具體日期以便顯示星座:

12

程序設計綜合課程設計

第五章課程設計心得體會

進過三周的課程設計,我獨立完成了一個較大的C語言程序的設計,以及認

真完成了課程設計的設計報告。

回憶著三周的時間,我的收獲很大。首先,通過這次課程設計,我熟練的

掌握并運用了所學的知識進行了編程,而且取得了成功,這大大激發(fā)了我對編

程的興趣;其次,在涉及的過程中所遇到的困難,我都認真的去思考,和同學

以及老師交流,或者利用網(wǎng)上資源來獲取幫助,了解解決辦法。通過各種渠道,

完善所學到的東西。最后,我了解到了軟件開發(fā)的答題過程和各個必要的步驟,

這對我將來的學習和應用都是很有幫助的。

對于計算機專業(yè)的大學生來說,積累實戰(zhàn)經(jīng)驗是一項極其重要的內(nèi)容,很

可能成為將來就業(yè)的敲門磚。而程序設計綜合課程設計就是積累實戰(zhàn)經(jīng)驗的一

個過程,雖然程序的規(guī)模不是很大,但是能夠讓我們盡早的認識軟件開發(fā)的重

要性和必要性,為將來的就業(yè)打下堅實的基礎(chǔ)。

13

程序設計綜合課程設計

附錄1:參考文獻

[1]>譚浩強編著.C++程序設計.北京:清華大學出版社,2004

⑵、Decoder編著.C++程序設計.北京:中國鐵道出版社,2002

[3]、夏云慶編著.VisualC++6.0數(shù)據(jù)庫高級編程.北京:希望電子出版社2002

[4]、伍俊良編著:VisualC++6.0課程設計與系統(tǒng)開發(fā)案例.北京:清華大學出版社,

2002.11

[5]、(美)戴特爾(Deitel,H.M.)等編著,張引等譯:C++大學基礎(chǔ)教程(第五版),

北京:電子工業(yè)出版社,2006.6

14

程序設計綜合課程設計

附錄2:程序清單

#include<iostream>

#include<stdlib.h>

#includezzstdio.h〃

usingnamespacestd;

#defineSunday0〃定義星期天為“0”

SdefineMonday1

#defineTuesday2

#defineWednesday3

^defineThursday4

ttdefineFriday5

#defineSaturday6

intinputyear();

intinputmonth();

voidprtcalendar(intyear,intmonth);

voidprtmonthcalendar(intmonth,intyear);

char*monthname(intmonth);

intmonthdays(intmonth,intyear);

intfirstdayofmonth(intmonth,intyear);

voidprintspace(intweekday);

intisleapyear(intyear);

intmain()

(

intyear,month,a;

charo;

cout<X〃歡迎使用電子萬年歷系統(tǒng)〃<<endl;

cout<<〃按任意鍵開始〃《endl;

while(getchar()!=EOF)

15

程序設計綜合課程設計

system(,,cls,/);

year=inputyear();

month=inputmonth();

prtcalendar(year,month);

cout<<〃請輸入您的該月的具體日期以便顯示星座:〃<<endl;

cin>>a;

if(month==3&&month<=4)

(

if(month==3&&a>=21)

cout<〈〃白羊座〃<<endl;

if(month==4&&a<=19)

cout<<〃白羊座”<<endl;

elseif(month==4&&a>19)

cout<<〃金牛座〃<<endl;

}

elseif(month>=4&&month<=5)

(

if(month==4&&a>=20)

cout<〈〃金牛座〃<<endl;

if(month=5&&a<=20)

cout<<〃金牛座〃<<endl;

elseif(month=5&&a>20)

cout<〈〃雙子座〃<<endl;

)

elseif(month>=5&&month<=6)

{

if(month==5&&a>=21)

cout<〈〃雙子座”<Xendl;

if(month==6&&a<=21)

cout<〈〃雙子座〃<<endl;

16

程序設計綜合課程設計

elseif(month==6&&a>21)

cout<<〃巨蟹座〃<<endl;

)

elseif(month>=6&&month<=7)

(

if(month=6&&a>=22)

cout<〈"巨蟹座"<<endl;

if(month==4&&a<=19)

cout<<“巨蟹座〃<<endl;

elseif(month==7&&a>19)

cout<〈〃獅子座〃<<endl;

}

elseif(month>=7&&month<=8)

(

if(month==7&&a>=23)

cout<〈〃獅子座〃<<endl;

if(month==8&&a<=22)

cout<<"獅子座"<<endl;

elseif(month==8&&a>22)

cout<<〃處女座”<<endl;

)

elseif(month>=8&&month<=9)

(

if(month==8&&a>=23)

cout<X〃處女座”〈〈endl;

elseif(month==9&&a<=22)

cout<〈〃處女座〃<<endl;

elseif(month==9&&a>22)

cout<<〃天秤座〃<<endl;

17

程序設計綜合課程設計

elseif(month>=9&&month<=10)

if(month==9&&a>=23)

cout<<〃天秤座”<<endl;

if(month==10&&a<=19)

cout<<“天秤座〃<<endl;

elseif(month==10&&a>19)

cout<<〃天蝎座〃<<endl;

elseif(month>=10&&month<=l1)

if(month==10&&a>=24)

cout<<〃天蝎座”<<endl;

if(month==ll&&a<=22)

cout<〈〃夭蝎座〃<<endl;

elseif(month==ll&&a>22)

cout<<〃射手座"<<endl;

elseif(month>=ll&&month<=12)

if(month==ll&&a>=23)

cout<<〃射手座〃<<endl;

if(month==12&&a<=19)

cout<<〃射手座”<<endl;

elseif(month==12&&a>19)

cout<〈〃魔蝎座〃<<endl;

elseif(month>=12&&month<=l)

if(month==12&&a>=22)

18

程序設計綜合課程設計

cout<<〃魔蝎座〃<<endl;

if(month==l&&a<=19)

cout<<“魔蝎座”《endl;

elseif(month==l&&a>19)

cout<<"水瓶座〃<<endl;

)

elseif(month>=l&&month<=2)

(

if(month==l&&a>=20)

cout<<〃水瓶座〃<<endl;

if(month==2&&a<=18)

cout<<〃水瓶座〃<<endl;

elseif(month==2&&a>18)

cout<<〃雙魚座〃。endl;

}

elseif(month>=2&&month<=3)

(

if(month==2&&a>=19)

cout?〃雙魚座〃。endl;

if(month==3&&a<=20)

cout<<〃雙魚座〃*endl;

elseif(month==3&&a>20)

cout<〈〃白羊座〃<<endl;

)

o=getchar();

getchar();

system(〃cls〃);

1

return0;

19

程序設計綜合課程設計

intinputyear()

(

intyear;

while(1)

(

cout<〈〃請輸入年份:〃<<endl;

cin>>year;

if(year>=1990)

return(year);

printf(z,Theyearmustbeatleast1990.\n〃);

1

intinputmonth()

(

intmonth;

while(l)

(

cout<〈〃請輸入月份:〃<<endl;

cin>>month;

if(month<=12&&month>=l)

return(month);

printf(〃輸入錯誤!.\n〃);

}

i

voidprtcalendar(intyear,intmonth)

(

inta;

a=month;

prtmonthcalendar(a,year);

printf(〃\n〃);

20

程序設計綜合課程設計

)

voidprtmonthcalendar(intmonth,intyear)

intweekday,ndays,day;

printf(〃%s%d\n〃,monthname(month),year);

printf(,zSuMoTuWeThFrSa\n〃);

ndays=monthdays(month,year);

weekday=firstdayofmonth(month,year);

printspace(weekday);

for(day=l;day<=ndays;day++)

(

printf(〃%3d”,day);

if(weekday==Saturda

溫馨提示

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

評論

0/150

提交評論