版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c語(yǔ)言課程設(shè)計(jì)專 業(yè): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 評(píng)語(yǔ):平時(shí)(40)修改(30)報(bào)告(30)總成績(jī)蘭州交通大學(xué)自動(dòng)化與電氣工程學(xué)院2012 年 7月 6日一、設(shè)計(jì)目的及要求:c語(yǔ)言課程設(shè)計(jì)是為電子科學(xué)與技術(shù)等專業(yè)學(xué)生開(kāi)設(shè)的專業(yè)基礎(chǔ)實(shí)踐課程,本課程是一門必修課,是在學(xué)習(xí)c語(yǔ)言程序設(shè)計(jì)課程之后進(jìn)行的一個(gè)實(shí)踐教學(xué)環(huán)節(jié)。課程設(shè)計(jì)的目的是:1. 進(jìn)一步培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)高級(jí)語(yǔ)言基本語(yǔ)言要素和控制結(jié)構(gòu)的理解。2. 針對(duì)c語(yǔ)言中的重點(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語(yǔ)言的編程技巧和上機(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á)式,書(shū)寫(xiě)標(biāo)志符石,忽略了大小寫(xiě)字母的區(qū)別;忽略變量的類型;忽略=和= =的區(qū)別;忘加封號(hào)等,本題的錯(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í)表示開(kāi)始循環(huán) cout從小數(shù)點(diǎn)h+1位開(kāi)始循環(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 題目要求通過(guò)該系統(tǒng)實(shí)現(xiàn)對(duì)通訊錄信息進(jìn)行錄入、顯示、修改、刪除、插入、排序、保存等操作的管理。4.2 程序分析 建立通訊錄信息,信息至少包含編號(hào)、姓名、年齡、電話、通訊地址、電子郵箱等; 能夠提供添加、刪除和修改通訊錄信息的功能; 能夠提供安不同方式查詢的功能;如按姓名或年齡、電話等查詢; 將通訊錄保存在文件中; 能夠按表格方式輸出通訊錄信息。4.3 流程圖 添加:添加通訊錄記錄 顯示:顯示通訊錄記錄 圖4 圖5 修改:修改通訊錄記錄 刪除:刪除通訊錄 圖6 圖7 查詢:查詢通訊錄記錄圖84.4 源程序#include #include#include typedef struct c
7、har score; /*編號(hào)*/char name10; /*姓名*/ char num15; /*號(hào)碼*/ 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請(qǐng)您選擇(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編號(hào):); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(%s,&pern+);printf(t電話號(hào)碼:); 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(編號(hào) 姓名 電話號(hào)碼 通訊地址 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請(qǐng)輸入想刪除記錄中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒(méi)有此人!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請(qǐng)選擇查詢方式:n); printf(tn); printf(t1-姓名 n); printf(t2-電話 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); printf(請(qǐng)選擇:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(輸入錯(cuò)誤,請(qǐng)重新選擇:);scanf(%d,&m);if(m=1)char s20; int i=0; printf
12、(t請(qǐng)輸入想查詢的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒(méi)有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t電話號(hào)碼: %sn,peri.num); printf(t通訊地址: %sn,peri.adds); ;if(m=2)char s20; int i=0; printf(t請(qǐng)輸入想查詢的電話:); scanf(t%s,s); while(strcmp(peri.num,s)!=0&in) i+; if(i=n) pr
13、intf(t通訊錄中沒(méi)有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t此人姓名: %sn,);printf(t通訊地址: %sn,peri.adds); ;if(m=3)char s20; int i=0; printf(t請(qǐng)輸入想查詢的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒(méi)有此人!n); return; printf(t此人編號(hào): %dn,peri.score);printf(t此人姓名: %sn,
14、);printf(t電話號(hào)碼: %sn,peri.num); ;void change(person per,int n) char s20; int i=0; printf(t請(qǐng)輸入想修改的記錄中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通訊錄中沒(méi)有此人!n); return; printf(t編號(hào):); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%d,&);printf(t電話號(hào)碼:); 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)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的一次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問(wèn)題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒(méi)有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過(guò)不斷思考,不斷查閱資料和上
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)暑假實(shí)習(xí)報(bào)告范文集合四篇
- 春季開(kāi)學(xué)典禮校長(zhǎng)演講稿集合5篇
- 大學(xué)畢業(yè)生自我鑒定(8篇)
- 幼兒教師辭職申請(qǐng)書(shū)集錦9篇
- 地理教師教學(xué)工作計(jì)劃范文
- 順馳太陽(yáng)城二期可行性研究報(bào)告
- 休閑食品的品牌戰(zhàn)略比較
- 七年級(jí)語(yǔ)文下冊(cè)教學(xué)工作總結(jié)
- 借款約束協(xié)議書(shū)(2篇)
- 2025年果蔬自動(dòng)清選、分級(jí)設(shè)備合作協(xié)議書(shū)
- 2024年新進(jìn)員工試用期考核標(biāo)準(zhǔn)3篇
- 《英美文化概況》課件
- 四川省2023年普通高中學(xué)業(yè)水平考試物理試卷 含解析
- 2024-2025學(xué)年人教版八年級(jí)上學(xué)期數(shù)學(xué)期末復(fù)習(xí)試題(含答案)
- 【MOOC】中級(jí)財(cái)務(wù)會(huì)計(jì)-北京交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年醫(yī)院康復(fù)科年度工作總結(jié)(4篇)
- 《園林政策與法規(guī)》課件
- 揚(yáng)塵防治(治理)監(jiān)理實(shí)施細(xì)則(范本)
- 五金耗材材料項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 讀書(shū)分享《終身成長(zhǎng)》課件
- GB/T 44843-2024在用自動(dòng)扶梯和自動(dòng)人行道安全評(píng)估規(guī)范
評(píng)論
0/150
提交評(píng)論