學(xué)生選課管理系統(tǒng)c語言程序_第1頁
學(xué)生選課管理系統(tǒng)c語言程序_第2頁
學(xué)生選課管理系統(tǒng)c語言程序_第3頁
學(xué)生選課管理系統(tǒng)c語言程序_第4頁
學(xué)生選課管理系統(tǒng)c語言程序_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、#include<stdio.h> #include<stdlib.h>#include<string.h>int N1,N2;struct couse * head1;struct student * head2;struct couse/課程信息結(jié)構(gòu)體 int num1;/課程編號char name120;/課程名稱char type20;/課程性質(zhì)int hour;/總學(xué)時(shí)int teach;/上課學(xué)時(shí)int exp;/實(shí)驗(yàn)上機(jī)學(xué)時(shí)int credit;/學(xué)分int semester;/開課學(xué)期 int nelepeo;/課程已選人數(shù)int Melep

2、eo; /課程上限 struct couse * next;struct student/學(xué)生信息結(jié)構(gòu)體 int num2;/學(xué)號 char name220;/姓名int nelenum50;/已選課程編號char nelename1020;/已選名稱 int nelen; /已選課程數(shù)量int score; /總學(xué)分int gainscore; /已獲得的學(xué)分 struct student * next;void manger();void student();void managementc();void managements();void manage();void main();vo

3、id intoc() /存儲課程信息FILE * fp;struct couse * p;char filepath30;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n");printf("輸入路徑:");getchar();gets(filepath);if(fp=fopen(filepath,"w")=NULL)printf("無法儲存!");exit(0);p=head1;while(p!=NULL)fp

4、rintf(fp,"%d%s%s%d%d%d%d%d%d%dn",p->num1,p->name1,p->type,p->hour,p->teach,p->exp,p->credit,p->semester,p->nelepeo,p->Melepeo);p=p->next;fclose(fp);printf("已儲存入%s文件!n",filepath);void keyboardc()/錄入課程子函數(shù)(從鍵盤錄入)struct couse *p1,*p2;N1=0;p1=p2=(struc

5、t couse*) malloc(sizeof(struct couse);printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n"); printf("編號名稱性質(zhì)總學(xué)時(shí)上課學(xué)時(shí)實(shí)驗(yàn)上機(jī)學(xué)時(shí)學(xué)分開課學(xué)期已選人數(shù)課程上限n");scanf("%d %s %s %d %d %d %d %d %d %d",&p1->num1,p1->name1,&p1->type,&p1->hour,&p1

6、->teach,&p1->exp,&p1->credit,&p1->semester,&p1->nelepeo,&p1->Melepeo); 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 %s %d %d %d %d %d %d %d&quo

