版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C</b></p><p><b> 語</b></p><p><b> 言</b></p><p><b> 課</b></p><p><b> 程</b></p><p
2、><b> 設(shè)</b></p><p><b> 計(jì)</b></p><p><b> 第一篇:萬年歷</b></p><p><b> 一、名稱:萬年歷</b></p><p> 二、主題及設(shè)計(jì)目的:</p><p&g
3、t; 本程序是一個(gè)萬年歷程序,可以輸出公元一年一月以后任意月份的天數(shù)及每一天是星期幾,只要在運(yùn)行程序時(shí)按照要求輸入年份確認(rèn)后再輸入月份,程序就會(huì)把這一月份的日歷顯示在屏幕上,使人一目了然。</p><p><b> 三、程序簡(jiǎn)介:</b></p><p> 1、基本結(jié)構(gòu)及基本內(nèi)容:</p><p> 程序一開始輸入年份,輸入后再利用if
4、語句判斷是否再輸入月份? (Y/N)如選擇Y,則需再次輸入具體月份,輸入月份后再按回車,程序就會(huì)把這一月份的日歷顯示出來。如選擇N,再按回車則程序會(huì)把這一年的日歷全部都顯示出來。查看完畢后如想清屏,則再按一次回車即可。</p><p><b> 2、運(yùn)行環(huán)境:.C</b></p><p> 四、主要運(yùn)行界面的介紹:</p><p><
5、b> 五、源代碼:</b></p><p> #include "stdio.h"</p><p> #include "time.h"</p><p> #include "stdlib.h"</p><p><b> //函數(shù)聲明</b
6、></p><p> void in_menu(void);</p><p> void menu(void);</p><p> void themonth(int,int);</p><p><b> //總菜單</b></p><p> void allmenu(void)&
7、lt;/p><p><b> {</b></p><p> in_menu();//輸出菜單</p><p> menu();//選擇菜單</p><p><b> }</b></p><p><b> //輸出菜單</b></p>
8、<p> void in_menu(void)</p><p><b> {</b></p><p> printf(" △○ 日歷查詢 ○△\n");</p><p> printf("\n");</p><p> prin
9、tf(" ***********************************************************\n");</p><p> printf("\t\t退出請(qǐng)按alt + F4 或鼠標(biāo)左鍵右上方的叉叉\n");</p><p><b> }</b></p><p&g
10、t;<b> //菜單選擇</b></p><p> void menu(void)</p><p><b> {</b></p><p><b> //當(dāng)前查詢的月份</b></p><p><b> int year;</b></p&g
11、t;<p> int month = 0;</p><p> printf("請(qǐng)輸入要查詢的年份:");</p><p> scanf("%d",&year);</p><p> printf("是否輸入月份?(Y/N)");</p><p> if(
12、getchar() == 'Y'||getchar() == 'y')</p><p><b> {</b></p><p> printf("請(qǐng)輸入月份:");</p><p> scanf("%d",&month);</p><p>
13、;<b> while(1)</b></p><p> if(month<1||month>12)</p><p><b> {</b></p><p> printf("請(qǐng)規(guī)范輸入:");</p><p> scanf("%d",&am
14、p;month);</p><p><b> }</b></p><p><b> else</b></p><p><b> break;</b></p><p> themonth(year,month);</p><p><b>
15、 }</b></p><p><b> else</b></p><p><b> {</b></p><p> for(month = 1; month<13; month++)</p><p><b> {</b></p><
16、p> printf("%d 月\n",month);</p><p> themonth(year,month);</p><p><b> }</b></p><p> month = 0;</p><p><b> }</b></p><p
17、> printf("按回車鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p> system("cls");//此函數(shù)可以用于清屏</p><p> allmenu();</p><p><
18、;b> }</b></p><p> /************************</p><p><b> 查詢的當(dāng)月</b></p><p><b> */</b></p><p> void themonth(int year,int month)</p
19、><p><b> {</b></p><p><b> //定義變量</b></p><p> struct tm t,*date;//tm結(jié)構(gòu)指針</p><p> time_t t_day;//聲明time_t類型的變量 t_day</p><p> int i,
20、j,day;</p><p> if(month == 2)//月份天數(shù)的判斷</p><p><b> {</b></p><p> if(year%4 == 0&&year%100 == 0||year%400 == 0)</p><p><b> day = 28;</b&g
21、t;</p><p><b> else</b></p><p><b> day = 29;</b></p><p><b> }</b></p><p> else if(month == 4 || month == 6 || month == 9 || month
22、 == 11)//小月</p><p><b> day=30;</b></p><p><b> else</b></p><p><b> day=31;</b></p><p> printf("查詢當(dāng)月天數(shù)是:%d\n\n",day);<
23、;/p><p> printf("一\t二\t三\t四\t五\t六\t日\(chéng)t\n");</p><p> //功能:使當(dāng)月中的每一天與對(duì)應(yīng)的周幾對(duì)齊</p><p> for(i=1; i<=day; i++)</p><p><b> {</b></p><p>
24、 t.tm_year=year-1900;//從1900開始</p><p> t.tm_mon=month-1;//月份【取值[0-11]】</p><p> t.tm_mday=i;//一個(gè)月的日期[1-31]</p><p> t.tm_hour=0;//時(shí)-取值區(qū)間</p><p> t.tm_min=0;//分-取值區(qū)間&l
25、t;/p><p> t.tm_sec=0;//秒-取值區(qū)間</p><p> t_day=mktime(&t);//</p><p> date=gmtime(&t_day);</p><p><b> if(i==1)</b></p><p> for(j=0; j<
26、date->tm_wday; j++)</p><p> printf("\t");</p><p> if(date->tm_wday==6)</p><p> printf("%d\n",i);</p><p><b> else</b></p>
27、<p> printf("%d\t",i);</p><p><b> }</b></p><p> printf("\n\n");</p><p><b> }</b></p><p><b> //主函數(shù)</b>
28、;</p><p> int main()</p><p><b> {</b></p><p> time_t now;//聲明time_t類型變量</p><p> time(&now);//獲取時(shí)間</p><p> printf("\n現(xiàn)在是:%s",
29、ctime(&now));//系統(tǒng)時(shí)間</p><p> allmenu();</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 六、得意之處:</b></p><p>
30、 最得意的地方還是中間那個(gè)if語句的運(yùn)用,能充分發(fā)揮萬年歷的便捷性和實(shí)用性,而且與平時(shí)的課堂知識(shí)銜接的非常得當(dāng)。</p><p><b> 第二篇:計(jì)算器</b></p><p> 一、名稱:簡(jiǎn)單的四則運(yùn)算計(jì)算器</p><p> 二、主題及設(shè)計(jì)目的:</p><p> 本課題的內(nèi)容是設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器。&l
31、t;/p><p> 通過對(duì)程序的設(shè)計(jì)可以對(duì)C程序中的函數(shù),循環(huán),數(shù)組,調(diào)用等內(nèi)容有更深入的理解和運(yùn)用。</p><p> 設(shè)計(jì)程序的過程中,通過已有知識(shí)的運(yùn)用和思考,能夠做到對(duì)知識(shí)的整體理解。通過解決設(shè)計(jì)中遇到的問題,能夠提高設(shè)計(jì)程序的熟練度,并對(duì)知識(shí)有鞏固作用。</p><p><b> 三、程序簡(jiǎn)介: </b></p>&l
32、t;p> 1、基本結(jié)構(gòu)及內(nèi)容:</p><p> 程序中完成+、-、*、/的混合運(yùn)算,使用者可以根據(jù)個(gè)人的需要在示后輸入相應(yīng)的代碼,然后進(jìn)行相應(yīng)的運(yùn)算,最后在運(yùn)算結(jié)果中查找相應(yīng)的結(jié)果即可。</p><p> 數(shù)學(xué)計(jì)算模塊中,根據(jù)用戶選擇的運(yùn)算類型和運(yùn)算符號(hào),自動(dòng)調(diào)用相應(yīng)的函數(shù),運(yùn)行相關(guān)程序,進(jìn)行計(jì)算,并顯示結(jié)果。</p><p><b> 2
33、、運(yùn)行環(huán)境:.C</b></p><p><b> 3、運(yùn)行流程:</b></p><p><b> 四、運(yùn)行界面介紹:</b></p><p><b> 五、源代碼:</b></p><p> #include<stdio.h> </p&
34、gt;<p> #include<ctype.h> </p><p> #include<stdlib.h> </p><p> char token[61]; /*存放表達(dá)式字符串的數(shù)組*/ </p><p><b> int n=0; </b></p><p> voi
35、d error(void) /*報(bào)告錯(cuò)誤函數(shù)*/ </p><p><b> { </b></p><p> printf("ERROR!\n"); </p><p><b> exit(1); </b></p><p><b> } </b><
36、;/p><p> void match(char expected) /*檢查字符匹配的函數(shù)*/ </p><p><b> { </b></p><p> if(token[n]==expected) </p><p> token[++n]=getchar(); </p><p> el
37、se error(); </p><p><b> } </b></p><p> double term(void); /*計(jì)算乘除的函數(shù)*/ </p><p> double factor(void); /*處理括號(hào)和數(shù)字的函數(shù)*/ </p><p> double exp(void) /*計(jì)算加減的函數(shù)*/
38、 </p><p><b> { </b></p><p> double temp=term(); </p><p> while((token[n]=='+')||(token[n]=='-')) </p><p> switch(token[n]) </p>&
39、lt;p><b> { </b></p><p> case'+':match('+'); </p><p> temp+=term(); </p><p><b> break; </b></p><p> case'-':match
40、('-'); </p><p> temp-=term(); </p><p><b> break; </b></p><p><b> } </b></p><p> return temp; </p><p><b> } </
41、b></p><p> double term(void) </p><p><b> { </b></p><p> double div; </p><p> double temp=factor(); </p><p> while((token[n]=='*'
42、;)||(token[n]=='/')) </p><p> switch(token[n]) </p><p><b> { </b></p><p> case'*':match('*'); </p><p> temp*=factor(); </p>
43、;<p><b> break; </b></p><p> case'/':match('/'); </p><p> div=factor(); </p><p> if(div==0) /*處理除數(shù)為零的情況*/ </p><p><b> { &l
44、t;/b></p><p> printf("The divisor is zero!\n"); </p><p><b> exit(1); </b></p><p><b> } </b></p><p> temp/=div; </p><
45、p><b> break; </b></p><p><b> } </b></p><p> return temp; </p><p><b> } </b></p><p> double factor(void) </p><p>
46、;<b> { </b></p><p> double temp; </p><p> char number[61]; </p><p><b> int i=0; </b></p><p> if(token[n]=='(') </p><p>
47、;<b> { </b></p><p> match('('); </p><p> temp=exp(); </p><p> match(')'); </p><p><b> } </b></p><p> else if(
48、isdigit(token[n])||token[n]=='.') </p><p><b> { </b></p><p> while(isdigit(token[n])||token[n]=='.') /*將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)*/ </p><p><b> { </b><
49、/p><p> number[i++]=token[n++]; </p><p> token[n]=getchar(); </p><p><b> } </b></p><p> number[i]='\0'; </p><p> temp=atof(number); &
50、lt;/p><p><b> } </b></p><p> else error(); </p><p> return temp; </p><p><b> } </b></p><p><b> main() </b></p>
51、<p><b> { </b></p><p> double result; </p><p> FILE *data=fopen("61590_4.dat","at"); </p><p> if(data==NULL) </p><p> data=fo
52、pen("61590_4.dat","wt"); </p><p> if(data==NULL) </p><p> return 0; </p><p> token[n]=getchar(); </p><p> result=exp(); </p><p> i
53、f(token[n]=='\n') </p><p><b> { </b></p><p> token[n]='\0'; </p><p> printf("%s=%g\n",token,result); </p><p> fprintf(data,&qu
54、ot;%s=%g\n",token,result); </p><p><b> } </b></p><p> else error(); </p><p> fclose(data); </p><p> return 0; </p><p><b> getch
55、(); </b></p><p><b> }</b></p><p><b> 六、得意之處:</b></p><p> 最得意之處就是設(shè)計(jì)的這個(gè)簡(jiǎn)易計(jì)算器既簡(jiǎn)單又實(shí)用,沒有一絲復(fù)雜的花樣,整體一切都以簡(jiǎn)單為主題,充分發(fā)揮了計(jì)算器的本質(zhì)作用。</p><p><b>
56、 第三篇:總結(jié)</b></p><p><b> 設(shè)計(jì)的不足之處:</b></p><p> 最大的問題就是設(shè)計(jì)的過于簡(jiǎn)單了就缺乏了新意,大都都千篇一律了,而稍微復(fù)雜些了又設(shè)計(jì)不出來,技術(shù)水平達(dá)不到了,這就是最大的問題了。</p><p><b> 二、感受:</b></p><p&g
57、t; 經(jīng)歷了這次課程設(shè)計(jì)的設(shè)計(jì)和制作的整個(gè)過程,我才發(fā)現(xiàn)我知識(shí)的貧乏和知識(shí)面的狹窄,原本以為很容易就可以搞定,可是到了后來實(shí)際的操作的時(shí)候卻是根本就束手無策,這次作的這一個(gè)設(shè)計(jì),使我對(duì)C語言有了更深的了解,使用起來也更加的熟練,原來有一些不知道和不熟悉的函數(shù),我學(xué)會(huì)用了。我這一次找了不少的資料,找專業(yè)的書籍、上網(wǎng)找各方面的資料,也使我學(xué)到了一些書本中學(xué)不到的知識(shí),讓我長(zhǎng)了見識(shí)。同時(shí)我們同學(xué)之間也互相的探討,也增進(jìn)了我們同學(xué)之間的感情。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)--萬年歷
- 萬年歷c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--萬年歷
- c語言課程設(shè)計(jì)萬年歷系統(tǒng)
- C語言課程設(shè)計(jì)--萬年歷.doc
- c語言課程設(shè)計(jì)--萬年歷系統(tǒng)
- c語言課程設(shè)計(jì)——萬年歷的設(shè)計(jì)
- c語言課程設(shè)計(jì)--大賽評(píng)分、萬年歷
- c語言課程設(shè)計(jì)--多功能萬年歷
- c++萬年歷課程設(shè)計(jì)
- c++課程設(shè)計(jì)--萬年歷
- 萬年歷c++課程設(shè)計(jì)
- 《c++課程設(shè)計(jì)》萬年歷
- 萬年歷c++課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論