国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)

2020-01-26 13:50:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了學(xué)生信息管理系統(tǒng)設(shè)計(jì)的具體代碼,供大家參考,具體內(nèi)容如下

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

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

要求:程序運(yùn)行中,先顯示實(shí)現(xiàn)以上功能所構(gòu)成的菜單,然后根據(jù)選項(xiàng)調(diào)用相應(yīng)程序及顯示其對(duì)應(yīng)的結(jié)果,然后再顯示菜單程序,直到按“退出”選項(xiàng),程序執(zhí)行結(jié)束。

完整的代碼如下:

#include "stdio.h" #include "stdlib.h" typedef struct student {  int id; //學(xué)號(hào)  char name[20]; //姓名  char sex; //性別(f或m)  int age; //年齡  int score; //成績(jī)  struct student *next; }student; student *head=NULL; int length; //鏈表的長(zhǎng)度 void create() {  student *p1,*p2;  length=0;  p1=(student *)malloc(sizeof(student));  p1->id=-1;  if(head==NULL)  head=p1;  printf("請(qǐng)輸入學(xué)生的學(xué)號(hào)、姓名、性別、年齡、成績(jī)信息:/n");  while(1) //學(xué)號(hào)為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++; //鏈表的長(zhǎ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é)號(hào)為:");  scanf("%d",&num);   while(p!=NULL)  {   if(p->id==num)  {   printf("學(xué)號(hào)為%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("請(qǐng)輸入你要插入位置: ");  scanf("%d",&num);  if(num>length)  {  printf("找不到要插入的位置/n");  return ;  }  else  {  printf("請(qǐng)輸入你要插入的學(xué)生的學(xué)號(hào)、姓名、性別、年齡、成績(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é)號(hào)已經(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("請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):/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("找不到要?jiǎng)h除的編號(hào)!/n");  return ;  } } void menu() {  printf("________________________________________________________________/n");  printf("|  學(xué)生信息管理系統(tǒng)    |/n");  printf("|  0、 退出系統(tǒng)     |/n");  printf("|  1、 建立鏈表     |/n");  printf("|  2、 顯示鏈表     |/n");  printf("|  3、 查找鏈表中的某個(gè)元素   |/n");  printf("|  4、 刪除鏈表中指定學(xué)號(hào)的結(jié)點(diǎn)   |/n");  printf("|  5、 指定的位置上插入一個(gè)新結(jié)點(diǎn)   |/n");  printf("________________________________________________________________/n");  return ; } int main(void) {  int a;  menu();  while(1)  {  printf("請(qǐng)選擇相應(yīng)的功能:");  scanf("%d",&a);  switch(a)  {  case 0:   return 0;  case 1:   create();   menu();   break;  case 2:   if(head)   {   display();   menu();   }   else   {   printf("鏈表為空,請(qǐng)先建立鏈表!/n");   menu();   }   break;  case 3:   if(head)   {   search();   menu();   }   else   {   printf("鏈表為空,請(qǐng)先建立鏈表!/n");   menu();   }   break;  case 4:   if(head)   {   Delete();   menu();   }   else   {   printf("鏈表為空,請(qǐng)先建立鏈表!/n");   menu();   }   break;  case 5:   if(head)   {   insert();   menu();   }   else   {   printf("鏈表為空,請(qǐng)先建立鏈表!/n");   menu();   }   break;  default:   break;  }  }  system("pause");  return 0; } 

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

更多學(xué)習(xí)資料請(qǐng)關(guān)注專(zhuān)題《管理系統(tǒng)開(kāi)發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 杭锦后旗| 普兰店市| 长海县| 久治县| 南木林县| 武隆县| 望奎县| 冕宁县| 海南省| 甘德县| 丘北县| 永济市| 商河县| 茂名市| 梁山县| 漾濞| 公主岭市| 松阳县| 吴桥县| 湘西| 罗定市| 盱眙县| 绥棱县| 蚌埠市| 九台市| 儋州市| 柞水县| 青龙| 民乐县| 修文县| 肇东市| 岢岚县| 宁明县| 宝清县| 沂水县| 鲜城| 航空| 肥东县| 正蓝旗| 潮安县| 易门县|