版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電子郵件管理系統(tǒng)一目的將電子郵件管理系統(tǒng)作為課程設(shè)計(jì),目的在于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)理論知識(shí)的基礎(chǔ)上,將其應(yīng)用到實(shí)踐中去,以提高學(xué)習(xí)的質(zhì)量和知識(shí)的運(yùn)用能力。而本次的課程設(shè)計(jì)的重點(diǎn)是要加深對(duì)數(shù)據(jù)這一抽象名詞的理解,對(duì)數(shù)據(jù)的結(jié)構(gòu)有更深層次的看法,鞏固對(duì)線性表、字符串、圖、查找、排序等理論知識(shí)的理解,以及要求通過(guò)課程設(shè)計(jì)達(dá)到熟練掌握對(duì)鏈表的建立和初始化、對(duì)鏈表進(jìn)行刪除和插入等操作。此外,還要掌握對(duì)現(xiàn)實(shí)復(fù)雜問(wèn)題的分析建模和解決方法(包括問(wèn)題描述、系統(tǒng)分析、設(shè)計(jì)建模、代碼實(shí)現(xiàn)、結(jié)果分析等),提高利用計(jì)算機(jī)分析解決綜合性實(shí)際問(wèn)題的基本能力。二需求分析1、系統(tǒng)需求隨著科技的發(fā)展,我們漸漸脫離了通過(guò)寄送紙質(zhì)郵件來(lái)交流的方式,現(xiàn)在,我們有了更為便捷的交流渠道一一電子郵件。可是,這樣的電子郵件我們不能真真看到實(shí)物,只能從中獲取我們需要的信息,因此,我們需要有一個(gè)可以對(duì)電子郵件進(jìn)行管理的系統(tǒng)來(lái)幫助我們處理這一事物。郵件管理系統(tǒng),是對(duì)郵件進(jìn)行管理的系統(tǒng),以求用盡可能少的操作、盡可能快的速度、盡可能友好的界面去管理郵件,從而達(dá)到節(jié)約人力物力的同時(shí)又節(jié)約時(shí)間的目的。2、功能需求電子郵件管理系統(tǒng)除了必要的列出并查看郵件之外,還需要能夠刪除、修改郵件等等,這樣的系統(tǒng)才能叫做郵件管理系統(tǒng)。通過(guò)對(duì)電子郵件的分析,郵件信息包括:郵件的主題、發(fā)送人、接收人、郵件內(nèi)容、郵件的發(fā)送時(shí)間。那么,我們可以將電子郵件管理系統(tǒng)的功能分為下面幾個(gè)方面:T添加、保存郵件;-刪除、修改郵件;T查看、搜索郵件;三概要設(shè)計(jì)1、添加郵件首先我們需要了解郵件的組成,再根據(jù)其組成定義一個(gè)郵件類型的結(jié)構(gòu)體,添加新的郵件時(shí)定義一個(gè)指向該結(jié)構(gòu)體的指針,并給該指針?lè)峙淇臻g,初始化該空間,之后再按照提示信息對(duì)這個(gè)空間進(jìn)行其他操作,這樣就成功添加了一封新的電子郵件。2、對(duì)郵件的操作完成郵件的添加之后,我們的系統(tǒng)還需要對(duì)郵件進(jìn)行操作,有以下功能:編輯郵件:用戶能自己編寫郵件。刪除郵件:管理員能夠刪除郵件。查看郵件:管理員可以瀏覽已保存郵件。搜索郵件:管理員能夠搜索郵件。按時(shí)間搜索郵件:管理員能夠在郵件庫(kù)中查找某個(gè)時(shí)間段內(nèi)的郵件。保存:管理員能夠?qū)⑧]件記錄保存到文件。加載:管理員能夠從文件中加載郵件信息。3、儲(chǔ)存郵件郵件總于寫好了,但這是一封電子郵件,而且,我們事先并不知道郵件的大小與長(zhǎng)度,那么,這種情況,我們將采用鏈表的方式將所有的郵件都鏈接在一起,再存儲(chǔ),因?yàn)檫@樣的順序結(jié)構(gòu)便于經(jīng)常的添加與刪除。四詳細(xì)設(shè)計(jì)2、結(jié)構(gòu)體鑒于郵件系統(tǒng)經(jīng)常對(duì)郵件進(jìn)行插入和刪除操作,因此我們選擇用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)來(lái)設(shè)計(jì)程序,所以,定義郵件結(jié)構(gòu)體時(shí),我們需要加入一個(gè)指向后驅(qū)的指針,同時(shí),我們需要對(duì)郵件進(jìn)行排序,因而我們又加入了一個(gè)前驅(qū)指針。3、主菜單界面.用printf語(yǔ)句顯示菜單界面,并對(duì)每個(gè)功能編號(hào)。.從鍵盤獲取用戶選擇的編號(hào),用switch-case語(yǔ)句進(jìn)入與之對(duì)應(yīng)的子模塊。4、子模塊4.1、編輯郵件一Add()1.顯示提示信息。新建一個(gè)鏈表,并分配空間,用以儲(chǔ)存接下來(lái)獲取的信息。從鍵盤獲取對(duì)應(yīng)的郵件信息,如:發(fā)件人、接收人、主題、內(nèi)容、發(fā)送時(shí)間等。4.為了預(yù)防用戶編輯完郵件之后忘記在主菜單界面選擇將郵件保存到文件中,在添加郵件時(shí),程序自動(dòng)調(diào)用后面的保存函數(shù)。添加郵件是新建鏈表頭結(jié)點(diǎn)判斷是鏈表是否為空否
是新建鏈表頭結(jié)點(diǎn)判斷是鏈表是否為空否4.2、刪除郵件一Delete(&start,&last)提示用戶輸入欲刪除的郵件主題。.獲取主題后,定義一個(gè)指針,指向頭結(jié)點(diǎn),遍歷整個(gè)鏈表,用strcmp函數(shù)尋找該主題的節(jié)點(diǎn),其結(jié)果有兩種:未找到:則提示未找到該郵件。已找到:則提示正在刪除。若為頭結(jié)點(diǎn)則將頭結(jié)點(diǎn)的Next做為頭結(jié)點(diǎn);若為尾結(jié)點(diǎn),則將前一個(gè)結(jié)點(diǎn)的Next指針指向NULL;若為中間的結(jié)點(diǎn),則正常刪除,如下圖。3.最后用free函數(shù)釋放要?jiǎng)h除的結(jié)點(diǎn)的空間。***********voidDelete(EMAIL**startfEMAILEMAIL*info;chars[80];system;printf;Inputs:"r*3D);info=TFi$d⑶;if(info)printfif(*start==info)\nn);ifstart=info->nex.t;if(*start)start)->prior=NULL;else*last=NULL;free(info);printf、訥除成功!printfif(*start==info)\nn);查看郵件4.提示鍵入郵件主題則調(diào)用函數(shù)以查看郵件內(nèi)容,回車則返回主菜單。查看郵件4.提示鍵入郵件主題則調(diào)用函數(shù)以查看郵件內(nèi)容,回車則返回主菜單。4.3、查看郵件—List().進(jìn)入該子程序,立即顯示此時(shí)所有郵件的基本信息:發(fā)件人、接收人、主題、發(fā)送時(shí)間,若此時(shí)鏈表為空則提示“暫無(wú)郵件!”。.瀏覽完基本信息后,可以選擇輸入主題以查看郵件內(nèi)容,也可以直接按回車返回主菜單。4.4、搜索郵件一Search()1.顯示提示信息。從鍵盤獲取用戶名后,調(diào)用Find()函數(shù)在鏈表內(nèi)尋找第一個(gè)匹配項(xiàng),并顯示郵件基本信息。.用while循環(huán)繼續(xù)向后尋找,如果存在匹配項(xiàng)則顯示信息并繼續(xù)循環(huán),若不存在則跳出循環(huán)。if(info==NULL)printf用史丕奩在J\^T,);elseDisplay(info);info=infQ->next;while(info!=1JULL]if(!strcmp(namefinfo->name))
Display(info);info=info->next;ReadEmail();4.5、分段搜索一Time_Search()1.顯示提示信息,讓用戶輸入起止時(shí)間。從鍵盤獲取起止時(shí)間。鍵入錯(cuò)誤則提示重新輸入,正確則提示鍵入發(fā)送時(shí)間段。.獲取時(shí)間后,在鏈表中進(jìn)行比較,找到起止結(jié)點(diǎn)后,依次顯示郵件信息。4.6、加載郵件一Load()該步驟不需要與用戶進(jìn)行很4.6、加載郵件一Load()該步驟不需要與用戶進(jìn)行很多交互,直接進(jìn)行程序即可。首先用fopen打開(kāi)保存郵件的文件,并將地址賦給指針fp,如果fp為空則提示文件打開(kāi)失敗,不為空則進(jìn)行加載:和新建文件一樣,定義一個(gè)registerinttfsize;EMAIL*infQ,*temp=0;char*p;FILE*fp;if〔tfp=fopen(nenail.XMTI/Tl-Tl))==NULL)printf();exit(0);[prirLtf(fl\niuM±..An");新的頭結(jié)點(diǎn),并給頭結(jié)點(diǎn)分配空間,然后用for循環(huán)進(jìn)行加載文件內(nèi)容。首先判斷fp指針是否為EOF(EndofFile,就是文件結(jié)尾標(biāo)志),若是,則說(shuō)明加載完成返回主函數(shù),反之則繼續(xù)加載。
4.3、保存郵件—Save()定義一個(gè)文件類型的指針fp,再用fopen語(yǔ)句新建一個(gè)文件用以保存,并將返回的文件指針賦給fp,然后在while循環(huán)中用fwrite語(yǔ)句進(jìn)行對(duì)鏈表結(jié)點(diǎn)中的數(shù)據(jù)進(jìn)行保存,每保存完一個(gè)結(jié)點(diǎn)的數(shù)據(jù),就將結(jié)點(diǎn)指針移動(dòng)到下一個(gè)節(jié)點(diǎn),直到指針指向空為止,這樣就完成來(lái)了將一個(gè)鏈表輸出到文件的操作,最后用fclose(fp)語(yǔ)句結(jié)束對(duì)數(shù)據(jù)的保存。voidSave(void)EMAIL*info;FILE*fp;fp=fopen("email.;衛(wèi)rintf汶住先敗.!\時(shí));return;printf;info=start;while(info)■:fwrite(infofLEN1,1,fp];info=info->next;T,)fclose(fp);五調(diào)試分析T,)編輯程序的過(guò)程中,遇到以下幾大問(wèn)題:參數(shù)傳遞在調(diào)用一個(gè)函數(shù)的時(shí)候,經(jīng)常忘記指針的符號(hào),使后面調(diào)用時(shí),總是提示指針類型的字符與函數(shù)定義的形參類型不同。另外數(shù)組的表示也算是一個(gè)小問(wèn)題吧,數(shù)組的編輯時(shí),他本就是一個(gè)指針,而我還加取地址符或者指針?lè)?hào)。文件讀寫在調(diào)用fwrite()函數(shù)時(shí),采用了wb格式將數(shù)據(jù)寫入文件,b是按位進(jìn)行儲(chǔ)存,因此,從資源管理器直接打開(kāi)保存的文件查看郵件時(shí),始終是亂碼。結(jié)構(gòu)體中的結(jié)構(gòu)體在結(jié)構(gòu)體中調(diào)用其他結(jié)構(gòu)體時(shí),始終出現(xiàn)不能訪問(wèn)的情況,經(jīng)過(guò)多次試驗(yàn)后,發(fā)現(xiàn)是沒(méi)有給調(diào)用的結(jié)構(gòu)體分配空間,導(dǎo)致程序出錯(cuò)。
所有郵件信息用戶名:1發(fā)送人:1接收人:1郵件主題:自動(dòng)化創(chuàng)建時(shí)間:2016用戶名:1發(fā)送人:l@接收人:2@郵件主題:11創(chuàng)建時(shí)間:20161201用戶名:2發(fā)送人:2@接收人:3@郵件主題:22創(chuàng)建時(shí)間:20161202用戶名:3發(fā)送人:3@接收人:4@郵件主題:33創(chuàng)建時(shí)間:20161203用戶名:4發(fā)送人:4@接收人:5@郵件主題:44創(chuàng)建時(shí)間:20161204輸入郵件主題以查看郵件內(nèi)容或直接回車返回!六測(cè)試結(jié)果主菜單界面.添加郵件.刪除郵件3.查看所有郵件.搜索郵件.按時(shí)間段搜索郵件新郵件!請(qǐng)輸入用戶名:發(fā)送人郵件地坦接收人郵件地如隹說(shuō)\a?1t:l::1S.占H兒該時(shí)間段的的郵平*用戶名:i發(fā)送人:l@接收人:2@郵件主題:11創(chuàng)建時(shí)間:20161201用戶名:g發(fā)送人:2@接收人:3@郵件主題:22創(chuàng)建時(shí)間:20161202用戶名:3發(fā)送人:3@接收人:4@郵件主題:33創(chuàng)建時(shí)間:20161203用戶名:4發(fā)送人:4@接收人:5@郵件主題:44創(chuàng)建時(shí)間:20161204輸入郵件主題以查看郵件內(nèi)容或直接回車返回!刪除郵件!請(qǐng)輸入要?jiǎng)h除的郵件主題:自動(dòng)化該郵件不存在!任意鍵返回!
保存與加載七用戶使用說(shuō)明在主菜單界面直接按回車會(huì)立即退出程序。為防止用戶編輯完郵件忘記選擇保存郵件,所以程序中直接調(diào)用了保存函數(shù),自動(dòng)保存新添加的郵件。編輯兩個(gè)相同的郵件,程序不會(huì)提示重復(fù),請(qǐng)自行在程序中查看郵件信息,或者通過(guò)用戶名進(jìn)行搜索該用戶名的所有郵件進(jìn)行查看。PleaseEnterYourChoice:6力口i-|-i加載完味!任意鍵返回!按時(shí)間段搜索郵件這個(gè)功能還不是很完善,只能輸入郵件中已有的時(shí)間段才能正常顯示,超出郵件已有的時(shí)間段則會(huì)意外退出,所以,該功能能不用就盡量不用。八課程設(shè)計(jì)總結(jié)首先,感謝來(lái)自各位老師和同學(xué)的幫助,在你們的幫助下,基本完成了本次課程設(shè)計(jì)。這次課程設(shè)計(jì)算得上是我的第一個(gè)程序設(shè)計(jì),通過(guò)這次這個(gè)課程設(shè)計(jì),我真切體會(huì)至0C語(yǔ)言確實(shí)是一門有著嚴(yán)格標(biāo)準(zhǔn)的語(yǔ)言,即便是錯(cuò)一個(gè)符號(hào),程序也運(yùn)行不了對(duì)應(yīng)的功能,同時(shí)也想到一個(gè)真正完美的程序基本上是不存在的,一定有可以改進(jìn)的地方,我相信即便是當(dāng)今世界的那些大企業(yè)也絕不能保證他們的程序就一定沒(méi)有錯(cuò)誤。一個(gè)優(yōu)秀的軟件必定是通過(guò)多次試用,不斷改進(jìn)再發(fā)布,并在后期的使用過(guò)程中不斷發(fā)現(xiàn)錯(cuò)誤,不斷修改最終趨向于完美。雖然直到最后程序還是有一點(diǎn)瑕疵,而且老師給的額外任務(wù)也沒(méi)有完成,心情有點(diǎn)小低落,但說(shuō)實(shí)話,內(nèi)心還是有點(diǎn)興奮,畢竟這是我編寫的第一個(gè)比較正規(guī)的程序。恩,下面總結(jié)下通過(guò)本次課程設(shè)計(jì)自身的收獲:對(duì)鏈表的定義和使用有了更深刻的體會(huì),對(duì)鏈表的初始化、插入、刪除和排序等操作可以熟練的運(yùn)用。對(duì)數(shù)組地址的使用有了極大的提高,既可以用指針進(jìn)行訪問(wèn)也可以直接用數(shù)組名,還可以用數(shù)組的下標(biāo)來(lái)進(jìn)行改變其中的數(shù)據(jù)。對(duì)于文件操作也有了基本的了解,首先是定義一個(gè)文件類型的指針fp,再用fopen語(yǔ)句新建或者打開(kāi)文件,用fwrite語(yǔ)句對(duì)文件進(jìn)行寫入,讀寫完成之后用fc
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新能源汽車充電樁建設(shè)與運(yùn)營(yíng)合作協(xié)議合同范本3篇
- 課程設(shè)計(jì)用戶管理系統(tǒng)
- 2025年度節(jié)能設(shè)備采購(gòu)及安裝合同能源管理范本3篇
- 海南外國(guó)語(yǔ)職業(yè)學(xué)院《動(dòng)物組織解剖學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度園林景觀材料采購(gòu)合同規(guī)范3篇
- 海南師范大學(xué)《審計(jì)理論與實(shí)務(wù)研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度文化產(chǎn)業(yè)共享用工合作協(xié)議范本3篇
- 2025年度物業(yè)管理處公共秩序維護(hù)委托服務(wù)合同范本3篇
- 二零二五年度城市綜合體消防安全管理合作協(xié)議3篇
- 2025年度網(wǎng)絡(luò)游戲商標(biāo)形象授權(quán)合作合同2篇
- 《皮膚病中成藥導(dǎo)引》課件
- 建筑公司2025年度工作總結(jié)和2025年工作安排計(jì)劃
- 2023-2024學(xué)年廣東省廣州市越秀區(qū)九年級(jí)(上)期末物理試卷(含答案)
- 太空軍事法律問(wèn)題-洞察分析
- 2024年行政執(zhí)法人員資格考試必考知識(shí)題庫(kù)及答案(共250題)
- 電壓損失計(jì)算表
- 二零二四年風(fēng)力發(fā)電項(xiàng)目EPC總承包合同
- 汽車維修開(kāi)發(fā)票協(xié)議書(shū)
- 大紅色節(jié)word感謝信信紙背景模板
- 安全檢查匯報(bào)材料
- 2005年海南高考理科綜合真題及答案
評(píng)論
0/150
提交評(píng)論