求助, 老师上课给我们编一个通讯录,本人完全是菜鸟 一窍不通,求助。
#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编辑过]