版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
根據(jù)自己的需要,自己看著修改一下AA#include<stdio.h>#include<stdlib.h>intN1,N2,kk1,kk2,kk3;structcouse*head1;structstudent*head2;structcouse//課程信息結(jié)構(gòu)體{intnum1;charname1[20];intscore;intnelepeo;//課程已選人數(shù)intMelepeo;//課程人數(shù)上限structcouse*next;};structstudent〃學(xué)生信息結(jié)構(gòu)體{intnum2;charname2[20];intnelenum[50];〃已選課程編號intnelen;〃已選課程數(shù)量structstudent*next;};voidMs(){for(kk1=0;kk1<1100;kk1++)for(kk2=0;kk2<1200;kk2++)for(kk3=0;kk3<1200;kk3++);}voidkeyboardc()〃錄入課程子函數(shù)(從鍵盤錄入){structcouse*p1,*p2;N1=0;p1=p2=(structcouse*)malloc(sizeof(structcouse));printf("課程編號\t課程名稱\t學(xué)分\t課程人數(shù)上限\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;elsep2->next=p1;p2=p1;p1=(structcouse*)malloc(sizeof(structcouse));scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0;}p2->next=NULL;}voidfilec()〃錄入鍵盤子函數(shù)(從文件錄入){FILE*fp;charfilepath[20];structcouse*p1,*p2;N1=0;printf(”輸入要讀入的文件路徑:”);getchar();gets(filepath);if((fp=fopen(filepath,"r"))==NULL){printf("找不到%s文件!\n”,filepath);exit(0);}p1=p2=(structcouse*)malloc(sizeof(structcouse));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;elsep2->next=p1;p2=p1;p1=(structcouse*)malloc(sizeof(structcouse));fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);}p2->next=NULL;}voidinputc()〃錄入課程主函數(shù)inti;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;}}voidinsertc(structcouse*incouse)//課程管理子函數(shù)(增加課程){structcouse*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;elsep2->next=p0;p0->next=p1;}elsep1->next=p0;p0->next=NULL;}}N1=N1+1;}voiddelc(intnum1)〃課程管理子函數(shù)(刪除課程){structcouse*p1,*p2;if(head1==NULL){printf("\n沒有課程,無法刪除!\n");gotoend;}p1=head1;while(num1!=p1->num1&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num1==p1->num1){if(p1==head1)head1=p1->next;elsep2->next=p1->next;printf("已刪除該編號課程!\n”);N1=N1-1;}elseprintf(”無該編號的課程!\n”);end:;}voidmanagementc()〃課程管理主函數(shù){structcouse*incouse;inti,num1;printf("\t\t\t課程管理\n”);printf(”1.新增課程\n”);printf("2柵0除課程\n”);printf(”3.返回主菜單\n”);printf("請選擇(1~3):\n”);scanf("%d",&i);switch(i){case(1):incouse=(structcouse*)malloc(sizeof(structcouse));printf(”課程編號\t課程名稱\t學(xué)分\t課程人數(shù)上限\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;}}voidkeyboards。//錄入學(xué)生信息子函數(shù)(從鍵盤錄入){inti;structstudent*p1,*p2;N2=0;p1=p2=(structstudent*)malloc(sizeof(structstudent));printf(”學(xué)生學(xué)號\t學(xué)生姓名\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;elsep2->next=p1;p2=p1;p1=(structstudent*)malloc(sizeof(structstudent));scanf("%d%s",&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i++)p1->nelenum[i]=0;}p2->next=NULL;}voidfiles()〃錄入學(xué)生信息子函數(shù)(從文件錄入){inti=0;FILE*fp;charfilepath[20];structstudent*p1,*p2;N2=0;printf(”輸入要讀入的文件路徑:”);getchar();gets(filepath);if((fp=fopen(filepath,"r"))==NULL){printf("找不到%s文件!\n”,filepath);exit(0);}p1=p2=(structstudent*)malloc(sizeof(structstudent));fread(p1,sizeof(structstudent),1,fp);head2=NULL;while(!feof(fp)){i=0;N2=N2+1;if(N2==1)head2=p1;elsep2->next=p1;p2=p1;p1=(structstudent*)malloc(sizeof(structstudent));fread(p1,sizeof(structstudent),1,fp);}p2->next=NULL;}voidinputs()〃錄入學(xué)生信息主函數(shù){inti;printf("\t\t\t錄入學(xué)生信息\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;}}voidinserts(structstudent*incouse)//學(xué)生信息管理子函數(shù)(填加學(xué)生信息){structstudent*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;elsep2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}N2=N2+1;}voiddels(intnum2)〃學(xué)生信息管理子函數(shù)(刪除學(xué)生信息){structstudent*p1,*p2;if(head2==NULL)printf("\n沒有該學(xué)生信息,無法刪除!\n");gotoend;}p1=head2;while(num2!=p1->num2&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num2==p1->num2){if(p1==head2)head2=p1->next;elsep2->next=p1->next;printf("已刪除該學(xué)生信息!\n");N2=N2-1;}elseprintf(”無該學(xué)號的學(xué)生!\n”);end:;}voidmanagements()〃學(xué)生信息管理主函數(shù){structstudent*incouse;inti,num2;printf("\t\t\t學(xué)生信息管理\n");printf("1.新增學(xué)生信息\n”);printf("2柵0除學(xué)生信息\n”);printf(”3.返回主菜單\n”);printf("請選擇(1~3):\n”);scanf("%d",&i);switch(i){case(1):{incouse=(structstudent*)malloc(sizeof(structstudent));incouse->nelen=0;incouse->nelenum[0]=0;printf(”學(xué)生學(xué)號\t學(xué)生姓名\n”);scanf("%d%s",&incouse->num2,incouse->name2);inserts(incouse);break;}case(2):{printf(”請輸入要刪除學(xué)生的學(xué)號:\n”);scanf("%d",&num2);dels(num2);break;}case(3):break;}}voidelect(structstudent*s)〃選課{structcouse*p;intnum1,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)++;}voidcheak()〃學(xué)生選課子函數(shù)(查詢可選課程){chare;structcouse*c;structstudent*s;intnum2,i,j=0,t=0;printf("請輸入你的學(xué)號:”);scanf("%d",&num2);s=head2;while(s->num2!=num2&&s->next!=NULL)s=s->next;if(s->num2!=num2){printf("不存在你的信息,請進(jìn)入主菜單錄入你的信息!\n");gotoend;}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”);gotoend;}printf(”選課(y/n)?:\n”);getchar();e=getchar();i=0;while(e=='y'){elect(s);printf("繼續(xù)選課(y/n)?:\n”);getchar();e=getchar();}end:;}voidback(structstudent*p)〃退課{structcouse*p1;intnum1,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”);}voidhcheak()〃學(xué)生選課子函數(shù)(查詢已選課程)charc;structcouse*p0;structstudent*p;intnum2,i,f=0;printf(”請輸入學(xué)號:\n");scanf("%d",&num2);p=head2;while(p->num2!=num2&&p!=NULL)p=p->next;if(p==NULL){printf(”不存在你的信息,請回主菜單錄入信息:\n");gotoend;}printf("已選課程編號:\n”);if(p->nelenum[0]==0){printf("你還沒選課!\n”);gotoend;}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("總學(xué)分:%d\n",f);printf("是否進(jìn)行退課(y/n)?”);getchar();c=getchar();while(c=='y'){back(p);printf("繼續(xù)退課(y/n)?");getchar();c=getchar();(p->nelen)--;}end:;}voidelective。//學(xué)生選課主函數(shù)inti;printf(”\t\t\t學(xué)生選課\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;}}voidlistc()〃輸出課程信息{structcouse*p;p=head1;printf("課程編號課程名稱學(xué)分課程已選人數(shù)課程人數(shù)上限\n");while(p!=NULL){printf("%-8d%10s%6d%8d%12d\n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);p=p->next;}}voidlists()〃輸出學(xué)生信息{structstudent*p;p=head2;printf("學(xué)生學(xué)號學(xué)生姓名已選課程數(shù)量\n");while(p!=NULL){printf("%-4d%10s%6d\n",p->num2,p->name2,p->nelen);p=p->next;}}voidintoc()〃存儲課程信息{FILE*fp;structcouse*p;charfilepath[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("課程信息已保存在%$中!\n”,filepath);}voidintos()〃存儲學(xué)生信息{FILE*fp;structstudent*p;charfilepath[30];printf("輸入學(xué)生信息要保存的文件路徑門;getchar();gets(filepath);if((fp=fopen(filepath,"w"))==NULL){printf("\n保存失敗!");exit(0);}p=head2;while(p!=NULL){fwrite(p,sizeof(structstudent),1,fp);p=p->next;}fclose(fp);printf("學(xué)生信息已保存在%s中!\n",filepath);}voidinto()〃存儲信息{inti;printf("1.存儲課程信息\n");printf("2?存儲學(xué)生信息\n");printf(”3.返回主菜單\n”);printf("請輸入(1~3)\n");scanf("%d",&i);switch(i){case(1):intoc();break;case(2):intos();break;case(3):break;}}voidstore()〃信息主函數(shù){inti;printf("\t\t系統(tǒng)信息查看及存儲\n");printf("1.查看課程信息\n");printf("2?查看學(xué)生信息\n");pr
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木材綜合利用技術(shù)研發(fā)合同樣本7篇
- 2025年加盟商店面維護(hù)協(xié)議
- 2025版巡游出租車特許經(jīng)營合同修訂版五3篇
- 2025版家居建材銷售合同終止與綠色環(huán)保認(rèn)證協(xié)議
- 2025年度船舶港口日常保潔與維護(hù)服務(wù)合同3篇
- 五氧化二釩項目評價分析報告
- 二零二五年度能源合同解除協(xié)議
- 二零二五年度出租車租賃合同司機(jī)休息區(qū)域與設(shè)施協(xié)議
- 二零二五年度海域使用權(quán)租賃及海洋資源綜合利用技術(shù)服務(wù)合同
- 二零二五年度股東變更后的董事會組成與授權(quán)協(xié)議
- 中國聯(lián)合網(wǎng)絡(luò)通信有限公司招聘筆試題庫2024
- 【社會工作介入精神障礙社區(qū)康復(fù)問題探究的文獻(xiàn)綜述5800字】
- 節(jié)前停工停產(chǎn)與節(jié)后復(fù)工復(fù)產(chǎn)安全注意事項課件
- 設(shè)備管理績效考核細(xì)則
- 中國人民銀行清算總中心直屬企業(yè)2023年招聘筆試上岸歷年典型考題與考點剖析附帶答案詳解
- (正式版)SJT 11449-2024 集中空調(diào)電子計費信息系統(tǒng)工程技術(shù)規(guī)范
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語文文學(xué)類閱讀分類訓(xùn)練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
評論
0/150
提交評論