文章编辑管理系统课程设计实验报告.doc

上传人:飞****2 文档编号:82399538 上传时间:2023-03-25 格式:DOC 页数:26 大小:614KB
返回 下载 相关 举报
文章编辑管理系统课程设计实验报告.doc_第1页
第1页 / 共26页
文章编辑管理系统课程设计实验报告.doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《文章编辑管理系统课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《文章编辑管理系统课程设计实验报告.doc(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、程序设计基础及数据结构课程设计 设计题目: 文章编辑管理系统 系(院): 经济管理学院 专 业: 信息管理与信息系统 班 级: 信管1111 学年学期: 2012 2013 学年 第 1 学期 2013年 1 月 11 日课程设计任务书课程设计题目英文编辑管理课程设计目的(1)培养学生正确的设计思想,将理论与实际相结合,严肃认真、实事求是的科学态度和勇于探索的创新精神。(2)培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。(3)通过课程设计实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯。同时,C

2、+语言程序设计课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。课程设计环境硬件:P4以上计算机软件:Visual C+/Turbo CMicrosoft Windows XP课程设计任务和要求任务:用C语言对学生成绩进行编程;要求: 1、要充分认识C+语言程序设计课程设计的重要性,认真做好各项准备工作;既要虚心接受老师的指导,又要充分发挥主观能动性,要结合课题,独立思考,努力钻研,勤于实践,勇于创新;收集资料,自学相关知识,拓宽知识面,根据课题的基本要求,自行完成设计任务。要按时、独立完成规定的工作任务,不弄虚作假,不抄袭他人;严格遵守学

3、习和劳动纪律,不无故缺席,不迟到早退,不懈怠,不拖拉,要积极主动;严格要求自己,树立严肃、严密、严谨的科学态度,按时、按质、按量完成。工作进度计划序号起止日期工 作 内 容012012.12.312013.01.01查找资料,熟悉操作环境,开始编写程序022013.01.022013.01.03编写程序,调试程序032013.01.042010.01.05写实验报告指导老师签字(盖章): 年 月 日目录1 摘要42 需求分析52.1 用户需求分析52.2 功能需求分析53 概要设计63.1 各模块的算法设计说明63.2 存储结构设计说明64 详细设计75 实际运行结果196 总结与致谢227

4、参考资料.228 附录.221 摘要摘要:本系统使用Visual C+6.0 语言编写制作一个对文章编辑的管理系统,对于信息管理的具体分类,例如:输出原文,统计文章字母数,统计某一字符串在文章中出现的次数等,能更加方便地减少人工所花费的时间,提高了管理的水平和服务质量,使得查询降低了错误率。本系统具有的功能如下:输出原文,统计文章字母数,统计某一字符串在文章中出现的次数删除等一系列操作。退出系统功能:完成了对英文编辑管理系统的操作后,应该可以安全的离开该系统,通过该模块可以离开英文编辑管理系统。关键词:功能;英文;编辑;2 需求分析2.1 用户需求分析随着社会的发展,人们对信息的处理要求逐渐增

5、高,设计这个程序是为了方便人们能更加迅速地处理文字信息,从而提高工作效率。2.2 功能需求分析功能分析如图所示文章编辑系统统计某一字符串在文章中出现的次数删除某一字符串并输出文章结束统计文章字数输出原文操作界面功能说明:输出原文:此功能是将原先录入的信息读出,并在屏幕上显示出来。统计文章字数:此功能是统计出文章中的字母数,空格数,数字数和文章总字数。统计某一字符串在文章中出现的次数:通过用户输入要查询项来统计要查询的字符在文章中的出现次数。删除某一字符串并输出文章:删除文章中用户希望删除的字符,并将修改后的文章在屏幕上显示出来。结束:退出程序。2.3 系统需求分析 (开发环境、工具)Windo

6、ws操作系统,visualc+ 6.0编译环境3 概要设计3.1 各模块的算法设计说明本程序由输入、输出、统计、查找、删除、选择功能模块组成,以下为重要模块的流程图:开始输出判断字符类型若为回车若为空格若为数字若为字母记录行数记录空格个数记录数字个数记录字母个数判断字符数量是否超出范围结束开始等待输入回车?将字符输入数组结束1.输入模块 2.统计模块3.2 存储结构设计说明线性表是我们最常用的一种简单而基本的数据结构,线性表中数据元素间的关系是一对一的,就是说除了头尾数据元素外,其他元素都是首尾相接的。其逻辑结构简单,便于实现和操作,因此是一种在实际应用中广泛采用的数据结构。4 详细设计为实现

7、本程序功能所包含的库函数有:#include#include为实现本程序功能所包含的功能模块及注释有:输出模块:代码:#include #include #include #include typedef struct linechar *data; /字符串指针需要时动态分配内存struct line *next;LINE;void CreateTXT(LINE * &head); /创建一张链表,同时向里面输入文本数据int Count_Space(LINE * &head); /统计空格数int Count_ZM(LINE * &head); / 统计字母数int Count_All_W

8、ord(LINE * &head); /统计文章的总字数int Find_Word(LINE * &head,char *sch); /统计sch 在文章中出现的次数int Count_Num(LINE * &head); /统计数字数void Del_String(LINE * &head,char *sch); /删除指定的字符串void OutPutTxt(LINE * &head); /向屏幕输出文章void Tj(LINE * &head); /统计int read_text(LINE * &head);int free_link(LINE *&head);int free_link

9、(LINE *&head)LINE *p=head;dop-data=NULL;free(p-data);while(p=p-next)!=NULL);head-next=NULL;return 0;void setcolor(unsigned short color) HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,color); void CreateTXT(LINE * &head)head=new LINE;LINE *end=head; LINE *p; /首先为链表 建立一个附加

