




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选文库 #include #include #include int N1,N2; struct student int num2; char name220; int nelenum50; /所选课程编号 23 int nelen; /所选课程学分和 struct student * next; ; struct course int num1; /课程编号 struct course *next; /结构体指针 char name120; char major20; char type20; int credit; int period; char teacher20; int peop
2、le; /选此门课程的人数 ; struct course * head1; 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); sea nf(%d%s%s%s%d%d%s, p1-peop le=0; head仁NULL; while( p1- nu m1!=0) N1=N1+1; if(N1=1)head1= p
3、1; else p2-n ext=p1; p2=p1; p 1=(struct course * )malloc(sizeof(struct course); sea nf(%d%s%s%s%d%d%s, p1-peop le=0; /从文件录入课程信息 p2- next=NULL; void zha ng1() FILE * fp; char file path20; struct course *p 1,* p2; N1=0; printf(请输入您要读取的路径:); getchar(); gets(file path); if(fp=fo pen (file path,r)=NULL)
4、printf(找不到 s 文件!n,filepath); exit(O); p1=p 2=(struct course*)malloc(sizeof(struct course); fsca nf(fp,%d%s%s%s%d%d%s%d, while(!feof(fp) N1=N1+1; if(N1=1) head仁p1; else p2-n ext=p1; p2=p1; p 1=(struct course * )malloc(sizeof(struct course); fsca nf(fp,%d%s%s%s%d%d%s%d, p2- next=NULL; void load() 录入课程
5、信息函数 int i; printf(ttt 录入课程信息 n); printf(n1.从键盘录入); printf(n2.从文件录入); printf(n3.返回主菜单 n); printf(请选择 1-3:); sca nf(%d, switch(i) case 1: zhang(); break; case 2:zha ng1();break; /增加课程信息 case 3:break; void in sert(struct course *in course) struct course *p 0,* p1,* p2; p1=head1; p0=in course; if(head1
6、=NULL) head仁 p0; p0- next=NULL; else while( p0- nu m1 p1- num1) if(p0-nu m1v=p1-nu m1) if(head1=p1) head仁 p0; else p2-n ext=p0; p0-n ext=p1; else p1-n ext=pO; pO- next=NULL; N1=N1+1; void delc(i nt nu m1) /删除课程信息 struct course *p 1,* p2; if(head1=NULL) printf(n 无法删除!n); goto end; p1=head1; while( nu
7、 m1!=p1- num1 if(nu m仁=p1-nu m1) if(p 1=head1) head仁 p1-n ext; else p2-n ext=p1-n ext; printf(已删除 n); N1=N1-1; else printf(没有此课程n); end:; void man ageme ntc() 课程信息管理函数 struct course * p1; int i,nu m1; printf(ttt 课程信息管理 n); prin tf(1.添加课程 n); prin tf(2.删除课程 n); prin tf(3.返回 n); printf(请输入 1-3:n); sca
8、 nf(%d, switch(i) case 1: p1=(struct course *)malloc(sizeof(struct course); printf(课程编号t课程名称t主修t课程性质t学分t课时t教师n); sca nf(%d%s%s%s%d%d%s, p1-peop le=0; break; in sert( p1); case 2:printf(请输入您要删除的课程编号:n); scan f(%d, delc (nu m1); break; case 3:break; void putin(v oid) /从键盘录入学生信息 int i; struct stude nt
9、*p 1,* p2; N2=0; p1=p 2=(struct stude nt *)malloc(sizeof(struct stude nt); printf(学号 t 姓名 n); sca nf(%d%s, p1-n ele n=0; for(i=0;i nele numi=0; head2=NULL; while( p1- nu m2!=0) N2=N2+1; if(N2=1) head2=p1; else p2-n ext=p1; p2=p1; p 1=(struct stude nt * )malloc(sizeof(struct stude nt); scan f(%d%s, p
10、1-n ele n=0; for(i=0;i nele numi=0; p2- next=NULL; void pu ti n2() /从文件录入学生信息 int i=0; FILE * fp; char file path20; struct stude nt *p 1,* p2; N2=0; printf(请输入您要读取的路径:); getcharO; gets(file path); if(fp=fo pen (file path,rt)=NULL) printf(找不到 %s 文件!n,filepath); exit(0); p1=p 2=(struct stude nt*)mallo
11、c(sizeof(struct stude nt); fread( p1,sizeof(struct stude nt),1,fp); head2=NULL; while(!feof(fp) i=0; N2=N2+1; if(N2=1) head2=p1; else p2-n ext=p1; p2=p1; p 1=(struct stude nt * )malloc(sizeof(struct stude nt); fread( p1,sizeof(struct stude nt),1,fp); p2- next=NULL; void inpu t() /录入学生信息函数 int i; pri
12、ntf(ttt 录入学生信息 n); printf(n1.从键盘录入 n); printf(2.从文件录入n); printf(3.返回主菜单n); printf(请输入 1-3:n); sea nf(%d, switch(i) ease 1:putin(); break; ease 2:pu ti n2(); break; ease 3:break; void in serts(struet stude nt * in eouse) II增加学生信息 struet stude nt *p 0,* p1,* p2; p1=head2; p0=in eouse; if(head2=NULL) h
13、ead2=p0; p0- next=NULL; else while( p0- nu m2 p1- num2) p仁p1-n ext; if(p0- num2 nu m2) if(head2=p1) head2=p0; else p2-n ext=pO; pO-n ext=p1; else p1-n ext=pO; pO- next=NULL; II删除学生信息 N2=N2+1; void dels(i nt num2) struct stude nt *p 1,* p2; if(head2=NULL) printf(n 无法删除 n); goto end; p1=head2; while(
14、nu m2!=p1- num2 if(nu m2=p1-nu m2) if(p 1=head2) head2=p1-n ext; else p2-n ext=p1-n ext; printf(已删除 n); N2=N2-1; else printf(没有此学生编号n); end:; void man ageme nts() 学生信息管理函数 struct stude nt * p1; int i,num2; printf(ttt 学生信息管理 n); printf(1.添加学生信息n); printf(2.删除学生信息n); printf(3.返回主菜单n); printf(请选择 1-3:n
15、); sca nf(%d, switch(i) case 1: p1=(struct stude nt *)malloc(sizeof(struct stude nt); p1-n ele n=0; p1- nele nu m0=0; prin tf( numtn amen); scan f(%d%s, in serts( p1);break; case 2:printf(请输入您要删除的学生编号:n); scan f(%d, dels( nu m2); break; case 3:break; void elect() /学生选课 struct stude nt * s; struct co
16、urse * p; int a,i,b; printf(请输入您的学号:n); sca nf(%d, s=head2; while(s- nu m2)!=a if(s-nu m2!=a) printf(您的信息不存在,请重新输入:n); goto end; if(s- nele n)10) printf(您的学分已满); goto end; printf(请输入您要选修的课程编号n); sca nf(%d, for(i=0;(s-n ele nu mi)=0;i+); s-n ele nu mi=b; p=head1; while( (p-nu m1)!=b) p=p-n ext; for(i
17、=0;(s-n ele nu mi)!=0;i+); s-n ele nu mi=b; (p-peop le)+; (s-n ele n)=(s-n ele n)+( p-credit); (p-peop le)+; en d:; void back() 学生退课 struct stude nt * p; struct course * p1; int b,i,j,a; printf(请输入您的学号:n); sca nf(%d, p=head2; while( p- nu m2!=a if(p=NULL) printf(您的信息不存在:n); else printf(请输入您要退选的课程:n)
18、; scan f(%d, p1=head1; while( p1-nu m1!=b) p仁p1-n ext; for(i=0;p-n ele nu mi!=b;i+); for(j=i; p-n ele nu mj!=0;j+) p-n ele nu mj=p-n ele nu mj+1; p-n ele num T=0; (p-n ele n)=(p-n ele n)-(p 1-credit); (p1-peop le)-; prin tf(succeed!n); void elective() 学生选课信息管理 int i; printf(ttt学生选课信息管理n); prin tf(1.
19、选课 n); prin tf(2.退课 n); printf(3.返回主菜单n); printf(请输入 1-3:n); sea nf(%d, 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) prin tf(%6d%13s%13s%10s%7d%7d%12s%5dn, p-n um1, p-n ame1
20、, p-major. p-ty pe, p-credit, p-p eriod, p-teacher, p-p eo ple); /浏览学生信息 p=p-n ext; void lists() struct stude nt * p; int a; p=head2; printf(学生编号 学生姓名 所选课程编号所选课程学分n); while( p!=NULL) prin tf(%6d%13s ,p-n um2, p-n ame2); prin tf(%6d, p- nele n); for(a=0; p-n ele numa!=O prin tf(n); 存储课程信息 p=p-n ext;
21、void in toc() FILE * fp; struct course * p; char file path30; printf(输入路径:); getcharO; gets(file path); if(fp=fo pen (file path,w)=NULL) 无法储存!); exit(O); p=head1; while( p!=NULL) fprin tf(fp,%d%s%s%s%d%d%s%dn, p- num1, p- namel, p-major, p-ty pe, p- credit ,p-p eriod, p-teacher, p-peop le); p=p-n ex
22、t; fclose(fp); 存储学生信息 printf(已储存入 %s 文件!n,filepath); void in tos() FILE * fp; struct stude nt * p; char file path30; printf(请输入路径:); getcharO; gets(file path); if(fp=fo pen (file path,wt)=NULL) printf(n 无法储存!); exit(0); p=head2; while( p!=NULL) fwrite( p,sizeof(struct stude nt),1,fp); p=p-n ext; fcl
23、ose(fp); /信息存储函数 printf(已储存入 %s 文件!n,filepath); void in to() int i; printf(ttt 信息存储 n); printf(1.课程信息存储n); printf(2.学生信息存储tn); printf(3.返回主菜单n); printf(请输入 1-3n); sea nf(%d, switch(i) case(1):i ntoc();break; case(2):i ntos();break; case(3):break; void store() /信息存储浏览函数 int i; printf(tt信息存储和浏览n); pri
24、ntf(1.课程信息浏览n); printf(2.学生信息浏览n); printf(3.信息存储 n); printf(4.返回主菜单n); printf(请输入 1-4:n); sca nf(%d, switch(i) case(1):listc();break; case(2):lists();break; case(3):i nto();break; case(4):break; void search1() /按学生编号查找学生信息 int a,b; struct stude nt * p; printf(请输入学生编号); sca nf(%d, p=head2; printf(学号
25、学生姓名 所选课程编号所选课程学分n); while( p!=NULL) if(p-nu m2=a) prin tf(%6d%13s ”,p-nu m2, p-n ame2); for(b=0; p-n ele numb!=0 prin tf(%10dn, p-n ele n); p=p-n ext; void search2() /按学生姓名查找学生信息 int b; char n ame20; struct stude nt * p; printf(请输入要查找的学生姓名:); sca nf(%s, name); p=head2; printf(学号 学生姓名 所选课程编号所选课程学分n); while( p!=NULL) 学生信息查找主函数 /主函数 if(strc mp(n ame ,p-n ame2)=0) prin tf(%6d%13s ,p-n um2, p- name2); for(b=0; p- nele numb!=O prin tf(%10dn, p-n ele n); p=p-n ext; void searchO int i; printf(ttt学生信息查找); printf(n1.按学号查找); printf(n2.按姓名查找); printf(n3.返回主菜单); printf(n 请输入 1-3:); sca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团购专员管理办法
- 园林施肥管理办法
- 固定资金管理办法
- 国企机电管理办法
- 国债质押管理办法
- 国外空间管理办法
- 国税微博管理办法
- 2025年古代文学常识知识竞赛试题库及答案(共230题)
- 2025至2030全球及中国救灾物流行业产业运行态势及投资规划深度研究报告
- 2025至2030中国共享充电宝行业现状分析及发展策略研究报告
- 消防设备故障处理售后服务承诺及维保措施
- 纵隔子宫超声诊断
- 天然气管道输送技术课件
- 快递店运营管理制度
- 现场仪表维修课件
- 时空地理行业可信数据空间建设指引
- 输血法律法规理论培训试题及答案
- 2025年磁性展示板项目市场调查研究报告
- 精细化物业管理手册(服务细节亮点及创新服务图集)
- 《医疗机构工作人员廉洁从业九项准则》解读
- 江苏省南京市秦淮区重点中学2024-2025学年初三下学期中考诊断性测试化学试题含解析
评论
0/150
提交评论