搜档网
当前位置:搜档网 › 数据结构课程设计-文章编辑(附录中有全部代码)

数据结构课程设计-文章编辑(附录中有全部代码)

数据结构课程设计-文章编辑(附录中有全部代码)
数据结构课程设计-文章编辑(附录中有全部代码)

课程设计任务书

专业名称:计算机科学与技术(软件工程)

课程名称:数据结构课程设计

设计题目:文章编辑问题

起止时间:2013年6 月24 日至2013年7 月12 日

问题描述

静态存储一页文章,每行最多不超过80个字符,共N行,程序可以统计出文字、数字、空格的个数,并且可以对文章中特定内容进行查找及替换,同时也可以删除指定内容。

基本要求

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)查找出文章中某一段文字,并用其他文字进行替换;

(4)删除某一子串,并将后面的字符前移。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";

(3)查找出指定字符串在文章中出现的所有地方并替换,输出替换后结果;

(4)输出删除某一字符串后的文章;

实现提示

存储结构使用线性表,分别用几个子函数实现相应的功能,并且使用菜单的形式,可以选择所要进行的操作(查找、替换、删除、统计等)。

文章编辑系统

1概要设计

本次课程设计的题目是文章编辑系统,本系统的功能描述如下:用户新建文本、浏览新建文本、文本字符统计、指定字符串统计、指定字符串删除、指定字符串替换等操作。

1.新建文本

2.浏览输入文本

3.文本字符统计

4.指定字符串统计

5.指定字符串删除

6.指定字符串替换

7.退出系统

本系统包含七个功能模块,分别为:新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指定字符串删除模块,指定字符串替换模块以退出系统模块。新建文本模块实现用户录入文本信息,并且系统自动保存录入信息。浏览输入文本模块实现了显示用户录入信息的功能。指定字符串统模块实现了对英文字母数和空格数及整篇文章总字数的统计。指定字符串统计实现了统计用户自定义字符串个数的功能。指定字符串删除模块实现了对用户自定义字符串的删除。指定字符串替换模块实现了替换用户自定义字符串为用户定义的新字符功能。退出系统模块实现了退出系统功能。

图1.1 系统功能模块图

2详细设计

这部分详细介绍了系统中主要部分的功能实现,以及代码功能说明。

void Create(LINE * &head)

{

printf ("请输入一页文章,以Ctrl+E为结尾(每行最多输入80字

符!):\n"); //以Ctrl+E结束文本录入,避免发生混淆LINE *p=new LINE; /*首先为链表建立一个附加表头结点*/ head=p; /*将p付给表头指针*/

char ch[100];

while(1)

{

gets(ch); /*输入字符串!*/

if(strlen(ch)>80)

{

printf("每行最多输入80字符");

break;

}

if(ch[0]==5)break; /*如果发现输入 ^E,则退出输入*/ p=p->next=new LINE;

p->data=new char[strlen(ch)+1]; /*为结点分配空间 */ strcpy(p->data,ch);

if(ch[strlen(ch)-1]==5) /*除去最后一个控制符 ^E */

{

p->data[strlen(ch)-1]='\0';

break;

}

}

p->next=NULL; /*最后的一个指针为空 */

head=head->next;

}

/**文本字数统计**/

int Count_Space(LINE* &head)//统计空格数

{

LINE *p=head;

int asc_space=32;

int count=0;

int i;

int Len;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]==asc_space)

count++;

}while((p=p->next)!=NULL);

return count;

}

int Count_Num(LINE * &head)//统计数字个数

{

LINE *p=head;

int count=0;

int Len;

int i;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]>=48 && p->data[i]<=57)

count++;

}while((p=p->next)!=NULL);

return count;

}

int Count_All_Word(LINE * &head)//统计文章的总字数

{

LINE *p=head;

int count=0;

do{

count+=strlen(p->data);

}while((p=p->next)!=NULL);

return count;

}

int Count_Letter(LINE * &head)//统计字母数

{

LINE *p=head;

int count=0;

int Len;

int i;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]>='a' && p->data[i]<='z'||p->data[i]>='A' && p->data[i]<='Z')count++; //计算字母个数

}

while((p=p->next)!=NULL);

return count;

}

int Find_Word(LINE * &head,char *sch)//统计 sch 在文章中出现的次数