7、t;,&p1->num1,p1->name1,p1->type,&p1->hour,&p1->teach,&p1->exp,&p1->credit,&p1->semester,&p1->nelepeo,&p1->Melepeo); p2->next=NULL;void filec()/錄入鍵盤子函數(shù)(從文件錄入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0;printf("ttt*n&quo

8、t;); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("輸入要讀入的文件路徑:"); getchar(); gets(filepath); if(fp=fopen(filepath,"rb")=NULL) printf("找不到%s文件!n",filepath); exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,"%d%s%s%d%d%d%d

9、%d%d%d",&p1->num1,p1->name1,p1->type,&p1->hour,&p1->teach,&p1->exp,&p1->credit,&p1->semester,&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(si

10、zeof(struct couse); fscanf(fp,"%d%s%s%d%d%d%d%d%d%d",&p1->num1,p1->name1,p1->type,&p1->hour,&p1->teach,&p1->exp,&p1->credit,&p1->semester,&p1->nelepeo,&p1->Melepeo); p2->next=NULL;void inputc()/錄入課程主函數(shù) int i;printf("ttt*

11、n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("ttt錄入課程信息n"); printf("nttt1.從鍵盤錄入n"); printf("ttt2.從文件錄入n"); printf("ttt3.返回上一菜單n"); printf("請選擇(13):"); scanf("%d",&i); switch(i) case(1):system("cls

12、");keyboardc();system("cls");inputc();break; case(2):system("cls");filec();system("cls");inputc();break; case(3):system("cls");managementc();break; void insertc(int num2)/課程管理子函數(shù)(修改課程)struct couse *p1,*p2; if(head1=NULL) printf("nttt沒有課程,無法修改!n"

13、); goto end; p1=head1; while(num2!=p1->num1 && p1->next!=NULL) p2=p1; p1=p1->next; if(num2=p1->num1) printf("ttt請重新輸入數(shù)據(jù)進(jìn)行修改n");printf("課程編號課程名稱課程性質(zhì)總學(xué)時(shí)上課學(xué)時(shí)實(shí)驗(yàn)上機(jī)學(xué)時(shí)學(xué)分開課學(xué)期課程已選人數(shù)課程上限n");scanf("%d %s %s %d %d %d %d %d %d %d %d",&p1->num1,p1->name1

14、,p1->type,&p1->hour,&p1->teach,&p1->exp,&p1->credit,&p1->semester,&p1->nelepeo,&p1->Melepeo);printf("ttt已修改該課程n"); else printf("ttt無該編號的課程!n"); end:;void delc(int num1)/課程管理子函數(shù)(刪除課程) struct couse *p1,*p2; if(head1=NULL) printf(&

15、quot;nttt沒有課程,無法刪除!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 mana

16、gementc()/課程管理主函數(shù) int i,num1,num2=1;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("ttt課程管理n");printf("ttt1.添加課程n"); printf("ttt2.修改課程n"); printf("ttt3.刪除課程n");printf("ttt4.存儲課程信息n"); printf("ttt

17、5.返回上一菜單n"); printf("請選擇(15):"); scanf("%d",&i); switch(i) case(1):system("cls");inputc();system("cls");break; case(2): system("cls");printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n");printf("請輸入要修

18、改的課程編號:n");scanf("%d,&num2");insertc(num2);managementc();system("cls"); break; case(3): system("cls");printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("請輸入要刪除課程的編號:n"); scanf("%d",&num1); d

19、elc(num1);managementc();system("cls"); break; case(4):system("cls");intoc();managementc();break; case(5):system("cls");manage();break; void intos() /存儲學(xué)生信息FILE * fp;struct student * p;char filepath30;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf(

20、"ttt*n");printf("請輸入路徑:");getchar();gets(filepath);if(fp=fopen(filepath,"wb")=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 keyboards()/錄入學(xué)生信息子函

21、數(shù)(從鍵盤錄入) int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student);printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("學(xué)生學(xué)號t學(xué)生姓名t總學(xué)分n"); scanf("%d %s %d",&p1->num2,p1->name2,&p1->score

22、);p1->nelen=0;p1->gainscore=0; for(i=0;i<20;i+) p1->nelenumi=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 %d",&p1->num2,p1->name2,&p1->score);p1->

23、;nelen=0;p1->gainscore=0; for(i=0;i<20;i+) p1->nelenumi=0; p2->next=NULL;void files()/錄入學(xué)生信息子函數(shù)(從文件錄入) int i=0; FILE * fp; char filepath20; struct student *p1,*p2; N2=0;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("輸入要讀入的文件路徑:"

24、;); getchar(); gets(filepath); if(fp=fopen(filepath,"rb")=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=

25、p1; p1=(struct student * )malloc(sizeof(struct student); fread(p1,sizeof(struct student),1,fp); p2->next=NULL;void inputs()/錄入學(xué)生信息主函數(shù) int i;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("ttt錄入學(xué)生信息n"); printf("nttt1.從鍵盤錄入n"); p

26、rintf("ttt2.從文件錄入n"); printf("ttt3.返回上一菜單n"); printf("請選擇(13):n"); scanf("%d",&i); switch(i) case(1):system("cls");keyboards();system("cls");inputs();break; case(2):system("cls");files();inputs();break; case(3):system("cl

27、s");managements();break; void inserts(int num3)/學(xué)生信息管理子函數(shù)(修改學(xué)生信息)int i;struct student *p1,*p2; if(head2=NULL) printf("nttt沒有該學(xué)生信息,無法修改!n"); goto end; p1=head2; while(num3!=p1->num2 && p1->next!=NULL) p2=p1; p1=p1->next; if(num3=p1->num2) printf("ttt重新修改數(shù)據(jù)"

28、;); printf("ttt學(xué)生學(xué)號t學(xué)生姓名"); scanf("%d %s %d",&p1->num2,p1->name2,&p1->score); p1->nelen=0;p1->gainscore=0; for(i=0;i<20;i+) p1->nelenumi=0; printf("ttt修改完畢"); else printf("ttt無該學(xué)號的學(xué)生!n"); end:;void dels(int num2)/學(xué)生信息管理子函數(shù)(刪除學(xué)生信息)

29、struct student *p1,*p2; if(head2=NULL) printf("nttt沒有該學(xué)生信息,無法刪除!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("ttt已刪除該學(xué)生信息!n"); N2=N2-

30、1; else printf("ttt無該學(xué)號的學(xué)生!n"); end:;void managements()/學(xué)生信息管理主函數(shù) int i,num2,num3;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n"); printf("ttt學(xué)生信息管理n"); printf("ttt1.添加學(xué)生信息n");printf("ttt2.修改學(xué)生信息n"); printf("ttt3.刪

31、除學(xué)生信息n");printf("ttt4.存儲學(xué)生信息n"); printf("ttt5.返回上一菜單n"); printf("請選擇(15):n"); scanf("%d",&i); switch(i) case(1):system("cls");inputs();system("cls");break; case(2): system("cls");printf("ttt*n"); printf("nt

32、ttt歡迎使用此系統(tǒng)!n"); printf("ttt*n");printf("請輸入要修改學(xué)生的學(xué)號:n"); scanf("%d",&num3); inserts(num3);managements(); break; case(3): system("cls");printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n");printf("請輸入要刪除學(xué)生的學(xué)號:n&

33、quot;); scanf("%d",&num2); dels(num2);managements(); break; case(4):system("cls");intos();managements();break; case(5):system("cls");manage();break; void manage() /信息管理函數(shù)int i;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n");pri

34、ntf("ttt信息管理");printf("nttt1.課程信息管理");printf("nttt2.學(xué)生信息管理");printf("nttt3.返回上一菜單");printf("n請輸入1-3:");scanf("%d",&i);switch(i)case 1:system("cls");managementc();break;case 2:system("cls");managements();break;case 3:

35、system("cls");manger();break;void listc() /瀏覽課程信息struct couse * p;p=head1;printf("ttt*n"); printf("ntttt歡迎使用此系統(tǒng)!n"); printf("ttt*n");printf("課程編號 課程名稱 課程性質(zhì) 總學(xué)時(shí) 授課學(xué)時(shí) 上機(jī)學(xué)時(shí) 學(xué)分 開課學(xué)期 n");while(p!=NULL)printf("num:%6dname:%13s%13s%10d%7d%7d%12d%5d%5dn

36、",p->num1,p->name1,p->type,p->hour,p->teach,p->exp,p->credit,p->semester);p=p->next;void search1() /按學(xué)號查找學(xué)生信息int a,b;struct student *p;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n");printf("ttt請輸入學(xué)生學(xué)號");scanf("%d&

37、quot;,&a);p=head2;printf("學(xué)號 學(xué)生姓名 所選課程編號 所選課程學(xué)分n");while(p!=NULL)if(p->num2=a)printf("%6d%13s ",p->num2,p->name2);for(b=0;p->nelenumb!=0&&b<14;b+)printf("%d",p->nelenumb);printf("%10dn",p->nelen);p=p->next;void search2() /按課

38、程學(xué)分查詢int b;struct couse *p;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n");printf("ttt請輸入課程學(xué)分:");scanf("%d",&b);p=head1;printf("課程號 課程名 課程性質(zhì) 課程學(xué)分 選課人數(shù)n");while(p!=NULL)if(b=(p->credit)printf("%6d%13s%12s%12d%12d",p

39、->num1,p->name1,p->type,p->credit,p->nelepeo);p=p->next;void search3() /按課程性質(zhì)查詢char typ20;struct couse *p;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n");printf("請輸入要查找的課程性質(zhì):");printf("選修/必修n");scanf("%s",typ);p=h

40、ead1;printf("課程編號t課程名t課程性質(zhì)t學(xué)分t選課人數(shù)n");while(p!=NULL)if(strcmp(typ,(p->type)=0)printf("%6d%13s%12s%12d%12d",p->num1,p->name1,p->type,p->credit,p->nelepeo);p=p->next;void search4() /選課人數(shù)統(tǒng)計(jì) struct couse * p;p=head1;printf("ttt*n");printf("ntttt歡迎使

41、用此系統(tǒng)!n");printf("ttt*n");printf("課程編號t課程名t課程性質(zhì)t選課人數(shù)n");while(p!=NULL)printf("%6d%13s%12s%12d ",p->num1,p->name1,p->type,p->nelepeo);p=p->next;void searchguanliyuan() /管理員信息查找函數(shù)int i;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf(

42、"ttt*n");printf("ttt學(xué)生信息查找");printf("nttt1.按學(xué)號查找");printf("nttt2.學(xué)分查詢");printf("nttt3.按課程性質(zhì)查詢");printf("nttt4.統(tǒng)計(jì)各門課程選修人數(shù)");printf("nttt5.返回上一級菜單");printf("n請輸入1-5:");scanf("%d",&i);switch(i)case 1:system(&q

43、uot;cls");search1();searchguanliyuan();break;case 2:system("cls");search2();searchguanliyuan();break;case 3:system("cls");search3();searchguanliyuan();break;case 4:system("cls");search4();searchguanliyuan();break;case 5:system("cls");manger();break;void s

44、huru1() /管理員輸入函數(shù)char key20;char a20='l','z','j','t','u'int m;int n=1234;printf("ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n"); printf("n");start1:;printf("tttt請輸入賬號:");scanf("%d",&m); start2:;p

45、rintf("tttt請輸入密碼:");scanf("%s",key);if(m!=n)printf("tttt您輸入的用戶名不存在,請重新輸入n");goto start1;if(strcmp(key,a)!=0)printf("tttt你輸入的密碼不正確,請重新輸入n");goto start2;system("cls");manger();void manger() /管理員主函數(shù)int i;printf("ttt*n");printf("ntttt歡迎使用此

46、系統(tǒng)!n");printf("ttt*n");printf("ttt1.信息維護(hù)n");printf("ttt2.信息瀏覽n");printf("ttt3.信息查詢n");printf("ttt4.各科選修人數(shù)n"); printf("ttt5.返回上一級菜單");printf("n請輸入1-5:n");scanf("%d",&i);switch(i)case 1:system("cls");man

47、age();break;case 2:system("cls");listc();manger();break;case 3:system("cls");searchguanliyuan();break; case 4:system("cls");search4();manger();break;case 5:system("cls");main();break;void elect() /學(xué)生選課struct student * s;struct couse * p;int a,i,b,j; printf(&qu

48、ot;ttt*n");printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n"); start:;printf("請輸入您的學(xué)號:n");scanf("%d",&a);s=head2;while(s->num2)!=a&&s->next!=NULL) s=s->next;if(s->num2!=a)printf("您的信息不存在,請重新輸入:n");goto start;if(s->nelen)>=20)

49、printf("您的學(xué)分已滿");goto end; start2:;printf("請輸入您要選修的課程編號:");scanf("%d",&b);p=head1;while(p->num1)!=b&&p->next!=NULL) p=p->next;if(p->num1!=b)printf("您輸入的課程不存在,請重新輸入:n");goto start2;if(p->nelepeo)>=(p->Melepeo)printf("此課程人數(shù)已

50、滿,請選擇其他課程n");goto start2;for(i=0;(s->nelenumi)!=0;i+);s->nelenumi=b;(p->nelepeo)+;(s->gainscore)=(s->gainscore)+(p->credit);(s->nelen)+;for(j=0;j<20;j+) (s->nelenameij)=(p->name1j);printf("選課成功n");end:;void searchstu() /學(xué)生信息查找函數(shù)int i;printf("ttt*n&qu

51、ot;);printf("ntttt歡迎使用此系統(tǒng)!n");printf("ttt*n");printf("ttt學(xué)生信息查找");printf("nttt1.按學(xué)號查找");printf("nttt2.學(xué)分查詢");printf("nttt3.按課程性質(zhì)查詢");printf("nttt4.統(tǒng)計(jì)各門課程選修人數(shù)");printf("nttt5.返回上一級菜單");printf("n請輸入1-5:");scanf("%d",&i);switch(i)case 1:system("cls");search1();searchstu();break;case 2:system("cls");search2();searchstu();break;case 3:system("cls");search3();searchstu();break;case 4:system("cls");searc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論