资源简介
本程序是以学校数据结构与算法课程设计要求为背景,利用了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语言课程设计大作业-学生管理系统含
- 计算方法上机实验报告-C语言
- C语言计算器带括号、小数计算
- google code mfcc c语言实现。
- c语言实现通讯录C语言代码
- c语言版学生成绩管理系统实验报告
- 单片机C语言,Proteus仿真,多功能闹钟
- 计算机操作系统实验报告,C语言实现
- 表达式求值(C语言栈实现)
- 学生成绩管理系统C语言
- c语言实现的大数四则运算程序
- 学生学分综合管理系统
- c语言运动会分数统计
- svd分解的C语言实现
- c语言课程设计学生选课系统
- 简易秒表时钟的设计含C语言及proteu
- C语言DFT计算
- 大作业C语言的五子棋全套
- c语言编写的置换密码源代码
- 最小RTSP服务器,C语言代码
- 用链表实现多项式加减法运算
- 郁闷的出纳员(c语言)
- 音频编码pcm的c语言实现
- aes密钥扩展C语言实现
- 运动会分数统计系统 c语言
- c语言课程设计_实验设备管理系统
- C语言 实现离散数学真值表
- C语言电梯的模拟运行课程设计实验报
- 斗地主课程设计 c语言版
- Koch曲线C语言
评论
共有 条评论