{

LINE *p=head;

int count=0;

int len1=0;

int len2=strlen(sch);

int i,j,k;

do{

len1=strlen(p->data);//当前行的字符数

for(i=0;i

{

if(p->data[i]==sch[0])

{

k=0;

for(j=0;j<=len2-1;j++)

if(p->data[i+j]==sch[j])k=k+1;

if(k==len2) {count++;i=i+k-1;}

}

}

}while((p=p->next)!=NULL);

return count;

}

/**特定字符串的删除**/

void del_string_word(char *s,char *sch)

{

char *p=strstr(s,sch);

char tmp[80];

int len=strlen(s);

int k,kk;

int i=len-strlen(p);

int j=i+strlen(sch);

int count=0;

for(k=0;k

tmp[count++]=s[k];

for(kk=j;kk

tmp[count++]=s[kk];

tmp[count]='\0';

strcpy(s,tmp);

}

void Del_String(LINE * &head,char *sch)//删除指定的字符串

{

LINE *p=head;

do{

while(strstr(p->data,sch)!=NULL)

del_string_word(p->data,sch);

}while((p=p->next)!=NULL);

}

/**特定字符串的替换**/

void replace_string_word(char *s,char *sch,char *reh)

{

int StringLen;

char caNewString[100];

char *FindPos = strstr(s, sch);

// if((!FindPos) || (!sch))

// return -1;

while(FindPos)

{

memset(caNewString, 0, sizeof(caNewString));

StringLen = FindPos - s;

strncpy(caNewString, s, StringLen);

strcat(caNewString, reh);

strcat(caNewString, FindPos + strlen(sch));

strcpy(s, caNewString);

FindPos = strstr(s, sch);

}

/* return 0; */

}

void Replace_String(LINE * &head,char *sch,char *reh)//替换指定的

字符串

{

LINE *p=head;

do{

while(strstr(p->data,sch)!=NULL)

replace_string_word(p->data,sch,reh);

}while((p=p->next)!=NULL);

}

/**打印输入的文本**/

void OutPutTxt(LINE * &head)//向屏幕输出文章

{

LINE *p=head;

printf("文本文件输出如下:");

do{

printf("%s\n",p->data);

}while((p=p->next)!=NULL);

}

void Count(LINE * &head)

{

printf("文章统计信息结果:\n");

printf("全部字母数:%d\n",Count_Letter(head));

printf("数字个数:%d\n",Count_Num(head));

printf("空格个数: %d \n",Count_Space(head));

printf("文章总字数: %d\n",(Count_All_Word(head)+Count_Num(head)+Count_Space(head)+Co unt_Letter(head))/2);

printf("\n");

}

void main()

{

LINE *head;

char sch[20];

char reh[20];

char ID[10];

char ch;

char tmp_sch[20];

char tmp_rch[20];

3调试报告

在本次程序设计中,在编译过程中,出现了几次问题

(1)错误提示:error C2660: 'search' : function does not take 1 parameters

错误类型: Search函数参数错误

改正方法:将case语句后加break语句进行返回。

(2)错误提示:error C2228: left of '.search' must have class/struct/union type 错误类型:指针符号使用错误

改正方法:将s.Search(stu,s)更改为s->search(stu,s)

(3)错误提示:error C2676: binary '>>' : 'class std::basic_ofstream >' does not define this operator or a conversion to a type acceptable to the predefined operator

错误类型:文件流输入输出符号使用错误,错误使用>>作为文件写入操作符。改正方法:将>>改为<<。

4测试结果

5 使用说明

本系统开始时显示所有选择项。选择项采用文字提示,数字选择进行选择操作。

图5.1 显示运行界面录入选项:

输入1:新建文本

图5.2 新建文本界面

输入2:浏览输入文本

图5.3 浏览输入文本界面输入3:文本字符统计

图5.4 文本字符统计界面

输入4:指定字符串统计

图5.5 指定字符串统计界面输入5:指定字符串删除

图5.6 指定字符串删除界面

输入6:指定字符串替换

图5.7 指定字符串替换界面输入7:退出

图5.8 退出界面

6总结

感谢老师的指导和讲解。通过老师的讲解,让我对这门课程有了深刻的认识和了解,也让我对这门课程有了重新的认识。

通过近两周的课程设计中,我学到了数据结构程序设计中对类的设计方法,及对磁盘文件的操作,从中理解了数据结构中的设计思想。经过这次集中上机实习,我充分意识到了数据结构的用途是非常广的,功能也非常强大,是学计算机不可缺少的知识;更重要的是,在这次编程中熟悉了编写一个比较复杂程序的流程,以及发现问题、解决问题的能力,为了下一次学习一门新的计算机语言做了充分准备。在之前感觉还是遥不可及的功能,现在可以实现了,这自然要感谢老师和同学们的热心帮助,这是我得以及时完成这个程序的重要因素。最后还是要感谢老师对我们孜孜不倦的教导。

附录:全部代码

#include

#include

#include

#include

typedef struct line

{

char *data;

struct line *next;

}LINE;

void Create(LINE * &head)

{

printf ("请输入一页文章,以Ctrl+E为结尾(每行最多输入80字符!):\n"); LINE *p=new LINE; /*首先为链表建立一个附加表头结点*/ head=p; /*将p付给表头指针*/

char ch[100];

while(1)

{

gets(ch); /*输入字符串!*/

if(strlen(ch)>80)

{

printf("每行最多输入80字符");

break;

}

if(ch[0]==5)break; /*如果发现输入^E,则退出输入*/

p=p->next=new LINE;

p->data=new char[strlen(ch)+1]; /*为结点分配空间*/

strcpy(p->data,ch);

if(ch[strlen(ch)-1]==5) /*除去最后一个控制符^E */

{

p->data[strlen(ch)-1]='\0';

break;

}

}

p->next=NULL; /*最后的一个指针为空*/

head=head->next;

}

/**文本字数统计**/

int Count_Space(LINE* &head)//统计空格数

{

LINE *p=head;

int asc_space=32;

int count=0;

int i;

int Len;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]==asc_space)

count++;

}while((p=p->next)!=NULL);

return count;

}

int Count_Num(LINE * &head)//统计数字个数

{

LINE *p=head;

int count=0;

int Len;

int i;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]>=48 && p->data[i]<=57)

