您的位置:首页 > 其它

自己写的一点小东西!

2009-10-25 15:34 141 查看
/**************************************************************/

/* 通讯录管理系统 */

/* 制作:zky */

/* 时间:09/10/** */

/**************************************************************/

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

typedef struct student /*学生信息结构体*/

{

int id;

char name[20];

char sex[5];

int age;

char telephone[20];

int roomphone;

char homeadress[20];

}ST;

typedef struct date

{

struct student stu;

struct date *next;

}LNode,*LinkList;

LinkList Start_List(int n) /*创建*/

{

void pri(LinkList l);

LinkList L,k,s;

struct student x;

int i;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;

for(i=1; i<=n; i++)

{

printf("/t第%d项元素",i);

s=(LinkList)malloc(sizeof(LNode));

printf("/n共7项信息,逐个输入,请注意字符类型/n请输入学号(int):");

scanf ("%d",&x.id);

printf("请输入姓名(char):");

scanf("%s",&x.name);

printf("请输入性别(char):");

scanf("%s",&x.sex);

printf("请输入年龄(int):");

scanf("%d",&x.age);

printf("请输入手机号(char):");

scanf("%s",&x.telephone);

printf("请输入宿舍号码(int):");

scanf("%d",&x.roomphone);

printf("请输入住址(char):");

scanf("%s",&x.homeadress);

s->stu=x;

s->next=L->next;

L->next=s;

}

pri(L);

return L;

}

LinkList List_Search(LinkList L,int i) /*查找定位*/

{

LinkList p=L;

int j=0;

while(p->next!=NULL&&j<i)

{

p=p->next;

j++;

}

if(j==i)

return p;

else

return NULL;

}

LinkList Term_Search(LinkList L,int i) /*条件(学号)查询*/

{

}

LinkList SwapInset_Link(LinkList L,int i,ST r) /*插入/替换*/

{

int j;

LinkList p,s;

p=List_Search(L,i);

s=(LinkList)malloc(sizeof(LNode));

s->stu=r;

s->next=p->next;

p->next=s;

return p;

}

LinkList Del_List(LinkList L,int n) /*删除*/

{

LinkList p,s;

p=List_Search(L,n);

if(p==NULL)

{

printf("*****!错误!*****/n");

}

else

{

if(p->next==NULL)

{

printf("******空,无元素******/n");

}

else

{

s=p->next;

p->next=s->next;

free(s);

}

}

return p;

}

void pri(LinkList l) /*输出函数*/

{

LinkList s;

int i=1;

s=l->next;

printf("通讯录中成员信息为:");

printf("/n/t%-7s%10s%8s%10s%8s%15s %10s","学号","姓名","性别","年龄","手机","宿舍号码","家庭地址");

while(s!=NULL)

{

printf("/n%d",i);

printf("/t%-7d%10s%8s%10d%8s%15d %5s/n",s->stu.id,s->stu.name,s->stu.sex,s->stu.age,s->stu.telephone,s->stu.roomphone,s->stu.homeadress);

s=s->next;

i++;

}

}

int main()

{

printf("*********************欢迎使用通讯录管理系统**************************");

int d,i;

int flg;

LinkList P,s;

P=(LinkList)malloc(sizeof(LNode));

printf("/n请输入创建名单数量:");

scanf("%d",&d);

P=Start_List(d);

loop:printf("/n *****①插入 ②删除*****");

printf("/n *****③替换 ④查找*****");

printf("/n *****⑤退出 ***********");

printf("/n 请输入需要进行的操作,输入数字:");

scanf("%d",&d);

if(d==1)

{

struct student n;

printf("/n插入元素位置:(共7项逐个输入,注意输入字符类型,输入错误后果自负)");

scanf("%d",&d);

printf("/n输入信息:");

printf("/n学号(整型):");

scanf ("%d",&n.id);

printf("姓名(字符串):");

scanf("%s",&n.name);

printf("性别(字符串):");

scanf("%s",&n.sex);

printf("年龄(整型):");

scanf("%d",&n.age);

printf("手机号:(字符串)");

scanf("%s",&n.telephone);

printf("宿舍号码:(整型)");

scanf("%d",&n.roomphone);

printf("住址:(字符串)");

scanf("%s",&n.homeadress);

s=SwapInset_Link(P,d,n);

pri(P);

goto

loop;

}

if(d==2)

{

printf("/n请输入需要删除的元素:");

scanf("%d",&d);

s=Del_List(P,d-1);

pri(P);

P=s;

goto

loop;

}

if(d==3)

{

struct student x;

printf("请输入需要替换的元素位置:");

scanf("%d",&d);

printf("请输入新的元素信息:/n");

printf("/n学号(int):");

scanf ("%d",&x.id);

printf("姓名(char):");

scanf("%s",&x.name);

printf("性别(char):");

scanf("%s",&x.sex);

printf("年龄(int):");

scanf("%d",&x.age);

printf("手机号(char):");

scanf("%s",&x.telephone);

printf("宿舍号码(int ):");

scanf("%d",&x.roomphone);

printf("住址(char):");

scanf("%s",&x.homeadress);

P=SwapInset_Link(P,d,x);

pri(P);

goto

loop;

}

if(d==4)

{

printf("请输入需要查找元素的序号:");

scanf("%d",&d);

s=List_Search(P,d);

if(P!=NULL)

{

printf("/n%-5s%10s%10s%10s%15s%15s %10s","学号","姓名","性别","年龄","手机","宿舍号码","家庭地址");

printf("/n%-5d%10s%10s%10d%15s%15d %5s/n",s->stu.id,s->stu.name,s->stu.sex,s->stu.age,s->stu.telephone,s->stu.roomphone,s->stu.homeadress);

}

if(P==NULL)

{

printf("/n/t******************");

printf("/n/t**!!查无此元素!!**");

printf("/n/t*******************");

}

goto

loop;

}

if(d==5)

{

exit(0);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: