国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

C語(yǔ)言實(shí)現的學(xué)生信息管理系統代碼分享

發(fā)布時(shí)間:2021-09-04 11:55 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 開(kāi)發(fā)技術(shù)

這篇文章主要介紹“C語(yǔ)言實(shí)現的學(xué)生信息管理系統代碼分享”,在日常操作中,相信很多人在C語(yǔ)言實(shí)現的學(xué)生信息管理系統代碼分享問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”C語(yǔ)言實(shí)現的學(xué)生信息管理系統代碼分享”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!

建立一個(gè)動(dòng)態(tài)鏈表,鏈表中每一結點(diǎn)包括:學(xué)號、姓名、性別、年齡、成績(jì)。程序能實(shí)現以下功能:

     建立鏈表
     顯示鏈表
     查找鏈表中是否存在某個(gè)元素,并顯示這個(gè)元素的所有信息,若沒(méi)有這個(gè)元素則顯示“無(wú)此記錄!”的信息。
     刪除鏈表中指定學(xué)號的結點(diǎn)。
     在鏈表中指定的位置插入一個(gè)新結點(diǎn)(學(xué)號不能和其他結點(diǎn)重復)。

要求:程序運行中,先顯示實(shí)現以上功能所構成的菜單,然后根據選項調用相應程序及顯示其對應的結果,然后再顯示菜單程序,直到按“退出”選項,程序執行結束。

完整的代碼如下:

#include "stdio.h" 
#include "stdlib.h" 
typedef struct student 
{ 
 int id; //學(xué)號 
 char name[20]; //姓名 
 char sex; //性別(f或m) 
 int age; //年齡 
 int score; //成績(jì) 
 struct student *next; 
}student; 
student *head=NULL; 
int length; //鏈表的長(cháng)度 
void create() 
{ 
 student *p1,*p2; 
 length=0; 
 p1=(student *)malloc(sizeof(student)); 
 p1->id=-1; 
 if(head==NULL) 
 head=p1; 
 printf("請輸入學(xué)生的學(xué)號、姓名、性別、年齡、成績(jì)信息:\n"); 
 while(1) //學(xué)號為0的時(shí)候退出 
 { 
 p2=(student *)malloc(sizeof(student)); 
 scanf("%d %s %c %d %d",&p2->id,p2->name,&p2->sex,&p2->age,&p2->score); //輸入學(xué)生信息 
 if(p2->id==0) 
 { 
  printf("鏈表創(chuàng  )建完成!\n"); 
  break; 
 } 
 length++; //鏈表的長(cháng)度 
 p1->next=p2; 
 p2->next=NULL; 
 p1=p1->next; 
 } 
 return ; 
} 
 
void display() 
{ 
 student *p=head->next; 
 printf("鏈表中所有的學(xué)生信息如下:\n"); 
 while(p!=NULL) 
 { 
 printf("%d %s %c %d %d\n",p->id,p->name,p->sex,p->age,p->score); 
 p=p->next; 
 } 
 return ; 
} 
void search() 
{ 
 int num; 
 student *p=head->next; 
 printf("需要查找的學(xué)生學(xué)號為:"); 
 scanf("%d",&num); 
 
 while(p!=NULL) 
 { 
 
 if(p->id==num) 
 { 
  printf("學(xué)號為%d的學(xué)生的信息如下:\n",num); 
  printf("%d %s %c %d %d\n",p->id,p->name,p->sex,p->age,p->score); 
  return; 
 } 
 p=p->next; 
 } 
 if(p==NULL) 
 printf("無(wú)此記錄!\n"); 
 return ; 
} 
 