count++;

}while((p=p->next)!=NULL);

return count;

}

int Count_All_Word(LINE * &head)//统计文章的总字数{

LINE *p=head;

int count=0;

do{

count+=strlen(p->data);

}while((p=p->next)!=NULL);

return count;

}

int Count_Letter(LINE * &head)//统计字母数

{

LINE *p=head;

int count=0;

int Len;

int i;

do{

Len=strlen(p->data);

for(i=0;i

if(p->data[i]>='a' && p->data[i]<='z'||p->data[i]>='A' && p->data[i]<='Z')count++; //计算字母个数

}

while((p=p->next)!=NULL);

return count;

}

int Find_Word(LINE * &head,char *sch)//统计sch 在文章中出现的次数

{

LINE *p=head;

int count=0;

int len1=0;

int len2=strlen(sch);

int i,j,k;

do{

len1=strlen(p->data);//当前行的字符数

for(i=0;i

{

if(p->data[i]==sch[0])

{

k=0;

for(j=0;j<=len2-1;j++)

if(p->data[i+j]==sch[j])k=k+1;

if(k==len2) {count++;i=i+k-1;}

}

}

}while((p=p->next)!=NULL);

return count;

}

/**特定字符串的删除**/

void del_string_word(char *s,char *sch)

{

char *p=strstr(s,sch);

char tmp[80];

int len=strlen(s);

int k,kk;

int i=len-strlen(p);

int j=i+strlen(sch);

int count=0;

for(k=0;k

tmp[count++]=s[k];

for(kk=j;kk

tmp[count++]=s[kk];

tmp[count]='\0';

strcpy(s,tmp);

}

void Del_String(LINE * &head,char *sch)//删除指定的字符串{

LINE *p=head;

do{

while(strstr(p->data,sch)!=NULL)

del_string_word(p->data,sch);

}while((p=p->next)!=NULL);

}

/**特定字符串的替换**/

void replace_string_word(char *s,char *sch,char *reh)

{

int StringLen;

char caNewString[100];

char *FindPos = strstr(s, sch);

// if((!FindPos) || (!sch))

// return -1;

while(FindPos)

{

memset(caNewString, 0, sizeof(caNewString));

StringLen = FindPos - s;

strncpy(caNewString, s, StringLen);

strcat(caNewString, reh);

strcat(caNewString, FindPos + strlen(sch));

strcpy(s, caNewString);

FindPos = strstr(s, sch);

}

/* return 0; */

}

void Replace_String(LINE * &head,char *sch,char *reh)//替换指定的字符串{

LINE *p=head;

do{

while(strstr(p->data,sch)!=NULL)

replace_string_word(p->data,sch,reh);

}while((p=p->next)!=NULL);

}

/**打印输入的文本**/

void OutPutTxt(LINE * &head)//向屏幕输出文章

{

LINE *p=head;

printf("文本文件输出如下:");

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

个程序员专用的代码编辑器

个程序员专用的代码编 辑器 TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】

9个程序员专用的代码文本编辑器 下面是笔者总结的 9 个最好的免费代码文本编辑器: 1. NOTEPAD++ NOTEPAD++是一款免费又优秀的文本编辑器,支持在 MS Windows 环境下运行的多种编程语言。NOTEPAD++支持超过 50 种编程、脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户也可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的 API 子集。 2. VIM VIM 是一个可高度自由配置的文本编辑器。它是 vi 编辑器的改进版,同时也是免费软件。该应有程序的建立是为了处理代码以及其他很多事情,而不只是为了写电子邮件和打开配置文件。它允许你编辑文本并保存简单的文本文件,但它的主要功能是还是编辑代码。它支持语法高亮显示和行编号,这是写程序必备的两个基本功能。用户也可以改变界面颜色以便增加代码的可视性。 对于文本编辑,VIM 这个程序囊括了多种语言的拼写检查器,并有建议如何更正拼写错误的能力。甚至是当你正在编写代码的时候,它也能派上用场,因为该应用程序只检查不被识别为代码的文本。当然你也可以快速地从这个错误跳到下一个以便更好地校对文本。 VIM 是程序员和开发人员应对各种文本编辑的最佳选择。 3. GNU Emacs

Emacs 是一个可移植、可扩展、免费的文本编辑器。 Emacs 提供了一些命令来管理语句和段落,高亮的语法使得源代码更易于阅读,以及“键盘宏”的方式来执行用户定义的编辑命令。 Emacs 可以在若干个操作系统上运行,无论你使用的是哪一种机器类型。这让程序员非常受用。如果你使用的是通用的编程语言,Emacs 还会为你提供模式以及相应的排版和布局,更加方便你编辑代码。 Emacs 或许不是最简单的工具,但它绝对是最强大的编辑器之一。相比 vim,Emacs 的启动时间更长,所需要的内存也更多。但是,它是高度可定制的,并且包括了大量的功能。 4. SUBLIME TEXT SUBLIME TEXT 是一个超棒的免费软件/商业性质的文本编辑器。漂亮的用户界面、卓越的功能和令人惊叹的性能一定会让你爱不释手。它可用于 Windows、Mac OS X 和 Linux 系统,并且是免费试用的,而且这个免费时间没有限制。当然你也可以花费 70 美元买个完整的许可证。一份许可证就能允许你在自己拥有的多台计算机上使用,不管每一台计算机使用的是什么操作系统。 5. ATOM Atom 是一款由 GitHub 开发的,支持用 Node.js 编写插件和嵌入Git Contral,面向 Mac OS X、GNU/ Linux 和 Windows 的免费的开源文本和源代码编辑器。没人愿意将时间浪费在配置自己的编辑器上面,于是ATOM 横空出世。它预装了所有你期望一个现代化的文本编辑器所应该具备

数据结构课程设计题目选择

数据结构课程设计题目 说明: (1)选用语言:C或Java语言; (2)需要注明3人(可少于3人)小组各自承担和完成的任务(据此给予成绩); (3)如下带“*”的题目,“*”越多,难度越大一些,分值权重更高---要得到更高分数,推荐选择。 要求: (1) 用中文给出设计说明书(含重要子函数的流程图); (2) 给出测试通过、能实现相应功能的源代码; (3) 测试报告。 0、小学数学四则混合运算试题出题、评价、题库自动生成与组卷系统(****)---已经有2组选择 任务: (1)将随机给出的四则混合运算表达式显示在计算机显示器上,要求应试者给出答案;并且使用堆栈对该表达式求值,同给出的答案进行比较,判断 正确和错误。给出鼓励信息和嘉奖信息; (2)保存多人在不同时间应试的题目与他(或她)给出的答案,评价所出题目的难易程度(通过多人回答正确与否的情况给出),形成题库; (3)按照用户给出的题目难易程度指标(例如让50人的得分满足怎样的正态分布,如90分以上10%,80分以上30%,70分以上30%,60分以上20%,60分 以下10%),从题库中抽取不同的题目,组成试卷。 要求:随机产生的题目中,参加运算的数据随机、运算符随机。题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 1、集合的并、交和差运算---已经有1组选择 任务:编制一个能演示执行集合的并、交和差运算的程序。 要求: (1) 集合的元素限定为小写字母字符[…a?..?z?] 。 (2) 演示程序以用户和计算机的对话方式执行。 实现提示:以链表表示集合。 选作内容: (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。 2、停车场管理------已经有2组选择 任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。 3、哈夫曼码的编/译码系统(**)---已经有1组选择

数据结构课程设计文章编辑(附录中有全部代码)

课程设计任务书 专业名称:计算机科学与技术(软件工程) 课程名称:数据结构课程设计 设计题目:文章编辑问题 起止时间:2013年6 月24 日至2013年7 月12 日 问题描述 静态存储一页文章,每行最多不超过80个字符,共N行,程序可以统计出文字、数字、空格的个数,并且可以对文章中特定内容进行查找及替换,同时也可以删除指定内容。 基本要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)查找出文章中某一段文字,并用其他文字进行替换; (4)删除某一子串,并将后面的字符前移。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"; (3)查找出指定字符串在文章中出现的所有地方并替换,输出替换后结果; (4)输出删除某一字符串后的文章; 实现提示 存储结构使用线性表,分别用几个子函数实现相应的功能,并且使用菜单的形式,可以选择所要进行的操作(查找、替换、删除、统计等)。

文章编辑系统 1概要设计 本次课程设计的题目是文章编辑系统,本系统的功能描述如下:用户新建文本、浏览新建文本、文本字符统计、指定字符串统计、指定字符串删除、指定字符串替换等操作。 1.新建文本 2.浏览输入文本 3.文本字符统计 4.指定字符串统计 5.指定字符串删除 6.指定字符串替换 7.退出系统 本系统包含七个功能模块,分别为:新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指定字符串删除模块,指定字符串替换模块以退出系统模块。新建文本模块实现用户录入文本信息,并且系统自动保存录入信息。浏览输入文本模块实现了显示用户录入信息的功能。指定字符串统模块实现了对英文字母数和空格数及整篇文章总字数的统计。指定字符串统计实现了统计用户自定义字符串个数的功能。指定字符串删除模块实现了对用户自定义字符串的删除。指定字符串替换模块实现了替换用户自定义字符串为用户定义的新字符功能。退出系统模块实现了退出系统功能。

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

数据结构课程设计题目

“数据结构”课程设计题目 1、城市链表(3) [问题描述] 将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。 [基本要求] (1)给定一个城市名,返回其位置坐标; (2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。 [测试数据] 由学生依据软件工程的测试技术自己确定。注意测试边界数据。 2、约瑟夫生死者游戏(3) [问题描述] 约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 [基本要求] 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。 [测试数据] m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。 [实现提示] 程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。设n≤30。 [选作内容] 向上述程序中添加在顺序结构上实现的部分。 3、括号匹配的检验(3) [问题描述] 假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。例如:考虑下列的括号序列:

文章编辑课程设计报告

实验报告 (课程设计)课程名称:数据结构 实验项目名称:文章编辑 学院:计算机与软件学院指导教师: 报告人: 实验时间 实验报告提交时间: 教务处制

实验项目名称 一、问题描述 描述算法设计的内容、约束条件,要求达到的目标等内容。(由老师公布) 输入一页文字,每行最多不超过80个字符,共N行; 程序可以统计出文字、数字、空格的个数 要求在光标下(与记事本相似)做插入、删除等操作 要求能够存盘,并能对老文件打开进行修改操作 采用的数据结构及其算法:线性结构[采用顺序存储方式];查找、插入、删除 二、基本要求 描述算法设计项目应达到的基本要求。 应该实现基本的删除插入查找打开文件以及存盘等操作.并能对打开的文件里的内容进行插入删除查找等操作,并且在进行完这些操作之后能够进行存盘. 三、分析与实验 分析算法设计方法,拟采用的数据结构(类结构)与主要算法实现原理等内容。 拟采用链表进行操作,与字符串结合. 主要运用了KMP算法进行查找操作,在删除中也有涉及. void GetNext(string p, int next[]) //求模式串p的next[j]的值 { int j = 0, k = -1; next[0] = -1; int length = p.length() - 1; while (j

else k = next[k]; } } int KMPFind(string p, int next[], string q,int search[]) //用KMP算法在主串中查找子串,p为主串,q为子串{ int i = 0, j = 0, k = 0, plength = p.length(), qlength=q.length(),flag=0,t=0; while (i < plength) { if (j == -1 || p[i] == q[j]) { i++; j++; } else j = next[j]; if (j == qlength) { flag++; search[t]= i-qlength;//flag存放的是每一次匹配到的字符的首位置 t++; } } return flag; } Search[]数组存放子串出现的位置.

数据结构课设——文章编辑

课程设计报告 课程设计题目: 文 章 编 辑 专业:信息工程 班级:1720601 学生姓名: 指导教师: 、 实验目的及要求: 任务:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行; 要求: (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实验时间、地点: 一、概要设计(实验思路) 1.问题分析

本程序是对一段英文文章的内容进行处理,存储方式采用链式存储。 对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中,在此部分设计中最大的问题在于输入文章过程中输入的字符数大于80时如何换行; 对于文本内容的统计,使用循环对已存储的文章进行匹配,字母数、空格数、数字数直接通过比较即可得到; 对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数及位置并输出个数及位置。 删除部分先使用程序的查找功能对文章中需要删除的字符或者字符串进行查找,然后对其进行删除。 2. 数据结构选择 本程序是对输入的文字进行操作,故使用的数据结构为单链表操作。根据第一部分的问题分析有该链表操作有3部分: 另有全局变量 *head,作为文章的头指针。 创建结构体: typedef struct list { char data[80]; //记录一行字符 int length; //记录一行字符长度 struct _list *next; //后继指针 struct _list *pre; //前趋指针 int row; //记录整篇文章的行数 }LinkList; 在文章内容创建部分中使用线性表的链式存储,并使用全局变量对文本的各种信息进行存储;文章的读取、内容统计、删除、查找都采用链表操作完成。 3.流程图 (1)主框架: (2)文章内容统计子菜单 (3)文章内容处理子菜单

杂志编辑工作流程

杂志编辑工作流程 这个是比较详尽的编辑部工作流程,以财经杂志为例。 ?????? 杂志编辑工作流程 根据整个编辑流程和操作程序,流程报告按顺序分为三个部分:第一个部分是信息收集与整理,第二个部分是信息的再造,第三个部分产品生产流程。? 信息收集和整理???????? 该项主要解决编辑部的信息来源的问题,一方面要保证不遗漏重要行业的重大经济事件,同时统一报道的角度和降低采访的难度;另外一方面要积累各种行业和公司的资源,提高记者和编辑对行业和公司的理解能力。? 1.研究工作:研究工作是指对具体的行业和地区经济进行深入的研究,以提高我们杂志文章的深度和广度。 ■行业研究:对行业、公司资料的收集整理。内容包括:每个行业营业额前30名企业资料:联系人、公关公司、上下游客户、代表人物;政府、研究机构、代表人物、行业协会、主要网站等相关资源的联系方式。 ■区域研究:对一定地域内的主要行业及知名企业进行的调查工作。例如云南的烟草业,山东的家电制造业,四川的传媒业等。具体内容包括:区域内特色行业概述,包括行业规模,龙头企业、典型企业的联系人、上下游客户和代表人物。 2.常规工作:编辑记者在日常的采访报道流程中,随时积累的采访资源。 信息再造??????????? ????????????????? 信息搜集汇总后,由信息变为选题,并且在编辑记者的协作下进行文章写作。 1.选题产生:每月召开选题探讨会,所有编辑记者都必须参加。选题会的主要职能是综合编辑部的意见,将信息转化为选题,并为每一选题确定执行编辑、执行记者,并控制流程。在理想的情况下,编辑部应设立编委会来确定选题、安排工作,这样有助于提高效率。选题来源包括: ■主编和编辑部主任收集每月重大新闻及信息供所有编辑参考。 ■对行业信息的研究分析,以及研究工作的阶段性成果。 ■编辑记者的自身资源及资源开发成果。

文章编辑课程设计报告及代码

*****工学院 数据结构课程设计报告 选题名称:文章编辑 系(院): ***工程学院 专业: 班级: 姓名: ** 学号: 指导教师: 学年学期:2009 ~ 2010 学年第 2 学期2010 年 6 月16 日

设计任务书

摘要: 随着社会的高速发展,现在人们对信息的处理要求越来越高,使得文章内容、数量也越变庞大,所以,随之而来的就是对文章的处理变得越来越复杂。设计此程序以方便人们对文章的处理。此程序的功能有查找文章中某个字符串出现的次数,统计文章中数字,字母,空格等信息出现的次数,分行显示用户输入的文章,输入一字符串并删除文章中所有该字符串,最后,此程序功能简单,操作方便,所以,试验证明,本程序是一款很实用的程序。 关键字:文章编辑;字符查找;统计;删除

目录 1需求分析 (5) 2概要设计 (5) 2.1主要模块的描述 (5) 2.2程序流程框图如图1所示 (6) 2.3各功能函数描述 (6) 3详细设计和实现 (7) 3.1存储结构设计 (7) 3.2主要算法设计 (7) 3.3程序运行流程说明 (9) 4调试与操作说明 (9)

1需求分析 这一次数据结构课程设计,我做的课题是文章编辑。 任务与要求包括: 输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; void InitList(wzbj *L) //查找文章结尾有无结束符“#” void StrNo(wzbj *L) //统计某一字符串出现的次数 wzbj *DelStr(wzbj *L) //删除某一字段 void print1(wzbj *L) //分行输出用户的输入的各行字符 void print2(wzbj *L, int &p1, int &p2, int &p3, int &n) //统计字符信息输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;运行环境包括: Windows2000以上操作系统、Visual C++6.0以上编译环境。 2概要设计 对于文章的处理,我用的是for语句查找,即将符合条件的字符查找出来,然后通过函数实现字符的统计,删除等操作。同时,存储用线性表的链表结构,然后通过设计四个函数,实现设计要求的4个基本功能。 2.1主要模块的描述 while(L->next) { for (p = L, q = s; *q != '\0' && p->next; p = p->next, q++) if (p->wz!= *q) break; if (*q == '\0') n++;

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

数据结构课程设计文章编辑附录中有全部代码精修订

数据结构课程设计文章编辑附录中有全部代码 GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-

课程设计任务书专业名称:计算机科学与技术(软件工程) 课程名称:数据结构课程设计 设计题目:文章编辑问题 起止时间:2013年6 月24 日至2013年7 月12 日 问题描述 静态存储一页文章,每行最多不超过80个字符,共N行,程序可以统计出文字、数字、空格的个数,并且可以对文章中特定内容进行查找及替换,同时也可以删除指定内容。 基本要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)查找出文章中某一段文字,并用其他文字进行替换; (4)删除某一子串,并将后面的字符前移。输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";

(3)查找出指定字符串在文章中出现的所有地方并替换,输出替换后结果; (4)输出删除某一字符串后的文章; 实现提示 存储结构使用线性表,分别用几个子函数实现相应的功能,并且使用菜单的形式,可以选择所要进行的操作(查找、替换、删除、统计等)。

文章编辑系统 1概要设计 本次课程设计的题目是文章编辑系统,本系统的功能描述如下:用户新建文本、浏览新建文本、文本字符统计、指定字符串统计、指定字符串删除、指定字符串替换等操作。 1.新建文本 2.浏览输入文本 3.文本字符统计 4.指定字符串统计 5.指定字符串删除 6.指定字符串替换 7.退出系统 本系统包含七个功能模块,分别为:新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指

文章编辑的源程序

#include #include #include #define MAXSIZE 1000 typedef char datatype; typedef struct { datatype a[MAXSIZE]; int size; }e_list; e_list s; e_list t; void ptint_slt(e_list slt); /*输出文本*/ void letter_number(e_list slt); /*全部字母个数*/ void space_number(e_list slt); /*全部空格个数*/ void digit_number(e_list slt); /*全部数字总数*/ void size_number(e_list slt); /*文章总字数*/ void dele_print(e_list p,e_list slt); /*输出删除某一字符串后的文章*/ void ptint_slt(e_list slt) /*输出文本*/ { int i,j=0; if(!slt.size) {printf("\n错误!");exit(1);} else for(i=0;i='a'&&slt.a[i]<='z')||(slt.a[i]>='A'&&slt.a[i]<='Z')) j++; }

课程设计文本编辑器的设计

. 《高级语言程序设计》 课程设计报告 题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 14计科一班 : 彭鑫 指导教师: 王峻 成绩: 计算机学院 2015年4月24日 2014-2015学年 第2学期

目录 1 设计内容及要求 (2) 1.1设计内容 ..................................................................................... 错误!未定义书签。 1.2具体要求 (2) 2 概要设计 (2) 2.1系统的功能简介 (3) 2.2系统功能模块图........................................................................ 错误!未定义书签。 2.3各个模块之间的主要关系 (3) 3 详细设计 (4) 3.1文件操作 (4) 3.2编辑操作 (9) 3.3工具操作 (17) 4 程序运行结果与调试 (19) 4.1 在调试过程中出现的一些问题 (19) 4.2 实验结果 (20) 5 课程设计总结与感想 (24) 参考文献 (24) 源代码 (25)

1 设计内容及要求 1.1设计内容 该文本编辑器运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序的编辑项可对当前的文本进行撤销、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、统计等功能。程序的文件项可以对电脑上txt,c++等格式文件的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。程序的工具项为背景音乐,为用户提供了优美动听的音乐,仅在用户编辑疲惫乏力的时候尽情的享用。最后在程序的帮助项有对该小型文本编辑器的关于,用来介绍该程序,还有访问链接百度,访问114网页大全,为用户提供查找资料等功能服务。 1.2具体要求 基本要求:编辑器应具备对文本文件的打开、保存、新建、查找、插人、删除、修改、字符串替换、统计字数,统计行数等功能,对于超过一屏的长文件,应能够分页显示。设计用户接口命令,实现对文本的编辑 2 概要设计

数据结构课程设计排序算法总结

排序算法: (1) 直接插入排序 (2) 折半插入排序(3) 冒泡排序 (4) 简单选择排序 (5) 快速排序(6) 堆排序 (7) 归并排序 【算法分析】 (1)直接插入排序;它是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的序的有序表中,从而得到一个新的、记录数增加1的有序表。 (2)折半插入排序:插入排序的基本操作是在一个有序表中进行查找和插入,我们知道这个查找操作可以利用折半查找来实现,由此进行的插入排序称之为折半插入排序。折半插入排序所需附加存储空间和直接插入相同,从时间上比较,折半插入排序仅减少了关键字间的比较次数,而记录的移动次数不变。 (3)冒泡排序:比较相邻关键字,若为逆序(非递增),则交换,最终将最大的记录放到最后一个记录的位置上,此为第一趟冒泡排序;对前n-1记录重复上操作,确定倒数第二个位置记录;……以此类推,直至的到一个递增的表。 (4)简单选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之。 (5)快速排序:它是对冒泡排序的一种改进,基本思想是,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 (6)堆排序: 使记录序列按关键字非递减有序排列,在堆排序的算法中先建一个“大顶堆”,即先选得一个关键字为最大的记录并与序列中最后一个记录交换,然后对序列中前n-1记录进行筛选,重新将它调整为一个“大顶堆”,如此反复直至排序结束。 (7)归并排序:归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止,这种排序称为2-路归并排序。 【算法实现】 (1)直接插入排序: void InsertSort(SqList &L){ for(i=2;i<=L.length ;i++) if(L.elem[i]L.elem[0];j--) L.elem [j+1]=L.elem [j]; L.elem [j+1]=L.elem[0]; } } (2)折半插入排序:

杂志编辑工作流程样本

杂志编辑工作流程

杂志编辑工作流程 这个是比较详尽的编辑部工作流程,以财经杂志为例。 杂志编辑工作流程 根据整个编辑流程和操作程序,流程报告按顺序分为三个部分:第一个部分是信息收集与整理,第二个部分是信息的再造,第三个部分产品生产流程。 信息收集和整理 该项主要解决编辑部的信息来源的问题,一方面要保证不遗漏重要行业的重大经济事件,同时统一报道的角度和降低采访的难度;另外一方面要积累各种行业和公司的资源,提高记者和编辑对行业和公司的理解能力。 1.研究工作:研究工作是指对具体的行业和地区经济进行深入的研究,以提高我们杂志文章的深度和广度。 ■行业研究:对行业、公司资料的收集整理。内容包括:每个行业营业额前30名企业资料:联系人、公关公司、上下游客户、代表人物;政府、研究机构、代表人物、行业协会、主要网站等相关资源的联系方式。 ■区域研究:对一定地域内的主要行业及知名企业进行的调查工作。例如云南的烟草业,山东的家电制造业,四川的传媒业等。具体内容包括:区域内特色行业概述,包括行业规模,龙头企业、典型企业的联系人、上下游客户和代表人物。

2.常规工作:编辑记者在日常的采访报道流程中,随时积累的采访资源。 信息再造 信息搜集汇总后,由信息变为选题,而且在编辑记者的协作下进行文章写作。 1.选题产生:每月召开选题探讨会,所有编辑记者都必须参加。选题会的主要职能是综合编辑部的意见,将信息转化为选题,并为每一选题确定执行编辑、执行记者,并控制流程。在理想的情况下,编辑部应设立编委会来确定选题、安排工作,这样有助于提高效率。选题来源包括: ■主编和编辑部主任收集每月重大新闻及信息供所有编辑参考。 ■对行业信息的研究分析,以及研究工作的阶段性成果。 ■编辑记者的自身资源及资源开发成果。 2.选题操作:在选题探讨会上由编辑部讨论后决定选题操作的规模和执行人员。 ■填写选题执行单:确认的选题,由编辑部主任统一编写“任务摘要”。任务摘要的主要目的是划分选题归属栏目,确认操作选题的执行编辑记者以及执行时间和线索,明确工作目标和进度,在编辑部内部为记者工作提供足够帮助。

数据结构课程设计心得体会

数据结构课程设计心得体会数据结构课程设计心得体会怎么写,以下是XX精心整理的相关内容,希望对大家有所帮助! 数据结构课程设计心得体会这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了C 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还

没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件基础语言。在这次课程设计中,硬件基础语言。在这次课程设计中,虽然不会成功的编写一个完整的程序,但是在看程序的过程中,个完整的程序,但是在看程序的过程中,不断的上网查资料以及翻阅相关书籍,通过不断的模索,测试,发现问题,以及翻阅相关书籍,通过不断的模索,测试,发现问题,解 决问题和在老师的帮助下一步一步慢慢的正确运行程序,决问题和在老师的帮助下一步一步慢慢的正确运行程序,终于完成了这次课程设计,于完成了这次课程设计,虽然这次课程设计结束了但是总觉得自已懂得的知识很是不足,学无止境,得自已懂得的知识很是不足,学无止境,以后还会更加的努力深入的学习。力深入的学习。 数据结构课程设计心得体会本次课程设计,使我对《数

相关主题