资源简介
本程序是以学校数据结构与算法课程设计要求为背景,利用了C语言、数据结构知识和VC++6.0开发平台,开发的文章编辑器。源程序中本人为代码加上了明确的详细注释,适合后来者参考和提供思路。
代码片段和文件信息
#include
#include
#include
#include
#define N 80//文章行数
typedef struct line
{
char str[N]; //存储该行的内容
int num; //用来记录行号
struct line *prior; //用来指向前一行
struct line *next; //用来指向下一行
}LINE;
LINE *start; //指向线性表的第一行
LINE *last; //指向线性表的最后一行
int Choice();
int ij;
int ch=0;
void title()
{
printf(“ ____________________________________________________\n\n“);
printf(“ **** 欢迎使用文章编辑系统 **** \n“);
printf(“ **** 作者: 学号: **** \n“);
printf(“ ____________________________________________________ \n“);
}
int menu()
{
title();
printf(“| 【 功能菜单 】 |\n“);
printf(“| 0.退出系统 |\n“);
printf(“| 1.输入文章 |\n“);
printf(“| 2.输出文章 |\n“);
printf(“| 3.删除字符 |\n“);
printf(“| 4.添加字符 |\n“);
printf(“| 5.统计数目 |\n“);
printf(“| 6.存储文章 |\n“);
printf(“| 7.打开文章 |\n“);
printf(“-----------------------------------------------------\n“);
printf(“ 请输入一个数<0-7>:“);
}
void Output()
{
LINE *p = start;
while(p != last) //当p所指向的不是最后一行时,循环输出
{
printf(“\n\n第%d行|%s“p->nump->str); //输出行号和字符串
p = p->next;//p指向下一行
}
printf(“\n\n第%d行|%s\n“last->numlast->str); //当p所指向最后一行时,输出最后一行内容
printf(“\n“);
}
void Input()
{
LINE *info*temp;//行指针,info指向当前行,temp指向info的前驱行
char ch; //ch用于记录输入的字符串
int linenumi;//行计数器i为行字符数组下标
FILE *fp; //文件指针
temp = NULL; //将temp置空
start = (LINE*)malloc(sizeof(LINE)); //生成一行的结点空间
info = start;//指向线性表的第一行
linenum = 1; //行号初值为1
printf(“请输入文章内容[每行不得超过80个字符(以字符‘#‘结束)]:\n“);
while((ch = getchar())!=‘#‘) //当接收到字符不为‘#‘
{
i = 0;//i为行字符数组下标初值为0
info->str[i] = ch;//将ch即接收到的字符存储到该行中
i++;//下标加1
while((ch = getchar())!=‘\n‘) //从文件中读到一行字符到线性表中
{ //一行中有多少字符就循环多少次
info->str[i] = ch;
i++;
}
info->str[i] =‘\0‘;
info->num = linenum++; //行号存储在线性表中后加一
info->next = (LINE*)malloc(sizeof(LINE));//为下一行生成一行的结点空间
if (i>=80) //0~79个字符
{
printf(“每行最多输出80个字符!\n“);
printf(“请重新输入文章!\n“);
Sleep(5000); //休眠5秒
system(“cls“);
title();
Input();
}
info->prior = temp;
temp = info;
info = info->next;
}
temp->next = NULL;
last = temp;
free(info);
start->prior = NULL;
}
int CountAll()
{
int English=0;//英文字母数目
int Blank=0;//空格数目
int Number=0;//数字数目
int All=0;//所有文字数目
int i=0;
LINE *p = start;
//首先输出原文章
printf(“\n|>>> 【原文章】 <<<|\n“);
while(p != last) //当p所指向的不是最后一行时,循环输出
{
printf(“\n\n第%d行|%s“p->nump->str); //输出行号和字符串
wh
- 上一篇:停车收费系统.rar
- 下一篇:栈实现中缀表达式到后缀表达式的转换
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论