10、表头结点 / head=p; /将p付给 表头指针 char tmp80; while(true) gets(tmp); /输入字符串!使用C的输入函数 if(tmp0=5) break; /如果发现输入 E,则退出输入 p=new LINE; p-data=new charstrlen(tmp)+1;/为结点分配空间 strcpy(p-data,tmp); end-next=p; end=p; if(tmpstrlen(tmp)-1=5) /除去最后一个控制符 E p-datastrlen(tmp)-1=0; break; p-next=NULL; /是最后的一个指针为空。 head=hea

11、d-next; int Count_Space(LINE * &head) /统计空格数 LINE *p=head; int asc_space=32; /空格的ASCIC 码值 int count=0; do int Len=strlen(p-data); /计算当前 data 里的数据元素的个数 for(int i=0;idatai=asc_space) count+; /计算空格数 while(p=p-next)!=NULL); /遍历链表 return count;int Count_Num(LINE * &head) /统计数字数 LINE *p=head; int count=0;

12、 do int Len=strlen(p-data); /计算当前 data 里的数据元素的个数 for(int i=0;idatai=48 & p-datainext)!=NULL); /遍历链表 return count;int Count_ZM(LINE * &head) / 统计字母数 int count=Count_All_Word(head); /总的字符数,包含空格 int space_count=Count_Space(head); /空格数int num_count=Count_Num(head);/数字数 return count-space_count-num_count

13、; /返回文章的字母总数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 Find_Word(LINE * &head,char *sch) /统计 sch 在文章中出现的次数 LINE *p=head; int count=0; / int h=0; int len1=0; /保存当前行的总字符数 int

14、 len2=strlen(sch); /待统计字符串的长度 int i,j,k; do len1=strlen(p-data);/当前行的字符数 for(i=0;idatai=sch0) k=0; for(j=0;jdatai+j=schj)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) / *s为输入的字符串 / *sch 为将要删除的字符 char *p=strstr(s,sch); /查询结果 char t

15、mp80; int len=strlen(s); int i=len-strlen(p); int j=i+strlen(sch); int count=0; for(int k=0;ki;k+)tmpcount+=sk; for(int kk=j;kkdata,sch)!=NULL)del_string_word(p-data,sch); while(p=p-next)!=NULL); /遍历链表void OutPutTxt(LINE * &head) /向屏幕输出文章 line *p=head; while(p!=NULL) coutdatanext; /遍历 链表void Display

16、(LINE * &p,int i) int j,k=0;coutdataendl;char ch10;cout请输入所要修改的内容(长度一样)ch; for(j=i;jdataj=chk+;void Display(LINE * &head,char *sch) LINE *p=head; int count=0; / int h=0; int len1=0; /保存当前行的总字符数 int len2=strlen(sch); /待统计字符串的长度 int i,j,k; do len1=strlen(p-data);/当前行的字符数 for(i=0;idatai=sch0) k=0; for(

17、j=0;jdatai+j=schj)k=k+1; if(k=len2) count+; break; if(ilen1) cout 所在文章next)!=NULL); /遍历链表 if(cout=0)cout没有找到您所要查找的内容endl;void Print(LINE * &head) /向屏幕输出文章 line *p=head; coutdatadata);/当前行的字符数 for(i=0;idatai=sch0) k=0; for(j=0;jdatai+j=schj)k=k+1; if(k=len2) count+; break; if(ilen1) cout 所在文章next)!=N

18、ULL); /遍历链表 if(cout=0)cout没有找到您所要查找的内容endl;void Tj(LINE * &head) /统计 cout文章统计信息结果如下:endl; cout英文字母数:Count_ZM(head)endl; cout空格数: Count_Space(head)endl; cout文章中共出现数字:Count_Num(head)endl; cout统计文章的总字符: Count_All_Word(head)endl;void main() setcolor(10);LINE *head; int opt; while(true)coutn *请选择操作*endl;

