版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#include#include#includeint n=0; /n为结点个数struct kecheng /声明结构体 int bianhao; char name10; char xingzhi10; int zongxueshi; int shoukexueshi; int shangjixueshi; float xuefen; int kaikexueqi; struct kecheng *next;struct kecheng *head;struct kecheng *creat() /创建链表.此函数带回一个指向链表头的指针 void save
2、(struct kecheng *head); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); struct kecheng *head,*p1,*p2; p1=p2=(struct kecheng *) malloc(sizeof (struct kecheng); /开辟一个新单元 scanf(%d,&p1-bianhao); head=NULL; while(p1-bianhao!=0) scanf(%s%s%d%d%d%f%d,p1-name,p1-xingzhi,&p1-zongxueshi,&p1-shoukexueshi,&p1
3、-shangjixueshi,&p1-xuefen,&p1-kaikexueqi); n+; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(struct kecheng *)malloc(sizeof (struct kecheng); scanf(%d,&p1-bianhao); p2-next=NULL; save(head); return(head);void save(struct kecheng *head) /保存到文件中 struct kecheng *p; FILE *fp; fp=fopen(所有课程信息.txt,w); /把输入
4、的课程信息在kecheng.txt中保存 p=head; while(p!=NULL) fprintf(fp,%dt%st%st%dt%dt%dt%.1ft%dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); p=p-next; fclose(fp); void chakan(struct kecheng *head) /查看所有课程信息,即可以选的课程 struct kecheng *p; p=head; printf(课程编号 课程名称 课程性质
5、总学时 授课学时 实践或上机学时 学分 开课学期n); while(p!=NULL) printf(%dt %st %st %dt %dt %dt %.1ft %dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); p=p-next; void search(struct kecheng *head) /按编号或性质查询 int a,bianhao; /a为对菜单进行选择的变量 int flag=1; /flag为判断是否找到该课程 char xingz
6、hi10; struct kecheng *p; printf(若要按课程性质查找请输入1n); printf(若要按课程编号查找请输入2n); printf(退出查询请按0n); scanf(%d,&a); while(a!=0) switch(a) case 1:printf(请输入要查找的课程的性质:n); /以课程性质选课 scanf(%s,xingzhi); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); p=head; while(p!=NULL) if(strcmp(xingzhi,p-xingzhi)=0) printf(%d
7、t %st %st %dt %dt %dt %.1ft %dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); flag=0; p=p-next; if(flag=1) printf(对不起,未找到,请重新输入或退出!n); flag=1; break; case 2:printf(输入要查找的课程的编号n); /以课程编号选课 scanf(%d,&bianhao); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开
8、课学期n); p=head; while(p!=NULL) if(p-bianhao=bianhao) printf(%dt %st %st %dt %dt %dt %.1ft %dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); flag=0; p=p-next; if(flag=1) printf(对不起,未找到,请重新输入或退出!n); flag=1; break; printf(若要按课程性质查找请输入1n); printf(若要按课程编号查找
9、请输入2n); printf(退出查询请按0n); scanf(%d,&a); void xuanke(struct kecheng *head) /学生按编号选课 FILE *fp; fp=fopen(学生已选课.txt,w); int bianhao,i=0,j,a20; /数组a中存放已选好的课程 struct kecheng *p; float s=0; /s为统计所选课程的学分 printf(请输入你想选的课程编号,以0结束:n); scanf(%d,&bianhao); while(bianhao!=0) for(j=0;jbianhao) p=p-next; else break
10、; if(p=NULL) printf(无此课程,请重新输入n); else s=s+p-xuefen; /若选课成功,就把该课程的学分累加 printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); printf(%dt %st %st %dt %dt %dt %.1ft %dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); ai=bianhao; fprintf(fp,%dt %st %st %dt %dt
11、%dt %.1ft %dn,p-bianhao,p-name,p-xingzhi,p-zongxueshi,p-shoukexueshi,p-shangjixueshi,p-xuefen,p-kaikexueqi); i+; scanf(%d,&bianhao); fclose(fp); if(sbianhao&p1-next!=NULL) /p1指向的不是所要找的课程编号 p2=p1; p1=p1-next; /p1后移一个结点 if(m=p1-bianhao) if(p1=head) /若p1 指向的是首结点,把第二个结点地址赋给head head=p1-next; /否则将下一结点地址赋
12、给前一结点地址 else p2-next=p1-next; n=n-1; else printf(找不到你要删除的课程!n); scanf(%d,&m); save(head); return(head);struct kecheng *insert(struct kecheng *head) /增加一门课程的函数 struct kecheng *p0,*p1,*p2; /insert_kc为增加课程的变量 p1=head;p0=(struct kecheng *)malloc(sizeof (struct kecheng); /p1指向第一个结点,p0指向要插入的结点 printf(请输入你
13、要增加的课程:n); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); scanf(%d%s%s%d%d%d%f%d,&p0-bianhao,p0-name,p0-xingzhi,&p0-zongxueshi,&p0-shoukexueshi,&p0-shangjixueshi,&p0-xuefen,&p0-kaikexueqi); while(p0-bianhaop1-bianhao)&(p1-next!=NULL) p2=p1; /使p2指向刚才p1指向的结点 p1=p1-next; /p1后移一个结点 if(p0-bianhaobianh
14、ao) if(head=p1) head=p0; /将增加课程的地址插到原来第一个结点之前 else p2-next=p0; /插到p2指向的结点之后 p0-next=p1; else p1-next=p0;p0-next=NULL; / 插到最后的结点之后 n=n+1; /结点数加1 save(head); return(head);struct kecheng *write() FILE *fp; struct kecheng *head,*p1,*p2; / fp=fopen(所有课程信息.txt,r); if(fp=fopen(所有课程信息.txt,r)=NULL ) printf(n
15、o data please input source datan); head=creat(); /head=creat(); /return NULL; /把文件中的信息写入一个链表 p1=p2=(struct kecheng *) malloc(sizeof (struct kecheng); fscanf(fp,%d,&p1-bianhao); head=NULL; while(!feof(fp) fscanf(fp,%s%s%d%d%d%f%d,p1-name,p1-xingzhi,&p1-zongxueshi,&p1-shoukexueshi,&p1-shangjixueshi,&p
16、1-xuefen,&p1-kaikexueqi); n+; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=(struct kecheng *)malloc(sizeof (struct kecheng); fscanf(fp,%d,&p1-bianhao); p2-next=NULL; return head;void yixuan() FILE *fp;struct kecheng a20; int i=0,j; fp=fopen(学生已选课.txt,r); while(!feof(fp) fscanf(fp,%d%s%s%d%d%d%f%dn,&a
17、i.bianhao,,ai.xingzhi,&ai.zongxueshi,&ai.shoukexueshi,&ai.shangjixueshi,&ai.xuefen,&ai.kaikexueqi); i+; fclose(fp); printf(课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期n); for(j=0;ji;j+) printf(%dt %st %st %dt %dt %dt %.1ft %dn,aj.bianhao,,aj.xingzhi,aj.zongxueshi,aj.shoukexueshi,aj.shangjix
18、ueshi,aj.xuefen,aj.kaikexueqi);void welcome() char c=2; /ASCII码对应的图形,一个笑脸 printf(ttt*n); /主菜单 printf(ttt* 欢迎使用选课系统 *n); printf(ttt*n); printf( %c管理员登入请按1n,c); /不同的对象登入后下有不同的子菜单 printf( %c学生选课登入请按2n,c); void teacher_welcome() /欢迎管理员的菜单 char c=2,str8; /ASCII码对应的图形,一个笑脸,str为存放密码的数组 int i,m=0; /m为统计输入密码
19、的次数 printf(请输入8位密码n); getchar(); gets(str); for(i=0;i=3) /密码错误超过三次退出系统 printf(对不起,密码错误超过三次!n); exit(0); void student_welcome() /欢迎学生的菜单 char c=2; printf( %c要查看所有的课程信息请按1n,c); printf( %c要查询你想选的课程请按2n,c); printf( %c要选修课程请按3n,c); printf( %c要查看已选课程请按4n,c); printf( %c要退出系统请按0n,c);void main() int m;char c=2; head=write(); welcome(); scanf(%d,&m); if(m=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 8 Once upon a time (Period 6)单元复习课同步练2025-2026学年人教版英语七年级下册
- 2025-2030年国际交流助手App行业跨境出海战略分析研究报告
- 自动化电线束编织机行业深度调研及发展战略咨询报告
- 铁氰化钠(赤血盐钠)行业盈利模式创新与变革分析报告
- 2025-2030年自动化矿石装载机行业深度调研及发展战略咨询报告
- 国有金融机构绩效体系升级成功案例|北京华恒智信方案
- 2025年抚州市第三医院招聘考试试卷真题
- 2025年潮州辅警真题
- 保健品考试题及答案
- 2005年浙江省宁波市中考数学试卷【含答案】
- 超声聚焦治疗技术原理与临床应用
- “1”证书制度下护理专业老年护理教学改革的探索与实践
- 肉毒素需要管理制度
- 广州开放大学2024年《区域经济学》形考作业1-4终考
- CJ/T 184-2012不锈钢衬塑复合管材与管件
- 工装模具管理制度
- 饭店厨房装修合同模板
- 汽车维修安全生产综合应急预案
- DL-T5394-2021电力工程地下金属构筑物防腐技术导则
- 提升数字素养与信息技术应用课件
- 内江市2019-2020学年度第一学期期末考试初中八年级数学试题
评论
0/150
提交评论