C語言課程設(shè)計(jì)報(bào)告1_第1頁
C語言課程設(shè)計(jì)報(bào)告1_第2頁
C語言課程設(shè)計(jì)報(bào)告1_第3頁
C語言課程設(shè)計(jì)報(bào)告1_第4頁
C語言課程設(shè)計(jì)報(bào)告1_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c語言課程設(shè)計(jì)專 業(yè): 班 級: 姓 名: 學(xué) 號: 指導(dǎo)教師: 評語:平時(shí)(40)修改(30)報(bào)告(30)總成績蘭州交通大學(xué)自動化與電氣工程學(xué)院2012 年 7月 6日一、設(shè)計(jì)目的及要求:c語言課程設(shè)計(jì)是為電子科學(xué)與技術(shù)等專業(yè)學(xué)生開設(shè)的專業(yè)基礎(chǔ)實(shí)踐課程,本課程是一門必修課,是在學(xué)習(xí)c語言程序設(shè)計(jì)課程之后進(jìn)行的一個(gè)實(shí)踐教學(xué)環(huán)節(jié)。課程設(shè)計(jì)的目的是:1. 進(jìn)一步培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對高級語言基本語言要素和控制結(jié)構(gòu)的理解。2. 針對c語言中的重點(diǎn)和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成有一定工作量的程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格。3. 掌握c語言的編程技巧和上機(jī)調(diào)試程序的方法。4. 掌握程

2、序設(shè)計(jì)的常用算法二、程序改錯(cuò):2.1 題目要求:#include #define n 20void fun(int a,int n) int i,j,t,p;for (j=0;jn-1;j+)p=j 加上“;”for (i=j;i,n;i+) j改為j+1 if (aiap)p=j; j改為i t=ap;ap=aj;aj=t;main()int an=9,6,8,3,-1,i,m=5;printf(排序前的數(shù)據(jù):);for (i=0;im;i+) printf(%d,ai);printf(n);fun(a,m);printf(排序后的數(shù)據(jù):);for (i=0;im;i+) printf(%d

3、,ai);printf(n);2.2 錯(cuò)誤分析 一般考試中易出現(xiàn)的錯(cuò)誤有:表達(dá)式,書寫標(biāo)志符石,忽略了大小寫字母的區(qū)別;忽略變量的類型;忽略=和= =的區(qū)別;忘加封號等,本題的錯(cuò)誤主要是表達(dá)式的錯(cuò)誤如for (i=j;i,n;i+)應(yīng)該是for (i=j+1;in;i+)。2.3 改正后的程序:#include #define n 20void fun(int a,int n) int i,j,t,p;for (j=0;jn-1;j+)p=j ;for (i=j+1;in;i+) if (aiap)p=i; t=ap;ap=aj;aj=t;int main()int an=9,6,8,3,-1

