




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#includeint input(struct studcode *);/输入学生信息的函数void instruct(void); /打印提示信息void picture();/制表函数void output(struct studcode *);/输出函数void search(struct studcode *);/查找信息函数int increase(struct studcode *);/增加学生信息的函数void dele(struct studcode *);/删除学生记录的函数void printall(struct studcode *);/输出全部学生信息的函数void average(struct studcode *headp,struct analysis *head );/统计各科目平均分int sort(struct analysis *head);/排序函数(升序排列)void date_load(struct studcode *headp);/程序开始载入信息void date_save(struct studcode *headp);/程序结束保存数据struct analysischar name_ex20;/实验名称int number; /统计到课人数float aver;/平均分struct analysis *next;struct student char name_tea20;/教师名字char name_stu20;/学生名字char clas20;/班级char name_ex20;/实验名称float match;/分数;struct studcodestruct student date;struct studcode *next;/建立链表的指针;int main()char choose;struct studcode *head=NULL;struct analysis *head1=NULL;/date_load(&head); instruct();printf(n请选择功能:);choose=getchar();while(choose!=0)/输入0结束程序switch(choose) case 1: input(&head);/建立链表 getchar(); getchar(); break; case 2: search(head);/查找信息 getchar(); getchar(); break; case 3: dele(&head);/删除信息 getchar(); getchar(); break; case 4: increase(head);/增加信息 getchar(); getchar(); break; case 5: printall(head);/输出全部信息 getchar(); getchar(); break; case 6: average( head,&head1 );/统计各科平均分并升序输出 getchar(); getchar(); break; default: printf(n 选择错误,重选 n);instruct();printf(n请选择功能:);choose=getchar();system(cls);date_save(head);printf(谢谢使用本系统n);return 0; void instruct(void)system(cls);printf(nttt 试验管理系统 tttt ); printf(nttt 1 建立学生信息链表tttt );printf(nttt 2 搜索学生相关信息tttt );printf(nttt 3 删除某个学生信息tttt );printf(nttt 4 增加某个学生信息tttt );printf(nttt 5 输出链表全部信息tttt );printf(nttt 6 统计各科目平均分tttt );printf(nttt 0 退出程序 tttt );int input(struct studcode *headp)struct studcode *p ,*tail;char a4;system(cls);date_load(headp);if(*headp!=NULL)printf(链表信息载入成功);return 1;elseprintf(目前没有数据保存请从终端输入数据);printf(nttt 成绩输入功能 tttt );p=(struct studcode *)malloc(sizeof(struct studcode );if(p=NULL)printf(error);exit(-1);printf(n请按提示输入相关信息);printf(n教师姓名:);scanf(%s,_tea);printf(学生姓名:);scanf(%s,_stu);printf(学生班级:);scanf(%s,p-date.clas);printf(实验名称:);scanf(%s,_ex);printf(评分:);scanf(%f,&p-date.match);p-next=*headp;*headp=p;tail=p;printf(是否继续输入 输入NO退回主菜单 其他任意字符继续当前操作 );scanf(%s,a);while(strcmp(a,NO)!=0)system(cls);printf(nttt 成绩输入功能 tttt );p=(struct studcode *)malloc(sizeof(struct studcode);if(p=NULL)printf(error);exit(-1);printf(n教师姓名:);scanf(%s,_tea);printf(学生姓名:);scanf(%s,_stu);printf(学生班级:);scanf(%s,p-date.clas);printf(实验名称:);scanf(%s,_ex);printf(评分:);scanf(%f,&p-date.match);p-next=NULL;tail-next=p;tail=p;printf(是否继续输入 输入NO退回主菜单 其他任意字符继续当前操作 );scanf(%s,a);return 1;void search(struct studcode *headp)int flag=1;char a220,b4=YES;struct studcode *p;system(cls);printf(nttt 成绩查询功能 tttt );while(!strcmp(b,YES)p=headp;printf(n学生姓名:); scanf(%s,a0); printf(实验名称:); scanf(%s,a1);for(;p!=NULL;p=p-next)flag=1;if(strcmp(a0,_stu)=0&strcmp(a1,_ex)=0)flag=0;picture(); output(p);break;if(flag=1)printf(n请确认您输入的姓名或者实验名称是否正确);printf(n是否要继续使用该功能 YES/NO );scanf(%s,b);system(cls);printf(nttt 成绩查询功能 tttt );void picture()printf(ttt 实验成绩表);printf(n 教师姓名 学生姓名 学生班级 实验名称 实验成绩);void output(struct studcode *p)printf(n %14s %13s %8s %19s%8.2f,_tea,_stu,p-date.clas,_ex,p-date.match);void dele(struct studcode *headp)struct studcode *p,*last;char a20,b20,c5=YES;system(cls);while(strcmp(c,YES)=0)printf(学生姓名);scanf(%s,a);printf(实验名称);scanf(%s,b);p=*headp;while(strcmp(a,_stu)!=0 & strcmp(b,_ex)!=0 & p-next!=NULL)last=p;p=p-next;if(strcmp(a,_stu)=0 & strcmp(b,_ex)=0)if(p=*headp)*headp=p-next;elselast-next=p-next;free(p);elseprintf(请确认您输入的姓名或者实验名称是否正确);printf(输入YES继续使用该功能,输入其他任意字符退回主菜单 );scanf(%s,c);system(cls);void printall(struct studcode *headp)char a5;system(cls);picture();if(headp!=NULL)output(headp);headp=headp-next;while(headp!=NULL)output(headp);headp=headp-next;printf(n输入back返回主菜单);while(strcmp(a,back)!=0)scanf(%s,a);void average(struct studcode *headp,struct analysis *head )char a5;struct analysis *p=*head;system(cls);if(headp=NULL)printf(请先建立链表);exit(-1);p=*head;while(p!=NULL)p-aver=0;p=p-next;p=*head;while(headp!=NULL)while(strcmp(_ex,p-name_ex)!=0)p=p-next;p-aver+=headp-date.match;p=*head;headp=headp-next;while(p!=NULL)p-aver/=p-number;p=p-next;p=*head;sort(head);/求出平均值后排序while(p!=NULL)printf(%s平均分为%fn,p-name_ex,p-aver);p=p-next;printf(输入back退回主菜单);scanf(%s,a);while(strcmp(a,back)scanf(%s,a);int sort(struct analysis *head)int n=0,i,m,temp1;float temp2;struct analysis *p,*j;char temp320;p=*head;j=p-next;if(j=NULL)return 0;/如果只有一个科目的数据则不排序while(p!=NULL)/统计有几个科目,作为下面冒泡排序控制条件的依据n+=1;p=p-next;p=*head;for(i=0;inext;maverj-aver)/排序时直接交换各节点数据strcpy(temp3,p-name_ex);/交换实验名称strcpy(p-name_ex,j-name_ex);strcpy(j-name_ex,temp3);temp1=p-number;/交换到课人数p-number=j-number;j-number=temp1;temp2=p-aver;p-aver=j-aver;j-aver=temp2;p=j;j=j-next;return 1;void date_load(struct studcode *headp)char ch;FILE *f;struct studcode *p,*tail;if(f=fopen(e:input.txt,a+)=NULL)printf(error);exit(0);ch=fgetc(f);/读取第一个空格,控制格式if(ch!=EOF)/如果文件中有保存的信息则读取if(p=(struct studcode*)malloc(sizeof(struct studcode)=NULL)printf(error);exit(0);fscanf(f,%s %s %s %s %fn,_tea,_stu,p-date.clas,_ex,&p-date.match);p-next=NULL;*headp=p;tail=p;while(!feof(f)if(p=(struct studcode*)malloc(sizeof(struct studcode)=NULL)printf(error);exit(0);fscanf(f, %s %s %s %s %fn,_tea,_stu,p-date.clas,_ex,&p-date.match);p-next=NULL;tail-next=p;tail=p;fclose(f);void date_save(struct studcode *headp)FILE *f;struct studcode *p;int i;printf(是否要更新原有数据。 输入1进行更新,其他数字跳过更新步骤:);scanf(%d,&i);if(i=1)/跟新数据的模块if(f=fopen(e:input.txt,w)=NULL)printf(error);exit(0);p=headp;while(p!=NULL)fprintf(f, %s %s %s %s %fn,p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应商PCN控制指南
- 知识题库-水泥干法生产工艺基本知识考试题目及答案
- 生产支持管理办法解读
- 营造安全文化构建和谐社会
- 第三节分子的对称性与点群
- 皮肤擦伤诊疗与护理教学
- UI界面设计课件
- 现代医院护理技能体系与岗位职责
- 日本老年护理技术
- 实义动词趣味解析
- 2025年兵团职工考试试题及答案
- GIS产品维护检修
- 2023年临沧市市级单位遴选(选调)考试题库及答案
- GSP兽药经营质量管理制度
- 试模报告单模板
- 建设工程质量检测见证取样员手册
- 五年级上册数学练习题-数学好玩 图形中的规律|北师大版 含答案
- 《活着》读书分享优秀课件
- 微型桩施工方案
- 《一站到底》答题库大全之一(共800题)
- 管理学原理英文版版教学课件第10章
评论
0/150
提交评论