版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、WORD格式數(shù)據(jù)構造課程設計報告專業(yè)資料整理WORD格式一 需求分析題目及要求名稱: 簡單的文本編輯器內(nèi)容: 輸入一頁文字,程序可以統(tǒng)計出文字、數(shù)字、空格的個數(shù)。靜態(tài)存儲一頁文章,每行最多不超過 80 個字符,共 N 行。要求 : 1分別統(tǒng)計出其中英文字母數(shù)和空格數(shù)及整篇文章總字數(shù);( 2統(tǒng)計某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);( 3刪除某一字符或者子串,并將后面的字符前移。( 4插入某一字符或者子串。( 5查找某一字符或者子串。存儲構造使用線性表, 分別用幾個子函數(shù)實現(xiàn)相應的功能; 輸入數(shù)據(jù)的形式和X圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標點符號。輸出形式:( 1分行輸出用戶輸
2、入的各行字符;( 2分 4 行輸出 " 全部字母數(shù) " 、" 數(shù)字個數(shù) " 、 " 空格個數(shù) " 、 " 文章總字數(shù) "( 3輸出刪除某一字符串后的文章。通過題目及其要求可知,本程序應實現(xiàn)以下功能:( 1 文章內(nèi)容的輸入:包括字母、標點符號、數(shù)字等;( 2 文章內(nèi)容的統(tǒng)計:包括文章中大寫字母、小寫字母、數(shù)字、標點符號、空格以及文章所有字數(shù)的個數(shù)的統(tǒng)計;( 3 文章內(nèi)容的處理: 包括對文章內(nèi)容的查找、 刪除以及對指定位置進展插入操作,其中在查找的過程中統(tǒng)計出該字符或字符串在文章中出現(xiàn)的次數(shù);問題分析本程序是對一段英文
3、文章的內(nèi)容進展處理,存儲方式采用鏈式存儲,沒有文件操作, 故本程序?qū)ζ湮谋緝?nèi)容的所有操作都是在鏈表中進展的。對于文本的輸入,采用頭插法將文本信息存儲到鏈表已申請好的存儲空間中,在此局部設計中最大的問題在于輸入文章過程中輸入的字符數(shù)大于80 時如何換行; 對于文本內(nèi)容的統(tǒng)計,使用循環(huán)對已存儲的文章進展匹配,大寫字母數(shù)、小寫字母數(shù)、空格數(shù)、數(shù)字數(shù)直接通過比較即可得到,標點符號通過ASC比較即可得到; 對于文本內(nèi)容的處理,查找局部仍是使用循環(huán)對已存儲的文章進展匹配,判斷需要查找的字符或者字符串是否與文章中某局部內(nèi)容一樣,如果存在一樣的記錄一樣的個數(shù)及位置并輸出個數(shù)及位置。刪除局部先使用程序的查找功能
4、對文章中需要刪除的字符或者字專業(yè)資料整理WORD格式符串進展查找,然后對其進展刪除。插入局部為通過輸入的插入位置行、列將字符或者字符串插入到文章制定位置。二概要設計數(shù)據(jù)構造選擇:本程序是對輸入的文字進展操作,故使用的數(shù)據(jù)構造為單鏈表操作。根據(jù)第一局部的問題分析有該鏈表操作有3 局部:PreTempNext另有全局變量*head ,作為文章的頭指針。故創(chuàng)立了以下構造體:typedef struct _list char data80;/記錄一行字符int length;/ 記錄一行字符長度struct _list *next;/ 后繼指針struct _list *pre;/ 前趨指針int r
5、ow;/記錄整篇文章的行數(shù)LinkList;在文章內(nèi)容創(chuàng)立局部中使用線性表的鏈式存儲, 并使用全局變量對文本的各種信息進展存儲;文章的內(nèi)容統(tǒng)計、刪除、查找、插入都采用鏈表操作完成。本程序為將菜單功能完美化,使用了大量的do while語句。專業(yè)資料整理WORD格式概要設計:程序框架:*歡迎使用簡單的文本編輯器*主菜單*1、輸入文本內(nèi)容*2、顯示當前文本內(nèi)容*3、文本內(nèi)容統(tǒng)計菜單*4、文本內(nèi)容處理菜單*5、關于*6、退出本系統(tǒng)*注:第一次使用本系統(tǒng)時請選擇1 號功能*判斷123456文本內(nèi)容的顯 示 函文章內(nèi)容統(tǒng)計文章內(nèi)容處理菜單,一個類似退輸 入 ,數(shù),菜單,Bmenu(), 這局部為一與作者
6、信出CreatWord()PrintWoCountWord(),子菜單,使用了包括息 的 代系,將文本內(nèi)rd(), 將以菜單形式顯SearchWord()、碼,統(tǒng)容輸入到已當 前 文示給用戶,對DeleteWord() 、AboutWor申請的存儲本 中 內(nèi)文章的內(nèi)容進InsertWord() 三 個 函d(), 顯 示空間中容 顯 示行各種方式的數(shù),對文章內(nèi)容進展作者信息出來統(tǒng)計處理專業(yè)資料整理WORD格式圖 1 簡單的文本編輯器主框架兩個子菜單:如選擇上圖中功能3,那么有:*文章內(nèi)容統(tǒng)計菜單*1、文章中大寫字母的個數(shù)*2、文章中小寫字母的個數(shù)*3、文章中數(shù)字的個數(shù)*4、文章中標點符號的個數(shù)
7、*5、文章中空格的個數(shù)*6、文章中所有字數(shù)*7、退出返回主菜單*8、直接退出本系統(tǒng)*判斷1234567統(tǒng) 計統(tǒng) 計統(tǒng) 計統(tǒng) 計統(tǒng) 計統(tǒng) 計返 回文 本文 本文 本文 本文 本文 本到 主中 大中 小中 數(shù)中 標中 空所 有菜單寫 字寫 字字 的點 符格 的字數(shù)母 個母 個個數(shù)號 的個數(shù)數(shù)數(shù)個數(shù)8直接退出系統(tǒng)專業(yè)資料整理WORD格式圖 2 簡單的文本編輯器-文本內(nèi)容統(tǒng)計菜單專業(yè)資料整理WORD格式如選擇功能4,那么有:*文章內(nèi)容處理菜單*1、查找文章中的字符或者字符串*2、刪除文章中的字符或者字符串*3、向文章中插入字符或者字符串*4、顯示當前文章內(nèi)容*5、返回主菜單*6、直接退出系統(tǒng)*判斷12
8、3456使用子函數(shù)使用子函數(shù)使用子函數(shù)使用函數(shù)返回到主菜完畢整個程SearchWord(),DeleteWord(),InsertWord(),PrintWord()單繼續(xù)其他序?qū)Υ鎯υ阪湵韺Υ鎯υ阪湵韺Υ鎯υ阪湵韺斍拔谋静藛沃械奈谋具M展中文本進展字中的文本進展信息顯示出字符或者字符符或者字符串字符或者字符來串查找的刪除串的插入專業(yè)資料整理WORD格式圖3簡單的文本編輯器-文本內(nèi)容處理菜單專業(yè)資料整理WORD格式根據(jù)以上各圖,本程序共設計了11 個函數(shù)。專業(yè)資料整理WORD格式1、 HeadWord()標題函數(shù),即一個輸出標題,永遠出現(xiàn)在程序的最頂端。專業(yè)資料整理WORD格式2、 Creat
9、Word()文本輸入函數(shù),實現(xiàn)上圖1 菜單功能1,對文本的內(nèi)容進展輸入;專業(yè)資料整理WORD格式3、PrintWord()當前文本內(nèi)容輸出函數(shù),實現(xiàn)上圖1 菜單功能2 以及圖 3 中功能4,將當專業(yè)資料整理WORD格式前存儲在鏈表中的文本內(nèi)容輸出;專業(yè)資料整理WORD格式4、 CountWord()文章內(nèi)容統(tǒng)計函數(shù),實現(xiàn)上圖1 菜單功能 3,對存儲在鏈表中文本內(nèi)容進行統(tǒng)計,包括對文本內(nèi)容中的大寫字母、小寫字母、數(shù)字、標點符號、空格以及文章所有字數(shù)的個數(shù)的統(tǒng)計;圖 2 是對其完整描述;5、 SearchWord()文章內(nèi)容查找函數(shù),實現(xiàn)上圖3 菜單功能 1 中查找局部;6、 DeleteWord
10、()文章內(nèi)容刪除函數(shù),實現(xiàn)上圖3 菜單功能 2 中刪除局部;7、 InsertWord()文章內(nèi)容插入函數(shù),實現(xiàn)上圖3 菜單功能 3 中插入局部;8、 Bmenu() 第二子菜單函數(shù),實現(xiàn)上圖1 菜單功能 4,圖 3 是此函數(shù)實現(xiàn)的結(jié)果,它將5、6、 7 各子函數(shù)集合在此函數(shù)中;9、 AboutWord()顯示作者信息的函數(shù),實現(xiàn)上圖1 菜單功能 5。10、 menu() 主菜單函數(shù),其結(jié)果為圖1 所顯示局部,將 1、2、 3、 4、8、 9 等函數(shù)集合。11、 main主函數(shù)各函數(shù)關系用流程圖形式繪制如下:mainmenuCreatWordCountWordBmenuAboutWordPri
11、ntWordSearchWordInsertWordDeleteWordEnd專業(yè)資料整理WORD格式圖 4 各函數(shù)之間的關系專業(yè)資料整理WORD格式三詳細設計專業(yè)資料整理WORD格式1、定義單鏈表結(jié)點類型typedef struct _list/行表構造專業(yè)資料整理WORD格式char data80;/記錄一行字符int length;/ 記錄一行字符長度struct _list *next;/ 后繼指針struct _list *pre;/ 前趨指針int row;/記錄整篇文章的行數(shù)LinkList;專業(yè)資料整理WORD格式2、全局變量的定義intNUM,C,N; / 定義全局變量,Nu
12、m 用來記錄行號,LinkList *head; / 定義全局變量*head,文章首行頭指針C 用來記錄子串在主串中出現(xiàn)的總次數(shù)專業(yè)資料整理WORD格式3、A 各子函數(shù)的偽碼CreatWord 文本內(nèi)容輸入函數(shù)專業(yè)資料整理WORD格式具體創(chuàng)立過程如下:a、 定義 LinkList 指針變量 *temp:LinkList *temp;b、 定義文本輸入變量ch,記錄文本行數(shù)變量j,記錄每行字符數(shù)變量c、 申請動態(tài)存儲空間:head->next=(LinkList *)malloc(sizeof(LinkList);d、 首行頭指針的前驅(qū)指針為空:head->pre=NULL;i;專業(yè)
13、資料整理WORD格式首行指針:temp=head->next;首行指針的前驅(qū)指針也為空:temp->pre=NULL;定義沒輸入字符時文章長度為0:temp->length=0;初始化為字符串完畢標志,防止出現(xiàn)亂碼:for(i=0;i<80;i+) temp->datai='0'e、 利用循環(huán)進展文本輸入for(j=0;j<LINK_INIT_SIZE;j+)/控制一頁 for(i=0;i<80;i+) /控制一行 ch=getchar(); / 接收輸入字符temp->datai=ch; / 給 temp 指向的行賦值·
14、;···temp->length+;/ 行中字符長度加1if(ch='#')NUM=j; break; /文章完畢時,Num 來記錄整個文章的行數(shù)專業(yè)資料整理WORD格式在字符輸入的過程中,如果在單行輸入的字符超過了作 :輸入字符數(shù)大于80,重新分配空間建立下一行80 個字符,那么需要以下操專業(yè)資料整理WORD格式temp->next=(LinkList *)malloc(sizeof(LinkList) ;專業(yè)資料整理WORD格式給 temp 的前驅(qū)指針賦值: temp->next->pre=temp;temp 指向當前行
15、:temp=temp->next;將下一行初始化為字符串完畢標志,防止出現(xiàn)亂碼:for(i=0;i<80;i+)temp->datai='0'專業(yè)資料整理WORD格式記錄整個文章的行數(shù):temp->row=NUM+1;返回指向最后一行指針:return temp;文本輸入局部到此完畢。B、 PrintWord 當前文本輸出函數(shù)本子函數(shù)功能為將當前存儲在鏈表中的文本信息輸出在屏幕上,具體偽碼算法如下:a、 定義文本行數(shù)變量j,每行字符數(shù)i : int i,j;b、 定義指針變量:LinkList *p;c、 將指針 p 指向鏈表表頭 : p=head-&g
16、t;next;d、 利用循環(huán)輸出鏈表*息:for(j=0;j<=NUM&&p!=NULL;j+)=for(i=0;(i<80)&&(p->datai)!='#'i+)=printf("%c",p->datai);p=p->next; 文本輸出函數(shù)到此完畢。C 、CountWord()文本內(nèi)容統(tǒng)計函數(shù)本子函數(shù)是對文本中內(nèi)容進展統(tǒng)計。具體偽碼算法如下:a、 定義指針變量temp:LinkList *temp;b、 定義記錄文本行數(shù)變量j ,每行字符數(shù)i ;c、 定義記錄文本大寫字母數(shù)、小寫字母數(shù)、 空
17、格數(shù)、 數(shù)字數(shù)、 標點數(shù)和總字數(shù)的變量:int WORD=0,word=0,space=0,num=0,punct=0,sum=0;d、 將指針 temp 指向鏈表表頭:temp=head->next;e、 利用循環(huán)對鏈表*息進展匹配判斷,將大寫字母數(shù)、小寫字母數(shù)、空格數(shù)、數(shù)字數(shù)、標點數(shù)和總字數(shù)統(tǒng)計出來:for(j=0;j<=NUM;j+)專業(yè)資料整理WORD格式for(i=0;(i<80)&&(temp->datai)!='#'i+)專業(yè)資料整理WORD格式ch=temp->datai;專業(yè)資料整理WORD格式if(ch>=
18、'A')&&(ch<='Z')else if(ch>='a')&&(ch<='z')else if(ch>='0')&&(ch<='9')else if(ch=' ')WORD+;word+;num+;space+;專業(yè)資料整理WORD格式elseif(ch=33|ch=34|ch=39|ch=44|ch=46|ch=58|ch=59|ch=63)punct+;sum=WORD+word+num;f、 本程
19、序?qū)y(tǒng)計工程設計了菜單提供給用戶選擇。菜單的編寫使用do while 語句進展循環(huán)操作,此局部不再多談。D SearchWord( ) 文本內(nèi)容查找函數(shù)本子函數(shù)是對文本內(nèi)容進展查找并且對查找的內(nèi)容進展統(tǒng)計其出現(xiàn)的次數(shù)。具體偽碼算法如下:a、 定義一個數(shù)組,用來記錄需要查找的字符內(nèi)容:char Data20;b、 定義定義文本行數(shù)變量j ,每行字符數(shù)i ,記錄字符出現(xiàn)的次數(shù)變量:int i,j,m=0.,sum=0;專業(yè)資料整理WORD格式c、 對形參中定義的指針變量進展操作,使其指向鏈表表頭d、 使用 VC+ 中的拷貝函數(shù),將形參中 str1 的值賦給e、 利用循環(huán)進展查找操作,核心算法為::
20、temp=head->next; Data:strcpy(Data,str1);專業(yè)資料整理WORD格式if(temp->dataj)=Datak)專業(yè)資料整理WORD格式k+;/ 將輸入的查找字符與鏈表*息比較,找到第一個一樣的字符else if(Datak!='0')j=j-k; k=0; / /從主串第j-k 個位置重新查找if(Datak='0')sum+;/ 此字符出現(xiàn)的次數(shù)加1j=j-k+1; /j記錄下該字符串出現(xiàn)的位置printf("tt第 %d 次出現(xiàn)在第 %d 行第 %d 列 n",l,i+1,j+1);l+;
21、k=0;continue;專業(yè)資料整理WORD格式temp=temp->next; /指向下一行專業(yè)資料整理WORD格式對文本內(nèi)容查找的局部完成。E 、 DeleteWord( ) 文本內(nèi)容刪除函數(shù)此子函數(shù)是對文本內(nèi)容進展刪除。具體偽碼算法如下:f、 定義一個數(shù)組用來存儲需要刪除的字符或者字符串:g、定義指針變量:LinkList *temp, *term ;char Data20;專業(yè)資料整理WORD格式h、定義整形變量用來控制行數(shù)、字符數(shù):int i,j,k,m,y,num;i、 使用 VC+ 中拷貝函數(shù)講形參中需要刪除的字符或字符串賦值給已定義的數(shù)組:專業(yè)資料整理WORD格式str
22、cpy(Data,str2);專業(yè)資料整理WORD格式j、 使用循環(huán)進展刪除操作:其核心算法為 :for(i=0;i<=NUM;i+) for(j=0;j<80;j+) if(temp->dataj)=Datak) k+;else if(Datak!='0') j=j-k;k=0;if(Datak='0')num=j;break; if(num<80) break;首先是使用循環(huán)查找到需要刪除字符或者字符串的字符數(shù)以及字符或者字符串的位置,以便于刪除;for(;i<=NUM;i+) for(;j<80;j+) if(j+1&l
23、t;k) term->data80-k+num=temp->dataj+1; / 刪除的字符串不在最后一行, 將下一行的字符由 temp 指向前移到前行elsetemp->dataj-k+1=temp->dataj+1; / 當要刪除的字符串在最后一行只要將最后一行的字符前移term=temp;temp=temp->next;專業(yè)資料整理WORD格式j=0;/ 在使用循環(huán), 從查找到的字符或者字符串開場進展刪除,在一行刪除完畢之后,轉(zhuǎn)至下一行進展刪除。刪除局部到次完成。F 、 InsertWord()文本內(nèi)容插入函數(shù)此函數(shù)為向文本中插入字符或者字符串。具體偽碼如下
24、:專業(yè)資料整理WORD格式a、 定義需要插入的字符或者字符串的輸入數(shù)組b、 定義需要插入的字符或者字符串的插入的行和列:char Data20;:int h,l;專業(yè)資料整理WORD格式c、 進展輸入操作,將上述兩個局部進展輸入專業(yè)資料整理WORD格式d、 定義一個整形變量,確定插入的具體位置:int i=(h-1)*80+l;專業(yè)資料整理WORD格式e、 定義一指針變量:LinkList *a;專業(yè)資料整理WORD格式f、 對輸入的字符進展插入操作,具體核心算法如下:專業(yè)資料整理WORD格式int n=strlen(Data);int m ;專業(yè)資料整理WORD格式int insertRow
25、=i/80+1;/ 確定插入位置的行數(shù)int row=temp->row;/ 將全局變量記錄的行數(shù)賦值給rowint j;if(insertRow=row)/判斷插入位置是否在最后一行for(m=temp->length-1;m>=(i%80)&&n>0;m-)temp->datam+n=temp->datam;/ 將最后一行插入位置后面的所有字符向后移 n 位 for(m=(i%80),j=0;m<n+(i%80);m+,j+)temp->datam=Dataj;/ 將要插入的字符或者字符串賦值到要插入的位置else/如果插入的
26、位置不再最后一行專業(yè)資料整理WORD格式int r=0;for(int p=insertRow; p<row;p+)if(p = insertRow)r=0;elser=n;for(m=temp->length-1-r;m>=0&&n>0;m-)temp->datam+n=temp->datam;/將最后一行整體后移n 位a= temp; /p 指向前一行temp = temp->pre;/temp 指向前一位temp->length = 80;for(m = temp->length-n,j=0;m<temp->
27、;length;m+,j+)a->dataj=temp->datam; /將前一行后n 個字符移到下一行的前for(m=temp->length-n-1;m>=(i%80);m-)temp->datam+n=temp->datam;/插入行位置后的字符后移for(m=(i%80),j=0;m<(i%80)+n;m+,j+)n 個字符位置n 位專業(yè)資料整理WORD格式temp->datam =Dataj;/ 將要插入的字符賦值到插入的位置 return temp;E) 、 Bmenu文本內(nèi)容處理菜單本函數(shù)為文本內(nèi)容處理菜單,即使用循環(huán)語句對文本內(nèi)容
28、處理局部的子函數(shù)集中在此函數(shù)中。F) 、 HeadWord() 、 AboutWord() 輸出信息函數(shù)這兩個子函數(shù)為本人自己另加的輸出程序信息的函數(shù);專業(yè)資料整理WORD格式HeadWord 是將一標題輸出在DOS 節(jié)面的最上端;AboutWord 是顯示作者信息;G、 menumain 主菜單函數(shù)以及主函數(shù);本人將主菜單單獨創(chuàng)立為一個子函數(shù),方便觀看。仍然是很簡單的循環(huán)語句實現(xiàn)。主函數(shù)為 :void main()head=(LinkList *)malloc(sizeof(LinkList);LinkList *temp;menu(temp);先為 head 申請存儲空間,然后創(chuàng)立指針變量
29、temp,然后直接在主菜單函數(shù)中進行其他操作。四調(diào)試分析1、 上機調(diào)試過程中遇到的問題及解決方法:a由于本程序的操作大局部都為經(jīng)常使用的查找、刪除、插入,根本的算法及代碼都可以通過查找資料得到,故沒有出現(xiàn)多大的問題。錯誤主要是在于刪除及插入等子函數(shù)中復雜操作過程中出現(xiàn)的小問題。b刪除及插入過程中需要在子函數(shù)中定義一個數(shù)組變量,用來存儲輸入的信息,然后用來與鏈表中的信息進展比較以到達刪除或者插入。另為到達將輸入的信息賦值給子函數(shù)中定義的數(shù)組,特使用了c+中的 strcpy函數(shù)。c為了將程序界面更加的完美,做了3 個菜單,還寫了一個子函數(shù)專門將標題顯示在程序最上端。清屏函數(shù)使用system“ cl
30、s 。2、 時間,空間性能分析:本算法的空間復雜度很低,只需要文本的行數(shù)N1 *80+L 最后一行字符數(shù)的數(shù)組存放結(jié)果,因此空間復雜度為O(N)。但是本算法的時間復雜度比較高,由于輸出函數(shù)、查找函數(shù)算法時間復雜度均為 O N,但是刪除函數(shù)、插入函數(shù)算法的時間復雜度較高。但是,我暫時還問想到時間復雜度更小的算法,因此在這里我無法對該算法進展優(yōu)化。3、 經(jīng)歷和體會:得到文本編輯器這一課程設計題目時,自己還比較害怕是制作向windows 系統(tǒng)中記事本一樣的程序??戳巳蝿諘笞约河辛诵┬牢?,任務書上要求是對輸入的信息進展操作,這是我們經(jīng)常練習的內(nèi)容,雖然是比平時練習的更為難,更有深度, 但自己畢竟知
31、道該向什么方向去努力, 自己應該如何去編寫這個程序。所以自己在整個課程設計過程中還是比較輕松的, 編寫過程中遇到的困難及問題都通過查閱資料、向教師提問得以解決。這都是基于對課題有一個明確的了解, 清楚向什么方向去寫。 所以本次課程設計自己最大的體會就是不管寫什么程序, 自己首先得對這個問題要分析透徹, 要知道自己要干什么, 然后才能讓自己干什么。五測試結(jié)果專業(yè)資料整理WORD格式測試文章 :專業(yè)資料整理WORD格式Real beauty comes from learning, growing, and loving in the ways of life. That is the Art o
32、 f Life. You can learn slowly, and sometimes painfully, by just waiting for life to happen to y ou. Or you can choose to accelerate your growth and intentionally devour life and all it off ers. You are the artist that paints your future with the brush of today.運行程序后:圖 5 程序主菜單按照注先選擇1 號功能有:圖 6 文本輸入輸入完
33、文字后退回到主菜單,然后選擇2 號功能有 :圖 7 當前文本輸出專業(yè)資料整理WORD格式返回后回到主菜單,然后選擇3 號功能進入文本內(nèi)容統(tǒng)計菜單有:專業(yè)資料整理WORD格式圖 8 文章內(nèi)容統(tǒng)計菜單選擇 1-6 號功能有:專業(yè)資料整理WORD格式圖 9統(tǒng)計各功能顯示結(jié)果如果選擇7 回到主菜單,選擇8 直接退出程序?;氐街鞑藛魏筮x擇4 號功能有:圖 10 文章內(nèi)容處理菜單選擇 1 后有:圖 11 文本查找結(jié)果專業(yè)資料整理WORD格式選擇 2 后有:專業(yè)資料整理WORD格式圖 12 文章刪除結(jié)果選擇 3 后有:專業(yè)資料整理WORD格式圖 13 文章插入結(jié)果全部完畢后按5 回主菜單,按6 直接退出程序
34、?;刂鞑藛魏筮x擇5 有:專業(yè)資料整理WORD格式圖 14 關于界面回主菜單項選擇擇6 后退出本程序。六程序完整代碼#include"stdio.h"#include"malloc.h"#include"string.h"#include"iostream.h"#include"stdlib.h"#include"conio.h"#define Link_Size 100int NUM,C,N;typedef struct listchar data80;int length;
35、struct list *next;struct list *pre;int row; LinkList; LinkList *head;void HeadWord()/ system("cls");printf("tt*n");printf("tt*歡迎使用簡單的文本編輯器*n");printf("tt*n");專業(yè)資料整理WORD格式LinkList *CreatWord()LinkList *temp;char ch;int i,j;head->next=(LinkList *)malloc(sizeo
36、f(LinkList);head->pre=NULL;temp=head->next;temp->pre=NULL;temp->length=0;for(i=0;i<80;i+)temp->datai='0'專業(yè)資料整理WORD格式printf(" 開場創(chuàng)立文本,請輸入文章輸入for(j=0;j<Link_Size;j+)#號完畢:n");專業(yè)資料整理WORD格式for(i=0;i<80;i+)ch=getchar();temp->datai=ch;temp->length+;if(ch='
37、#')NUM=j;break;if(ch='#')temp->length=i;temp->next=NULL;break;專業(yè)資料整理WORD格式temp->next=(LinkList *)malloc(sizeof(LinkList) ;temp->next->pre=temp;temp=temp->next;for(i=0;i<80;i+)temp->datai='0'專業(yè)資料整理WORD格式temp->row=NUM+1;system("cls");return temp
38、;void PrintWord()int i,j;LinkList *p;p=head->next;system("cls");HeadWord();printf("n當前文章的內(nèi)容是:");for(j=0;j<=NUM&&p!=NULL;j+)for(i=0;(i<80)&&(p->datai)!='#'i+)printf("%c",p->datai);p=p->next;void CountWord()LinkList *temp;char ch;
39、int i,j,t;int WORD=0,word=0,space=0,num=0,punct=0,sum=0;temp=head->next;for(j=0;j<=NUM;j+)for(i=0;(i<80)&&(temp->datai)!='#'i+)ch=temp->datai;if(ch>='A')&&(ch<='Z')WORD+;else if(ch>='a')&&(ch<='z')word+;else i
40、f(ch>='0')&&(ch<='9')num+;專業(yè)資料整理WORD格式else if(ch=' ')space+;else if(ch=33|ch=34|ch=39|ch=44|ch=46|ch=58|ch=59|ch=63)punct+;sum=WORD+word+num;while(1)printf("n");HeadWord();printf("tt*n");printf("tt*文章內(nèi)容統(tǒng)計菜單*n");printf("tt*n&quo
41、t;);printf("tt*1、文章中大寫字母的個數(shù)*n");printf("tt*2、文章中小寫字母的個數(shù)*n");printf("tt*3、文章中數(shù)字的個數(shù)*n");printf("tt*4、文章中標點符號的個數(shù)*n");printf("tt*5、文章中空格的個數(shù)*n");printf("tt*6、文章中所有字數(shù)*n");printf("tt*7、退出返回主菜單*n");printf("tt*8、直接退出本系統(tǒng)*n");print
42、f("tt*n");printf("tt請選擇需統(tǒng)計工程:");scanf("%d",&t);switch(t)case 1:system("cls");HeadWord();printf("ntt文章中大寫字母的個數(shù):%dn",WORD);printf(" 按回車鍵繼續(xù)····· ");getchar();getchar();system("cls");break;case 2:system(&q
43、uot;cls");HeadWord();printf("ntt文章中小寫字母的個數(shù):%dn",word);printf(" 按回車鍵繼續(xù)····· ");getchar();getchar();system("cls");專業(yè)資料整理WORD格式break;case 3:system("cls");HeadWord();printf("ntt文章中數(shù)字的個數(shù):%dn",num);printf(" 按回車鍵繼續(xù)·
44、183;··· ");getchar();getchar();system("cls");break;case 4:system("cls");HeadWord();printf("ntt文章中標點符號的個數(shù):%dn",punct);printf(" 按回車鍵繼續(xù)····· ");getchar();getchar();system("cls");break;case 5:system("cls");HeadWord();printf("ntt文章中空格的個數(shù):%dn",space);printf("
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025購房借款合同書范文
- 跨學科知識聯(lián)合的未來發(fā)展趨勢
- 包魚塘合同范例
- 汕頭大學《運作管理》2023-2024學年第一學期期末試卷
- 山東電力安裝合同范例
- 2024至2030年電動鉛筆刨電機項目投資價值分析報告
- 售后網(wǎng)合作合同范例格式
- 場地承包合同范例
- 歸僑僑眷食品救助合同范例
- 煤炭裝袋銷售合同范例
- (期末押題卷)期末綜合測試提高卷-2023-2024學年六年級上冊科學高頻易錯期末必刷卷(蘇教版)
- 提升ehs管理水平的方法和技巧
- 護理身份識別制度課件
- 兒童醫(yī)學科普-醫(yī)學演示課件
- 宴會廳 最佳團隊
- dzl213型鍋爐低硫煙煤煙氣袋式除塵濕式脫硫系統(tǒng)設計
- 廣東檢測鑒定協(xié)會非金屬考試試題
- 2023年社區(qū)居家養(yǎng)老服務規(guī)章制度3篇
- M供應鏈運作參考模型SCOR簡介
- 勞動技能實操指導(勞動教育)學習通課后章節(jié)答案期末考試題庫2023年
- 惡性腹膜間皮瘤
評論
0/150
提交評論