精選備忘錄C語言_第1頁
精選備忘錄C語言_第2頁
精選備忘錄C語言_第3頁
精選備忘錄C語言_第4頁
精選備忘錄C語言_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、備忘錄C語言計算機與信息工程系 ?高級語言程序設(shè)計?課程設(shè)計報告PAGE 1 1 學(xué)號2023-2023學(xué)年 第二學(xué)期?高級語言程序設(shè)計?課程設(shè)計報告題目:備忘錄專業(yè):計算機科學(xué)與技術(shù)班級:姓名:指導(dǎo)教師:成績:計算機與信息工程系年月日 目錄1設(shè)計內(nèi)容及要求21.1設(shè)計內(nèi)容21.2設(shè)計任務(wù)及具體要求22概要設(shè)計32.1該系統(tǒng)的功能簡介32.2 總體程序框圖32.3各個模塊之間的主要關(guān)系43 3設(shè)計過程或程序代碼53.1各個模塊的程序流程圖及運行界面53.2對關(guān)鍵代碼加以分析說明74程序調(diào)試分析135小結(jié)14致謝15參考文獻16附:源程序301 設(shè)計內(nèi)容及要求1.1設(shè)計內(nèi)容?備忘錄?主要根據(jù)課程

2、設(shè)計要求進行設(shè)計,能夠進行個人的事件記錄,可以將程序使用者的時間安排,重要事件,以及個人行程等事件做出具體詳細的記述,并能夠使使用者在程序上完成查看時間的功能,足以使得使用者防止忘記一些重要事件,也可以為使用者帶來一些便利,幫助使用者節(jié)省了時間。電子備忘錄相較于筆記本,其最大的好處在于可以不受紙張的限制,并切實的使用者可以在短時間內(nèi)記述大量事件;查詢時也可以節(jié)省大量的時間,使得使用者可以減短查詢時間,方便快捷。同時,使用電子備忘錄也是一種現(xiàn)代化的代表,將電子科技應(yīng)用與人們的日常生活中,到達現(xiàn)代實惠的先進水平。該系統(tǒng)功能主要包括三大模塊:備忘錄的信息錄入 2備忘錄信息的查看 3進出備忘錄系統(tǒng)1.

3、2設(shè)計任務(wù)及具體要求主要利用C語言的文件操作能力設(shè)計開發(fā)一個小型的備忘錄系統(tǒng),至少具有如下功能:備忘錄的信息錄入,備忘錄的信息查詢和退出備忘錄系統(tǒng)。操作界面要符合用戶的一般習(xí)慣,圖形或文本界面都可以。要求:利用C語言編寫一個備忘錄程序,能實現(xiàn)一些根本的操作,到達一些根本的信息錄入,查詢,提醒以及編寫等功能,能根據(jù)課程設(shè)計的要求,查閱相關(guān)文獻,為完成設(shè)計準(zhǔn)備必要的知識; 提高自身用高級語言進行程序設(shè)計的能力,重點提高用C語言進行文件操作和繪圖應(yīng)用的編程技術(shù)水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術(shù)文檔的能力。并且對C語言的一些根本語句以及功能有一些更加深刻的認識和理解。能夠利用C語言

4、解決一些生活中的根本問題。2 概要設(shè)計2.1系統(tǒng)的功能簡介該系統(tǒng)的主要功能是實現(xiàn)重要信息的錄入,包括錄入的當(dāng)前時間,事件的重要性以及提醒時間。能夠在設(shè)定時間內(nèi)對使用者提醒,防止使用者忘記重要事件,造成不必要的麻煩。2.2 總體程序框圖備忘錄備忘錄主菜單編輯備忘錄推出備忘錄提 醒 我查詢備忘錄輸入新備忘 通過備忘時間編輯備忘通過備忘名稱編輯備忘通過備忘時間查詢備忘通過備忘名稱查詢備忘 圖2.12.3各個模塊之間的主要關(guān)系該程序的功能主要是實現(xiàn)備忘錄的錄入,能在系統(tǒng)內(nèi)對錄入的信息進行查詢,并對相對重要的相應(yīng)信息進行提醒。各個模塊之間的關(guān)系是相互聯(lián)系的。首先,主函數(shù)包含了所有的子函數(shù)。主函數(shù)是整個程

