自己写的一点小东西!
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;
}
/* 通讯录管理系统 */
/* 制作: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;
}
相关文章推荐
- 关于政府救楼市自己的一点天真的看法
- 基于tomcat7 web开发中的一点小东西
- 一点总结,提醒自己
- 自己总结的一点笔记
- 男人就要对自己狠一点
- 程序员,做技术神马的,请对自己好一点!(转)
- 黑马程序员--Io流,(含自己的一点理解,与图解)
- Linux~Sh脚本一点自己的总结
- 关于oop的自己的一点小见识
- 自己对C语言中scanf语句接受字符串的一点理解
- 左偏树自己的一点理解【hdu1512】【Monkey King】
- 自己对android开机速度优化的一点理解
- 对自己狠一点
- 网页常用小技巧(转帖+自己添加了一点)
- 收集的一点小东西(关于网络管理员软考的)
- c语言学习小记 有关内存的一点注意的小东西
- 一个关于的指针的经典笔试题目,加上自己的一点体会
- 自己对java数据结构跟算法的一点理解把
- 关于自己的一点心得EXtjs
- 编程之美1.2中国象棋将帅问题——转载+自己的一点理解