自己寫的一點小東西!

來源:互聯網
上載者:User

/**************************************************************/
/*                通訊錄管理系統                              */
/*                製作: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;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.