1、kk21200;kk2+)for(kk3=0;kk3num1,p1-name1,&score,&Melepeo);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);p2-next=NULL;void filec()/录入键盘子函数(从文件录入)FILE * fp; char 20;输入要读入的文件路径:getchar();gets();if(fp=fopen(,r)=NULL) 找
2、不到%s文件!n,);exit(0); fscanf(fp,%d%s%d%d%dnelepeo,& head1=NULL; while(!feof(fp) else p2- p2=p1; p1=(struct couse * )malloc(sizeof(struct couse);void inputc()/录入课程主函数int i;ttt录入课程信息nn1.从键盘录入n2.从文件录入n3.返回主菜单n请选择(13):%di);switch(i)case(1):keyboardc();break;case(2):filec(); case(3):void insertc(struct cou
3、se *incouse)/课程管理子函数(增加课程)struct couse *p0,*p1,*p2;p1=head1;p0=incouse;if(head1=NULL)head1=p0;p0-elsewhile(p0-num1 p1-num1) & (p1-next!=NULL)p1=p1-next;if(p0-num1 num1)if(head1=p1) head1=p0;next=p0;void delc(int num1)/课程管理子函数(删除课程)n没有课程,无法删除!goto end;while(num1!=p1-num1 &=NULL)if(num1=p1-if(p1=head1
4、) head1=p1-next=p1-已删除该编号课程!N1=N1-1;else printf(无该编号的课程!end:;void managementc()/课程管理主函数struct couse * incouse;int i,num1;ttt课程管理n1.新增课程n2.删除课程nincouse=(struct couse *)malloc(sizeof(struct couse);incouse-num1,incouse-insertc(incouse);请输入要删除课程的编号:num1);delc(num1);case(3):void keyboards()/录入学生信息子函数(从键盘
5、录入)struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student); printf(学生学号t学生姓名n scanf(%d%snum2,p1-name2);nelen=0;for(i=0;inelenumi=0; head2=NULL; while(p1-num2!N2=N2+1; if(N2=1)head2=p1; p1=(struct student * )malloc(sizeof(struct student); p2-void files()/录入学生信息子函数(从文件录入)in
6、t i=0;N2=0;p1=p2=(struct student*)malloc(sizeof(struct student); fread(p1,sizeof(struct student),1,fp);i=0;if(N2=1)head2=p1;void inputs()/录入学生信息主函数ttt录入学生信息nkeyboards();files();void inserts(struct student * incouse)/学生信息管理子函数(填加学生信息)struct student *p0,*p1,*p2;p1=head2;if(head2=NULL)head2=p0;num2 num
7、2) &num2 if(p1=head2) head2=p1-已删除该学生信息!N2=N2-1;无该学号的学生!void managements()/学生信息管理主函数struct student * incouse;int i,num2;ttt学生信息管理n1.新增学生信息n2.删除学生信息nincouse=(struct student *)malloc(sizeof(struct student);nelenum0=0;num2,incouse-inserts(incouse);请输入要删除学生的学号:num2);dels(num2);void elect(struct student
8、* s)/选课struct couse * p;int num1,i;请输入要选课的编号:s-nelenumi!=0;i+);nelenumi=num1;(s-nelen)+;p=head1;while(p-=num1) p=p-(p-nelepeo)+;void cheak()/学生选课子函数(查询可选课程)char e;struct couse * c;struct student * s;int num2,i,j=0,t=0;请输入你的学号:s=head2;while(s-=num2 & s-=NULL) s=s-if(s-=num2)不存在你的信息,请进入主菜单录入你的信息! goto
9、 end;c=head1;你的可选课程编号:while(c!for(t=0,i=0;i+)if(c-num1=s-nelenumi) t=1; if(t=0 & (c-nelepeo!=c-Melepeo)%dn,c-j+;c=c-if(j=0) 你已选完所有课程,无法再多选!选课(y/n)?:e=getchar();while(e=y)elect(s);继续选课(y/n)?void back(struct student * p)/退课struct couse * p1;int num1,i,j;请输入你要退掉的课程编号:=num1) p1=p1-p-=num1;for(j=i;nelenu
10、mj!j+) p-nelenumj=p-nelenumj+1;nelenum-j=0;(p1-nelepeo)-;退课成功!void hcheak()/学生选课子函数(查询已选课程)char c;struct couse * p0;struct student * p;int num2,i,f=0;请输入学号:p=head2; p!=NULL) p=p-if(p=NULL)不存在你的信息,请回主菜单录入信息:已选课程编号:if(p-nelenum0=0)你还没选课!i+) ,p-nelenumi);p0=head1;while(p0-=p-nelenumi) p0=p0-f=f+p0-score;总学分:,f);是否进行退课(y/n)?c=getchar();while(c=back(p);继续退课(y/n)?nelen)-;void elective()/学生选课主函数ttt学生选课nprin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1