学生选课管理系统c语言程序.doc

上传人:知****量 文档编号:13005595 上传时间:2022-04-27 格式:DOC 页数:39 大小:93KB
返回 下载 相关 举报
学生选课管理系统c语言程序.doc_第1页
第1页 / 共39页
学生选课管理系统c语言程序.doc_第2页
第2页 / 共39页
点击查看更多>>
资源描述

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

1、- .#include #include#includeint 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 * next;struct student

2、/学生信息构造体 int num2;/学号 char name220;/XXint 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;struct couse * p

3、;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%s%s%d%d%d%d%d%d%dn,p-num1,p-name1,p-type,p-hour,p-teach,p-exp,p-credit,p-semester,p-nelepeo,p-Melepeo);p

4、=p-next;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(编号名称性质总学时上课学时实验上机学时学分开课学期已选人数课程上限n);scanf(%d %s %s %d %d %d %d %d %d %d,&p1-num1,p1-nam

5、e1,&p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); 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); scanf(%d %s %s %d %d %d %d %d %d %d,&p1-num1,p1-name1,p1-type,&p1-hour,&p

6、1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); p2-next=NULL;void filec()/录入键盘子函数(从文件录入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0;printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(输入要读入的文件路径:); getchar(); gets(filepath); if(fp=fopen(filepath,rb)=NULL) print

7、f(找不到%s文件!n,filepath); exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,%d%s%s%d%d%d%d%d%d%d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); head1=NULL; while(!feof(fp) N1=N1+1; if(N1=1)head1=p1; else p2-next=p1; p2=p1; p1=(s

8、truct couse * )malloc(sizeof(struct couse); fscanf(fp,%d%s%s%d%d%d%d%d%d%d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); p2-next=NULL;void inputc()/录入课程主函数 int i;printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(ttt录入课程信息n); printf(

9、nttt1.从键盘录入n); printf(ttt2.从文件录入n); printf(ttt3.返回上一菜单n); printf(请选择(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

10、couse *p1,*p2; if(head1=NULL) printf(nttt没有课程,无法修改!n); goto end; p1=head1; while(num2!=p1-num1 & p1-next!=NULL) p2=p1; p1=p1-next; if(num2=p1-num1) printf(ttt请重新输入数据进展修改n);printf(课程编号课程名称课程性质总学时上课学时实验上机学时学分开课学期课程已选人数课程上限n);scanf(%d %s %s %d %d %d %d %d %d %d %d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1

11、-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo);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!=p1-num1 & p1-next!=NULL) p2=p1; p1=p1-next; if(num1=p1-nu

12、m1) if(p1=head1) head1=p1-next; else p2-next=p1-next; printf(已删除该编号课程!n); N1=N1-1; else printf(无该编号的课程!n); end:;void managementc()/课程管理主函数 int i,num1,num2=1;printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(ttt课程管理n);printf(ttt1.添加课程n); printf(ttt2.修改课程n); printf(ttt3.删除课程n);printf(ttt4.存

13、储课程信息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(ntttt欢送使用此系统!n); printf(ttt*n);printf(请输入要修改的课程编号:n);scanf(%d,&num2);insertc(num2);managementc();system(cls); break; case(3): system(cls

14、);printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(请输入要删除课程的编号:n); scanf(%d,&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(tt

15、t*n); printf(ntttt欢送使用此系统!n); printf(ttt*n);printf(请输入路径:);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

16、 *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student);printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(学生学号t学生XXt总学分n); scanf(%d %s %d,&p1-num2,p1-name2,&p1-score);p1-nelen=0;p1-gainscore=0; for(i=0;inelenumi=0; head2=NULL; while(p1-num2!=0) N2=N2+1; if(N2=1)head2=p1; els

17、e p2-next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student); scanf(%d %s %d,&p1-num2,p1-name2,&p1-score);p1-nelen=0;p1-gainscore=0; for(i=0;inelenumi=0; p2-next=NULL;void files()/录入学生信息子函数从文件录入 int i=0; FILE * fp; char filepath20; struct student *p1,*p2; N2=0;printf(ttt*n); printf(ntttt

18、欢送使用此系统!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(!feof(fp) i=0; N2=N2+1; if(N2=1)head2=p1; else

19、 p2-next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student); fread(p1,sizeof(struct student),1,fp); p2-next=NULL;void inputs()/录入学生信息主函数 int i;printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(ttt录入学生信息n); printf(nttt1.从键盘录入n); printf(ttt2.从文件录入n); printf(ttt3.返回上一菜单n); printf

20、(请选择(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; void inserts(int num3)/学生信息管理子函数(修改学生信息)int i;struct student *p1,*p2; if(head2=NULL) printf(nttt没有该学生信息,无法修改!n); goto

21、end; p1=head2; while(num3!=p1-num2 & p1-next!=NULL) p2=p1; p1=p1-next; if(num3=p1-num2) printf(ttt重新修改数据); printf(ttt学生学号t学生XX); scanf(%d %s %d,&p1-num2,p1-name2,&p1-score); p1-nelen=0;p1-gainscore=0; for(i=0;inelenumi=0; printf(ttt修改完毕); else printf(ttt无该学号的学生!n); end:;void dels(int num2)/学生信息管理子函数

22、删除学生信息) struct student *p1,*p2; if(head2=NULL) printf(nttt没有该学生信息,无法删除!n); goto end; p1=head2; while(num2!=p1-num2 & p1-next!=NULL) p2=p1; p1=p1-next; if(num2=p1-num2) if(p1=head2) head2=p1-next; else p2-next=p1-next; printf(ttt已删除该学生信息!n); N2=N2-1; else printf(ttt无该学号的学生!n); end:;void managements()

23、/学生信息管理主函数 int i,num2,num3;printf(ttt*n); printf(ntttt欢送使用此系统!n); printf(ttt*n); printf(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;

24、case(2): system(cls);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,&num2); dels(num2);managements(); break; cas

25、e(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.课程信息管理);printf(nttt2.学生信息管理);printf(nttt3.返回上一菜单);printf(n请输入1-3:);scanf(%d,&i);switch(i)case 1:system(cls);man

26、agementc();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欢送使用此系统!n); printf(ttt*n);printf(课程编号 课程名称 课程性质 总学时 授课学时 上机学时 学分 开课学期 n);while(p!=NULL)printf(num:%6dname:%13s%13s%10d%7d%7d%12d%5d%5dn,p-

27、num1,p-name1,p-type,p-hour,p-teach,p-exp,p-credit,p-semester);p=p-next;void search1() /按学号查找学生信息int a,b;struct student *p;printf(ttt*n);printf(ntttt欢送使用此系统!n);printf(ttt*n);printf(ttt请输入学生学号);scanf(%d,&a);p=head2;printf(学号 学生XX 所选课程编号 所选课程学分n);while(p!=NULL)if(p-num2=a)printf(%6d%13s ,p-num2,p-name2

28、);for(b=0;p-nelenumb!=0&bnelenumb);printf(%10dn,p-nelen);p=p-next;void search2() /按课程学分查询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,p-

29、name1,p-type,p-credit,p-nelepeo);p=p-next;void search3() /按课程性质查询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(%6d%13s%12s%12d%12d,p-

30、num1,p-name1,p-type,p-credit,p-nelepeo);p=p-next;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(%6d%13s%12s%12d ,p-num1,p-name1,p-type,p-nelepeo);p=p-next;void searchguanliyuan() /管理员信息查找函数int i;printf(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();searchguanliyua

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

当前位置:首页 > 研究报告 > 设计方案

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

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