已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. #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/学生信息结构体 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;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=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-name1,&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-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) printf(找不到%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=(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); 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); 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 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-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-num1) 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.存储课程信息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);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*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 *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; else 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欢迎使用此系统!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 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(请选择(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 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)/学生信息管理子函数(删除学生信息) 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()/学生信息管理主函数 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; 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; 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);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%5dn,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-name2);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-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-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;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,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(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); printf(ttt5.返回上一级菜单);printf(n请输入1-5: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() /学生选课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)!=a&s-next!=NULL) s=s-next;if(s-num2!=a)printf(您的信息不存在,请重新输入:n);goto start;if(s-nelen)=20)printf(您的学分已满);goto end; start2:;printf(请输入您要选修的课程编号:);scanf(%d,&b);p=head1;while(p-num1)!=b&p-next!=NULL) p=p-next;if(p-num1!=b)printf(您输入的课程不存在,请重新输入:n);goto start2;if(p-nelepeo)=(p-Melepeo)printf(此课程人数已满,请选择其他课程n);goto start2;for(i=0;(s-nelenumi)!=0;i+);s-nelenumi=b;(p-nelepeo)+;(s-gainscore)=(s-gainscore)+(p-credit);(s-nelen)+;for(j=0;jnelenameij)=(p-name1j);printf(选课成功n);end:;void searchstu() /学生信息查找函数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();searchstu();break;case 2:system(cls);search2();searchstu();break;case 3:sys
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度摄影师与摄影棚运营方居间合同2篇
- 二零二五版社区配送订餐服务合同范本与社区管理协议3篇
- 二零二五年度酒店地毯绿色生产与环保认证合同3篇
- 二零二五年新能源充电桩建设运营合同样本3篇
- 二零二五版高端住宅项目全程代理销售合同3篇
- 二零二五版基因合成与生物技术知识产权转让合同3篇
- 二零二五版10月大型设备运输委托合同2篇
- 二零二五版广西事业单位聘用示范性合同模板12篇
- 2025年度出口货物环保认证服务合同3篇
- 二零二五年度腻子材料国际贸易代理合同2篇
- 纳米技术增强早期疾病生物标志物的检测
- 产品销量分析表折线图excel模板
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 【真题】2023年南京市中考语文试卷(含答案解析)
- 功率模块可靠性寿命评估与预测
- 案卷评查培训课件模板
- 湘教版七年级地理第一学期期末试卷分析
- 上海春季高考英语真题试题word精校版(含答案)
- “数”我精彩-“学”有特色-小学六年级数学寒假特色作业展示
- 牛津译林版八年级上册英语8A期末复习-阅读理解(含答案)
- 普通高等新郎接亲试卷(2022全国卷)
评论
0/150
提交评论