亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algo2-6.c

?? 我從網站上下了嚴蔚敏寫的一本c語言
?? C
字號:
 /* algo2-6.c 利用單鏈表結構處理教科書圖2.1(學生健康登記表) */
 #include"c1.h"
 #define NAMELEN 8 /* 姓名最大長度 */
 #define CLASSLEN 4 /* 班級名最大長度 */
 struct stud /* 記錄的結構 */
 {
   char name[NAMELEN+1];
   long num;
   char sex;
   int age;
   char Class[CLASSLEN+1];
   int health;
 };
 typedef struct stud ElemType; /* 鏈表結點元素類型為結構體 */
 #include"c2-2.h"
 char sta[3][9]={"健康  ","一般  ","神經衰弱"}; /* 健康狀況(3類) */
 FILE *fp;

 Status InitList(LinkList *L) /* 拷自bo2-2.c */
 { /* 操作結果:構造一個空的線性表L */
   *L=(LinkList)malloc(sizeof(struct LNode)); /* 產生頭結點,并使L指向此頭結點 */
   if(!*L) /* 存儲分配失敗 */
     exit(OVERFLOW);
   (*L)->next=NULL; /* 指針域為空 */
   return OK;
 }

 Status ListTraverse(LinkList L,void(*vi)(ElemType)) /* 拷自bo2-2.c */
 { /* 初始條件:線性表L已存在 */
   /* 操作結果:依次對L的每個數據元素調用函數vi()。一旦vi()失敗,則操作失敗 */
   LinkList p=L->next;
   while(p)
   {
     vi(p->data);
     p=p->next;
   }
   printf("\n");
   return OK;
 }

 void InsertAscend(LinkList L,ElemType e) /* 此函數是由bo2-9.c中的同名函數改寫 */
 { /* 按學號非降序插入 */
   LinkList q=L,p=L->next;
   while(p&&e.num>p->data.num)
   {
     q=p;
     p=p->next;
   }
   q->next=(LinkList)malloc(sizeof(struct LNode)); /* 插在q后 */
   q->next->data=e;
   q->next->next=p;
 }

 void Print(struct stud e)
 { /* 顯示記錄e的內容 */
   printf("%-8s %6ld",e.name,e.num);
   if(e.sex=='m')
     printf(" 男");
   else
     printf(" 女");
   printf("%5d  %-4s",e.age,e.Class);
   printf("%9s\n",sta[e.health]);
 }

 void ReadIn(struct stud *e)
 { /* 由鍵盤輸入結點信息 */
   printf("請輸入姓名(<=%d個字符): ",NAMELEN);
   scanf("%s",e->name);
   printf("請輸入學號: ");
   scanf("%ld",&e->num);
   printf("請輸入性別(m:男 f:女): ");
   scanf("%*c%c",&e->sex);
   printf("請輸入年齡: ");
   scanf("%d",&e->age);
   printf("請輸入班級(<=%d個字符): ",CLASSLEN);
   scanf("%s",e->Class);
   printf("請輸入健康狀況(0:%s 1:%s 2:%s):",sta[0],sta[1],sta[2]);
   scanf("%d",&e->health);
 }

 void WriteToFile(struct stud e)
 { /* 將結點信息寫入fp指定的文件 */
   fwrite(&e,sizeof(struct stud),1,fp);
 }

 Status ReadFromFile(struct stud *e)
 { /* 由fp指定的文件讀取結點信息到e */
   int i;
   i=fread(e,sizeof(struct stud),1,fp);
   if(i==1) /* 讀取文件成功 */
     return OK;
   else
     return ERROR;
 }

 Status FindFromNum(LinkList L,long num,LinkList *p,LinkList *q)
 { /* 查找表中學號為num的結點,如找到,q指向此結點,p指向q的前驅, */
   /* 并返回TRUE;如無此元素,則返回FALSE */
   *p=L;
   while(*p)
   {
     *q=(*p)->next;
     if(*q&&(*q)->data.num>num) /* 因為是按學號非降序排列 */
       break;
     if(*q&&(*q)->data.num==num) /* 找到該學號 */
       return TRUE;
     *p=*q;
   }
   return FALSE;
 }

 Status FindFromName(LinkList L,char name[],LinkList *p,LinkList *q)
 { /* 查找表中姓名為name的結點,如找到,q指向此結點,p指向q的前驅, */
   /* 并返回TRUE;如無此元素,則返回FALSE */
   *p=L;
   while(*p)
   {
     *q=(*p)->next;
     if(*q&&!strcmp((*q)->data.name,name)) /* 找到該姓名 */
       return TRUE;
     *p=*q;
   }
   return FALSE;
 }

 Status DeleteElemNum(LinkList L,long num)
 { /* 刪除表中學號為num的元素,并返回TRUE;如無此元素,則返回FALSE */
   LinkList p,q;
   if(FindFromNum(L,num,&p,&q)) /* 找到此結點,且q指向其,p指向其前驅 */
   {
     p->next=q->next;
     free(q);
     return TRUE;
   }
   return FALSE;
 }

 Status DeleteElemName(LinkList L,char name[])
 { /* 刪除表中姓名為name的元素,并返回TRUE;如無此元素,則返回FALSE */
   LinkList p,q;
   if(FindFromName(L,name,&p,&q)) /* 找到此結點,且q指向其,p指向其前驅 */
   {
     p->next=q->next;
     free(q);
     return TRUE;
   }
   return FALSE;
 }

 void Modify(ElemType *e)
 { /* 修改結點內容 */
   char s[80];
   Print(*e); /* 顯示原內容 */
   printf("請輸入待修改項的內容,不修改的項按回車鍵保持原值:\n");
   printf("請輸入姓名(<=%d個字符): ",NAMELEN);
   gets(s);
   if(strlen(s))
     strcpy(e->name,s);
   printf("請輸入學號: ");
   gets(s);
   if(strlen(s))
     e->num=atol(s);
   printf("請輸入性別(m:男 f:女): ");
   gets(s);
   if(strlen(s))
     e->sex=s[0];
   printf("請輸入年齡: ");
   gets(s);
   if(strlen(s))
     e->age=atoi(s);
   printf("請輸入班級(<=%d個字符): ",CLASSLEN);
   gets(s);
   if(strlen(s))
     strcpy(e->Class,s);
   printf("請輸入健康狀況(0:%s 1:%s 2:%s):",sta[0],sta[1],sta[2]);
   gets(s);
   if(strlen(s))
     e->health=atoi(s); /* 修改完畢 */
 }

 #define N 4 /* student記錄的個數 */
 void main()
 {
   struct stud student[N]={{"王小林",790631,'m',18,"計91",0},
                           {"陳紅",790632,'f',20,"計91",1},
                           {"劉建平",790633,'m',21,"計91",0},
                           {"張立立",790634,'m',17,"計91",2}}; /* 表的初始記錄 */
   int i,j,flag=1;
   long num;
   char filename[13],name[NAMELEN+1];
   ElemType e;
   LinkList T,p,q;
   InitList(&T); /* 初始化鏈表 */
   while(flag)
   {
     printf("1:將結構體數組student中的記錄按學號非降序插入鏈表\n");
     printf("2:將文件中的記錄按學號非降序插入鏈表\n");
     printf("3:鍵盤輸入新記錄,并將其按學號非降序插入鏈表\n");
     printf("4:刪除鏈表中第一個有給定學號的記錄\n");
     printf("5:刪除鏈表中第一個有給定姓名的記錄\n");
     printf("6:修改鏈表中第一個有給定學號的記錄\n");
     printf("7:修改鏈表中第一個有給定姓名的記錄\n");
     printf("8:查找鏈表中第一個有給定學號的記錄\n");
     printf("9:查找鏈表中第一個有給定姓名的記錄\n");
     printf("10:顯示所有記錄 11:將鏈表中的所有記錄存入文件 12:結束\n");
     printf("請選擇操作命令: ");
     scanf("%d",&i);
     switch(i)
     {
       case 1: for(j=0;j<N;j++)
                 InsertAscend(T,student[j]);
               break;
       case 2: printf("請輸入文件名: ");
               scanf("%s",filename);
               if((fp=fopen(filename,"rb"))==NULL)
                 printf("打開文件失敗!\n");
               else
               {
                 while(ReadFromFile(&e))
                   InsertAscend(T,e);
                 fclose(fp);
               }
               break;
       case 3: ReadIn(&e);
               InsertAscend(T,e);
               break;
       case 4: printf("請輸入待刪除記錄的學號: ");
               scanf("%ld",&num);
               if(!DeleteElemNum(T,num))
                 printf("沒有學號為%ld的記錄\n",num);
               break;
       case 5: printf("請輸入待刪除記錄的姓名: ");
               scanf("%s",name);
               if(!DeleteElemName(T,name))
                 printf("沒有姓名為%s的記錄\n",name);
               break;
       case 6: printf("請輸入待修改記錄的學號: ");
               scanf("%ld%*c",&num); /* %*c吃掉回車符 */
               if(!FindFromNum(T,num,&p,&q))
                 printf("沒有學號為%ld的記錄\n",num);
               else
               {
                 Modify(&q->data);
                 if(q->data.num!=num) /* 學號被修改 */
                 {
                   p->next=q->next; /* 把q所指的結點從L中刪除 */
                   InsertAscend(T,q->data); /* 把元素插入L */
                   free(q); /* 刪除q */
                 }
               }
               break;
       case 7: printf("請輸入待修改記錄的姓名: ");
               scanf("%s%*c",name); /* %*c吃掉回車符 */
               if(!FindFromName(T,name,&p,&q))
                 printf("沒有姓名為%s的記錄\n",name);
               else
               {
                 num=q->data.num; /* 學號存入num */
                 Modify(&q->data);
                 if(q->data.num!=num) /* 學號被修改 */
                 {
                   p->next=q->next; /* 把q所指的結點從L中刪除 */
                   InsertAscend(T,q->data); /* 把元素插入L */
                   free(q); /* 刪除q */
                 }
               }
               break;
       case 8: printf("請輸入待查找記錄的學號: ");
               scanf("%ld",&num);
               if(!FindFromNum(T,num,&p,&q))
                 printf("沒有學號為%ld的記錄\n",num);
               else
                 Print(q->data);
               break;
       case 9: printf("請輸入待查找記錄的姓名: ");
               scanf("%s",name);
               if(!FindFromName(T,name,&p,&q))
                 printf("沒有姓名為%s的記錄\n",name);
               else
               Print(q->data);
               break;
       case 10:printf("  姓名    學號 性別 年齡 班級 健康狀況\n");
               ListTraverse(T,Print);
               break;
       case 11:printf("請輸入文件名: ");
               scanf("%s",filename);
               if((fp=fopen(filename,"wb"))==NULL)
                 printf("打開文件失敗!\n");
               else
                 ListTraverse(T,WriteToFile);
               fclose(fp);
               break;
       case 12:flag=0;
     }
   }
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产资源在线一区| 欧美久久久久久久久| 国产美女av一区二区三区| 日韩成人一区二区三区在线观看| 亚洲一级不卡视频| 亚洲成人黄色小说| 亚洲国产精品久久久久秋霞影院| 亚洲精品国产精品乱码不99 | 一区二区三区四区五区视频在线观看| 国产欧美日本一区视频| 欧美激情一区二区三区在线| 国产免费成人在线视频| 国产欧美一区二区三区在线老狼| 国产蜜臀97一区二区三区 | 国产精品成人免费| 久久久www成人免费无遮挡大片| 欧美成人乱码一区二区三区| 精品欧美久久久| 精品福利一二区| 久久久精品日韩欧美| 欧美精彩视频一区二区三区| 中文在线资源观看网站视频免费不卡| 国产日产欧美一区二区三区| 国产精品黄色在线观看| 亚洲精品第一国产综合野| 夜夜精品视频一区二区| 午夜精品久久久久久久99樱桃| 天天色天天操综合| 加勒比av一区二区| 国产91在线观看丝袜| 91麻豆蜜桃一区二区三区| 欧美日韩视频一区二区| 日韩美女主播在线视频一区二区三区| 国产亚洲综合在线| 亚洲精品乱码久久久久久| 人人超碰91尤物精品国产| 黑人巨大精品欧美一区| av电影在线观看不卡| 欧美性xxxxx极品少妇| 日韩一区二区精品葵司在线| 日本一区二区免费在线观看视频 | 亚洲日本一区二区| 日韩黄色一级片| 国产成人在线电影| 欧美性xxxxxx少妇| 国产午夜一区二区三区| 另类小说综合欧美亚洲| 北岛玲一区二区三区四区| 欧美日韩国产a| 久久久久久久久久看片| 一区二区三区中文字幕| 久久精品国产亚洲高清剧情介绍| 成人国产精品免费观看视频| 欧美日韩五月天| 国产喷白浆一区二区三区| 亚洲狠狠爱一区二区三区| 国产麻豆成人传媒免费观看| 欧美性高清videossexo| 久久九九影视网| 视频一区在线视频| av亚洲精华国产精华精华| 欧美一三区三区四区免费在线看 | 国产精品久久久久久久久搜平片| 日韩一区欧美二区| 99久久国产免费看| 精品乱人伦一区二区三区| 一区二区三区成人| 国产精品一区二区x88av| 欧美日韩国产色站一区二区三区| 亚洲国产高清在线| 久久99国产精品久久99果冻传媒| 日本精品一区二区三区高清| 欧美国产精品专区| 久久精品国产亚洲一区二区三区| 欧美综合久久久| 中文一区二区完整视频在线观看| 蜜臀精品一区二区三区在线观看| 色94色欧美sute亚洲13| 国产欧美在线观看一区| 久久国产麻豆精品| 在线电影欧美成精品| 亚洲男人天堂av网| 成人一区二区三区中文字幕| 精品国产区一区| 五月婷婷综合在线| 色综合天天综合狠狠| 国产欧美日韩在线| 国产乱子轮精品视频| 日韩精品一区二区三区在线观看| 午夜日韩在线电影| 欧美色窝79yyyycom| 亚洲视频在线观看一区| 国产成人夜色高潮福利影视| 日韩欧美国产系列| 蜜桃av一区二区在线观看| 欧美日韩精品欧美日韩精品一| 亚洲另类中文字| 色呦呦日韩精品| 亚洲伦理在线精品| 91美女精品福利| 亚洲精品国产视频| 91免费小视频| 亚洲美腿欧美偷拍| 97se亚洲国产综合在线| 国产精品国产三级国产有无不卡| 8v天堂国产在线一区二区| 亚洲高清免费在线| 欧美性感一区二区三区| 亚洲成人av电影在线| 欧美三级一区二区| 亚洲成a天堂v人片| 欧美日韩国产一区二区三区地区| 亚洲国产一区在线观看| 欧美老人xxxx18| 日韩精品视频网站| 欧美www视频| 国产毛片精品视频| 久久久久国产精品免费免费搜索| 国产精品白丝jk黑袜喷水| 国产欧美日本一区二区三区| 成人黄页在线观看| 亚洲日本护士毛茸茸| 在线免费av一区| 丝袜亚洲精品中文字幕一区| 欧美一级欧美一级在线播放| 久久精品99国产精品日本| www亚洲一区| 成人综合婷婷国产精品久久| √…a在线天堂一区| 91黄色激情网站| 午夜精品在线看| 欧美成人激情免费网| 国产91精品久久久久久久网曝门| 国产精品第13页| 欧美在线啊v一区| 精品中文av资源站在线观看| 欧美国产欧美综合| 日本道在线观看一区二区| 免费在线观看成人| 久久婷婷成人综合色| 成人ar影院免费观看视频| 亚洲自拍偷拍欧美| 日韩三级免费观看| 成人h精品动漫一区二区三区| 自拍偷拍国产精品| 51精品视频一区二区三区| 国产一区在线精品| 亚洲美女少妇撒尿| 日韩免费电影网站| 97久久精品人人做人人爽| 人人爽香蕉精品| 亚洲天堂成人在线观看| 欧美日韩国产精品成人| 国产精品资源在线| 亚洲国产欧美在线| 久久精品亚洲麻豆av一区二区| 91蜜桃免费观看视频| 精品一区二区三区蜜桃| 综合在线观看色| 日韩一级完整毛片| 波多野结衣中文字幕一区| 五月婷婷久久丁香| 国产精品视频看| 4438x亚洲最大成人网| 成人av中文字幕| 免费在线观看一区二区三区| 中文字幕一区二区不卡| 日韩午夜激情视频| 色综合天天综合网国产成人综合天 | 免费成人你懂的| 韩国女主播成人在线观看| 一区二区三区日韩在线观看| wwwwxxxxx欧美| 欧美日韩三级在线| av欧美精品.com| 国产一区二区不卡在线| 婷婷六月综合网| 亚洲免费资源在线播放| 亚洲精品一区二区三区99| 欧美精选在线播放| 色一区在线观看| 国产成人综合网站| 日韩不卡免费视频| 一区二区三区欧美亚洲| 国产精品久久久久影院老司| 欧美videofree性高清杂交| 欧美视频在线不卡| 99精品国产99久久久久久白柏 | 欧美一区二区二区| 欧美视频一区在线观看| 99久久精品国产一区二区三区| 国模冰冰炮一区二区| 另类小说色综合网站| 亚洲无线码一区二区三区| 亚洲色图制服诱惑 | 日韩精品中文字幕在线不卡尤物| 在线观看欧美黄色| 一本久久精品一区二区| 91网站最新地址| 不卡一区中文字幕|