1、);scanf(%d,&p-cla); printf(请输入学号:%ldnum); printf(请输入姓名:%s,p-name);请输入性别:sex);请输入语文成绩:%fchinese);请输入数学成绩:math);请输入英语成绩:english);p-sum=p-chinese+p-math+p-english;ave=p-sum/3;head=p;if(n=1) p-next=NULL; elses=(Lstu *)malloc(sizeof(Lstu);s-,s-s-sum=s-chinese+s-math+s-ave=s-next=s;p=s;void List() /输出链表内容
2、 Lstu *p;int i=0; p=head; if(p=NULL)printf(Sorry,Its a Empty Listnelseprintf(nnt-nt%-5s%-5s %-10s%-8s%-7s%-10s%-10s%-10sn,序号班级学号姓名性别语文成绩数学成绩英语成绩t-nwhile (p)i+;ID=i; printf(t %-4d%-5d %-7d %-8s%-7s%-10.2f%-10.2f%-10.2fnID,p-cla,p-num,p-name,p-sex,p-chinese,p-math,p- p=p-next; void list() /输出链表所有内容 n
3、-n %-5s%-5s %-7s %-8s%-7s%-10s%-10s%-10s%-8s%-8sn,总分平均分 -n %-4d%-6d%-12d%-8s%-7s%-10.2f%-10.2f%-10.2f%-8.2f%-8.2fnsex, p-english,p-sum,p-ave);void save() /文件保存 FILE *fp; Lstu *p; p=head; if(fp=fopen(初始值二进制.txtwb)=NULL) printf(Cannot open the file exit(0); while(p) fwrite(p,sizeof(Lstu),1,fp); p=p- f
4、close(fp);void save1() /文件保存初始值二进制备用.txtvoid read() /文件读取 Lstu *p,*p1; rbCannot open the filen head=(Lstu*)malloc(sizeof(Lstu); p1=head;while(!feof(fp) p=(Lstu *)malloc(sizeof(Lstu); if(fread(p,sizeof(Lstu),1,fp)=1) p1-next=p; p1=p1- head=head-fclose(fp);void read1() /文件读取void SAVE() /保存到可浏览文件int i=
5、0;初始值可浏览文件.txtw+ fprintf(fp,t-nn i+; fprintf(fp,name,void SAVE1() /保存到可浏览文件char filename20; printf(请输入保存到可浏览文件的文件名: scanf(,filename); if(fp=fopen(filename, %-4d%-5d %-7d %-8s%-7s%-10.2f%-10.2f%-10.2f%-8.2f%-8.2fn-nvoid sort_data_copy(Lstu *p,Lstu *s) /交换排序时的值int cla1;cla1=p-cla;cla=s-cla=cla1;long n
6、um1;num1=p-num;num=s-num=num1;char name120;strcpy(name1,p-strcpy(p-name,s-strcpy(s-name,name1);char sex120;strcpy(sex1,p-sex,s-sex,sex1);float chinese1;chinese1=p-chinese;chinese=s-chinese=chinese1;float math1;math1=p-math;math=s-math=math1;float english1;english1=p-english=s-english=english1;float
7、sum1;sum1=p-sum;sum=sum1;float ave1;ave1=p-ave;ave=ave1;void sort() /对初始成绩进行排序int n;char a;read();p=head;n按Enter键继续na=getch();elsewhile(1)system(clsprintf(n排序前结果为:nread();list(); printf(t *=*=*=*=*=*=*=*=*=*=*=按学号排序(1)nt *=*=*=*=*=*=*=*=*=*=*=按语文成绩排序(2)nt *=*=*=*=*=*=*=*=*=*=*=按数学成绩排序(3)nt *=*=*=*=*
8、=*=*=*=*=*=*=按英语成绩排序(4)nt *=*=*=*=*=*=*=*=*=*=*=按平均分排序(5)nt *=*=*=*=*=*=*=*=*=*=*=回主菜单(0)nnt请输入选择: scanf(n); for(p=head;next!=NULL;p=p-next)for(s=p-s!s=s- switch(n) case 1: if(p-numnum)sort_data_copy(p,s);break;case 2:chinesechinese)sort_data_copy(p,s);case 3:mathmath)sort_data_copy(p,s);case 4:engl
9、ishave)sort_data_copy(p,s);case 0: break;default :chooe error!break;if(n=0)printf(n按Enter键回主菜单nelseprintf(排序后结果为:list();SAVE1();void sort1() /对所有数据进行排序read1();read1();void search_print(Lstu *p) /输出查找信息t-nt%-5s %-7s %-8s%-7s%-10s%-10s%-10snt%-5d %-7d %-8s%-7s%-10.2f%-10.2f%-10.2fnvoid search_choose() /选择按分数段查找方式int n,i=1,flag=0;float a,b;p=head;t*=*=*=*=*=*=*=*=*=*=*=按语文分数段查找(1)nt*=*=*=*=*=*=*=*=*=*=*=按数学分数段查找(2)nt*=*=*=*=*=*=*=*=*=*=*=按英语分数段查找(3)nnscanf(请输入分数下限(包括输入的分数):
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2