19、cout1、新建 ;/存储模式:链表 没遇到回车就存放一个(一句话存放一个链表空间)cout2、浏览 ;/链表的遍历cout3、统计 ;/用三个函数三次遍历确定字母、数字、空格以及总共字符的数量cout4、串统计 ;/通过遍历来确定所输入的字符串与文章一一比较cout5、删除 ; cout6、查找 ; cout7、修改 ;cout8、退出 opt;/ switch (opt) case 0:coutn *请选择操作*endl;cout1、新建 ;/存储模式:链表 没遇到回车就存放一个(一句话存放一个链表空间)cout2、浏览 ;/链表的遍历cout3、统计 ;/用四个函数三次遍历确定字母、数字

20、、空格以及总共字符的数量cout4、串统计 ;/通过遍历来确定所输入的字符串与文章一一比较cout5、删除 ; cout6、查找 ; cout7、修改 ;cout8、退出 opt;if (opt!=1&opt!=2&opt!=3&opt!=4&opt!=5&opt!=6) couterror!不可识别选项!endl; exit(0); break; case 1:cout-新建文本-endl;cout请输入文本,每行最多输入80字符!(结束请按 Ctrl + E)endl;setcolor(14);CreateTXT(head);setcolor(10);coutendl-endl;cout按

21、回车调出主菜单endl;getchar();opt=0;break; case 2:cout-浏览输入文本-endl;setcolor(14);OutPutTxt(head);setcolor(10);coutendl-endl;cout按回车调出主菜单endl;getchar();opt=0;break; case 3:cout-文本统计-endl;setcolor(14);Tj(head);setcolor(10);coutendl-endl;cout按回车调出主菜单endl;getchar();opt=0;break; case 4:cout-请输入要统计的字符串-endl; setco

22、lor(14); char sch20; gets(sch); coutendl; coutsch出现的次数为:Find_Word(head,sch)endl;setcolor(10); cout-endl; cout按回车调出主菜单endl; getchar(); opt=0; break; case 5:cout-字符串删除-endl;setcolor(14); cout请输入要删除的某一字符串:tmp_sch; gets(tmp_sch); Del_String(head,tmp_sch); /删除指定字符cout-字符串 tmp_sch 被删除后-endl; OutPutTxt(hea

23、d); /向屏幕输出 文章setcolor(10);coutendl-endl; cout按回车调出主菜单endl; getchar(); opt=0; break;case 6: cout-字符串查找-endl;setcolor(14); cout请输入要查找的某一字符串:tmp_sch; gets(tmp_sch); Search(head,tmp_sch); setcolor(10);coutendl-endl; cout按回车调出主菜单endl; getchar(); opt=0; break;case 7:cout-字符串修改-endl;setcolor(14); cout请输入要修

24、改的某一字符串:tmp_sch; gets(tmp_sch); Display(head,tmp_sch); cout-字符串 tmp_sch 被修改后-endl; OutPutTxt(head); /向屏幕输出 文章setcolor(10);coutendl-endl; cout按回车调出主菜单endl; getchar(); opt=0; break; case 8:exit(0); default: cout请输入16之间的数字!endl; cout按回车调出主菜单endl; getchar(); opt = 0; break; 5 实际运行结果5.1 界面5.2 新建文本5.3 浏览5

25、.4 统计5.5 串统计5.6 查找5.7 修改5.8 删除6 总结与致谢忙碌了一个多星期,终于将此程序设计出来。虽然有点累但还是很高兴的,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。在这次课程设计中,我得到了很多人的帮助。如果没有这些帮助也许我需要花更多的时间与精力在这上面,深深感受到团结的无穷力量

26、。7 参考文献1.百度百科、知道2.王城端、魏先民.C语言程序设计实训 .中国水利水电出版社 .2005年3.严蔚敏吴伟明著数据结构(C语言版)4.潭浩强C语言程序设计教程 8 附 录:程序源代#include stdio.h#include time.h#include stdlib.h#includestring.h#includeconio.h#define N 100void zhuomian();void csh(struct stu *a,int n);void input(struct stu *a,int n);void output(struct stu *a,int n);

27、void apaixu(struct stu *a,int n);void sousuo(struct stu *a,int n);void shanchu(struct stu *a,int n);void xiugai(struct stu *a,int n);void baocun(struct stu *a,int n);void tuichu();static int m=0;struct stu指导教师评语学号姓名班级选题名称学生成绩管理系统序号评价内容权重(%)得分1考勤记录、学习态度、工作作风与表现。102是否完成设计任务;能否运行、可操作性如何等。303报告的格式规范程度、是

28、否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。304 自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。30合计指导教师(签章): 年 月 日 指导教师评语学号姓名班级选题名称学生成绩管理系统序号评价内容权重(%)得分1考勤记录、学习态度、工作作风与表现。102是否完成设计任务;能否运行、可操作性如何等。303报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。304 自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。30合计指导教师(签章): 年 月 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com