5、序的核心。子函數(shù)之間也有聯(lián)系的,對重要的信息查詢,必須是在信息錄入的情況下進行的。因此對重要事件信息的錄入時非常重要的。在退出備忘錄系統(tǒng)的子函數(shù)之間是沒有多大聯(lián)系的。3設(shè)計過程或程序代碼3.1各個模塊的程序流程圖備忘錄開始 main()函數(shù)開始執(zhí)行顯示備忘錄主菜單判斷 case 5case 4case 3case 2case 1調(diào)用input_memo()函數(shù)實現(xiàn)個人備忘輸入功能調(diào)用exit(0)退出程序調(diào)用search_memo()函數(shù)顯示個人備忘查詢功能菜單調(diào)用modify_memo()函數(shù)顯示個人備忘修改功能菜單調(diào)用remind_me()函數(shù)顯示個人備忘提醒功能菜單判斷 判斷 case

6、2case 2case 1case 1調(diào)用modify_by_event_date() 函數(shù)實現(xiàn)個人備忘的時間時間功能調(diào)用modify_ name() 函數(shù)實現(xiàn)個人備忘的名稱修改功能調(diào)用search_by_ event_date() 函數(shù)實現(xiàn)個人備忘的時間查詢功能調(diào)用search_by _name() 函數(shù)實現(xiàn)個人備忘的名稱查詢功能 圖3.13.2對關(guān)鍵代碼加以分析說明1 ) 函數(shù) 名稱:main() 函數(shù) 功能:實現(xiàn)個人備忘錄的主菜單顯示功能和各個函數(shù)功能的調(diào)用功能 函數(shù) 參數(shù):void 函數(shù)返回值:void2 ) 函數(shù) 名稱:input_memo()函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容的輸入功能函

7、數(shù) 參數(shù):void函數(shù)返回值:void3 ) 函數(shù) 名稱:search_memo()函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容查詢功能的菜單函數(shù) 參數(shù):void函數(shù)返回值:void4 ) 函數(shù) 名稱:search_by_name() 函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容通過備忘名稱查詢的功能 函數(shù) 參數(shù):void 函數(shù)返回值:void5 ) 函數(shù) 名稱:search_by_event_date()函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容通過備忘時間查詢的功能函數(shù) 參數(shù):void函數(shù)返回值:void6 ) 函數(shù) 名稱:modify_memo() 函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容修改功能的菜單 函數(shù) 參數(shù):void 函數(shù)返回值:voi

8、d7 ) 函數(shù) 名稱:modify_by_name() 函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容通過備忘名稱修改的功能 函數(shù) 參數(shù):void 函數(shù)返回值:void8 ) 函數(shù) 名稱:modify_by_event_date() 函數(shù) 功能:實現(xiàn)個人備忘內(nèi)容通過備忘時間修改的功能函數(shù) 參數(shù):void函數(shù)返回值:void9 ) 函數(shù) 名稱:remind_me()函數(shù) 功能:實現(xiàn)個人備忘的提醒功能函數(shù) 參數(shù):void函數(shù)返回值:void4設(shè)計結(jié)果與分析運 行 備 忘 錄 程 序運行程序,進入備忘錄系統(tǒng)的主菜單,按照系統(tǒng)提示進行操作,完成系統(tǒng)的操作圖4.1 2 輸入數(shù)字進行菜功能的選擇,輸入數(shù)字1,執(zhí)行輸入新備忘

9、的功能,調(diào)用輸入新備忘的函數(shù)顯示結(jié)果如下:圖4.23輸入數(shù)字2,執(zhí)行個人備忘的查詢功能,調(diào)用備忘查詢函數(shù),顯示備忘查詢的功能菜單。結(jié)果如下:圖4.3 4輸入數(shù)字1,執(zhí)行通過個人備忘的名稱查詢功能,調(diào)用備忘名稱查詢函數(shù),顯示通過備忘名稱查詢的結(jié)果,如下:圖4.45輸入數(shù)字2,執(zhí)行通過個人備忘的時間查詢功能,調(diào)用備忘時間查詢函數(shù),顯示通過備忘時間查詢的結(jié)果,如下:圖4.5 6返回主菜單,輸入數(shù)字3,執(zhí)行個人備忘的修改功能,調(diào)用備忘修改函數(shù),顯示備忘修改的功能菜單。結(jié)果如下: 圖4.67輸入數(shù)字1,執(zhí)行通過個人備忘的名稱修改功能,調(diào)用備忘名稱修改函數(shù),顯示通過備忘名稱修改的結(jié)果,如下: 圖4.78輸

