版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
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> 設</b></p><p><b> 計</b></p><p><b> 第一篇:萬年歷</b></p><p><b> 一、名稱:萬年歷</b></p><p> 二、主題及設計目的:</p><p&g
3、t; 本程序是一個萬年歷程序,可以輸出公元一年一月以后任意月份的天數(shù)及每一天是星期幾,只要在運行程序時按照要求輸入年份確認后再輸入月份,程序就會把這一月份的日歷顯示在屏幕上,使人一目了然。</p><p><b> 三、程序簡介:</b></p><p> 1、基本結構及基本內(nèi)容:</p><p> 程序一開始輸入年份,輸入后再利用if
4、語句判斷是否再輸入月份? (Y/N)如選擇Y,則需再次輸入具體月份,輸入月份后再按回車,程序就會把這一月份的日歷顯示出來。如選擇N,再按回車則程序會把這一年的日歷全部都顯示出來。查看完畢后如想清屏,則再按一次回車即可。</p><p><b> 2、運行環(huán)境:.C</b></p><p> 四、主要運行界面的介紹:</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退出請按alt + F4 或鼠標左鍵右上方的叉叉\n");</p><p><b> }</b></p><p&g
10、t;<b> //菜單選擇</b></p><p> void menu(void)</p><p><b> {</b></p><p><b> //當前查詢的月份</b></p><p><b> int year;</b></p&g
11、t;<p> int month = 0;</p><p> printf("請輸入要查詢的年份:");</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("請輸入月份:");</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("請規(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> 查詢的當月</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結構指針</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("查詢當月天數(shù)是:%d\n\n",day);<
23、;/p><p> printf("一\t二\t三\t四\t五\t六\t日\t\n");</p><p> //功能:使當月中的每一天與對應的周幾對齊</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;//一個月的日期[1-31]</p><p> t.tm_hour=0;//時-取值區(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);//獲取時間</p><p> printf("\n現(xiàn)在是:%s",
29、ctime(&now));//系統(tǒng)時間</p><p> allmenu();</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 六、得意之處:</b></p><p>
30、 最得意的地方還是中間那個if語句的運用,能充分發(fā)揮萬年歷的便捷性和實用性,而且與平時的課堂知識銜接的非常得當。</p><p><b> 第二篇:計算器</b></p><p> 一、名稱:簡單的四則運算計算器</p><p> 二、主題及設計目的:</p><p> 本課題的內(nèi)容是設計一個簡單的計算器。&l
31、t;/p><p> 通過對程序的設計可以對C程序中的函數(shù),循環(huán),數(shù)組,調(diào)用等內(nèi)容有更深入的理解和運用。</p><p> 設計程序的過程中,通過已有知識的運用和思考,能夠做到對知識的整體理解。通過解決設計中遇到的問題,能夠提高設計程序的熟練度,并對知識有鞏固作用。</p><p><b> 三、程序簡介: </b></p>&l
32、t;p> 1、基本結構及內(nèi)容:</p><p> 程序中完成+、-、*、/的混合運算,使用者可以根據(jù)個人的需要在示后輸入相應的代碼,然后進行相應的運算,最后在運算結果中查找相應的結果即可。</p><p> 數(shù)學計算模塊中,根據(jù)用戶選擇的運算類型和運算符號,自動調(diào)用相應的函數(shù),運行相關程序,進行計算,并顯示結果。</p><p><b> 2
33、、運行環(huán)境:.C</b></p><p><b> 3、運行流程:</b></p><p><b> 四、運行界面介紹:</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]; /*存放表達式字符串的數(shù)組*/ </p><p><b> int n=0; </b></p><p> voi
35、d error(void) /*報告錯誤函數(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); /*計算乘除的函數(shù)*/ </p><p> double factor(void); /*處理括號和數(shù)字的函數(shù)*/ </p><p> double exp(void) /*計算加減的函數(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)換為浮點數(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> 最得意之處就是設計的這個簡易計算器既簡單又實用,沒有一絲復雜的花樣,整體一切都以簡單為主題,充分發(fā)揮了計算器的本質(zhì)作用。</p><p><b>
56、 第三篇:總結</b></p><p><b> 設計的不足之處:</b></p><p> 最大的問題就是設計的過于簡單了就缺乏了新意,大都都千篇一律了,而稍微復雜些了又設計不出來,技術水平達不到了,這就是最大的問題了。</p><p><b> 二、感受:</b></p><p&g
57、t; 經(jīng)歷了這次課程設計的設計和制作的整個過程,我才發(fā)現(xiàn)我知識的貧乏和知識面的狹窄,原本以為很容易就可以搞定,可是到了后來實際的操作的時候卻是根本就束手無策,這次作的這一個設計,使我對C語言有了更深的了解,使用起來也更加的熟練,原來有一些不知道和不熟悉的函數(shù),我學會用了。我這一次找了不少的資料,找專業(yè)的書籍、上網(wǎng)找各方面的資料,也使我學到了一些書本中學不到的知識,讓我長了見識。同時我們同學之間也互相的探討,也增進了我們同學之間的感情。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論