C语言学生选课系统_第1页
C语言学生选课系统_第2页
C语言学生选课系统_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>#include<stdlib.h>#include<string.h>intN1,N2;structstudentintnum2;charname220;intnelenum50;/intnelen;/structstudent*next;structcourseintnuml;/课程编号charname120;charmajor20;chartype20;intcredit;intperiod;charteacher20;intpeople;/structcourse*next;/;structcourse*headl;

2、structstudent*head2;voidzhang()/structcourse*p1,*p2;所选课程编号所选课程学分和选此门课程的人数结构体指针从键盘录入课程信息N1=0;p1=p2=(structcourse*)malloc(sizeof(structcourse);printf(-课程编号t课程名称t主修t课程性质t学分t课时t教师n");scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->credit,&p1-&

3、gt;period,p1->teacher);p1->people=0;head1=NULL;while(p1->num1!=0)N1=N1+1;if(N1=1)head1=p1;elsep2->next=p1;p2=p1;p1=(structcourse*)malloc(sizeof(structcourse);scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->credit,&p1->period,p1-&

4、gt;teacher);p1->people=0;p2->next=NULL;voidzhang1()/从文件录入课程信息FILE*fp;charfilepath20;structcourse*p1,*p2;N1=0;printf(-请输入您要读取的路径:");getchar();gets(filepath);if(fp=fopen(filepath,"r")=NULL)(printf("找不到%s文件!n",filepath);exit(0);p1=p2=(structcourse*)malloc(sizeof(structcou

5、rse);fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,&p1->credit,&p1->period,p1->teacher,&p1->people);while(!feof(fp)(N1=N1+1;if(N1=1)head1=p1;elsep2->next=p1;p2=p1;p1=(structcourse*)malloc(sizeof(structcourse);fscanf(fp,"

6、%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,&p1->credit,&p1->period,p1->teacher,&p1->people);p2->next=NULL;voidload()/录入课程信息函数(inti;printf("ttt录入课程信息n");printf("n1.从键盘录入");printf("n2.从文件录入");printf("n3.返回

7、主菜单n");printf("请选择1-3:");scanf(”d”,&i);switch(i)(case1:zhang();break;case2:zhang1();break;case3:break;voidinsert(structcourse*incourse)/增加课程信息(structcourse*p0,*p1,*p2;p1=head1;p0=incourse;if(head1=NULL)(head1=p0;p0->next=NULL;else(while(p0->num1>p1->num1)&&(p1-

8、>next!=NULL)(p2=p1;p1=p1->next;if(p0->num1<=p1->num1)(if(head1=p1)head1=p0;elsep2->next=p0;p0->next=p1;else(p1->next=p0;p0->next=NULL;N1=N1+1;voiddelc(intnum1)/删除课程信息(structcourse*p1,*p2;if(head1=NULL)(printf("n无法删除!n");gotoend;p1=head1;while(num1!=p1->num1&am

9、p;&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()/课程信息管理函数(structcourse*p1;inti,num1;printf("ttt课程信息管理n");printf("1.添加课程n&

10、quot;);printf("2.删除课程n");printf("3.返回n");printf("请输入1-3:n");scanf("%d",&i);switch(i)(case1:p1=(structcourse*)malloc(sizeof(structcourse);printf(-课程编号t课程名称t主修t课程性质t学分t课时t教师n");scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,

11、p1->type,&p1->credit,&p1->period,p1->teacher);p1->people=0;insert(p1);break;case2:printf("请输入您要删除的课程编号:n");scanf("%d",&num1);delc(num1);break;case3:break;voidputin(void)/从键盘录入学生信息(inti;structstudent*p1,*p2;N2=0;p1=p2=(structstudent*)malloc(sizeof(struct

12、student);printf("学号t姓名n");scanf("%d%s”,&p1->num2,p1->name2);p1->nelen=0;for(i=0;i<20;i+)p1->nelenumi=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->nu

13、m2,p1->name2);p1->nelen=0;for(i=0;i<20;i+)p1->nelenumi=0;p2->next=NULL;voidputin2()/从文件录入学生信息(inti=0;FILE*fp;charfilepath20;structstudent*p1,*p2;N2=0;printf(-请输入您要读取的路径:,getchar();gets(filepath);if(fp=fopen(filepath,"rt")=NULL)printf("找不到%s文件!n",filepath);exit(0);p

14、1=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;voidinput()/录入学生信息函数inti;printf

15、("ttt录入学生信息n");printf("n1.从键盘录入n");printf("2.从文件录入n");printf("3.返回主菜单n");printf("请输入1-3:n");scanf(”d”,&i);switch(i)case1:putin();break;case2:putin2();break;case3:break;voidinserts(structstudent*incouse)/增加学生信息structstudent*p0,*p1,*p2;p1=head2;p0=

16、incouse;if(head2=NULL)head2=p0;p0->next=NULL;elsewhile(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)/删除学生信息(structstu

17、dent*p1,*p2;if(head2=NULL)(printf("n无法删除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("已删除n");N2=N2-1;elseprintf(-没有此学生编号n");end:;voidmanagem

18、ents。/学生信息管理函数structstudent*p1;inti,num2;printf("ttt学生信息管理n");printf("1.添加学生信息n");printf("2.删除学生信息n");printf("3.返回主菜单n");printf("请选择1-3:n");scanf("%d",&i);switch(i)case1:p1=(structstudent*)malloc(sizeof(structstudent);p1->nelen=0;p1-

19、>nelenum0=0;printf("numtnamen");scanf("%d%s",&p1->num2,p1->name2);inserts(p1);break;case2:printf(-请输入您要删除的学生编号:n");scanf("%d",&num2);dels(num2);break;case3:break;voidelect()/学生选课(structstudent*s;structcourse*p;inta,i,b;printf("请输入您的学号:n")

20、;scanf("%d",&a);s=head2;while(s->num2)!=a&&s->next!=NULL)s=s->next;if(s->num2!=a)(printf(-您的信息不存在,请重新输入:n");gotoend;if(s->nelen)>10)(printf("您的学分已满");gotoend;printf("请输入您要选修的课程编号n");scanf("%d",&b);for(i=0;(s->nelenumi)

21、=0;i+);s->nelenumi=b;p=head1;while(p->num1)!=b)p=p->next;for(i=0;(s->nelenumi)!=0;i+);s->nelenumi=b;(p->people)+;(s->nelen)=(s->nelen)+(p->credit);(p->people)+;end:;voidback()/学生退课(structstudent*p;structcourse*p1;intb,i,j,a;printf("请输入您的学号:n");scanf("%d&q

22、uot;,&a);p=head2;while(p->num2!=a&&p!=NULL)p=p->next;if(p=NULL)printf(-您的信息不存在:n");else(printf("请输入您要退选的课程:n");scanf("%d",&b);p1=head1;while(p1->num1!=b)p1=p1->next;for(i=0;p->nelenumi!=b;i+);for(j=i;p->nelenumj!=0;j+)p->nelenumj=p->ne

23、lenumj+1;p->nelenum-j=0;(p->nelen)=(p->nelen)-(p1->credit);(p1->people)-;printf("succeed!n");voidelective()/学生选课信息管理inti;printf("ttt学生选课信息管理n");printf("1.选课n");printf("2.退课n");printf("3.返回主菜单n");printf("请输入1-3:n");scanf(”d”,&

24、amp;i);switch(i)(case1:elect();break;case2:back();break;case3:break;voidlistc()/浏览课程信息(structcourse*p;p=head1;printf(-课程编号课程名称主修课程性质学分课时教师选课人数n");while(p!=NULL)(printf("%6d%13s%13s%10s%7d%7d%12s%5dn",p->num1,p->name1,p->major,p->type,p->credit,p->period,p->teacher

25、,p->people);p=p->next;voidlists()/浏览学生信息(structstudent*p;inta;p=head2;printf(-学生编号学生姓名所选课程编号所选课程学分n");while(p!=NULL)(printf("%6d%13s",p->num2,p->name2);printf("%6d",p->nelen);for(a=0;p->nelenuma!=0&&a<14;a+)printf("%d",p->nelenuma);p

26、rintf("n");p=p->next;voidintoc()/存储课程信息(FILE*fp;structcourse*p;charfilepath30;printf(-输入路径:");getchar();gets(filepath);if(fp=fopen(filepath,"w")=NULL)(无法储存!");exit(0);p=head1;while(p!=NULL)fprintf(fp,"%d%s%s%s%d%d%s%dn",p->num1,p->name1,p->major,p-

27、>type,p->credit,p->period,p->teacher,p->people);p=p->next;fclose(fp);printf("已储存入s文件!n",filepath);voidintos()/存储学生信息(FILE*fp;structstudent*p;charfilepath30;printf(-请输入路径:");getchar();gets(filepath);if(fp=fopen(filepath,"wt")=NULL)(printf("n无法储存!")

28、;exit(0);p=head2;while(p!=NULL)(fwrite(p,sizeof(structstudent),1,fp);p=p->next;fclose(fp);printf("已储存入%s文件!n",filepath);voidinto()/(信息存储函数inti;printf("ttt信息存储n");printf("1.课程信息存储n");printf("2.学生信息存储tn");printf("3.返回主菜单n");printf("请输入1-3n"

29、;);scanf("%d",&i);switch(i)case(1):intoc();break;case(2):intos();break;case(3):break;信息存储浏览函数voidstore()/(inti;printf(-tt信息存储和浏览n");printf("1.课程信息浏览n");printf("2.学生信息浏览n");printf("3.信息存储n");printf("4.返回主菜单n");printf("请输入1-4:n");sca

30、nf("%d",&i);switch(i)(case(1):listc();break;case(2):lists();break;case(3):into();break;case(4):break;voidsearch1()/按学生编号查找学生信息(inta,b;structstudent*p;printf(-请输入学生编号");scanf("%d",&a);p=head2;printf(-学号学生姓名所选课程编号所选课程学分n");while(p!=NULL)(if(p->num2=a)(printf(&q

31、uot;%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;voidsearch2()/按学生姓名查找学生信息(intb;charname20;structstudent*p;printf(-请输入要查找的学生姓名:");scanf("%s",name);p=head2;pr

32、intf(-学号学生姓名所选课程编号所选课程学分n");while(p!=NULL)(if(strcmp(name,p->name2)=0)(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;voidsearch()/学生信息查找主函数(inti;printf(-ttt学生信息查找");printf("n1.按学号查找");printf("n2.按姓名查找");printf("n3.返回主菜单");printf("n请输入1-3:");scanf("%d",&i);switch(i)(case1:search1();break;case2:search2();break;case3:break;voidmain()/主函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论