学生选课管理系统c语言程序_第1页
学生选课管理系统c语言程序_第2页
学生选课管理系统c语言程序_第3页
学生选课管理系统c语言程序_第4页
学生选课管理系统c语言程序_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、#includestdio。h #includestdlib.h>includestring。hint N1,N2;struct couse head1;struct student head2;struct couse/课程信息结构体 int num1;/课程编号char name120;/课程名称char type20;/课程性质int hour;/总学时int teach;/上课学时int exp;/实验上机学时int credit;/学分int semester;/开课学期 int nelepeo;/课程已选人数int Melepeo; /课程上限 struct couse ne

2、xt;;struct student/学生信息结构体 int num2;/学号 char name220;/姓名int nelenum50;/已选课程编号char nelename1020;/已选名称 int nelen; /已选课程数量int score; /总学分int gainscore; /已获得的学分 struct student next;void manger();void student();void managementc();void managements();void manage();void main();void intoc() /存储课程信息FILE fp;st

3、ruct couse p;char filepath30;printf("ttt*n”); printf(”ntttt欢迎使用此系统!n"); printf("ttt*n”);printf(”输入路径:");getchar();gets(filepath);if((fp=fopen(filepath,”w")=NULL)printf(”无法储存!");exit(0);p=head1;while(p!=NULL)fprintf(fp,”d%ss%dddd%d%ddn”,p>num1,p>name1,ptype,phour,p

4、>teach,p-exp,pcredit,p->semester,pnelepeo,p-Melepeo);p=pnext;fclose(fp);printf(”已储存入%s文件!n",filepath);void keyboardc()/录入课程子函数(从键盘录入)struct couse p1,*p2;N1=0;p1=p2=(struct couse*) malloc(sizeof(struct couse));printf(”ttt*n");printf(”ntttt欢迎使用此系统!n”);printf(”ttt*n”); printf("编号名称

5、性质总学时上课学时实验上机学时学分开课学期已选人数课程上限n”);scanf(”d s s %d %d d d %d %d d",p1->num1,p1name1,&p1->type,p1-hour,&p1teach,p1->exp,p1-credit,p1-semester,p1>nelepeo,&p1Melepeo); head1=NULL;while(p1>num1!=0) N1=N1+1; if(N1=1)head1=p1; else p2next=p1;/对这段语句有疑问 p2=p1; p1=(struct couse

6、* )malloc(sizeof(struct couse); scanf(”d s %s %d d d %d d %d %d",p1num1,p1>name1,p1->type,&p1>hour,&p1-teach,&p1-exp,p1credit,p1-semester,&p1>nelepeo,p1Melepeo); p2->next=NULL;void filec()/录入键盘子函数(从文件录入) FILE * fp; char filepath20; struct couse p1,p2; N1=0;printf(

7、”ttt*n”); printf("ntttt欢迎使用此系统!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,"dssdd%dddd%d”,p1num1,p1name1,p1

8、->type,p1-hour,&p1>teach,p1>exp,p1-credit,p1-semester,p1nelepeo,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,”dssdddd%ddd”,&p1->num1,p1name1,p1-type,&p1hour,p1-teach,p1

9、>exp,&p1>credit,p1>semester,&p1>nelepeo,&p1Melepeo); p2>next=NULL;void inputc()/录入课程主函数 int i;printf(”ttt*n"); printf(”ntttt欢迎使用此系统!n”); printf("ttt*n”); printf("ttt录入课程信息n”); printf(”nttt1。从键盘录入n"); printf(”ttt2。从文件录入n"); printf(”ttt3.返回上一菜单n”); p

10、rintf(”请选择(13):"); scanf(”%d”,i); switch(i) case(1):system("cls");keyboardc();system(”cls”);inputc();break; case(2):system(”cls”);filec();system(”cls”);inputc();break; case(3):system(”cls");managementc();break; void insertc(int num2)/课程管理子函数(修改课程)struct couse p1,p2; if(head1=NULL

11、) printf("nttt没有课程,无法修改!n"); goto end; p1=head1; while(num2!=p1num1 p1->next!=NULL) p2=p1; p1=p1next; if(num2=p1num1) printf("ttt请重新输入数据进行修改n”);printf(”课程编号课程名称课程性质总学时上课学时实验上机学时学分开课学期课程已选人数课程上限n”);scanf(”d s %s d d %d %d d d d %d”,p1num1,p1name1,p1type,p1hour,&p1-teach,&p1e

12、xp,p1->credit,p1semester,&p1>nelepeo,&p1Melepeo);printf(”ttt已修改该课程n"); else printf("ttt无该编号的课程!n”); end:;void delc(int num1)/课程管理子函数(删除课程) struct couse p1,*p2;if(head1=NULL) printf(”nttt没有课程,无法删除!n”); goto end; p1=head1; while(num1!=p1num1 & p1>next!=NULL) p2=p1; p1=p1

13、next; if(num1=p1-num1) if(p1=head1) head1=p1->next; else p2next=p1>next; printf(”已删除该编号课程!n”); N1=N11; else printf(”无该编号的课程!n”); end:;void managementc()/课程管理主函数 int i,num1,num2=1;printf("ttt*n"); printf("ntttt欢迎使用此系统!n"); printf(”ttt*n"); printf(”ttt课程管理n");printf

14、(”ttt1。添加课程n"); printf(”ttt2。修改课程n”); printf("ttt3。删除课程n”);printf("ttt4.存储课程信息n”); printf(”ttt5。返回上一菜单n"); printf(”请选择(15):”); scanf(”%d",&i); switch(i) case(1):system("cls”);inputc();system(”cls”);break; case(2): system("cls");printf(”ttt*n"); printf

15、(”ntttt欢迎使用此系统!n”); printf("ttt*n");printf("请输入要修改的课程编号:n");scanf("%d,num2");insertc(num2);managementc();system("cls"); break; case(3): system(”cls”);printf(”ttt*n”); printf("ntttt欢迎使用此系统!n”); printf("ttt*n”); printf(”请输入要删除课程的编号:n”); scanf(”d”,&

16、num1); delc(num1);managementc();system("cls”); break; case(4):system(”cls");intoc();managementc();break; case(5):system(”cls”);manage();break; void intos() /存储学生信息FILE fp;struct student p;char filepath30;printf(”ttt*n"); printf("ntttt欢迎使用此系统!n”); printf(”ttt*n”);printf(”请输入路径:”);

17、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()/录入学生信息子函数(从键盘录入)int i; struct student p1,p2; N2=0; p1=p2=(struct student )

18、malloc(sizeof(struct student);printf(”ttt*n”); printf("ntttt欢迎使用此系统!n"); printf("ttt*n”); printf(”学生学号t学生姓名t总学分n"); scanf(”d s d”,&p1num2,p1name2,p1-score);p1nelen=0;p1>gainscore=0; for(i=0;i<20;i+) p1>nelenumi=0; head2=NULL; while(p1num2!=0) N2=N2+1; if(N2=1)head2=p

19、1; else p2next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student)); scanf("d %s d”,p1num2,p1>name2,p1-score);p1nelen=0;p1gainscore=0; for(i=0;i20;i+) p1nelenumi=0; p2next=NULL;void files()/录入学生信息子函数(从文件录入) int i=0; FILE fp; char filepath20; struct student *p1,p2; N2=0;printf(”ttt

20、*n”); printf("ntttt欢迎使用此系统!n”); printf(”ttt*n”); printf("输入要读入的文件路径:”); 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(!feo

21、f(fp) i=0; N2=N2+1; if(N2=1)head2=p1; else p2next=p1; p2=p1; p1=(struct student )malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); p2next=NULL;void inputs()/录入学生信息主函数 int i;printf(”ttt*n"); printf(”ntttt欢迎使用此系统!n”); printf(”ttt*n"); printf(”ttt录入学生信息n”); printf("n

22、ttt1。从键盘录入n”); printf(”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(”cls");managements();break;

23、void inserts(int num3)/学生信息管理子函数(修改学生信息)int i;struct student p1,p2; if(head2=NULL) printf(”nttt没有该学生信息,无法修改!n"); goto end; p1=head2; while(num3!=p1num2 & p1>next!=NULL) p2=p1; p1=p1>next; if(num3=p1-num2) printf(”ttt重新修改数据"); printf(”ttt学生学号t学生姓名"); scanf(”d %s d”,p1>num2

24、,p1name2,&p1-score); p1->nelen=0;p1-gainscore=0; for(i=0;i<20;i+) p1nelenumi=0;printf("ttt修改完毕"); else printf(”ttt无该学号的学生!n”); end:;void dels(int num2)/学生信息管理子函数(删除学生信息) struct student *p1,*p2; if(head2=NULL) printf(”nttt没有该学生信息,无法删除!n”); goto end; p1=head2; while(num2!=p1num2 p1

25、>next!=NULL) p2=p1; p1=p1>next; if(num2=p1>num2) if(p1=head2) head2=p1next; else p2next=p1-next; printf(”ttt已删除该学生信息!n"); N2=N2-1; else printf(”ttt无该学号的学生!n"); end:;void managements()/学生信息管理主函数 int i,num2,num3;printf(”ttt*n”); printf(”ntttt欢迎使用此系统!n"); printf(”ttt*n”); printf

26、(”ttt学生信息管理n”); printf("ttt1.添加学生信息n");printf(”ttt2.修改学生信息n"); printf(”ttt3。删除学生信息n”);printf("ttt4.存储学生信息n”); printf("ttt5。返回上一菜单n”); printf("请选择(15):n”); scanf("d",&i); switch(i) case(1):system(”cls”);inputs();system(”cls”);break; case(2): system("cl

27、s”);printf("ttt*n”); printf("ntttt欢迎使用此系统!n”); printf(”ttt*n");printf(”请输入要修改学生的学号:n”); scanf(”%d”,num3); inserts(num3);managements(); break; case(3): system("cls”);printf(”ttt*n”); printf(”ntttt欢迎使用此系统!n”); printf("ttt*n");printf(”请输入要删除学生的学号:n"); scanf("d”,&

28、amp;num2); dels(num2);managements(); break; case(4):system("cls");intos();managements();break; case(5):system("cls”);manage();break; void manage() /信息管理函数int i;printf(”ttt*n”);printf(”ntttt欢迎使用此系统!n");printf("ttt*n");printf("ttt信息管理”);printf("nttt1.课程信息管理”);pr

29、intf(”nttt2。学生信息管理”);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:system(”cls”);manger();break;void listc() /浏览课程信息struct couse p;p=head1;printf("ttt*n"); printf(”ntttt欢迎使用

30、此系统!n"); printf(”ttt*n”);printf(”课程编号 课程名称 课程性质 总学时 授课学时 上机学时 学分 开课学期 n");while(p!=NULL)printf("num:6dname:%13s%13s10d%7d%7d%12d%5d5dn",p-num1,p->name1,p-type,p-hour,pteach,pexp,p-credit,p>semester);p=pnext;void search1() /按学号查找学生信息int a,b;struct student p;printf("ttt*

31、n”);printf("ntttt欢迎使用此系统!n”);printf(”ttt*n”);printf(”ttt请输入学生学号");scanf(”d”,a);p=head2;printf(”学号 学生姓名 所选课程编号 所选课程学分n”);while(p!=NULL)if(p-num2=a)printf(”6d%13s ”,p>num2,p>name2);for(b=0;p->nelenumb!=0b14;b+)printf(”%d”,pnelenumb);printf(”%10dn”,pnelen);p=pnext;void search2() /按课程

32、学分查询int b;struct couse p;printf(”ttt*n");printf(”ntttt欢迎使用此系统!n”);printf(”ttt*n”);printf(”ttt请输入课程学分:”);scanf(”d”,b);p=head1;printf(”课程号 课程名 课程性质 课程学分 选课人数n");while(p!=NULL)if(b=(p->credit))printf("6d%13s%12s%12d%12d”,p>num1,pname1,p-type,p>credit,pnelepeo);p=p>next;void s

33、earch3() /按课程性质查询char typ20;struct couse p;printf(”ttt*n");printf(”ntttt欢迎使用此系统!n");printf(”ttt*n”);printf(”请输入要查找的课程性质:”);printf(”选修/必修n”);scanf(”%s”,typ);p=head1;printf(”课程编号t课程名t课程性质t学分t选课人数n”);while(p!=NULL)if(strcmp(typ,(p-type))=0)printf("6d13s12s12d%12d”,p-num1,p->name1,ptyp

34、e,p-credit,pnelepeo);p=pnext;void search4() /选课人数统计 struct couse p;p=head1;printf("ttt*n”);printf(”ntttt欢迎使用此系统!n");printf(”ttt*n”);printf(”课程编号t课程名t课程性质t选课人数n”);while(p!=NULL)printf(”%6d13s12s12d ”,p-num1,p-name1,p-type,p>nelepeo);p=pnext;void searchguanliyuan() /管理员信息查找函数int i;printf(

35、”ttt*n");printf("ntttt欢迎使用此系统!n”);printf(”ttt*n”);printf(”ttt学生信息查找");printf(”nttt1。按学号查找");printf(”nttt2。学分查询”);printf(”nttt3.按课程性质查询”);printf("nttt4。统计各门课程选修人数”);printf(”nttt5.返回上一级菜单”);printf("n请输入1-5:");scanf("d”,i);switch(i)case 1:system(”cls”);search1();

36、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 shuru1() /管理员输入函数char key20;char a20='l

37、9;,z',j',t,'u'int m;int n=1234;printf(”ttt*n”);printf(”ntttt欢迎使用此系统!n”);printf("ttt*n"); printf(”n”);start1:;printf("tttt请输入账号:");scanf("%d”,m); start2:;printf("tttt请输入密码:");scanf(”%s”,key);if(m!=n)printf(”tttt您输入的用户名不存在,请重新输入n");goto start1;if

38、(strcmp(key,a)!=0)printf(”tttt你输入的密码不正确,请重新输入n");goto start2;system(”cls”);manger();void manger() /管理员主函数int i;printf(”ttt*n");printf(”ntttt欢迎使用此系统!n”);printf("ttt*n”);printf("ttt1.信息维护n");printf("ttt2.信息浏览n”);printf(”ttt3.信息查询n”);printf("ttt4。各科选修人数n"); print

39、f(”ttt5。返回上一级菜单");printf("n请输入15:n”);scanf("d”,i);switch(i)case 1:system(”cls”);manage();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() /

40、学生选课struct student s;struct couse p;int a,i,b,j; printf("ttt*n”);printf("ntttt欢迎使用此系统!n");printf(”ttt*n”); start:;printf(”请输入您的学号:n”);scanf(”%d",a);s=head2;while(s>num2)!=asnext!=NULL) s=s-next;if(s>num2!=a)printf(”您的信息不存在,请重新输入:n”);goto start;if(snelen)>=20)printf("

41、;您的学分已满”);goto end; start2:;printf("请输入您要选修的课程编号:");scanf(”d",&b);p=head1;while(pnum1)!=bp-next!=NULL) p=pnext;if(p->num1!=b)printf("您输入的课程不存在,请重新输入:n”);goto start2;if((p-nelepeo)>=(pMelepeo)printf("此课程人数已满,请选择其他课程n”);goto start2;for(i=0;(snelenumi)!=0;i+);s->ne

42、lenumi=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() /学生信息查找函数int i;printf("ttt*n");printf("ntttt欢迎使用此系统!n”);printf("ttt*n");printf(”ttt学生信息查找”);prin

43、tf(”nttt1。按学号查找”);printf(”nttt2.学分查询”);printf(”nttt3.按课程性质查询");printf(”nttt4.统计各门课程选修人数”);printf(”nttt5。返回上一级菜单");printf("n请输入15:”);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:syste

温馨提示

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

评论

0/150

提交评论