M1

来源:互联网 发布:网络的功能 编辑:程序博客网 时间:2024/05/01 14:17
  1. 请实现单词表的管理。应该包含的功能有单词表的初始化,增加一条单词 ,删除一条单词,单词表信息输出等功能。(用面向对象的方式实现)
    单词表包含的信息有(编号 ,单词,词频,含义)如:
    1,concern,12.5,”n.关心,关切的事|v.涉及,与…有关”
    2,insight,8,n.洞察力
    3,absent,7,a.缺席的|vt.使缺席
    4,influence,6,”v.影响,感化|n.影响力,势力”
    假设这些记录存放在文件里面
    请 实现:
    n 请利用list数据结构,实现对单词表的顺序查找。
    n 需要按照要求建立Record类,Key类等
#include<stdio.h>#include<stdlib.h>#include<string.h>#define NULL 0typedef struct LNode{    int no;    char str[100];    int f;    char m[100];    struct LNode *next;}LNode,*lnode;void createList(lnode &l,int n){    lnode p,q;    l=(lnode)malloc(sizeof(LNode));    p=l;    for(int i=0;i<n;i++)    {        q=(lnode)malloc(sizeof(LNode));        scanf("%d%s%d%s",&q->no,q->str,&q->f,q->m);        p->next=q;        p=q;    }    p->next=NULL;}void printList(lnode l){    lnode p;    p=l->next;    while(p!=NULL)    {        printf("no=%d,str=%s,fre=%d,meaning=%s\n",p->no,p->str,p->f,p->m);        p=p->next;    }}void insert(lnode &l,int no)    //no为插入单词的数量{    lnode p,q;    p=l;    while(p->next!=NULL)p=p->next;    for(int i=0;i<no;i++)    {        q=(lnode)malloc(sizeof(LNode));        scanf("%d%s%d%s",&q->no,q->str,&q->f,q->m);        q->next=NULL;        p->next=q;        p=p->next;    }}void del(lnode &l,char str[]){    int i,j;    lnode p,pre,q;    p=l->next;    pre=l;    while(p!=NULL)    {        if(strcmp(p->str,str)==0)            break;        pre=p;        p=p->next;    }    q=p;    pre->next=p->next;    p=p->next;    free(q);}void search(lnode &l,char str[]){    lnode p,q;    int i;    p=l->next;    while(p!=NULL)    {        if(strcmp(str,p->str)==0)            break;        p=p->next;    }    if(p!=NULL)        printf("查找结果:\nno=%d,str=%s,fre=%d,meaning=%s\n",p->no,p->str,p->f,p->m);    else        printf("查找失败!");}int main(){    lnode l;    int n,no;    char str[100],s[100];    scanf("%d",&n);    createList(l,n);    printf("初试数据:\n");    printList(l);    printf("输入你想插入单词的个数:");    scanf("%d",&no);    insert(l,no);    printf("插入后的数据:\n");    printList(l);    printf("需要删除的单词:");    scanf("%s",str);    del(l,str);    printf("删除后的数据:\n");    printList(l);    printf("输入你想查找的数据:");    scanf("%s",s);    search(l,s);    return 0;}
0 0
原创粉丝点击