第一篇:數據結構 簡易文本編輯器(共)
題目:
【2】.簡易文本編輯器 要求:
1)具有圖形菜單界面;
2)查找,替換(等長,不等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除
3)可正確存盤、取盤; 4)正確顯示總行數。
1需求分析
一個簡易文本編輯器應該具有圖形菜單界面,包括查找,替換(等長,不等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除文本信息等功能并可正確存盤、取盤,正確顯示總行數。
2概要設計
為實現數據的有序存儲,該編輯器應該用順序表來存儲輸入的信息。順序表是數據結構中線性表的一種,它是用一塊地址連續的存儲空間依次存儲線性表的元素。其特點為:在順序表上邏輯關系相鄰的倆個元素在物理位置上也相鄰;在順序表上可以隨即存取表中的元素。在編輯器的主界面中應有如下提示信息:
⑴ 清空以前的文本信息:將用數組存的數據內容全部置為0;
⑵ 顯示當前文本信息:遍歷用數組存入的信息,并輸入到外部顯示器上; ⑶ 編輯信息:定義一個結構體,并在結構體中定義一個字符型的一維數組和一個整型變量,這個整型變量用于記錄一維數組中存入數據的個數; ⑷ 替換文本信息:首先在數組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內容,否則提示未找到要被替換的信息;
⑸ 插入文本信息:首先在數組中查找要插入點,如果找到該插入點,提示輸入插入信息,確認插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點,顯示未找到要插入的位置;
⑹ 移動文本信息:首先在數組中查找要移動的信息,如果找到該信息,提示是進行列移動還是進行行移動,否則提示未找到要移動的信息; ⑺ 刪除文本信息:首先在數組中查找要刪除的信息,如果找到該信息,提示是否確認刪除該信息,通過確認來刪除信息,如果未找到要刪除的信息,提示未找到該信息;
⑻ 退出編輯器:顯示感謝使用該軟件并退出。詳細設計
void menu();
void shuru(char text[]);void bc(char text[]);
void dakai(char text[]);void dayin(char text[]);void chazhao(char text[],int l);void tihan(char text[],int l);int strindex(char text[],char t[],int i2,int l);void shanchu(char p[],int l);void cs(char text[]);void charu(char text[],int l);void tuichu(int status);char text[MAX]=“";//文本編輯域 char name[20]=”“;//文件保存的位置 int status=0;//顯示是否保存過的狀態 int ntext;
//文本編輯的位置
4用戶使用說明
⑴ 清空以前的文本信息:將用數組存的數據內容全部置為0;
⑵ 顯示當前文本信息:遍歷用數組存入的信息,并輸入到外部顯示器上; ⑶ 編輯信息:定義一個結構體,并在結構體中定義一個字符型的一維數組和一個整型變量,這個整型變量用于記錄一維數組中存入數據的個數; ⑷ 替換文本信息:首先在數組中查找要被替換的信息,如果找到該信息,提示輸入要替換的信息內容,否則提示未找到要被替換的信息;
⑸ 插入文本信息:首先在數組中查找要插入點,如果找到該插入點,提示輸入插入信息,確認插入信息后,提示選擇向前插入信息還是向后插入信息,如果未找到插入點,顯示未找到要插入的位置;
⑹ 移動文本信息:首先在數組中查找要移動的信息,如果找到該信息,提示是進行列移動還是進行行移動,否則提示未找到要移動的信息; ⑺ 刪除文本信息:首先在數組中查找要刪除的信息,如果找到該信息,提示是否確認刪除該信息,通過確認來刪除信息,如果未找到要刪除的信息,提示未找到該信息;
⑻ 退出編輯器:顯示感謝使用該軟件并退出。
5調試分析 /測試結果
文本編輯器主界面
主界面功能,如圖2—2所示。
圖2—2 文本編輯器主界面
系統功能
⑴ 輸入文本信息功能,如圖2—3所示。
圖2—3 輸入界面
⑵ 查找文本信息,如圖2—4所示。
圖2—4查到功能界面 ⑶ 顯示文本信息,如圖2—5。
圖2—5 {4}刪除操作,如圖2--6
圖2—6(刪除123)功能 {5}插入操作
如圖2—7所示。
圖2—7(在789前插入123)界面 {6}替換文本內容,如圖2—8所示。
圖2—8(替換456為abc)的內容 6心得體會
程序的運行結果與理論推導結果完全吻合,即該算法與程序設計滿足課程設計要求。該程序的主要優點是簡單易懂,不存在理解上的障礙,也很自然地能想到這種解法。通過數據結構的課程設計使我們對所學知識有了更好的理解,也增強了大家的動手能力。同時也發現了自己的很多不足之處,對知識的應用能力很是欠缺,應用軟件的能力及編程水平與課程要求更是存在很大的差距。
7程序
#include
void shuru(char text[]);void bc(char text[]);
void dakai(char text[]);void dayin(char text[]);void chazhao(char text[],int l);void tihan(char text[],int l);int strindex(char text[],char t[],int i2,int l);void shanchu(char p[],int l);void cs(char text[]);void charu(char text[],int l);void tuichu(int status);char text[MAX]=”“;//文本編輯域 char name[20]=”“;//文件保存的位置 int status=0;int ntext;//顯示是否保存過的狀態
//文本編輯的位置
//在vs中取消warning的警告
void dakai(char text[]){
system(”cls“);
FILE *fp;char pd,ch;char name[30];int i=0;printf(”輸入A:確定打開文件(未保存的數據將會丟失)M:返回主菜單“);fflush(stdin);pd=getchar();if(pd=='A'||pd=='a'){
printf(”請輸入要打開文件名字(例如c:a.txt)“);
scanf(”%s“,name);
while((fp=fopen(name,”r“))==NULL)
{
printf(”n打開文件失敗,請重新輸入要打開的文件名:“);
scanf(”%s“,name);
}
cs(text);
while(!feof(fp))
{
ch=fgetc(fp);
text[i]=ch;
i++;
}
text[i]=' 主站蜘蛛池模板: 久久伊人少妇熟女大香线蕉| 久久精品国产精品亚洲38| 忘忧草社区www日本高清图片| 亚洲午夜久久久精品影院| 人妻丰满熟妇av无码区乱| 欧美日韩精品一区二区在线播放| 波多野结衣网站| 久久人人爽人人人人片av| 亚洲男人的天堂在线播放| av激情亚洲男人的天堂国语| 女人色毛片女人色毛片18| 日本高清在线一区二区三区| 国产麻豆精品福利在线| 欧美xxxx色视频在线观看| 四川少妇被弄到高潮| 97se狠狠狠狠狼亚洲综合网| 免费无码又爽又刺激高潮的动态图| 成人无码一区二区三区网站| 国产精品久久一区二区三区| 久久久橹橹橹久久久久| 亚洲综合无码精品一区二区三区| 久久亚洲精品无码av宋| 手机成亚洲人成电影网站| 国产成人精品久久一区二区| 老太做爰????视频| 欧美四房播播| 国产亚洲精品久久久久久久久| 国产一区二区女内射| 欧美性狂猛xxxxx深喉| 亚洲伊人久久综合网站| 欧美最猛性xxxxx大叫| 超清无码波多野吉衣中文| 国产免费无遮挡吃奶视频| 亚洲日本韩国欧美云霸高清| 无码成人午夜在线观看| 国产又粗又猛又大爽又黄| 疯狂做受xxxx高潮欧美日本| 欧美丰满肥婆videos| 狠狠色丁香婷婷综合久久图片| 97精品国产97久久久久久免费| 国产精品视频色尤物yw|