10、入數(shù)字2,執(zhí)行通過個人備忘的時間修改功能,調(diào)用備忘時間修改函數(shù),顯示通過備忘時間修改的結(jié)果,如下:圖4.89返回主菜單,輸入數(shù)字4,執(zhí)行個人備忘的提醒功能,調(diào)用備忘提醒函數(shù),顯示備忘提醒的功能菜單。結(jié)果如下:圖4.9 當(dāng)把程序?qū)懞貌⑦M行調(diào)試時,并不是一帆風(fēng)順的,總會遇到很多在調(diào)試時遇到的錯誤。(1)首先在定義函數(shù)時,不能輸入漢字。否那么會程序會顯示錯誤。(2)如果要調(diào)用查詢函數(shù),增詞函數(shù),刪除函數(shù),修改函數(shù)等要在主函數(shù)前面進行申明,否那么會顯示警告。(3)如果程序在運行的過程中,對于一個循環(huán)語句,如果你返回的值始終是真的,那么程序?qū)⑦M如死循環(huán)。(4)對應(yīng)該有花括弧的復(fù)合語句,忘記加花括弧。 (

11、5)所調(diào)用的函數(shù)在調(diào)用語句之后才定義,而又在調(diào)用前未加說明。5 小 結(jié) 在這次的課程設(shè)計中,我利用C語言完成了一個小型的備忘錄系統(tǒng),能夠?qū)π畔⑦M行錄入與查詢,并能夠提醒用戶。通過實驗,根本上掌握了C語言的根本用法與功能。對于所學(xué)知識有了更深的認識。 在本課程設(shè)計的設(shè)計過程中,我剛開始感覺到有點頭痛。要通過一學(xué)期C語言的學(xué)習(xí)后將所學(xué)知識運用起來有點困難,但回過頭來再去看教課書,對于這些知識點有關(guān)的背景,概念和解決方案更進一步的理解,感覺也不是很難。另外我還體會了從事C語言課程設(shè)計工作需要特別謹慎認真地態(tài)度和作風(fēng),一點都不能馬虎。每個細微的細節(jié)都必須十分注意,如果不認真思考,就會出現(xiàn)或大或小的錯誤

12、。如果把早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時會推倒很多前面做的工作。有時候,我自己覺得我寫的程序非常正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的缺乏,所以進展的速度非常的緩慢,往往幾天的時間沒有一點進展。這時候,我一般是先自己通過書本,手冊和資料找解決方法,實在沒轍才向老師同學(xué)請教。 在開始編寫程序的時候,我看到別人的程序功能非常的詳細,而且界面非常漂亮,總是希望自己的程序也非常的完善,但是,發(fā)現(xiàn)編一個好的程序不是一蹴而就的事情,需要長時間的積累和經(jīng)驗。在反反復(fù)復(fù)的學(xué)習(xí)中,我終于作出一個簡單的程序,雖然這個

13、程序的功能非常簡單,而且在實際運用中還有些缺乏,因為工資的的內(nèi)容非常豐富,我涉及到的僅僅是工資管理的一局部簡單內(nèi)容,離實際的客戶需求肯定還有差距。由于我的知識淺薄,經(jīng)驗缺乏及閱歷頗淺,在該系統(tǒng)的設(shè)計方面還有很多缺乏,比方功能過少,界面不醒目等問題,我會在以后的學(xué)習(xí)過程中,根據(jù)具體要求不斷的修改、完善,爭取使系統(tǒng)慢慢趨于完美。致謝在這次C語言課程設(shè)計中,我遇到了一些困難,因為通過書本以及自身的缺乏所難以解決。所以我想任課老師進行了詢問。他給予了我一些代碼以及考前須知上的幫助,使我能夠完成這次課程設(shè)計。在此,我對他們表示感謝!感謝他們在我面對困難時給了我?guī)椭椭С?。也感謝那些給我?guī)椭乃型瑢W(xué)!參

