C语言学生选课系统代码13570.pdf

上传人:得****3 文档编号:83980987 上传时间:2023-03-31 格式:PDF 页数:21 大小:376.29KB
返回 下载 相关 举报
C语言学生选课系统代码13570.pdf_第1页
第1页 / 共21页
C语言学生选课系统代码13570.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《C语言学生选课系统代码13570.pdf》由会员分享,可在线阅读,更多相关《C语言学生选课系统代码13570.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-#include#include#include int N1,N2;struct student int num2;char name220;int nelenum50;/所选课程编号 int nelen;/所选课程学分和 struct student*ne*t;struct course int num1;/课程编号 char name120;char major20;char type20;int credit;int period;char teacher20;int people;/选此门课程的人数 struct course*ne*t;/构造体指针;struct course*h

2、ead1;struct student*head2;void zhang()/从键盘录入课程信息 struct course*p1,*p2;N1=0;p1=p2=(struct course*)malloc(sizeof(struct course);-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-period,p1-teacher);p1-people=0;head1=NULL;while(p1-num1!=0)N

3、1=N1+1;if(N1=1)head1=p1;else p2-ne*t=p1;p2=p1;p1=(struct course*)malloc(sizeof(struct course);scanf(%d%s%s%s%d%d%s,&p1-num1,p1-name1,p1-major,p1-type,&p1-credit,&p1-period,p1-teacher);p1-people=0;p2-ne*t=NULL;void zhang1()/从文件录入课程信息 FILE*fp;char filepath20;struct course*p1,*p2;N1=0;printf(请输入您要读取的路径

4、:);getchar();gets(filepath);if(fp=fopen(filepath,r)=NULL)-printf(找不到%s 文件!n,filepath);e*it(0);p1=p2=(struct course*)malloc(sizeof(struct course);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;else p2-

5、ne*t=p1;p2=p1;p1=(struct course*)malloc(sizeof(struct course);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);p2-ne*t=NULL;void load()/录入课程信息函数 int i;printf(ttt 录入课程信息n);printf(n1.从键盘录入);printf(n2.从文件录入);printf(n3.返回主菜单n);printf(请选择 1-3:);-s

6、canf(%d,&i);switch(i)case 1:zhang();break;case 2:zhang1();break;case 3:break;void insert(struct course*incourse)/增加课程信息 struct course*p0,*p1,*p2;p1=head1;p0=incourse;if(head1=NULL)head1=p0;p0-ne*t=NULL;else while(p0-num1p1-num1)&(p1-ne*t!=NULL)p2=p1;p1=p1-ne*t;if(p0-num1num1)if(head1=p1)head1=p0;els

7、e p2-ne*t=p0;-p0-ne*t=p1;else p1-ne*t=p0;p0-ne*t=NULL;N1=N1+1;void delc(int num1)/删除课程信息 struct course*p1,*p2;if(head1=NULL)printf(n 无法删除!n);goto end;p1=head1;while(num1!=p1-num1&p1-ne*t!=NULL)p2=p1;p1=p1-ne*t;if(num1=p1-num1)if(p1=head1)head1=p1-ne*t;else p2-ne*t=p1-ne*t;printf(已删除n);-N1=N1-1;else

8、printf(没有此课程n);end:;void managementc()/课程信息管理函数 struct course*p1;int i,num1;printf(ttt 课程信息管理n);printf(1.添加课程n);printf(2.删除课程n);printf(3.返回n);printf(请输入 1-3:n);scanf(%d,&i);switch(i)case 1:p1=(struct course*)malloc(sizeof(struct course);printf(课程编号t课程名称t主修t课程性质t学分t课时t教师n);scanf(%d%s%s%s%d%d%s,&p1-nu

9、m1,p1-name1,p1-major,p1-type,&p1-credit,&p1-period,p1-teacher);p1-people=0;insert(p1);break;case 2:printf(请输入您要删除的课程编号:n);scanf(%d,&num1);delc(num1);break;case 3:break;-void putin(void)/从键盘录入学生信息 int i;struct student*p1,*p2;N2=0;p1=p2=(struct student*)malloc(sizeof(struct student);printf(*tn);scanf(

10、%d%s,&p1-num2,p1-name2);p1-nelen=0;for(i=0;inelenumi=0;head2=NULL;while(p1-num2!=0)N2=N2+1;if(N2=1)head2=p1;else p2-ne*t=p1;p2=p1;p1=(struct student*)malloc(sizeof(struct student);scanf(%d%s,&p1-num2,p1-name2);p1-nelen=0;for(i=0;inelenumi=0;p2-ne*t=NULL;void putin2()/从文件录入学生信息 int i=0;FILE*fp;-char

11、filepath20;struct student*p1,*p2;N2=0;printf(请输入您要读取的路径:);getchar();gets(filepath);if(fp=fopen(filepath,rt)=NULL)printf(找不到%s 文件!n,filepath);e*it(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

12、p2-ne*t=p1;p2=p1;p1=(struct student*)malloc(sizeof(struct student);fread(p1,sizeof(struct student),1,fp);p2-ne*t=NULL;void input()/录入学生信息函数 int i;-printf(ttt 录入学生信息n);printf(n1.从键盘录入n);printf(2.从文件录入n);printf(3.返回主菜单n);printf(请输入 1-3:n);scanf(%d,&i);switch(i)case 1:putin();break;case 2:putin2();brea

13、k;case 3:break;void inserts(struct student*incouse)/增加学生信息 struct student*p0,*p1,*p2;p1=head2;p0=incouse;if(head2=NULL)head2=p0;p0-ne*t=NULL;else while(p0-num2p1-num2)&(p1-ne*t!=NULL)p2=p1;p1=p1-ne*t;if(p0-num2 num2)-if(head2=p1)head2=p0;else p2-ne*t=p0;p0-ne*t=p1;else p1-ne*t=p0;p0-ne*t=NULL;N2=N2+

14、1;void dels(int num2)/删除学生信息 struct student*p1,*p2;if(head2=NULL)printf(n 无法删除n);goto end;p1=head2;while(num2!=p1-num2&p1-ne*t!=NULL)p2=p1;p1=p1-ne*t;if(num2=p1-num2)if(p1=head2)head2=p1-ne*t;else -p2-ne*t=p1-ne*t;printf(已删除n);N2=N2-1;else printf(没有此学生编号n);end:;void managements()/学生信息管理函数 struct stu

15、dent*p1;int i,num2;printf(ttt 学生信息管理n);printf(1.添加学生信息n);printf(2.删除学生信息n);printf(3.返回主菜单n);printf(请选择 1-3:n);scanf(%d,&i);switch(i)case 1:p1=(struct student*)malloc(sizeof(struct student);p1-nelen=0;p1-nelenum0=0;printf(numtnamen);scanf(%d%s,&p1-num2,p1-name2);inserts(p1);break;case 2:printf(请输入您要删

16、除的学生编号:n);scanf(%d,&num2);dels(num2);break;case 3:break;-void elect()/学生选课 struct student*s;struct course*p;int a,i,b;printf(请输入您的*:n);scanf(%d,&a);s=head2;while(s-num2)!=a&s-ne*t!=NULL)s=s-ne*t;if(s-num2!=a)printf(您的信息不存在,请重新输入:n);goto end;if(s-nelen)10)printf(您的学分已满);goto end;printf(请输入您要选修的课程编号n)

17、;scanf(%d,&b);for(i=0;(s-nelenumi)=0;i+);s-nelenumi=b;p=head1;while(p-num1)!=b)p=p-ne*t;for(i=0;(s-nelenumi)!=0;i+);s-nelenumi=b;(p-people)+;-(s-nelen)=(s-nelen)+(p-credit);(p-people)+;end:;void back()/学生退课 struct student*p;struct course*p1;int b,i,j,a;printf(请输入您的*:n);scanf(%d,&a);p=head2;while(p-n

18、um2!=a&p!=NULL)p=p-ne*t;if(p=NULL)printf(您的信息不存在:n);else printf(请输入您要退选的课程:n);scanf(%d,&b);p1=head1;while(p1-num1!=b)p1=p1-ne*t;for(i=0;p-nelenumi!=b;i+);for(j=i;p-nelenumj!=0;j+)p-nelenumj=p-nelenumj+1;p-nelenum-j=0;(p-nelen)=(p-nelen)-(p1-credit);(p1-people)-;printf(succeed!n);void elective()/学生选课

19、信息管理-int i;printf(ttt 学生选课信息管理n);printf(1.选课n);printf(2.退课n);printf(3.返回主菜单n);printf(请输入 1-3:n);scanf(%d,&i);switch(i)case 1:elect();break;case 2:back();break;case 3:break;void listc()/浏览课程信息 struct course*p;p=head1;printf(课程编号 课程名称 主修 课程性质 学分 课时 教师 选课人数n);while(p!=NULL)printf(%6d%13s%13s%10s%7d%7d%

20、12s%5dn,p-num1,p-name1,p-major,p-type,p-credit,p-period,p-teacher,p-people);p=p-ne*t;void lists()/浏览学生信息 -struct student*p;int a;p=head2;printf(学生编号 学生 所选课程编号 所选课程学分n);while(p!=NULL)printf(%6d%13s,p-num2,p-name2);printf(%6d,p-nelen);for(a=0;p-nelenuma!=0&anelenuma);printf(n);p=p-ne*t;void intoc()/存储

21、课程信息 FILE*fp;struct course*p;char filepath30;printf(输入路径:);getchar();gets(filepath);if(fp=fopen(filepath,w)=NULL)printf(无法储存!);e*it(0);p=head1;while(p!=NULL)-fprintf(fp,%d%s%s%s%d%d%s%dn,p-num1,p-name1,p-major,p-type,p-credit,p-period,p-teacher,p-people);p=p-ne*t;fclose(fp);printf(已储存入%s 文件!n,filepa

22、th);void intos()/存储学生信息 FILE*fp;struct student*p;char filepath30;printf(请输入路径:);getchar();gets(filepath);if(fp=fopen(filepath,wt)=NULL)printf(n 无法储存!);e*it(0);p=head2;while(p!=NULL)fwrite(p,sizeof(struct student),1,fp);p=p-ne*t;fclose(fp);printf(已储存入%s 文件!n,filepath);void into()/信息存储函数 -int i;printf

23、(ttt 信息存储n);printf(1.课程信息存储n);printf(2.学生信息存储 tn);printf(3.返回主菜单n);printf(请输入 1-3n);scanf(%d,&i);switch(i)case(1):intoc();break;case(2):intos();break;case(3):break;void store()/信息存储浏览函数 int i;printf(tt 信息存储和浏览n);printf(1.课程信息浏览n);printf(2.学生信息浏览n);printf(3.信息存储n);printf(4.返回主菜单n);printf(请输入 1-4:n);s

24、canf(%d,&i);switch(i)case(1):listc();break;case(2):lists();break;case(3):into();break;case(4):break;-void search1()/按学生编号查找学生信息 int a,b;struct student*p;printf(请输入学生编号);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!=0&bnel

25、enumb);printf(%10dn,p-nelen);p=p-ne*t;void search2()/按学生查找学生信息 int b;char name20;struct student*p;printf(请输入要查找的学生:);scanf(%s,name);p=head2;printf(*学生 所选课程编号 所选课程学分n);while(p!=NULL)-if(strcmp(name,p-name2)=0)printf(%6d%13s,p-num2,p-name2);for(b=0;p-nelenumb!=0&bnelenumb);printf(%10dn,p-nelen);p=p-ne

26、*t;void search()/学生信息查找主函数 int i;printf(ttt 学生信息查找);printf(n1.按*查找);printf(n2.按查找);printf(n3.返回主菜单);printf(n 请输入 1-3:);scanf(%d,&i);switch(i)case 1:search1();break;case 2:search2();break;case 3:break;void main()/主函数 char m;int i;start:printf(ttt*n);-printf(ntttt 欢送使用此系统!n);printf(ttt*n);printf(n);pr

27、intf(tt 菜单:n);printf(ttt1.录入课程信息n);printf(ttt2.课程信息管理n);printf(ttt3.录入学生信息n);printf(ttt4.学生信息管理n);printf(ttt5.学生选课n);printf(ttt6.信息存储与浏览n);printf(ttt7.查找学生信息n);printf(ttt8.退出系统);printf(tttn 请输入 1-8:n);scanf(%d,&i);if(scanf(%d,&i)if(i8)printf(请重新输入:n);goto start;if(scanf(%c,&m)printf(输入错误,请重新输入:n);go

28、to start;switch(i)case 1:system(cls);load();goto start;break;case 2:system(cls);managementc();goto start;break;-case 3:system(cls);input();goto start;break;case 4:system(cls);managements();goto start;break;case 5:system(cls);elective();goto start;break;case 6:system(cls);store();goto start;break;case 7:system(cls);search();goto start;break;case 8:system(cls);printf(Thank you!nnBye-Bye!n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