4、,i,m=5;printf(排序前的數(shù)據(jù):);for (i=0;im;i+) printf(%d,ai);printf(n);fun(a,m);printf(排序后的數(shù)據(jù):);for (i=0;im;i+) printf(%d,ai);printf(n);return 0;2.4 運(yùn)行結(jié)果圖1三、編程題一 3.1 題目要求:計(jì)算分?jǐn)?shù)的精確值使用數(shù)組精確計(jì)算mn(0mn?s=m/n,m=m%n%nm0?m=m*10m=m%nai=m/n;bi=m結(jié)束no yesno yes 圖23.4 源程序#include using namespace std;void main() int a100,b1

5、00;/a數(shù)組用于存放小數(shù)部分,b數(shù)組用于存放余數(shù) int m,n,i=0,s=0; cinmn;/輸入分子和分母 if(mn)/如果分子大于分母 s=m/n; /得到整數(shù)部分 m=m%n; /得到余數(shù)為分子 while(m!=0) m=m*10; ai=m/n; m=m%n; bi=m; for(int h=0;hi;h+) if(bh=m) /當(dāng)余數(shù)出現(xiàn)重復(fù)時(shí)表示開始循環(huán) cout從小數(shù)點(diǎn)h+1位開始循環(huán),到i位結(jié)束endl;m=0; break; i+; couts.; /輸出整數(shù)部分 for(int j=0;ji;j+) coutaj; coutendl;3.5 運(yùn)行結(jié)果圖3四、編程題

6、二4.1 題目要求通過該系統(tǒng)實(shí)現(xiàn)對通訊錄信息進(jìn)行錄入、顯示、修改、刪除、插入、排序、保存等操作的管理。4.2 程序分析 建立通訊錄信息,信息至少包含編號、姓名、年齡、電話、通訊地址、電子郵箱等; 能夠提供添加、刪除和修改通訊錄信息的功能; 能夠提供安不同方式查詢的功能;如按姓名或年齡、電話等查詢; 將通訊錄保存在文件中; 能夠按表格方式輸出通訊錄信息。4.3 流程圖 添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 圖4 圖5 修改:修改通訊錄記錄 刪除:刪除通訊錄 圖6 圖7 查詢:查詢通訊錄記錄圖84.4 源程序#include #include#include typedef struct c

7、har score; /*編號*/char name10; /*姓名*/ char num15; /*號碼*/ char adds20;/*住址*/person; person pe20; int menu_select() int c; do system(cls); printf(tt *通訊錄* n); printf(ttn); printf(tt 1. 添加記錄 n); printf(tt 2. 顯示記錄 n); printf(tt 3. 刪除記錄 n); printf(tt 4. 查詢記錄 n); printf(tt 5. 修改記錄 n); printf(tt 6. 保存記錄 n);

8、printf(tt 0. 退出程序 n); printf(ttn); printf(tt請您選擇(0-6):); c=getchar(); while(c6); return(c-0); int input(person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=n) printf(t編號:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(%s,&pern+);printf(t電話號碼:); scanf(t%s,pern+i.num); printf(t通訊住址:);

9、 scanf(t%s,pern+i.adds);gets(x); printf(nt是否繼續(xù)添加?(y/n); scanf(t%c,&sign); i+; return(n+i); void display(person per,int n) int i; printf(-n); /*格式*/ printf(編號 姓名 電話號碼 通訊地址 n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n);system(pause); int delete_a_rec

10、ord(person per,int n) char s20; int i=0,j; printf(t請輸入想刪除記錄中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(,perj+1.name); strcpy(perj.adds,perj+1.adds);perj.score=perj+1.score; printf(ttt已

11、經(jīng)成功刪除!n); return(n-1); void query_a_record(person per,int n) int m;printf(tn請選擇查詢方式:n); printf(tn); printf(t1-姓名 n); printf(t2-電話 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(請選擇:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(輸入錯(cuò)誤,請重新選擇:);scanf(%d,&m);if(m=1)char s20; int i=0; printf

12、(t請輸入想查詢的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號: %dn,peri.score);printf(t電話號碼: %sn,peri.num); printf(t通訊地址: %sn,peri.adds); ;if(m=2)char s20; int i=0; printf(t請輸入想查詢的電話:); scanf(t%s,s); while(strcmp(peri.num,s)!=0&in) i+; if(i=n) pr

13、intf(t通訊錄中沒有此人!n); return; printf(t此人編號: %dn,peri.score);printf(t此人姓名: %sn,);printf(t通訊地址: %sn,peri.adds); ;if(m=3)char s20; int i=0; printf(t請輸入想查詢的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t此人編號: %dn,peri.score);printf(t此人姓名: %sn,

14、);printf(t電話號碼: %sn,peri.num); ;void change(person per,int n) char s20; int i=0; printf(t請輸入想修改的記錄中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒有此人!n); return; printf(t編號:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%d,&);printf(t電話號碼:); scanf(t%

15、s,peri.num); printf(t通訊住址:); scanf(t%s,peri.adds);void main() /*主函數(shù)*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加記錄到通訊錄n); /*添加記錄*/ n=input(pe,n); break; case 2: printf(nttt 通訊錄記錄表n); /*顯示記錄*/ display(pe,n); break;case 3: printf(nt從通訊錄中刪除記錄n); n=delete_a_record(pe,n); /*刪除記錄*/ printf(t)

16、; system(pause); break; case 4: printf(nt在通訊錄中查找記錄n); query_a_record(pe,n); /*查找記錄*/ printf(t); system(pause); break;case 5: printf(nt修改通訊錄中的記錄n); change(pe,n); /*修改數(shù)據(jù)*/ printf(t); system(pause); break; case 6: printf(nt保存功能n); printf(t); system(pause); break; case 0: printf(ntt,n); /*結(jié)束程序*/ printf(ntt); system(pause); exit(0); 4.5 運(yùn)行結(jié)果圖9圖10圖11圖12圖13圖14五、總結(jié)這次的程序設(shè)計(jì)實(shí)驗(yàn)是對我們進(jìn)入大學(xué)以來學(xué)習(xí)程序設(shè)計(jì)語言結(jié)果的一次大檢驗(yàn)。自己動手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒有掌握好的知識在這次實(shí)驗(yàn)中徹底暴露出來,經(jīng)過不斷思考,不斷查閱資料和上

溫馨提示

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

最新文檔

評論

0/150

提交評論