14、考文獻1譚浩強著.C程序設(shè)計.清華大學(xué)出版社,1999年第二版2譚浩強,張基溫,唐永炎編著.C語言程序設(shè)計.高等教育出版社,19923譚浩強編著.QBASIC語言教程.電子工業(yè)出版社,19974譚浩強.C程序設(shè)計M.清華大學(xué)出版社,20235Herbert Schildt著.戴健鵬譯.C語言大全.電子工業(yè)出版社,1994年第二版6美SCHILDTH.C語言大全M.王子恢等譯.電子工業(yè)出版社,2001源程序#include #include#include #define Namelength 60 #define Datelength 50 #define Contentlength 800

15、struct memo char nameNamelength; char event_dateDatelength; char contentContentlength; char remind_dateDatelength; ;void input_memo(); void search_memo();void modify_memo();void modify_name();void modify_by_event_date();void remind_me();void remind();void search_by_name();void search_by_event_date()

16、;void main()FILE *fp; int number_menu; char a;printf(nn*-*-*-* 歡 迎 使 用 備 忘 錄 *-*-*-*n); loop:printf(nn*-*-*-* 備 忘 錄 主 菜 單 *-*-*-*n); printf( =); printf(n 1 輸 入 新 備 忘; ); printf(n ); printf(n 2 查 詢 備 忘; ); printf(n ); printf(n 3 編 輯 備 忘; ); printf(n ); printf(n 4 提 醒 我; );printf(n ); printf(n 5 退 出 備

17、 忘; n); printf( =); printf(n請 輸 入 菜 單 功 能 的 數(shù) 字:); a = getch(); if(a=1&a=1&a=3) printf(nn您 輸 入 的 數(shù) 字 是 : %c,a); printf(n); sm = (a - 0); else printf(nn您 輸 入 的 數(shù) 字 是 : %c,a); printf(nn對 不 起,您 的 輸 入 有 誤,請 輸 入 正 確 的 菜 單 功 能 數(shù) 字,謝 謝。n); goto loop; switch(sm)case 1:search_by_name(); goto loop; case 2:sea

18、rch_by_event_date(); goto loop; case 3:break;default:printf(n對 不 起,您 的 輸 入 有 誤,請 輸 入 正 確 的 菜 單 功 能 數(shù) 字,謝 謝。nn);goto loop; void search_by_name() struct memo i;FILE *fp;int j=0, k=0, l=0;char nameNamelength=n,a,m,e,:;char new_nameNamelength;if(fp=fopen(memo,r)=NULL)printf(對 不 起,無 法 打 開 文 件!n);exit(1);

