收藏 分销(赏)

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

上传人:a199****6536 文档编号:3326870 上传时间:2024-07-02 格式:DOC 页数:55 大小:79.54KB
下载 相关 举报
学生选课管理系统c语言程序.doc_第1页
第1页 / 共55页
学生选课管理系统c语言程序.doc_第2页
第2页 / 共55页
学生选课管理系统c语言程序.doc_第3页
第3页 / 共55页
学生选课管理系统c语言程序.doc_第4页
第4页 / 共55页
学生选课管理系统c语言程序.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

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;/姓名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;struct couse * p;ch

3、ar 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=p-

4、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-name1,

5、&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,&p1-t

6、each,&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) printf(找

7、不到%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=(stru

8、ct 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(ntt

9、t1.从键盘录入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 cou

10、se *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-te

11、ach,&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-num1

12、) 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(ttt*

15、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 studen

16、t *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student);printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n); printf(学生学号t学生姓名t总学分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; el

17、se 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(nt

18、ttt欢迎使用此系统!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; e

19、lse 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); pri

20、ntf(请选择(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); go

21、to end; p1=head2; while(num3!=p1-num2 & p1-next!=NULL) p2=p1; p1=p1-next; if(num3=p1-num2) printf(ttt重新修改数据); printf(ttt学生学号t学生姓名); 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 managemen

23、ts()/学生信息管理主函数 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);bre

24、ak; 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;

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

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

27、n,p-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(学号 学生姓名 所选课程编号 所选课程学分n);while(p!=NULL)if(p-num2=a)printf(%6d%13s ,p-num2,p-n

28、ame2);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-num

29、1,p-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%12

30、d,p-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();searchguanliyuan();break;c

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服