| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2969 人关注过本帖
标题:求助, 老师上课给我们编一个通讯录,本人完全是菜鸟 一窍不通,求助。
只看楼主 加入收藏
时光不染丶
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-3-19
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
求助, 老师上课给我们编一个通讯录,本人完全是菜鸟 一窍不通,求助。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 200

typedef struct   //数据表达
{
    char name[20];
    char tel_num[15];
    char note[20];
}ElemType;

typedef struct sqlist  //存储选择
{
    ElemType Data[MAX];
    int length;
}Sqlist;                  

//函数声明
Sqlist *creat_sqlist();
void insert_rear_sqlist(Sqlist *q,ElemType new_data);
void disp_sqlist(Sqlist *q);
int search(Sqlist *q,char name[20]);
void modify(Sqlist *q,int t_i);
void del(Sqlist *q,char name[20]);

//主函数,体现逻辑
void main()
{

    Sqlist *q;
    ElemType t;
    int flag = 1,num,t_i;
    char ch,name[20];
    q = creat_sqlist();   ----------- 就这里,主函数里面到这里是对创建的结构体函数的调用吗? q=creat_sqlist()只是什么意思啊?
    while(flag)           ----------- 还有老师这个SqList 和ElemType一定要这么大小写么?不能直接写小写么?还有下面的函数插入,修改这些
    {                    ------------ 一定要写return? 为什么呢?
        printf("please select a num:\n");
        printf(" 0: End(Exit);\n");
        printf(" 1: Insert;\n");
        printf(" 2: Display;\n");
        printf(" 3: Search data based on name;\n");
        printf(" 4: Modify data based on name;\n");
        printf(" 5: Display;\n");
        scanf("%d",&num);
        switch(num)
        {
        case 1:
            printf("input data:\n");
            scanf("%s%s%s",t.name,t.tel_num,t.note);
            insert_rear_sqlist(q,t);
            break;
        case 2:
            printf("Output data:\n");
            disp_sqlist(q);
            //ch = getchar();
            break;
        case 3:
            printf("intput name:\n");
            scanf("%s",name);
            t_i = search(q,name);
            break;
        case 4:
            printf("intput name:\n");
            scanf("%s",name);
            t_i = search(q,name);
            modify(q,t_i);
        case 5:
        

            break;
        case 0:
            flag = 0;
            break;
        default:
            printf("input error\n");
        }
        //system("cls");
    }

    return(0);
}

//option 函数定义
Sqlist *creat_sqlist()
{
    Sqlist *q1;
    q1 = (Sqlist *)malloc(sizeof(Sqlist));
    q1->length = 0;
    return q1;
}

void insert_rear_sqlist(Sqlist *q,ElemType new_data)
{
    q->Data[q->length] = new_data;
    q->length++;
    return;
}

void disp_sqlist(Sqlist *q)
{
    int i;
    for(i=0;i<q->length;i++)
        printf("%s,%s,%s.\n",q->Data[i].name,q->Data[i].tel_num,q->Data[i].note);
    return;
}

int search(Sqlist *q,char name[20])
{
    int i;
    for(i=0;i<q->length;i++)
    {
        if(strcmp(q->Data[i].name,name)==0)
        {
            printf("%s,%s,%s.\n",q->Data[i].name,q->Data[i].tel_num,q->Data[i].note);
            return i;
            //break;//
        }
    }
}

void modify(Sqlist *q,int t_i)
{
    scanf("%s%s",q->Data[t_i].tel_num,q->Data[t_i].note);
    disp_sqlist(q);
    return;
}

void del(Sqlist *q,char name[20])
{
    int i,t;
    t = search(q,name);
    for(i = t;i < q->length; i++)
        q->Data[i-1] = q->Data[i];
    q->length--;
    disp_sqlist(q);
    return;

}



这是老师写的程序 还没写完 我就是想问问一些地方。

[此贴子已经被作者于2016-3-19 13:07编辑过]

搜索更多相关主题的帖子: 一窍不通 include search 通讯录 modify 
2016-03-19 13:05
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
收藏
得分:4 
图片附件: 游客没有浏览图片的权限,请 登录注册

#############################################
##########################################
因为不懂、才要学习、只有学习、才有进步。
2016-03-19 13:21
时光不染丶
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-3-19
收藏
得分:0 
回复 2楼 七夜之华
这个程序是没错的, 我想问上面的东西
2016-03-19 13:27
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:4 
就这里,主函数里面到这里是对创建的结构体函数的调用吗? q=creat_sqlist()只是什么意思啊?
  这句是对创建结构体函数的调用,q=creat_sqlist()表示调用函数并把函数的返回值(即头指针)赋给p。
还有老师这个SqList 和ElemType一定要这么大小写么?不能直接写小写么?
  C语言严格区分大小写,不然会编绎失败哦。
还有下面的函数插入,修改这些一定要写return? 为什么呢?
  不懂你说的什么意思。

未佩好剑,转身便已是江湖
2016-03-19 14:02
时光不染丶
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-3-19
收藏
得分:0 
回复 4楼 alice_usnet
Sqlist *q;
    ElemType t;
    int flag = 1,num,t_i;
    char ch,name[20];
    q = creat_sqlist()   就是这里了~    q = creat_sqlist() 是什么意思啊,我的基础太差了- -
2016-03-19 18:56
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
回复 5楼 时光不染丶
这是最基础的问题,多看书。先把最基本的学好,一口吃不成胖子。

未佩好剑,转身便已是江湖
2016-03-19 21:22
快速回复:求助, 老师上课给我们编一个通讯录,本人完全是菜鸟 一窍不通,求助。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032588 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved