- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法与数据结构
课程设计报告书
姓 名 __
班 级 10(17)
学 号
指导教师
盐城师范学院
信息科学与技术学院
问题描述:
设计一个简单的文本编辑器,使其具有通常编辑器(如Notepad)具备的功能Pre
Temp
Next
另有全局变量*head,作为文章的头指针。
故创建了以下结构体:
typedef struct _list
{ char data[80]; //记录一行字符
int length; //记录一行字符长度
struct _list *next; // 后继指针
struct _list *pre; //前趋指针
int row; //记录整篇文章的行数
}LinkList;
在文章内容创建部分中使用线性表的链式存储,并使用全局变量对文本的各种信息进行存储;
文章的内容统计、删除、查找、插入都采用链表操作完成。
本程序在菜单中使用了大量的do while 语句。
主菜单:
1. CreatWord() 文本输入函数,实现菜单功能1,对文本的内容进行输入;
2. PrintWord() 当前文本内容输出函数,实现菜单功能2,将当前存储在链表中的文本内容输出;
3. CountWord() 文章内容统计函数,实现菜单功能3,对存储在链表中文本内容进
行统计,包括对文本内容中的大写字母、小写字母、数字、标点符号、空格以及文章所有字
数的个数的统计;图2是对其完整描述;
子菜单3:
子菜单4:
程序输入与结果输出:
主菜单:
子菜单1:
子菜单3:
子菜单4:
实验结果分析及收获:
通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C++语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。
附录(源程序清单)
#include"stdio.h"
#include"malloc.h"
#include"string.h"
#include"iostream.h"
#include"stdlib.h"
#include"conio.h"
#define Link_Size 100
int NUM,C,N;
typedef struct list
{
char data[80];
int length;
struct list *next;
struct list *pre;
int row;
} LinkList;
LinkList *head;
void HeadWord()
{
// system("cls");
printf("\t\t****************************************************\n");
printf("\t\t**** 欢迎使用简单的文本编辑器 ****\n");
printf("\t\t****************************************************\n");
}
LinkList *CreatWord()
{
LinkList *temp;
char ch;
int i,j;
head->next=(LinkList *)malloc(sizeof(LinkList));
head->pre=NULL;
temp=head->next;
temp->pre=NULL;
temp->length=0;
for(i=0;i<80;i++)
temp->data[i]='\0';
printf("开始创建文本,请输入文章(输入#号结束):\n");
for(j=0;j<Link_Size;j++)
{
for(i=0;i<80;i++)
{
ch=getchar();
temp->data[i]=ch;
temp->length++;
if(ch=='#')
{
NUM=j;
break;
文档评论(0)