亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現學生選課系統完整版

2020-01-26 13:31:56
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言實現學生選課系統的具體代碼,供大家參考,具體內容如下

#include<stdio.h> #include<stdlib.h>int N1,N2,kk1,kk2,kk3;struct couse * head1;struct student * head2;struct couse//課程信息結構體{  int num1;  char name1[20];  int score;  int nelepeo;//課程已選人數  int Melepeo;//課程人數上限  struct couse * next;};struct student//學生信息結構體{  int num2;  char name2[20];  int nelenum[50];//已選課程編號  int nelen;//已選課程數量  struct student * next;};void Ms(){  for(kk1=0;kk1<1100;kk1++)        for(kk2=0;kk2<1200;kk2++)          for(kk3=0;kk3<1200;kk3++);}void keyboardc()//錄入課程子函數(從鍵盤錄入){struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf("課程編號/t課程名稱/t學分/t課程人數上限/n");scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){  N1=N1+1;  if(N1==1)head1=p1;  else p2->next=p1;  p2=p1;  p1=(struct couse * )malloc(sizeof(struct couse));  scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);  p1->nelepeo=0;}p2->next=NULL;}void filec()//錄入鍵盤子函數(從文件錄入){  FILE * fp;  char filepath[20];   struct couse *p1,*p2;  N1=0;  printf("輸入要讀入的文件路徑:");  getchar();  gets(filepath);   if((fp=fopen(filepath,"r"))==NULL)   {     printf("找不到%s文件!/n",filepath);     exit(0);   }   p1=p2=(struct couse*)malloc(sizeof(struct couse));  fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);  head1=NULL;  while(!feof(fp))  {    N1=N1+1;    if(N1==1)head1=p1;    else p2->next=p1;    p2=p1;    p1=(struct couse * )malloc(sizeof(struct couse));    fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);  }   p2->next=NULL;}void inputc()//錄入課程主函數{  int i;  printf("/t/t/t錄入課程信息/n");  printf("/n1.從鍵盤錄入/n");  printf("2.從文件錄入/n");  printf("3.返回主菜單/n");  printf("請選擇(1~3):/n");  scanf("%d",&i);  switch(i)  {  case(1):keyboardc();break;  case(2):filec();break;  case(3):break;  }}void insertc(struct couse *incouse)//課程管理子函數(增加課程){  struct couse *p0,*p1,*p2;  p1=head1;  p0=incouse;  if(head1==NULL)  {    head1=p0;    p0->next=NULL;  }  else  {    while((p0->num1 > p1->num1) && (p1->next!=NULL))    {      p2=p1;      p1=p1->next;    }    if(p0->num1 <= p1->num1)    {      if(head1==p1) head1=p0;      else p2->next=p0;      p0->next=p1;    }    else    {      p1->next=p0;      p0->next=NULL;    }  }  N1=N1+1;}void delc(int num1)//課程管理子函數(刪除課程){  struct couse *p1,*p2;  if(head1==NULL)  {    printf("/n沒有課程,無法刪除!/n");    goto end;  }  p1=head1;  while(num1!=p1->num1 && p1->next!=NULL)  {    p2=p1;    p1=p1->next;  }  if(num1==p1->num1)  {    if(p1==head1) head1=p1->next;    else p2->next=p1->next;    printf("已刪除該編號課程!/n");    N1=N1-1;  }  else printf("無該編號的課程!/n");  end:;}void managementc()//課程管理主函數{  struct couse * incouse;  int i,num1;  printf("/t/t/t課程管理/n");  printf("1.新增課程/n");  printf("2.刪除課程/n");  printf("3.返回主菜單/n");  printf("請選擇(1~3):/n");  scanf("%d",&i);  switch(i)  {  case(1):    {      incouse=(struct couse *)malloc(sizeof(struct couse));      printf("課程編號/t課程名稱/t學分/t課程人數上限/n");      scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incouse->score,&incouse->Melepeo);      incouse->nelepeo=0;      insertc(incouse);      break;    }  case(2):    {      printf("請輸入要刪除課程的編號:/n");      scanf("%d",&num1);      delc(num1);      break;    }  case(3):break;  }}void keyboards()//錄入學生信息子函數(從鍵盤錄入){  int i;  struct student *p1,*p2;  N2=0;  p1=p2=(struct student *)malloc(sizeof(struct student));  printf("學生學號/t學生姓名/n");  scanf("%d%s",&p1->num2,p1->name2);  p1->nelen=0;  for(i=0;i<20;i++) p1->nelenum[i]=0;  head2=NULL;  while(p1->num2!=0)  {    N2=N2+1;    if(N2==1)head2=p1;    else p2->next=p1;    p2=p1;    p1=(struct student * )malloc(sizeof(struct student));    scanf("%d%s",&p1->num2,p1->name2);    p1->nelen=0;    for(i=0;i<20;i++) p1->nelenum[i]=0;  }  p2->next=NULL;}void files()//錄入學生信息子函數(從文件錄入){  int i=0;  FILE * fp;  char filepath[20];   struct student *p1,*p2;  N2=0;  printf("輸入要讀入的文件路徑:");  getchar();  gets(filepath);   if((fp=fopen(filepath,"r"))==NULL)   {     printf("找不到%s文件!/n",filepath);     exit(0);   }   p1=p2=(struct student*)malloc(sizeof(struct student));  fread(p1,sizeof(struct student),1,fp);  head2=NULL;  while(!feof(fp))  {    i=0;    N2=N2+1;    if(N2==1)head2=p1;    else p2->next=p1;    p2=p1;    p1=(struct student * )malloc(sizeof(struct student));    fread(p1,sizeof(struct student),1,fp);  }   p2->next=NULL;}void inputs()//錄入學生信息主函數{  int i;  printf("/t/t/t錄入學生信息/n");  printf("/n1.從鍵盤錄入/n");  printf("2.從文件錄入/n");  printf("3.返回主菜單/n");  printf("請選擇(1~3):/n");  scanf("%d",&i);  switch(i)  {  case(1):keyboards();break;  case(2):files();break;  case(3):break;  }}void inserts(struct student * incouse)//學生信息管理子函數(填加學生信息){  struct student *p0,*p1,*p2;  p1=head2;  p0=incouse;  if(head2==NULL)  {    head2=p0;    p0->next=NULL;  }  else  {    while((p0->num2 > p1->num2) && (p1->next!=NULL))    {      p2=p1;      p1=p1->next;    }    if(p0->num2 <= p1->num2)    {      if(head2==p1) head2=p0;      else p2->next=p0;      p0->next=p1;    }    else    {      p1->next=p0;      p0->next=NULL;    }  }  N2=N2+1;}void dels(int num2)//學生信息管理子函數(刪除學生信息){  struct student *p1,*p2;  if(head2==NULL)  {    printf("/n沒有該學生信息,無法刪除!/n");    goto end;  }  p1=head2;  while(num2!=p1->num2 && p1->next!=NULL)  {    p2=p1;    p1=p1->next;  }  if(num2==p1->num2)  {    if(p1==head2) head2=p1->next;    else p2->next=p1->next;    printf("已刪除該學生信息!/n");    N2=N2-1;  }  else printf("無該學號的學生!/n");  end:;}void managements()//學生信息管理主函數{  struct student * incouse;  int i,num2;  printf("/t/t/t學生信息管理/n");  printf("1.新增學生信息/n");  printf("2.刪除學生信息/n");  printf("3.返回主菜單/n");  printf("請選擇(1~3):/n");  scanf("%d",&i);  switch(i)  {  case(1):    {      incouse=(struct student *)malloc(sizeof(struct student));      incouse->nelen=0;      incouse->nelenum[0]=0;      printf("學生學號/t學生姓名/n");      scanf("%d%s",&incouse->num2,incouse->name2);      inserts(incouse);      break;    }  case(2):    {      printf("請輸入要刪除學生的學號:/n");      scanf("%d",&num2);      dels(num2);      break;    }  case(3):break;  }}void elect(struct student * s)//選課{  struct couse * p;  int num1,i;  printf("請輸入要選課的編號:/n");  scanf("%d",&num1);  for(i=0;s->nelenum[i]!=0;i++);  s->nelenum[i]=num1;  (s->nelen)++;  p=head1;  while(p->num1!=num1) p=p->next;  (p->nelepeo)++;}void cheak()//學生選課子函數(查詢可選課程){  char e;  struct couse * c;  struct student * s;  int num2,i,j=0,t=0;  printf("請輸入你的學號:");  scanf("%d",&num2);  s=head2;  while(s->num2!=num2 && s->next!=NULL) s=s->next;  if(s->num2!=num2)  {    printf("不存在你的信息,請進入主菜單錄入你的信息!/n");    goto end;  }  c=head1;  printf("你的可選課程編號:/n");  while(c!=NULL)  {    for(t=0,i=0;s->nelenum[i]!=0;i++)    {      if(c->num1==s->nelenum[i]) t=1;    }    if(t==0 && (c->nelepeo!=c->Melepeo))    {      printf("%d/n",c->num1);      j++;    }    c=c->next;  }  if(j==0)   {    printf("你已選完所有課程,無法再多選!/n");    goto end;  }  printf("選課(y/n)?:/n");  getchar();  e=getchar();  i=0;  while(e=='y')  {    elect(s);    printf("繼續選課(y/n)?:/n");    getchar();    e=getchar();  }  end:;}void back(struct student * p)//退課{  struct couse * p1;  int num1,i,j;  printf("請輸入你要退掉的課程編號:/n");  scanf("%d",&num1);  p1=head1;  while(p1->num1!=num1) p1=p1->next;  for(i=0;p->nelenum[i]!=num1;i++);  for(j=i;p->nelenum[j]!=0;j++) p->nelenum[j]=p->nelenum[j+1];  p->nelenum[--j]=0;  (p1->nelepeo)--;  printf("退課成功!/n");}void hcheak()//學生選課子函數(查詢已選課程){  char c;  struct couse * p0;  struct student * p;  int num2,i,f=0;  printf("請輸入學號:/n");  scanf("%d",&num2);  p=head2;  while(p->num2!=num2 && p!=NULL) p=p->next;  if(p==NULL)  {    printf("不存在你的信息,請回主菜單錄入信息:/n");    goto end;  }  printf("已選課程編號:/n");  if(p->nelenum[0]==0)  {    printf("你還沒選課!/n");    goto end;  }  for(i=0;p->nelenum[i]!=0;i++)   {    printf("%d/n",p->nelenum[i]);    p0=head1;    while(p0->num1!=p->nelenum[i]) p0=p0->next;    f=f+p0->score;  }  printf("總學分:%d/n",f);  printf("是否進行退課(y/n)?");  getchar();  c=getchar();  while(c=='y')  {    back(p);    printf("繼續退課(y/n)?");    getchar();    c=getchar();    (p->nelen)--;  }  end:;}void elective()//學生選課主函數{  int i;  printf("/t/t/t學生選課/n");  printf("1.查詢可選課程/n");  printf("2.查詢已選課程/n");  printf("3.返回主菜單/n");  printf("請輸入(1~3):/n");  scanf("%d",&i);  switch(i)  {  case(1):cheak();break;  case(2):hcheak();break;  case(3):break;  }}void listc()//輸出課程信息{  struct couse * p;  p=head1;  printf("課程編號 課程名稱 學分 課程已選人數 課程人數上限/n");  while(p!=NULL)  {    printf("%-8d%10s%6d%8d%12d/n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);    p=p->next;  }}void lists()//輸出學生信息{  struct student * p;  p=head2;  printf("學生學號 學生姓名 已選課程數量/n");  while(p!=NULL)  {    printf("%-4d %10s %6d/n",p->num2,p->name2,p->nelen);    p=p->next;  }}void intoc()//存儲課程信息{  FILE * fp;  struct couse * p;  char filepath[30];   printf("輸入課程信息要保存的文件路徑:");  getchar();    gets(filepath);   if((fp=fopen(filepath,"w"))==NULL)   {     printf("/n保存失敗!");     exit(0);   }  p=head1;  while(p!=NULL)  {    fprintf(fp,"%d %s %d %d %d/n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);    p=p->next;  }  fclose(fp);   printf("課程信息已保存在%s中!/n",filepath); }void intos()//存儲學生信息{  FILE * fp;  struct student * p;  char filepath[30];   printf("輸入學生信息要保存的文件路徑:");  getchar();    gets(filepath);   if((fp=fopen(filepath,"w"))==NULL)   {     printf("/n保存失敗!");     exit(0);   }  p=head2;  while(p!=NULL)  {    fwrite(p,sizeof(struct student),1,fp);    p=p->next;  }  fclose(fp);   printf("學生信息已保存在%s中!/n",filepath); }void into()//存儲信息{  int i;  printf("1.存儲課程信息/n");  printf("2.存儲學生信息/n");  printf("3.返回主菜單/n");  printf("請輸入(1~3)/n");  scanf("%d",&i);  switch(i)  {  case(1):intoc();break;  case(2):intos();break;  case(3):break;  }  }void store()//信息主函數{  int i;  printf("/t/t系統信息查看及存儲/n");  printf("1.查看課程信息/n");  printf("2.查看學生信息/n");  printf("3.存儲信息/n");  printf("4.返回主菜單/n");  printf("請輸入(1~4):/n");  scanf("%d",&i);  switch(i)  {  case(1):listc();break;  case(2):lists();break;  case(3):into();break;  case(4):break;  }}int main()//主函數{  int i;  start:  printf("/n/t/t/t歡迎使用學生選課系統!/n");  printf("菜單:/n");  printf("1.錄入課程信息/n");  printf("2.課程管理/n");  printf("3.錄入學生信息/n");  printf("4.學生信息管理/n");  printf("5.學生選課/n");  printf("6.系統信息查看及存儲/n");  printf("7.退出系統/n");  printf("/n請輸入菜單選項(1~7):/n");  scanf("%d",&i);  if(i<1 || i>7)  {    printf("輸入錯誤,請重輸:/n");    goto start;  }  switch(i)  {  case(1):    {      system("cls");      inputc();      goto start;      break;    }  case(2):    {      system("cls");      managementc();      goto start;      break;    }  case(3):    {      system("cls");      inputs();      goto start;      break;    }  case(4):    {      system("cls");      managements();      goto start;      break;    }  case(5):    {      system("cls");      elective();      goto start;      break;    }  case(6):    {      system("cls");      store();      goto start;      break;    }  case(7):    {      system("cls");      printf("感謝使用本系統!/n/n再見!/n");    }  }  return(0);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
正在播放国产一区| 亚洲天堂av在线播放| 日韩av在线看| 国产日韩在线亚洲字幕中文| 一本色道久久88精品综合| 久久天天躁狠狠躁夜夜爽蜜月| 日韩最新av在线| 久久亚洲成人精品| 国产一区二区三区在线播放免费观看| 日韩黄色在线免费观看| 欧美日韩国产中文字幕| www日韩欧美| 精品亚洲一区二区三区在线观看| 中文字幕亚洲自拍| 北条麻妃一区二区在线观看| 亚洲免费电影在线观看| 国产成人精品在线视频| 亚洲精品理论电影| 欧美激情精品久久久久久大尺度| 国产精品欧美日韩| 亚洲美女中文字幕| 亚洲国产精品999| 欧美xxxx14xxxxx性爽| 久久精品久久久久久国产 免费| 亚洲国产成人久久综合一区| 992tv在线成人免费观看| 日本电影亚洲天堂| 97国产在线视频| 成人xxxxx| 色偷偷偷综合中文字幕;dd| 精品久久久中文| 亚洲色图国产精品| 国产精品免费看久久久香蕉| 日韩在线免费高清视频| 精品久久久一区二区| 日韩av在线网页| 国产欧美欧洲在线观看| 欧美另类老女人| 26uuu亚洲伊人春色| 欧美伊久线香蕉线新在线| 日韩精品福利网站| 国产日产欧美a一级在线| 在线国产精品播放| 日韩欧美精品在线观看| 久久99久久久久久久噜噜| 日韩久久精品成人| 成人黄色中文字幕| 国产精品∨欧美精品v日韩精品| 韩国精品久久久999| 亚洲精品一区在线观看香蕉| 欧日韩不卡在线视频| 不卡av电影在线观看| 亚洲欧美在线看| 永久免费看mv网站入口亚洲| 国产精品色视频| 国色天香2019中文字幕在线观看| 欧美高清自拍一区| 久久亚洲精品小早川怜子66| 国产精品狼人色视频一区| 色婷婷综合成人| 日韩欧美一区视频| 亚洲国产成人精品久久| 亚洲成人在线网| 日韩在线欧美在线| 日韩精品一区二区视频| 91精品视频免费看| 国产精品免费看久久久香蕉| 精品国产乱码久久久久久虫虫漫画| 亚洲欧美激情四射在线日| www.欧美视频| 狠狠色香婷婷久久亚洲精品| 色噜噜亚洲精品中文字幕| 国产va免费精品高清在线| 国产ts人妖一区二区三区| 91美女片黄在线观看游戏| 久久九九精品99国产精品| 欧美影院久久久| 欧美色videos| 欧美激情小视频| 欧美日韩亚洲激情| 欧美激情视频给我| 欧美日韩爱爱视频| 精品少妇v888av| 欧美夫妻性生活视频| 九九热精品视频在线播放| 欧美亚洲国产另类| 91精品国产91久久久| 亚洲在线www| 欧美成人在线免费| 欧美一二三视频| 亚洲精品国产免费| 亚洲成人国产精品| 日韩精品极品在线观看播放免费视频| 久久久人成影片一区二区三区观看| 精品国产91久久久| 中文字幕亚洲欧美| 欧美专区在线播放| www.久久草.com| 国产欧美日韩专区发布| 精品欧美国产一区二区三区| 国产成+人+综合+亚洲欧美丁香花| 亚洲国产私拍精品国模在线观看| 国产mv免费观看入口亚洲| 国产精品丝袜久久久久久高清| 日韩经典一区二区三区| 国产精品高清免费在线观看| 欧美国产精品va在线观看| 国产精品自产拍在线观看| 久久男人资源视频| 国产精品第一页在线| 在线观看免费高清视频97| 少妇高潮久久77777| 97精品欧美一区二区三区| 欧美另类69精品久久久久9999| 国产精品稀缺呦系列在线| 色999日韩欧美国产| 一本色道久久88精品综合| 一本色道久久88综合日韩精品| 国产精品电影网| 国产精品最新在线观看| 欧美国产日韩精品| 日韩av中文字幕在线免费观看| 国产一区二区三区视频在线观看| 久久免费少妇高潮久久精品99| 亚洲热线99精品视频| 欧美成人在线免费| 色综合久久久久久中文网| 国产成人高清激情视频在线观看| 午夜免费日韩视频| 欧美亚洲国产日本| 日本在线精品视频| 日韩午夜在线视频| 97在线视频观看| 午夜精品久久久久久久男人的天堂| 2018日韩中文字幕| 中文字幕精品www乱入免费视频| 国产一区二区三区在线免费观看| 国产一区二区欧美日韩| 国产精品日韩在线观看| 国产日韩精品综合网站| 中文字幕九色91在线| 中文字幕久精品免费视频| 国产女人18毛片水18精品| 中文字幕亚洲欧美| 久久激情视频免费观看| 久久精品国产69国产精品亚洲| 国产美女被下药99| 精品久久久在线观看| 日韩福利伦理影院免费| 欧美专区国产专区| 亚洲国产高清自拍| 欧美日韩中国免费专区在线看| 欧美中文字幕精品| 国产成人精品优优av| 国产亚洲成av人片在线观看桃| 亚洲欧美日韩国产中文| 欧美成人免费观看| 国产精品最新在线观看| 国产精品视频999| 中文字幕日韩av综合精品| 亚洲天堂av在线免费观看| 国产精品十八以下禁看| 精品久久久久久亚洲国产300| 成人性生交大片免费观看嘿嘿视频|