亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成a人亚洲| 精品国产乱码久久久久久影片| 在线观看日韩av先锋影音电影院| 91香蕉视频黄| 日本韩国欧美在线| 欧美日韩国产天堂| 欧美一级一级性生活免费录像| 26uuu国产电影一区二区| 国产视频视频一区| 亚洲欧美日韩人成在线播放| 亚洲一级不卡视频| 亚洲精品成人精品456| 美女脱光内衣内裤视频久久影院| 五月天一区二区三区| 偷拍与自拍一区| 美国毛片一区二区| 丰满少妇在线播放bd日韩电影| 欧美三级韩国三级日本三斤| 日韩一区二区三区在线| 国产日韩欧美精品综合| 亚洲欧美日韩国产中文在线| 一区二区欧美在线观看| 狠狠色丁香久久婷婷综合_中| 成人国产精品免费观看动漫| 在线免费观看一区| 日韩欧美在线123| 国产精品国产三级国产aⅴ入口| 午夜国产精品一区| 丁香天五香天堂综合| 欧美性感一区二区三区| 精品国产免费久久| 亚洲视频中文字幕| 欧美bbbbb| 91在线观看视频| 欧美一级片在线看| **欧美大码日韩| 亚洲天堂2016| 国产大陆精品国产| 欧美无砖专区一中文字| 国产午夜精品美女毛片视频| 亚洲二区在线观看| 成人午夜在线视频| 中文字幕一区二区视频| 美女视频一区二区| 亚洲免费在线视频一区 二区| 国产a精品视频| 亚洲一区二区三区激情| 亚洲自拍欧美精品| 黄色成人免费在线| 91在线视频播放地址| 日韩手机在线导航| 亚洲免费色视频| 国产在线一区二区| 欧美精品久久天天躁| 国产亚洲一本大道中文在线| 亚洲高清视频在线| 成人午夜免费电影| 日韩一区二区三区电影| 自拍偷在线精品自拍偷无码专区| 国产成人精品三级| 欧美一区二区三区系列电影| 亚洲色图欧洲色图| 国产一区二区影院| 欧美日韩精品一区二区三区四区| 亚洲另类色综合网站| 成人午夜伦理影院| 久久人人超碰精品| 久久精品理论片| 欧美日韩国产综合视频在线观看 | 欧美日本国产视频| 综合色中文字幕| 丁香婷婷深情五月亚洲| 精品国产电影一区二区| 日韩成人av影视| 3d动漫精品啪啪一区二区竹菊 | 日本欧美一区二区在线观看| 色天天综合久久久久综合片| 国产精品久久久久影院色老大| 国产成人免费视频网站| 久久新电视剧免费观看| 青椒成人免费视频| 欧美色倩网站大全免费| 亚洲h在线观看| 欧美午夜电影网| 亚洲一二三专区| 色播五月激情综合网| 1000精品久久久久久久久| 成人高清av在线| 五月婷婷激情综合| 国产精品123| 亚洲欧洲在线观看av| 91浏览器入口在线观看| 夜色激情一区二区| 91精品黄色片免费大全| 国模套图日韩精品一区二区| 国产精品色噜噜| 91国偷自产一区二区三区成为亚洲经典 | 国产精品久久一卡二卡| 一本到高清视频免费精品| 一卡二卡欧美日韩| 日韩三级视频在线看| 成人在线综合网| 亚洲图片欧美综合| 欧美精品一区二区在线观看| 成av人片一区二区| 亚洲地区一二三色| 精品日本一线二线三线不卡 | 一区视频在线播放| 欧美四级电影在线观看| 九九精品视频在线看| 亚洲欧洲成人精品av97| 欧美丰满嫩嫩电影| 狠狠色2019综合网| 亚洲美女视频在线观看| 日韩三级视频中文字幕| 9人人澡人人爽人人精品| 亚洲成人免费视频| 久久精品男人天堂av| 欧洲一区二区三区在线| 另类综合日韩欧美亚洲| 亚洲欧洲成人精品av97| 欧美一级国产精品| 99免费精品在线| 久久超碰97人人做人人爱| 亚洲天堂2014| 久久亚洲精精品中文字幕早川悠里 | 精品久久久久久无| 色综合久久天天| 韩国中文字幕2020精品| 亚洲一区二区视频在线观看| 国产三级精品视频| 欧美日韩国产a| 91在线码无精品| 久草精品在线观看| 亚洲线精品一区二区三区八戒| 国产日产欧美一区| 91精品国产免费| 91亚洲精品久久久蜜桃| 国产一区二区三区视频在线播放| 夜夜嗨av一区二区三区中文字幕| 国产亚洲综合色| 91精品国产91久久久久久最新毛片| 不卡一区中文字幕| 精品亚洲国产成人av制服丝袜| 一区二区三区四区中文字幕| 久久久久久一二三区| 欧美美女黄视频| 一本大道综合伊人精品热热| 国产精品888| 免费不卡在线观看| 亚洲午夜一二三区视频| 国产精品视频一二三| 久久色中文字幕| 欧美一区二区三区四区在线观看 | 天天操天天干天天综合网| 亚洲视频免费在线| 国产精品素人视频| 精品乱码亚洲一区二区不卡| 欧美日韩精品欧美日韩精品一 | heyzo一本久久综合| 亚洲三级久久久| 国产拍揄自揄精品视频麻豆| 911国产精品| 欧美午夜精品电影| 色噜噜狠狠色综合中国| 99精品国产视频| 成人午夜视频免费看| 国产乱人伦精品一区二区在线观看| 免费在线一区观看| 日韩一区精品视频| 丝袜亚洲另类欧美| 亚洲成人免费av| 亚洲国产日韩综合久久精品| 一区二区成人在线视频| 亚洲精品国产高清久久伦理二区 | 色屁屁一区二区| 色综合天天综合网天天狠天天 | 亚洲综合在线免费观看| 成人欧美一区二区三区黑人麻豆| 国产人成亚洲第一网站在线播放 | 91麻豆精品一区二区三区| 欧美日韩在线直播| 91福利视频久久久久| 日本高清免费不卡视频| 欧美性猛片aaaaaaa做受| 欧美日韩在线播放| 欧美日韩免费在线视频| 51午夜精品国产| 欧美一区二区日韩一区二区| 欧美一区二区三区免费观看视频| 欧美一二三在线| 精品国产露脸精彩对白| 久久久久九九视频| 国产精品天干天干在线综合| 日韩毛片一二三区| 一区二区高清在线| 日韩高清在线一区| 国产真实乱子伦精品视频| 国产成人在线电影| www.色综合.com|