void insert() 
{ 
 int num,i; 
 student *p,*q; 
 p=head; 
 
 printf("請輸入你要插入位置: "); 
 scanf("%d",&num); 
 if(num>length) 
 { 
 printf("找不到要插入的位置\n"); 
 return ; 
 } 
 else 
 { 
 printf("請輸入你要插入的學(xué)生的學(xué)號、姓名、性別、年齡、成績(jì)信息:\n"); 
 q=(student *)malloc(sizeof(student)); 
 scanf("%d %s %c %d %d",&q->id,q->name,&q->sex,&q->age,&q->score); 
 
 while(p!=NULL) 
 { 
  if(p->id==q->id) 
  { 
  printf("該學(xué)號已經(jīng)存在,無(wú)法插入!\n"); 
  return ; 
  } 
  p=p->next; 
 } 
 p=head; 
 for(i=0;i<num;i++) 
  p=p->next; 
 q->next=p->next; 
 p->next=q; 
 length++; 
 printf("插入成功!\n"); 
 return ; 
 } 
} 
 
void Delete() 
{ 
 int num; 
 student *p,*q; 
 q=head,p=head->next; 
 printf("請輸入要刪除的學(xué)生的學(xué)號:\n"); 
 scanf("%d",&num); 
 
 while(p!=NULL) 
 { 
 if(p->id==num) 
 { 
  q->next=p->next; 
  free(p); 
  length--; 
  printf("刪除成功!\n"); 
  return ; 
 } 
 p=p->next; 
 q=q->next; 
 } 
 if(p==NULL) 
 { 
 printf("找不到要刪除的編號!\n"); 
 return ; 
 } 
} 
void menu() 
{ 
 printf("________________________________________________________________\n"); 
 printf("|  學(xué)生信息管理系統    |\n"); 
 printf("|  0、 退出系統     |\n"); 
 printf("|  1、 建立鏈表     |\n"); 
 printf("|  2、 顯示鏈表     |\n"); 
 printf("|  3、 查找鏈表中的某個(gè)元素   |\n"); 
 printf("|  4、 刪除鏈表中指定學(xué)號的結點(diǎn)   |\n"); 
 printf("|  5、 指定的位置上插入一個(gè)新結點(diǎn)   |\n"); 
 printf("________________________________________________________________\n"); 
 return ; 
} 
int main(void) 
{ 
 int a; 
 menu(); 
 while(1) 
 { 
 printf("請選擇相應的功能:"); 
 scanf("%d",&a); 
 switch(a) 
 { 
 case 0: 
  return 0; 
 case 1: 
  create(); 
  menu(); 
  break; 
 case 2: 
  if(head) 
  { 
  display(); 
  menu(); 
  } 
  else 
  { 
  printf("鏈表為空,請先建立鏈表!\n"); 
  menu(); 
  } 
  break; 
 case 3: 
  if(head) 
  { 
  search(); 
  menu(); 
  } 
  else 
  { 
  printf("鏈表為空,請先建立鏈表!\n"); 
  menu(); 
  } 
  break; 
 case 4: 
  if(head) 
  { 
  Delete(); 
  menu(); 
  } 
  else 
  { 
  printf("鏈表為空,請先建立鏈表!\n"); 
  menu(); 
  } 
  break; 
 case 5: 
  if(head) 
  { 
  insert(); 
  menu(); 
  } 
  else 
  { 
  printf("鏈表為空,請先建立鏈表!\n"); 
  menu(); 
  } 
  break; 
 default: 
  break; 
 } 
 } 
 system("pause"); 
 return 0; 
}

程序說(shuō)明:加入已經(jīng)加入了4個(gè)學(xué)生信息head->liuwei->zhanghua->lina->liuxiang,鏈表的長(cháng)度為4,插入的時(shí)候,輸入4,將會(huì )在liuxiang的后面插入一個(gè)學(xué)生信息;輸入1,將會(huì )在liuwei的后面插入一個(gè)學(xué)生信息;

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

亚洲日韩乱码中文无码蜜桃| 熟妇人妻无码中文字幕| 欧美成人高清在线播放| 熟女乱中文字幕熟女熟妇| 无码色AV一二区在线播放| 欧美熟妇另类久久久久久多毛|