太原理工大学计算机课程设计报告,[工学]太原理工大学《程序设计》课程设计...

41528d3028836879cd698677c3999917.gif[工学]太原理工大学《程序设计》课程设计

《程序设计》课程设计 姓 名:郭雨晴 学 号: 班 级:软件1003班 指导教师:呼克佑、李誌 成 绩: 2012年6月 设计题目一 1. 文本文件单词的检索与计数 1.1【问题描述】 设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几次。连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。 1.2【设计需求及分析】 要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符认为是一个单词,遇空格或标点符号单词结束。 使用线性表记录单词以及每个单词出现的次数。线性表中的单词按字典顺序存储。 线性表的顺序存储结构如下: #define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量 #define LISTINCREMENT 10 //线性表存储空间的分配增量 typedef struct{ char word[21] //存储单词,不超过20个字符 int count; //单词出现的次数 } ElemType; typedef struct{ ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量 } Sqlist; 1.3【设计功能的实现】(用C或C++语言描述) #include #include #include #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct{ char word[21]; int count; } ElemType; typedef struct{ ElemType *elem; int length; int listsize; } SqList; int InitList(SqList *p){ p->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(p->elem==NULL) return 0; p->length=0; p->listsize=LIST_INIT_SIZE; return 1; } int LocateElem(SqList *p,char *word) { int low,high,mid; low=0;high=p->length-1; while(lowelem[mid].word)==0) //表中进行二分查找 { p->elem[mid].count++; return 0; } else if(strcmp(word,p->elem[mid].word)length>=p->listsize) { base=(ElemType*)realloc(p->elem,(p->listsize+LISTINCREMENT)*sizeof(ElemType)); if(base==NULL) return 0; p->listsize=p->listsize+LISTINCREMENT; //扩充表长 p->elem=base; } for(j=p->length;j>=i;j--) p->elem[j]=p->elem[j-1]; strcpy(p->elem[i-1].word,word); p->elem[i-1].count=1; p->length++; return 1; } void PrintList(SqList *p,int num) { FILE *fw; int i; int no=num; fw=(“F:\\单词计数.txt“,“w“); fprintf(fw,“文章共有%d个单词\n以下按字典顺序排序显示出现次数\n******************************************\n“,no); fprintf(fw,“单词 出现次数\n“,no); for(i=0;ilength;i++) fprintf(fw,“%-24s %-5d\n“,p->elem[i].word,p->elem[i].count); fprintf(fw,“******************************************\n“); fclose(fw); } //主函数 void main() { SqList L; char word[21],ch,filename[30],filename1[50]; int num=0,i,j=0,mark=0; FILE *fp; InitList( printf(“请将文件放入F盘,并输入文件名:\n“); scanf(“%s“, sprintf(filename1,“F:\\%s.txt“,filename); getchar(); if((fp=(filename1,“r“))==NULL) { printf(“打开文件失败,请确认文件名与文件路径!\n“); getchar(); exit(0); } ch=fgetc(fp); while(ch!=EOF) { if((ch>= A } num++; word[j]= \0 ; mark=0; j=0; i=LocateElem( if(i>0) InsertList( } } ch=fgetc(fp);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值