19、printf(n請 輸 入 需 要 查 詢 的 備 忘 名 稱 ( 返 回 上 級 菜 單,請 輸 入 0 ):);scanf(%s,new_name);if (new_name != 0)for(j=0; jsizeof(new_name); )if(new_namej=n)break;else j+;for(l=0; lj; l+)name5+l=new_namel;while(! feof(fp)fscanf(fp,%s%s%s%sn,,i.event_date,i.content,i.remind_date);if(!strcmp(name,)printf(n已

20、 經(jīng) 查 到,結(jié) 果 如 下:n);printf(=);printf(n您 查 詢 的 結(jié) 果 是 :nn);printf(%snn,);printf(%snn,i.event_date);printf(%snn,i.content);printf(%snn,i.remind_date);printf(=);k=1;break; if(!k)printf(n對 不 起,沒 有 查 詢 結(jié) 果!請 重 新 輸 入,謝 謝。n);fclose(fp);void search_by_event_date() struct memo i;FILE *fp;int j=0,k=0,l=0;

21、char event_dateDatelength=e,v,e,n,t,_,d,a,t,e,:;char new_event_dateDatelength;if(fp=fopen(memo,r+)=NULL)printf(n對 不 起,無 法 打 開 文 件!n);exit(1);printf(n請 輸 入 需 要 查 詢 的 備 忘 時 間 (返 回 上 級 菜 單,請 輸 入 0 ):);scanf(%s,new_event_date);if (new_event_date != 0)for(j=0;jsizeof(new_event_date);)if(new_event_datej=n

22、)break;else j+;for(l=0; l=1&a=3) printf(nn您 輸 入 的 數(shù) 字 是 :%cn,a); mb = (a - 0); else printf(nn您 輸 入 的 數(shù) 字 是 :%c,a); printf(nn對 不 起,您 的 輸 入 有 誤,請 輸 入 正 確 的 菜 單 功 能 數(shù) 字,謝 謝。n); goto loop; switch(mb)case 1:modify_name(); goto loop;case 2:modify_by_event_date(); goto loop;case 3:break;default:printf(n對 不

23、 起,您 的 輸 入 有 誤,請 輸 入 正 確 的 菜 單 功 能 數(shù) 字,謝 謝。nn); goto loop;void modify_name() struct memo i;FILE *fp;int j=0,k=0,l=0;long offset; char nameNamelength=n,a,m,e,:;char new_nameNamelength;printf(n請 輸 入 您 要 修 改 的 備 忘 名 稱:);scanf(%s,new_name);for(j=0;jsizeof(new_name);)if(new_namej=n)break;else j+;for(l=0;

24、 lj; l+)name5+l=new_namel; if(fp=fopen(memo,r+)=NULL)printf(n對 不 起,無 法 打 開 文 件!n);exit(1);while(!feof(fp)offset=ftell(fp);fscanf(fp,%s%s%s%s,,i.event_date,i.content,i.remind_date);if(!strcmp(name,)k=1;break;if(k)printf(n已 經(jīng) 查 到,結(jié) 果 如 下:n);printf(=);printf(n您 查 詢 的 結(jié) 果 是 :nn);printf(%snn,

25、);printf(%snn,i.event_date);printf(%snn,i.content);printf(%snn,i.remind_date);printf(=);printf(n請 輸 入 新 備 忘 n);printf(=);printf(n請 輸 入 新 備 忘 的 名 稱 :);scanf(%s,);printf(n請 輸 入 新 備 忘 的 時 間 :);scanf(%s,i.event_date);printf(n請 輸 入 新 備 忘 的 內(nèi) 容 :);scanf(%s,i.content);printf(n請 輸 入 新 備 忘 的 提 醒

26、時 間 :);scanf(%s,i.remind_date);fseek(fp,offset,SEEK_SET);fprintf(fp,nname:%snevent date:%sncontent:%snremind_date:%sn, ,i.event_date,i.content,i.remind_date);printf(n恭 喜 您,編 輯 成 功!n);printf(=n);elseprintf(n對 不 起,沒 有 查 詢 結(jié) 果,請 重 新 輸 入,謝 謝。);fclose(fp); void modify_by_event_date() struct memo i;

27、FILE *fp;int j=0,k=0,l=0;long offset; char event_dateDatelength=e,v,e,n,t,_,d,a,t,e,:;char new_event_dateDatelength;printf(n請 輸 入 您 要 修 改 的 備 忘 時 間 :);scanf(%s,new_event_date);for(j=0;jsizeof(new_event_date);)if(new_event_datej=n)break;else j+;for(l=0; lj; l+)event_date11+l=new_event_datel;if(fp=fop

28、en(memo,r+)=NULL)printf(n對 不 起,無 法 打 開 文 件!n);exit(1);while(!feof(fp)offset=ftell(fp);fscanf(fp,%s%s%s%s,,i.event_date,i.content,i.remind_date);if(!strcmp(event_date,i.event_date)k=1;break; if(k)printf(n已 經(jīng) 查 到,結(jié) 果 如 下:n);printf(=);printf(n您 查 詢 的 結(jié) 果 是 :nn);printf(%snn,);printf(%snn,i.e

29、vent_date);printf(%snn,i.content);printf(%snn,i.remind_date);printf(=);printf(n請 輸 入 新 備 忘 n);printf(=);printf(n請 輸 入 新 備 忘 的 名 稱 :);scanf(%s,);printf(n請 輸 入 新 備 忘 的 時 間 :);scanf(%s,i.event_date);printf(n請 輸 入 新 備 忘 的 內(nèi) 容 :);scanf(%s,i.content);printf(n請 輸 入 新 備 忘 的 提 醒 時 間 :);scanf(%s,i.remind_date);fseek(fp,offset,SEEK_SET);fprintf(fp,nname:%sneven

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論