代码-数据结构预算法 要求统计自己输入文本的数字字母或者文字的个数 把学生独立完成部分填上

问题描述

数据结构预算法 要求统计自己输入文本的数字字母或者文字的个数 把学生独立完成部分填上
#include
#include
#include
#include
#include
#define MAXSIZE 1000
#define MAXLEN 20
#define MAXNUM 16
#define FALSE 0
#define TRUE 1
/*---------------堆结构的定义---------------*/
typedef struct{
char stores[MAXSIZE];
int freep; //当前可用空间开始位置
}HeapSpace;
HeapSpace sp;
/*-------------单词数据类型定义-------------*/
/*-----------单词在堆中的位置描述-----------*/
typedef struct{
int stadr; //单词在对空间中的开始位置
int len; //单词长度
}WordType;
/*----------------单词描述-------------------*/
typedef struct{
char ch[MAXLEN]; //单词字符串
int size; //单词长度
}Sequence;
/*---------------有序表类型定义---------------*/
/*-------------单词有序表结点定义-------------*/
typedef WordType ElemType;
typedef struct NodeType{
ElemType data;
struct NodeType next;
}NodeType*LinkType;
/
----------------单词有序表定义--------------*/
typedef struct{
LinkType head; //有序表头指针
LinkType tail; //有序表尾指针
int size; //有序表结点个数
}OrderList;
/*---记录一行中匹配成功单词在目标词汇表中的位置---*/
typedef struct{
int eqelem[MAXNUM]; //单词在目标词汇表中的位置
int last; //匹配成功单词的个数
}EqelemList;
/*-----------文件测试相关的数据类型定义-----------*/
/*--------------单词在文件中的位置----------------*/
typedef struct Node{
int elem; //被测单词在文件中的行号
struct Node next;//指向下一个行号结点的指针
}Node*Link;
/
-----------单词统计分析记录结构定义-------------*/
typedef struct{
WordType data; //被测试的单词
int count; //在文件中出现的次数
Link next; //记录出现的所有行号的脸表头指针
}HeadNode;
/*---------文本文件测试结果记录定义---------------*/
typedef HeadNode ResultType[MAXNUM];
typedef int status;
/*------------与单词相关的函数----------------*/
status NewWord(WordType nwSequence cha)
{ int ik;
if(sp.freep+cha.size>=MAXSIZE)
{ printf(""Heap Full!n"");
getchar();
return(0);
}
else{
i=sp.freep;
sp.freep=sp.freep+cha.size;
for(k=0;k sp.stores[i+k]=cha.ch[k];
nw->stadr=i;
nw->len=cha.size;
return(1);
}
}
void CopyWord(WordType *nwWordType oldw)
{ nw->stadr=oldw.stadr;
nw->len=oldw.len;
}
int WordCmp(WordType wd1WordType wd2)
{ int ksisj;
(学生独立完成)
}
void PrintWord(WordType wd)
{ int i;
for(i=0;i<wd.len;i++)
putchar(sp.stores[wd.stadr+i]);
}
/
---------------与有序表相关的函数-----------*
status MakeNode(LinkType pElemType e)
{ *p=(LinkType)malloc(sizeof(NodeType));
if(!(*p)) return(FALSE);
(*p)->data.stadr=e.stadr;
(*p)->data.len=e.len;
(*p)->next=NULL;
return(TRUE);
}
status InitList(OrderList *L)
{ ElemType wd;
wd.len=0;
if(MakeNode(&(L->head)wd))
{ L->tail=L->head;
L->head->next=NULL;
L->size=0;
return(TRUE);
}
else{ L->head=NULL;
return(FALSE);
}
}
void DestroyList(OrderList *L)
{ LinkType pq;
p=L->head;
while(p){
q=p;p=p->next;
free(q);
}
L->head=L->tail=NULL;
}
status LocateElem(OrderList LElemType eLinkType *q)
{ LinkType prep;
(学生独立完成)
}
void InsertAfter(OrderList *LLinkType qLinkType s)
{ if(L->head&&q&&s){
s->next=q->next;q->next=s;
if(L->tail==q) L->tail=s;
L->size++;
}
}
void ListCompare(OrderList LaOrderList LbEqelemList *s)
{ int pos;
LinkType papb;
if(La.head&&Lb.head){
pa=La.head->next;
pb=Lb.head->next;
s->last=pos=0;
while(pa&&pb){
if(WordCmp(pa->datapb->data)==0){
s->eqelem[s->last++]=pos++;
pa=pa->next;
pb=pb->next;
}
else if(WordCmp(pa->datapb->data)==-1){
pa=pa->next;
pos++;
}
else pb=pb->next;
}
}
}
status ListEmpty(OrderList L)
{ if(L.size==0) return(TRUE);
return(FALSE);
}
/
-----------与文本文件有关的函数-------------*/
int feoln(FILE f)
{ char cha;
cha=fgetc(f);
ungetc(chaf);
if(cha=='n') return(TRUE);
return(FALSE);
}
void GetAWord(FILE *fSequence *st)
{ char ch;
(学生独立完成)
}
status ExtractWord(FILE *fOrderList *ta)
{ int i;
char lendc;
Sequence str;
WordType nwd;
LinkType p;
LinkType s;
(学生独立完成)
}
status match(FILE *fOrderList patResultType rs)
{ int iklinenumfailedfsp;
OrderList sa;
EqelemList eqlist;
Link p;
(学生独立完成)
}
status Initialization(FILE **fr)
{ char FileName[30];
printf(""Input file name:"");
do{ scanf(""%s""FileName);
}while(strlen(FileName)==0);
*fr=fopen(FileNamerb"");
if(*fr)
{ printf(""file open!n"");
return(TRUE);
}
else { printf(""file not open!n"");
return(FALSE);
}
}
void InputWord(OrderList *pt)
{ char cc;
Sequence ws;
LinkType pq;
WordType nwd;
(学生独立完成)
}
void InitRList(ResultType rsOrderList pat)
{ int k;
LinkType p;
p=pat.head->next;
for(k=0;kCopyWord(&rs[k].datap->data);
rs[k].next=NULL;
rs[k].count=0;
p=p->next;
}
}
void OutResult(ResultType rslistint n)
{ int ij;
Link p;
for(i=0;iprintf(""The word "");
PrintWord(rslist[i].data);
printf("" appeared in the file %d times""rslist[i].cou
if(rslist[i].count!=0){
printf("" and on "");
p=rslist[i].next;
for(j=0;jif(j{ printf(""%dp->elem);
p=p->next;
}
else printf(""%dn""p->elem);
}
}
}
void FreeResult(ResultType rsint n)
{ int i;
Link pq;
for(i=0;ip=rs[i].next;
while(p){
q=p;
p=p->next;
free(q);
}
rs[i].next=NULL;
rs[i].count=0;
}
}
int nemu()
{ int mun;
printf(""n *
******* Literary research aid *********n"") ;
printf("" %8c1---Input matched words%9cn""' ''');
printf("" %8c2---Input match file%13cn""' ''');
printf("" %8c3---Proces file%17cn""' ''');
printf("" %8c4---Output Result%15cn""' ''');
printf("" %8c5---Quit%24cn""' ''');
printf("" *****************************************n"");
printf(""%15cSelcet 12345: ""' ');
do{
mun=getch()-48;
}while(mun5);
printf(""n"");
return(mun);
}
/*--------------------------------------------*/
/* 主函数 /
/
--------------------------------------------*/
void main()
{ int ijflag1=0flag2=0flag3=0;
char str[80];
FILE *fp;
OrderList pt;
LinkType p;
ResultType rs;
sp.freep=0;
pt.size=0;
for(i=0;i<MAXNUM;i++) rs[i].next=NULL;
while(1)
{ switch(nemu())
{
93
case 1: //输入待统计的单词集
if(pt.size!=0) DestroyList(&pt);
InputWord(&pt);
if(!ListEmpty(pt)) flag2=1;
break;
case 2: //初始化文件
if(Initialization(&fp)) flag1=1;
break;
case 3: //统计分析
if(flag1==0||flag2==0)
{ printf(""file not processed!n"");
getchar();
break;
}
FreeResult(rspt.size);
InitRList(rspt);
if(!match(fpptrs))
{ printf(""memory overfllow!n"");
getchar();
break;
}
else flag3=1;
break;
case 4: //输出统计结果
if(flag3==0){
printf(""not result!n"");
getchar();
break;
}
OutResult(rspt.size);
break;
case 5: //退出系统
FreeResult(rspt.size);
DestroyList(&pt);
return;
}
}
}

解决方案

http://wenku.baidu.com/link?url=en3r9QFo5GmOLMsh_wd6P56zL6zmWYDnIv3x6GW4L5EQEwJtABy-dsAf8RH8M4BgnUJ1tGR1CIusd7nbqzP9or6CMVP51_cSz3AEseIkVWG

时间: 2024-11-03 11:41:14

代码-数据结构预算法 要求统计自己输入文本的数字字母或者文字的个数 把学生独立完成部分填上的相关文章

jQuery添加和删除输入文本框标签代码_jquery

先给大家展示效果图,如果大家觉得还不错,请继续参考实现代码. 废话不多说了,直接给大家贴代码了. 代码如下: <!DOCTYPE html> <html> <head> <title>jquery删除添加输入文本框</title><base target="_blank" /> <meta charset="utf-8"> <link rel="stylesheet&

Python实现代码行数自动统计实例

此功能用到了2个常用的Python标准库os和sys模块就解决. 可能是因为这段时间在做的一个Python项目,用的是一个公司内部的IDE环境,而这个IDE环境产生的py代码并不是以文本方式存储,都是放在二进制文件里面的. 由于这门语言外界几乎接触不到,所以没有针对它的代码统计程序.一个模块完成后要统计代码行数会很困难的,要统计的话只能手工来操作,这不符合我们程序员的一惯风格. 在这期间我一直在关注python语言,但是还没有动手真正的写python程序 .今天就利用中午休息的时间写了一个简单的

c++统计用户输入的字符串的空格字符,英文字符,数字个数,其他字符个数以及用户输入字符串的长度

问题描述 c++统计用户输入的字符串的空格字符,英文字符,数字个数,其他字符个数以及用户输入字符串的长度 我在统计中文的时候出现了问题,请各位大神指教一下 #include #include using namespace std; int main() { string str; cout << "请输入一个字符串,以换行为结束!n"; getline(cin, str); size_t count = 0; size_t spaceNum=0; size_t lette

如何使用CColorDialog改变编辑框的输入文本的颜色

问题描述 如何使用CColorDialog改变编辑框的输入文本的颜色 这是我的颜色按键处理函数 void CMFCChatDlg::OnBnClickedColor() { // TODO: 在此添加控件通知处理程序代码 CColorDialog colorDlg; if (colorDlg.DoModal() == IDOK) { color = colorDlg.GetColor(); CFile colorfile; colorfile.Open("colortemp.dat",

java-eclipse使用的时候我在控制台输入文本,有时候正常有时候出错,老师说是光标问题,但真心不懂啊

问题描述 eclipse使用的时候我在控制台输入文本,有时候正常有时候出错,老师说是光标问题,但真心不懂啊 有时候输入是正常的,而且为了避免文本本身的问题,我用固定的文本来测试,但奇怪的是 有时候正常,有时候就报各种错误,输入的时候文本并没有变绿,而是很正常的输入的那种 但结果总是正常不正常的,问了下人,说是在汉字输入的时候和英文不时光标定位的事,但没听懂 请问大神们是怎么解决的呢 解决方案 因为每个汉字编码是两个字节,而标准输入System.in是字节流,这样就会造成程序中对字符接收的不完全,

ComboBox控件输入文本弹出下拉列表根据输入的文本在数据库查找~~

问题描述 ComboBox控件输入文本,显示下拉列表根据输入的文本在数据库模糊查找列表显示出查找的值.求大神解答给代码,小弟万分感谢. 解决方案 解决方案二:http://bbs.csdn.net/topics/300154879解决方案三:onchange事件中,根据内容区select数据集,然后遍历数据集,添加到items解决方案四:选择a,返回bprivatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){string

CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库_javascript技巧

简介 实现类似于Photoshop控制面板输入文本数字的效果,所以名称叫做PsWheel.用于控制输入数字类型文本框实现鼠标滚轮上下滑动改变值,支持正整数.小数类型输入文本. 兼容IE/Firefox/Opera/Safari/Chrom 可定义滚动变化间隔值,支持整数.浮点数 双击恢复初始值 仅3.92K,压缩后2.67K 代码 复制代码 代码如下: /* * cutePsWheel JS * Description:A js liabary which control the text ty

c#如何实现一个线程暂停,等待用户输入文本后继续运行?

问题描述 情问如何等待一个用户输入文本然后输入超过4位后继续根据用户输入的数值继续运行程序?Suspend过时了我不知道还有其他方法实现?? 解决方案 解决方案二:可以用事件通知:usingSystem;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;namespaceWindowsApplication1{publicpartialclassForm1:Form{publicForm1(){InitializeC

asp.net中,如何验证输入文本框的是小数点后带两位的数字,即money类型

问题描述 asp.net中,如何验证输入文本框的是小数点后带两位的数字,即money类型.请各位高手指点 解决方案 解决方案二:functionIsFloat(name)//验证输入小数(小数点后2位){if(name.value!=""){if(name.value.search(/^[0-9]+$/)!=-1||name.value.search(/^([0-9]+)|([0-9]+.[0-9]*)|([0-9]*.[0-9]+)$/)!=-1){name.value=Math.r