C語言背單詞課程設計報告.doc_第1頁
C語言背單詞課程設計報告.doc_第2頁
C語言背單詞課程設計報告.doc_第3頁
C語言背單詞課程設計報告.doc_第4頁
C語言背單詞課程設計報告.doc_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

通信工程C語言強化訓練實驗報告學 號:4110918姓 名:諸葛逍遙提交日期:2012年7月4日成 績:評 語:教師簽字:東北大學秦皇島分校計算機與通信工程學院題目:背單詞1概述該系統(tǒng)是幫助單詞背誦單詞的軟件,要求用戶可以選擇背誦的詞庫,并可以編輯自己的詞庫,系統(tǒng)可以給出中文,讓單詞輸入其英文意思,也可輸出英文讓單詞輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵。還應有詞語預覽功能。基本功能:1)詞庫的維護2)課程預覽3)顯示中文用戶輸入英文的背誦方法4)顯示英文用戶輸入中文的背誦方法5)背誦成績的記錄。2課程設計目的綜合訓練單詞用C語言編程解決問題和處理問題的能力,鞏固其對C語言課程內(nèi)容和知識的掌握。3對課程設計的基本要求 1)盡量多的應用C語言中所學到的知識和語句2)課程設計前應書寫開題報告主要內(nèi)容包括(對題目的分析和對該課程設計的概要設計)3)課程設計后應交課程設計報告,和軟件原代碼及編譯后的應用軟件4)課程設計最后一次上機實驗時檢查題目的完成情況5)課程設計中必須用到的內(nèi)容為a文件的存取b結構體的使用c數(shù)組的使用d指針操作一、開題報告 1.變量和結構體說明 1) 單詞信息的結構體如下:typedef struct word /單詞的結構體 char enM_CHAR; / 英文形式 char chM_CHAR; /中文形式word;2)存放單詞的信息的變量如下:word sM_NUM; /單詞數(shù)組int num; /單詞個數(shù)2.概要設計1) 定義結構體數(shù)組用來存放單詞的信息2) 單詞信息存放在data.txt中,文件格式如下:單詞個數(shù)長度為4個字節(jié)第1個單詞的信息-長度為sizeof(word)第2個單詞的信息-長度為sizeof(word)。第n個單詞的信息-長度為sizeof(word)3) 讀文件data.txt的過程如下:打開文件data.txt用fopen函數(shù)(以mode指定的方式打開名為filename的文件)先讀取單詞個數(shù),然后逐個讀取單詞的信息,采用fread函數(shù)(從fp所指定的文件中讀取長度為size的n個數(shù)據(jù)項,存到pt所指向的內(nèi)存區(qū))4) 寫文件data.txt的過程如下:先寫入單詞個數(shù),然后逐個寫入單詞的信息,采用fwrite函數(shù)(把ptr所指向的n*size個字節(jié)輸出的fp所指向的文件中)5)刪除單詞和修改單詞信息的時候,都需要先輸入英文,從該英文找到單詞的位置6)程序采用菜單的形式顯示,用戶可以輸入選擇進行操作3.樹型結構模塊圖功能模塊圖如下:學生背單詞系統(tǒng)寫入文件信息查詢成績背誦(英至中)讀取文件信息添加單詞信息修改單詞信息刪除單詞信息顯示單詞信息背誦(中至英)4課程流程圖5.操作說明1) 本程序需要目錄下存在“data.txt”文件2) 系統(tǒng)的菜單如下17 3) 添加單詞信息的功能操作方法如下: 4) 刪除單詞信息的功能操作方法如下: 5) 修改單詞信息的功能操作方法如下:6) 顯示單詞信息功能操作方法如下:7) 顯示單詞背誦(中至英)功能操作方法如下:1、回答正確 2、回答錯誤8) 顯示單詞背誦(英至中)功能操作方法如下:9) 成績查詢的功能操作方法如下:6.課程詳細代碼:#include #include #include #define M_CHAR 20 / 最大字符#define M_NUM 100 / 單詞的最大個數(shù)int c=0,d=0;/統(tǒng)分變量typedef struct word/單詞的結構體 char enM_CHAR; / 英文形式 char chM_CHAR; /中文形式word;word sM_NUM; /單詞數(shù)組int num; /單詞個數(shù)void read_from_file()/從文件中讀取單詞的信息 FILE *fp; int i=0; fp=fopen(data.txt,rb);/以rb(為讀而打開一個二進制文件)打開data.txt文件 if(!fp) printf(打開文件data.txt失敗!n); return ; fread(&num,1,sizeof(num),fp); /先讀取單詞的個數(shù) for(i=0;inum;i+) fread(&si,1,sizeof(word),fp); /讀取每個單詞的信息存放到結構體 fclose(fp);/關閉文件void write_to_file()/向文件中輸入單詞的信息 FILE *fp; int i=0; fp=fopen(data.txt,wb+);/“wb+”建立一個新文件,進行寫操作,隨后讀和寫可以由位置函數(shù)設置讀和寫的起始位置 if(!fp) printf(打開文件data.txt失敗!n); return ; fwrite(&num,1,sizeof(num),fp); /先寫入單詞的個數(shù) for(i=0;inum;i+)fwrite(&si,1,sizeof(word),fp); /寫入每個單詞的信息 fclose(fp);/關閉文件void add_infor()/添加單詞信息int a,i=num;printf(請輸入單詞的英文形式:);scanf(%s,si.en);printf(請輸入單詞的中文形式:);scanf(%s,si.ch);num+;printf(您輸入的信息為: 英文: %s n 中文: %s n Enter 0 繼續(xù)輸入; Enter 1 返回主菜單,si.en,si.ch);void del_infor()/刪除單詞信息int i=0,j=0;char chM_CHAR; /中文形式 printf(請輸入你要刪除的單詞中文形式:);scanf(%s,ch);for(i=0;inum;i+)/先找到該中文形式對應的序號 if(strcmp(si.ch,ch)=0)/strcmp(比較兩個字符串str1和str2)for(j=i;jnum-1;j+) sj=sj+1;num-; /數(shù)量減少 1printf(刪除成功!n Enter 1 返回主菜單 );return; printf(沒有這個單詞!); printf(Enter Enter 1 返回主菜單);void modify_infor()/修改單詞信息int i=0;char chM_CHAR; /中文形式 printf(請輸入你要修改的單詞中文形式:);scanf(%s,ch);for(i=0;inum;i+)/先找到該中文形式對應的序號 if(strcmp(si.ch,ch)=0)printf(請輸入單詞正確的英文形式:);scanf(%s,si.en);printf(請輸入此單詞正確的的中文形式:);scanf(%s,si.ch);printf(修改成功!n Enter 1 返回主菜單 );return;printf(沒有這個單詞!);printf(Enter Enter 1 返回主菜單);void show_infor()int i=0; printf(單詞: 英文 中文 n); for(i=0;inum;i+) printf( %10s%10sn,si.en,si.ch);printf(Enter Enter 1 返回主菜單);void search_infor()/查詢單詞int i=0;char chM_CHAR; /中文形式 printf(請輸入你要查詢的單詞中文形式:);scanf(%s,ch);for(i=0;inum;i+)/先找到該中文形式對應的序號 if(strcmp(si.ch,ch)=0) printf(英文形式 中文形式 n); printf(%10s%12sn,si.en,si.ch);return;printf(沒有這個中文形式!);printf(Enter Enter 1 返回主菜單);void ch_to_en_infor()char b120;int z;int i; i = rand()%num;printf(【%s】請輸入英文單詞:,si.ch);scanf(%s,b1);for(z=0;strcmp(b1,si.en)!=0;z=z)printf(輸入錯誤!請重新輸入:);scanf(%s,b1);c=c+1;printf(n恭喜你,回答正確,加10分!nn);d=d+1;printf(Enter 2 繼續(xù)輸入; Enter 1 返回主菜單,si.en,si.ch);void en_to_ch_infor()char b120;int z,x=41;int i; i = rand()%num;printf(【%s】請輸入中文意思:,si.en);scanf(%s,b1);for(z=0;strcmp(b1,si.no)!=0;z=z)printf(輸入錯誤!請重新輸入:);scanf(%s,b1);c=c+1;printf(n恭喜你,回答正確,加10分!nn);d=d+1;printf(n Enter 3 繼續(xù)輸入; Enter 1 返回主菜單,si.en,si.no);void chengji_infor()printf(n共計輸入錯誤:%d次*每次扣10分*n,c);printf(共計輸入正確:%d次*每次加10分*n,d);printf(你的總得分為:%d分nn,10*d-10*c);printf(Enter Enter 1 返回主菜單);void show_main_menu()System(“color 2f”);System(“mode con cols=100 lines=40”);printf(n);printf( n);printf( n);printf( 幫 你 背 單 詞 n);printf( n);printf( n);printf( n);printf( n);printf( 1、添加單詞 2、刪除單詞 n);printf( n);printf( 3、修改單詞 4、顯示單詞 n);printf( n);printf( 5、背誦(中至英) 6、背誦(英至中) n);printf( n);printf( 7、查詢成績 8、退出 n);printf( n);printf( n); /printf( n);printf( 作者 : 41109班 熊 炫 朱均安 n);printf( 馬金坤 汪婷靜 n);printf( n);printf( n); /用戶界面printf(n);printf( 請選擇您需要的操作序號(1-8)按回車確認:);int main() int a,choose=0; num=0;/初始化單詞個數(shù)為0 read_from_file(); /讀取文件 show_main_menu(); scanf(%d,&choose); printf(n); while(choose!=8) switch(choose) case 1: add_infor();break; case 2: del_infor();break; case 3: modify_infor();break; case 4: show_infor();break; case 5: ch_to_en_infor();break; case 6: en_to_ch_infor();break; case 7: chengji_infor();break; while (a3) break; write_to_file();/寫入文件 printf( *謝謝使用單詞背誦系統(tǒng)!再見!* n); getchar(); return 1;7.心得體會通過本次C語言課程設計,加深了我對C語言的文件的存取、結構體的使用、數(shù)組的使用和指針操作的理解。并且我深刻領會到作為一個專業(yè)的軟件開發(fā)工作者,所擁有的基本品質就是對工作的一絲不茍和嚴謹認真?!扒Ю镏虤в谙佈ā边@句話對于c語言編程特別適用,因為一個小小的分號都可能是你費盡心思編出來的程序無法運行。所以認真認真再認真,仔細仔細再仔細。每一個細微的細節(jié)都必須十分的注意,如果不認真思考決策,就會出現(xiàn)或大或小的錯誤,如果早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時要推倒很多前面做的工作重來。有時候,我自己覺得我寫的程序非常的正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jī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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論