C語言背單詞課程設計報告_第1頁
C語言背單詞課程設計報告_第2頁
C語言背單詞課程設計報告_第3頁
C語言背單詞課程設計報告_第4頁
C語言背單詞課程設計報告_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、c語言程序設計課程設計報告設計題目:背單詞專 業 電子信息工程 班 級 40914 學 生 吳昊 學 號 4091405 題目:背單詞概述:該系統是幫助單詞背誦單詞的軟件,要求用戶可以選擇背誦的詞庫,并可以編輯自己的詞庫,系統可以給出中文,讓單詞輸入其英文意思,也可輸出英文讓單詞輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵。還應有詞語預覽功能。基本功能:詞庫的維護課程預覽顯示中文用戶輸入英文的背誦方法顯示英文用戶輸入中文的背誦方法背誦成績的記錄。課程設計目的:是綜合訓練單詞用c語言編程解決問題和處理問題的能力,鞏固其對c語言課程內容和知識的掌握。對課程設

2、計的基本要求: 1、盡量多的應用c語言中所學到的知識和語句2、課程設計前應書寫開題報告主要內容包括(對題目的分析和對該課程設計的概要設計)3、課程設計后應交課程設計報告,和軟件原代碼及編譯后的應用軟件4、課程設計最后一次上機實驗時檢查題目的完成情況5、課程設計中必須用到的內容為a) 文件的存取b) 結構體的使用c) 數組的使用d) 指針操作一、開題報告 1:變量和結構體說明 1) 單詞信息的結構體如下:typedef struct word/單詞的結構體 char enmax_char; / 英文形式 char nomax_char; /中文形式word;2)存放單詞的信息的變量如下:word

3、 smax_num; /單詞數組int num; /單詞個數2: 概要設計1) 定義結構體數組用來存放單詞的信息2) 單詞信息存放在data.txt中,文件格式如下:單詞個數長度為4個字節第1個單詞的信息-長度為sizeof(word)第2個單詞的信息-長度為sizeof(word)。第n個單詞的信息-長度為sizeof(word)3) 讀文件data.txt的過程如下:先讀取單詞個數,然后逐個讀取單詞的信息,采用fread函數4) 寫文件data.txt的過程如下:先寫入單詞個數,然后逐個寫入單詞的信息,采用fwrite函數5)刪除單詞和修改單詞信息的時候,都需要先輸入英文,從該英文找到單詞

4、的位置6)程序采用菜單的形式顯示,用戶可以輸入選擇進行操作133:樹型結構模塊圖學生背單詞系統功能模塊圖如下:寫入文件信息查詢成績背誦(英至中)讀取文件信息添加單詞信息刪除單詞信息修改單詞信息顯示單詞信息背誦(中至英)4課程流程圖5: 操作說明1) 本程序需要目錄下存在“data.txt”文件2) 系統的菜單如下: 3) 添加單詞信息的功能操作方法如下: 4) 刪除單詞信息的功能操作方法如下: 5) 修改單詞信息的功能操作方法如下:6) 顯示單詞背誦(中至英)功能操作方法如下: 7) 顯示單詞背誦(英至中)功能操作方法如下:8) 成績查詢的功能操作方法如下:6: 課程詳細代碼:#include

5、 #include #include #define max_char 20 / 最大字符#define max_num 100 / 單詞的最大個數typedef struct word/單詞的結構體 char enmax_char; / 英文形式 char nomax_char; /中文形式word;word smax_num; /單詞數組int num; /單詞個數void read_from_file()/從文件中讀取單詞的信息 file *fp; int i=0; fp=fopen(data.txt,rb); if(!fp) printf(打開文件data.txt失敗!n); retu

6、rn ; fread(&num,1,sizeof(num),fp); /先讀取單詞的個數 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+); if(!fp) printf(打開文件data.txt失敗!n); return ; fwrite(&num,1,sizeof(num),fp); /先寫入單詞的個數 for(i=0;inum;i+

7、)fwrite(&si,1,sizeof(word),fp); /寫入每個單詞的信息 fclose(fp);/關閉文件void add_infor()/添加單詞信息int a,i=num;printf(請輸入單詞的英文形式:);scanf(%s,si.en);printf(請輸入單詞的中文形式:);scanf(%s,si.no);num+;printf(您輸入的信息為: 英文: %s 中文: %s n enter 0 繼續輸入; enter 1 返回主菜單,si.en,si.no);void del_infor()/刪除單詞信息int i=0,j=0;char nomax_char; /中文形

8、式 printf(請輸入你要刪除的單詞中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到該中文形式對應的序號 if(strcmp(si.no,no)=0)for(j=i;jnum-1;j+) sj=sj+1;num-; /數量減少 1return; printf(沒有這個單詞!); printf(enter enter 1 返回主菜單);void modify_infor()/修改單詞信息int i=0;char nomax_char; /中文形式 printf(請輸入你要修改的單詞中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到該

9、中文形式對應的序號 if(strcmp(si.no,no)=0)printf(請輸入單詞正確的英文形式:);scanf(%s,si.en);printf(請輸入此單詞正確的的中文形式:);scanf(%s,si.no);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.no);printf(enter enter 1 返回主菜單);void search_info

10、r()/查詢單詞int i=0;char nomax_char; /中文形式 printf(請輸入你要查詢的單詞中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到該中文形式對應的序號 if(strcmp(si.no,no)=0) printf(英文形式 中文形式 n); printf(%10s%12sn,si.en,si.no);return;printf(沒有這個中文形式!);printf(enter enter 1 返回主菜單);void zy_infor()char b120;int z,d=0,c=0;int i; i = rand()%num;print

11、f(【%s】請輸入英文單詞:,si.no);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 繼續輸入; enter 1 返回主菜單,si.en,si.no);void yz_infor()char b120;int z,x=41,d=0,c=0;int i; i = rand()%num;printf(【%s】請輸入中文意思:,si.en);scanf(%s,b1);for(z=0;

12、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 繼續輸入; enter 1 返回主菜單,si.en,si.no);void chengji_infor()int c,d;printf(n共計輸入錯誤:%d次*每次扣10分*n,c);printf(共計輸入正確:%d次*每次加10分*n,d);printf(你的總得分為:%d分nn,10*d-10*c);printf(enter enter 1 返回主菜單);void sh

13、ow_main_menu()printf(n);printf( n);printf( n);printf( 背 單 詞 系 統 n);printf( n);printf( 作者 : 4091405 吳 昊 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);print

14、f( n); /用戶界面printf(n);printf( 請選擇您需要的操作序號(1-8)按回車確認:);int main() int a,choose=0; num=0;/初始化單詞個數為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_i

15、nfor();break; case 5: zy_infor();break; case 6: yz_infor();break; case 7: chengji_infor();break; while (a3) break; write_to_file();/寫入文件 printf( *謝謝使用單詞背誦系統!再見!* n); getchar(); return 1;7: 心得體會通過本次c語言課程設計,是我對c語言的文件的存取、結構體的使用、數組的使用和指針操作有了更深的理解。還充分體會了從事軟件開發工作需要特別嚴謹認真的態度和作風,一點都馬虎不得。每一個細微的細節都必須十分的注意,如果不認真思考決策,就會出現或大或小的錯誤,如果早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時要推倒很多前面做的工作重來。有時候,我自己覺得我寫的程序非常的正確,但是就是編譯通不過

溫馨提示

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

評論

0/150

提交評論