欢迎来到天天文库
浏览记录
ID:57395732
大小:495.50 KB
页数:53页
时间:2020-08-15
《[工学]太原理工大学《程序设计》课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《程序设计》课程设计姓名:郭雨晴学号:班级:软件1003班指导教师:呼克佑、李誌成绩:2012年6月设计题目一1.文本文件单词的检索与计数1.1【问题描述】设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几次。连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。1.2【设计需求及分析】要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符认为是一个单词,遇空格或标点符号单词结束。使用线性表记录单词以及每个单词出现的次数。线性表中的单词按字典顺序存储。线性表的顺序存储结构如下:#defineLI
2、ST_INIT_SIZE100//线性表存储空间的初始分配量#defineLISTINCREMENT10//线性表存储空间的分配增量typedefstruct{charword[21]//存储单词,不超过20个字符intcount;//单词出现的次数}ElemType;typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储容量}Sqlist;1.3【设计功能的实现】(用C或C++语言描述)#include#include#include3、tdlib.h>#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{charword[21];intcount;}ElemType;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;intInitList(SqList*p){p->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(p->elem==NULL)return0;p->length=0;p->listsize4、=LIST_INIT_SIZE;return1;}intLocateElem(SqList*p,char*word){intlow,high,mid;low=0;high=p->length-1;while(low<=high){mid=(low+high)/2;if(strcmp(word,p->elem[mid].word)==0)//表中进行二分查找{p->elem[mid].count++;return0;}elseif(strcmp(word,p->elem[mid].word)<0)high=mid-1;elselow=mid+1;}returnlow+15、;//返回插入点序号}intInsertList(SqList*p,inti,char*word){intj;ElemType*base;if(p->length>=p->listsize){base=(ElemType*)realloc(p->elem,(p->listsize+LISTINCREMENT)*sizeof(ElemType));if(base==NULL)return0;p->listsize=p->listsize+LISTINCREMENT;//扩充表长p->elem=base;}for(j=p->length;j>=i;j--)p->elem[6、j]=p->elem[j-1];strcpy(p->elem[i-1].word,word);p->elem[i-1].count=1;p->length++;return1;}voidPrintList(SqList*p,intnum){FILE*fw;inti;intno=num;fw=fopen("F:\单词计数.txt","w");fprintf(fw,"文章共有%d个单词以下按字典顺序排序显示出现次数******************************************",no);fprintf(fw,"单词出现次数",no)7、;for(i=0;ilength;i++)fprintf(fw,"%-24s%-5d",p->elem[i].word,p->elem[i].count);fprintf(fw,"******************************************");fclose(fw);}//主函数voidmain(){SqListL;charword[21],ch,filename[30],filename1[50];intnum=0,i,j=0,mark=0;FILE*fp;InitList(&L);printf("请将文件放
3、tdlib.h>#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{charword[21];intcount;}ElemType;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;intInitList(SqList*p){p->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(p->elem==NULL)return0;p->length=0;p->listsize
4、=LIST_INIT_SIZE;return1;}intLocateElem(SqList*p,char*word){intlow,high,mid;low=0;high=p->length-1;while(low<=high){mid=(low+high)/2;if(strcmp(word,p->elem[mid].word)==0)//表中进行二分查找{p->elem[mid].count++;return0;}elseif(strcmp(word,p->elem[mid].word)<0)high=mid-1;elselow=mid+1;}returnlow+1
5、;//返回插入点序号}intInsertList(SqList*p,inti,char*word){intj;ElemType*base;if(p->length>=p->listsize){base=(ElemType*)realloc(p->elem,(p->listsize+LISTINCREMENT)*sizeof(ElemType));if(base==NULL)return0;p->listsize=p->listsize+LISTINCREMENT;//扩充表长p->elem=base;}for(j=p->length;j>=i;j--)p->elem[
6、j]=p->elem[j-1];strcpy(p->elem[i-1].word,word);p->elem[i-1].count=1;p->length++;return1;}voidPrintList(SqList*p,intnum){FILE*fw;inti;intno=num;fw=fopen("F:\单词计数.txt","w");fprintf(fw,"文章共有%d个单词以下按字典顺序排序显示出现次数******************************************",no);fprintf(fw,"单词出现次数",no)
7、;for(i=0;ilength;i++)fprintf(fw,"%-24s%-5d",p->elem[i].word,p->elem[i].count);fprintf(fw,"******************************************");fclose(fw);}//主函数voidmain(){SqListL;charword[21],ch,filename[30],filename1[50];intnum=0,i,j=0,mark=0;FILE*fp;InitList(&L);printf("请将文件放
此文档下载收益归作者所有