学籍学历信息管理

#include"stdio.h"

#include"stdlib.h"

#include"process.h"

#include"conio.h"

#define NULL 0

typedef struct stu

{ int xh;

char xm[10];

float fs;

}stu; /*编程时设计的结构体*/

typedef struct Student

{ stu xs;

struct Student* next;

}Student,*LinkList; /*程序中子函数的声明*/

int EnterChoice(void);

void TianJia(LinkList,LinkList);

void ChaXun(LinkList,LinkList);

void XiuGai(LinkList,LinkList);

void LiuLan(LinkList);

void CunDang(LinkList,LinkList);

void DuQu(void);

void swap(Student*,Student*);

/*主函数部分*/

int main()

{ LinkList List_1; //存放原记录文件中的数据

LinkList List_2; //存放修改或添加的数据

Student* r;

Student* s;

FILE* fp;

char* str;

char ch;

int choice;

int i;

if((fp=fopen("c:\\abc.txt","a+"))==NULL)

{ printf("ERROR!\n");

exit(0); }//以读写的方式打开文件

/*初始化两个单链表*/

List_1=(LinkList)malloc(sizeof(Student));

List_2=(LinkList)malloc(sizeof(Student));

List_1->next=List_2->next=NULL;

/*查出回车数,即记录个数,保存在i中*/

i=0; rewind(fp);

ch=fgetc(fp);

while(EOF!=ch)

{ if('\n'==ch) i++;

ch=fgetc(fp);

} /*读入文件中的数据,保存在List_1中*/

rewind(fp);

r=List_1;

for(;i>=1;i--)

{ s=(Student*)malloc(sizeof(Student));

str=s->xs.xm;

fscanf(fp,"%d %s %f",&(s->xs.xh),str,&(s->xs.fs));

r->next=s; r=s;

}

r->next=NULL;

fclose (fp);//关闭文件

while((choice=EnterChoice())!=7)

{ switch(choice)

{ case 1: TianJia(List_1,List_2); break;

case 2: ChaXun(List_1,List_2); break;

case 3: XiuGai(List_1,List_2); break;

case 4: LiuLan(List_2); break;

case 5: CunDang(List_1,List_2); break;

case 6: DuQu(); break;

default:printf("\n输入错误,请重新输入!\n");

getch();

}

}//使用该系统进行管理

/*将链表中所有节点申情的空间释放*/

r=List_1->next;

while(r!=NULL)

{ s=r; r=r->next; free(s);

}

r=List_2->next;

while(r!=NULL)

{ s=r; r=r->next; free(s);

}

free(List_1);

free(List_2);

printf("\n成功退出系统!谢谢使用!\n");

return 0; }

/*******************************************************/

/*功能选择输入子函数*/

int EnterChoice(void)

{ char choice;

system("cls");

printf("\n----------------------------\n");

printf("\t学生管理系统\n");

printf("----------------------------\n");

printf("1.添加学员信息\n");

printf("2.查询学生记录\n");

printf("3.修改学生记录\n");

printf("4.浏览学生记录\n");

printf("5.存档学生记录\n");

printf("6.读取学生记录\n");

printf("7.推出系统\n");

printf("请选择操作(1-7):");

scanf("%d",&choice

);

return choice;//返回主函数 }

/*******************************************************/

/*添加学员信息子函数*/

void TianJia(LinkList List_1,LinkList List_2)

{ Student* s;

Student* r;

int i;

int n;

char* str;

s=NULL;

T: //若输入错误,返回此处执行

printf("请输入你们班的人数:");

scanf("%d",&n);

if(n

{ printf("人数应大于0!\n");

goto T;

}//输入错误

for(i=1;i

{ s=(Student*)malloc(sizeof(Student));

str=s->xs.xm;

L: //若输入学号已存在于学员记录信息中,程序返回此处继续执行

printf("请输入第%d个学员的学号:",i);

scanf("%d",&(s->xs.xh));

/*判断是否已存在该学号的学生*/

r=List_1->next; while(r!=NULL)

{

if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n\n");

goto L;

}

r=r->next;

}

r=List_2->next;

while(r!=NULL)

{

if(r->xs.xh==s->xs.xh)

{

printf("已存在该学号的学生!\n");

goto L;

}

r=r->next;

}

printf("请输入第%d个学员的姓名:",i);

scanf("%s",str);

printf("请输入第%d个学员的成绩:",i);

scanf("%f",&(s->xs.fs));

/*将此学生信息存入List_2中*/

s->next=List_2->next;

List_2->next=s;

}

printf("\n--------输入完毕!------------\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*查询学员信息子函数*/

void ChaXun(LinkList List_1,LinkList List_2)

{ Student* r; int x;

printf("请输入要查找的学员的学号:");

scanf("%d",&x);

/*查询该学生记录是否存放在List_1中*/

r=List_1->next;

while(r!=NULL)

{ if(x==r->xs.xh)

{ printf("\n此学员的学号为:[ %d ]\n",x);

printf("此学员的姓名为:[ %s ]\n",r->xs.xm);

printf("此学员的成绩为:[ %.1f ]\n",r->xs.fs);

getch();

return;//返回主函数

} else r=r->next;

}

/*查询该学生记录是否存放在List_2中*/

r=List_2->next;

while(r!=NULL)

{ if(x==r->xs.xh)

{ printf("此学员的学号为:[ %d ]\n",x);

printf("此学员的姓名为:[ %s ]\n",r->xs.xm);

printf("此学员的成绩为:[ %f ]\n",r->xs.fs);

getch();

return;//返回主函数

} else r=r->next;

}

printf("\n没有要查找的学员记录!\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*修改学员信息子函数*/

void XiuGai(LinkList List_1,LinkList List_2)

{ Student* r;

Student* s;

int xh;

int n;

int flag;

printf("请输入要修改的学员的学号:");

scanf("%d",&xh);

/*若该学员信息存放在List_1中,置flag为1*/

r=List_1->next;

while(r!=NULL)

{ if(r->xs.xh==xh)

{ flag=1; break;

}

r=r->next;

}

/*若该学员信息存放在List_2中,置flag为2*/

if(r==NULL)

{ r=List_2->next;

while(r!=NULL)

{ if(r->xs.xh==xh)

{ flag=2; break;

}

r=r->next;

}

}

if(r==NULL)

{

printf("\n没有该学员的纪录!\n");

getch();

return;//返回主函数

}

printf("\n学 号\t姓 名\t成 绩\n");

printf("%d\t%s\t%.1f\n",xh,r->xs.xm,r->xs.fs);

/*若该学员信息在List_2中,进行修改*/

if(2==flag)

{ r=List_2->next;

while(r->xs.xh!=xh)

r=r->next;

L1: //若输入功能选项错误,返回此处执行

printf("\n请选择修改的内容:1.学号 2.姓名 3.成绩 4.退出\n");

scanf("%d",&n);

switch(n)

{

case 1: L11: //若输入学号已存在于其他学员,返回此处执行

printf("\n请输入新的学号: ");

scanf("%d",&(r->xs.xh));

/*判断List_1中是否已存在该学号的学生*/

s=List_1->next;

while(s!=NULL)

{ if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n");

goto L11;

}

s=s->next;

}

/*判断List_2中是否已存在该学号的学生*/

s=List_2->next;

while(s!=NULL)

{ if(r->xs.xh==s->xs.xh && s!=r)

{ printf("已存在该学号的学生!\n");

goto L11;

}

s=s->next;

}

break;

case 2: printf("\n请输入新的姓名: ");

scanf("%s",r->xs.xm);

break;

case 3: printf("\n请输入新的成绩: ");

scanf("%f",&(r->xs.fs));

break;

case 4: printf("退出该功能!\n");

getch();

return;

default:printf("\n输入错误!请重新输入!\n");

goto L1;

}

printf("\n谢谢! 修改完毕!\n");

getch();

return;//返回主函数

}

/*若该学员信息在List_1中,进行修改*/

r=List_1;

while(r->next->xs.xh!=xh)

r=r->next;

s=r->next;

r->next=s->next;

s->next=List_2->next;

List_2->next=s;

L2: //若输入功能选项错误,返回此处执行

printf("\n请选择修改的内容:1.学号 2.姓名 3.成绩 4.退出\n");

scanf("%d",&n);

switch(n) {

case 1: L22: //若输入学号已存在于其他学员,返回此处执行

printf("\n请输入新的学号: ");

scanf("%d",&(s->xs.xh));

/*判断List_1中是否已存在该学号的学生*/

r=List_1->next;

while(r!=NULL)

{ if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n");

goto L22;

}

r=r->next;

}

/*判断List_2中是否已存在该学号的学生*/

r=List_2->next;

while(r!=NULL)

{ if(r->xs.xh==s->xs.xh && r!=s)

{

printf("已存在该学号的学生!\n");

goto L22;

}

r=r->next;

}

break;

case 2: printf("\n请输入新

的姓名: ");

scanf("%s",s->xs.xm); break;

case 3: printf("\n请输入新的成绩: ");

scanf("%f",&(s->xs.fs)); break;

case 4: printf("退出该功能!\n");

getch(); return;

default:printf("\n输入错误!请重新输入!\n"); goto L2;

}

printf("\n谢谢! 修改完毕!\n");

getch();

return;//返回主函数

}

/*******************************************************/

/*浏览学员信息子函数*/

void LiuLan(LinkList List)

{ Student* r;

int i,j,n;

r=List->next;

if(r==NULL)

{ printf("\n学员信息未被添加或修改,没有可浏览的学生记录!\n");

getch();

return;//返回主函数

}//查看是否有添加或修改的学生记录

printf("\n\t学 号\t姓 名\t成 绩\n");

/*计算共有多少条可浏览的记录,存放在n中*/

n=0;

while(r!=NULL)

{ n++; r=r->next; }

/*用冒泡法对List做升序排序*/

for(j=1;j

{ r=List->next;

for(i=1;i

{ if(r->xs.xh>r->next->xs.xh)

swap(r,r->next);//交换r与r->next中的内容

r=r->next;

}

}

/*在屏幕上显示学员记录*/

r=List->next;

while(r!=NULL)

{ printf("\t%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

printf("\n班级信息显示完毕!\n");

getch();

return;//返回主函数

}

/*******************************************************/

/*存档学员信息子函数*/

void CunDang(LinkList L1,LinkList L2)

{ FILE* fp;

Student* r;

if((fp=fopen("c:\\abc.txt","w"))==NULL)

{ printf("open file error!\n"); exit(0); }//以写的方式打开文件

if(L1->next==NULL && L2->next==NULL)

{ printf("\n未输入需要保存的信息!\n");

getch();

return;//返回主函数

}//查看是否有需要保存的记录

/*将两个链表中的记录保存在硬盘文件上*/

r=L1->next;

while(r!=NULL)

{ fprintf(fp,"%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

r=L2->next;

while(r!=NULL)

{ fprintf(fp,"%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

printf("\n文件保存成功!\n");

getch();

fclose(fp);//关闭文件

return; //返回主函数

}

/*******************************************************/

/*读取学员信息子函数*/

void DuQu(void)

{ int i; char ch;

FILE* fp;

int xuehao;

float fenshu;

char str[10];

if((fp=fopen("c:\\abc.txt","r"))==NULL)

{ printf("ERROR!\n"); exit(0); }//以只读方式打开文件

/*查出回车数,即记录个数,存放在i中*/

i=0;

ch=fgetc(fp);

while(EOF!=ch)

{ if('\n'==ch) i++;

ch=fgetc(fp);

}

if(0==i)

{ printf("\n无保存记录!\n");

fclose(fp);

getch();

return;//返回主函数

}//文件中无学员记录

printf("\n\t

学 号\t姓 名\t成 绩\n");

/*读出文件中的数据并显示*/

rewind(fp);

for(;i>=1;i--)

{ fscanf(fp,"%d %s %f",&xuehao,str,&fenshu);

printf("\t%d\t%s\t%.1f\n",xuehao,str,fenshu);

}

fclose(fp);

printf("\n\n读取完毕!\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*浏览前对记录排序时,用于交换两节点中内容的函数*/

void swap(Student* xs1,Student* xs2)

{ stu st;

st=xs1->xs;

xs1->xs=xs2->xs;

xs2->xs=st;

}

#include"stdio.h"

#include"stdlib.h"

#include"process.h"

#include"conio.h"

#define NULL 0

typedef struct stu

{ int xh;

char xm[10];

float fs;

}stu; /*编程时设计的结构体*/

typedef struct Student

{ stu xs;

struct Student* next;

}Student,*LinkList; /*程序中子函数的声明*/

int EnterChoice(void);

void TianJia(LinkList,LinkList);

void ChaXun(LinkList,LinkList);

void XiuGai(LinkList,LinkList);

void LiuLan(LinkList);

void CunDang(LinkList,LinkList);

void DuQu(void);

void swap(Student*,Student*);

/*主函数部分*/

int main()

{ LinkList List_1; //存放原记录文件中的数据

LinkList List_2; //存放修改或添加的数据

Student* r;

Student* s;

FILE* fp;

char* str;

char ch;

int choice;

int i;

if((fp=fopen("c:\\abc.txt","a+"))==NULL)

{ printf("ERROR!\n");

exit(0); }//以读写的方式打开文件

/*初始化两个单链表*/

List_1=(LinkList)malloc(sizeof(Student));

List_2=(LinkList)malloc(sizeof(Student));

List_1->next=List_2->next=NULL;

/*查出回车数,即记录个数,保存在i中*/

i=0; rewind(fp);

ch=fgetc(fp);

while(EOF!=ch)

{ if('\n'==ch) i++;

ch=fgetc(fp);

} /*读入文件中的数据,保存在List_1中*/

rewind(fp);

r=List_1;

for(;i>=1;i--)

{ s=(Student*)malloc(sizeof(Student));

str=s->xs.xm;

fscanf(fp,"%d %s %f",&(s->xs.xh),str,&(s->xs.fs));

r->next=s; r=s;

}

r->next=NULL;

fclose (fp);//关闭文件

while((choice=EnterChoice())!=7)

{ switch(choice)

{ case 1: TianJia(List_1,List_2); break;

case 2: ChaXun(List_1,List_2); break;

case 3: XiuGai(List_1,List_2); break;

case 4: LiuLan(List_2); break;

case 5: CunDang(List_1,List_2); break;

case 6: DuQu(); break;

default:printf("\n输入错误,请重新输入!\n");

getch();

}

}//使用该系统进行管理

/*将链表中所有节点申情的空间释放*/

r=List_1->next;

while(r!=NULL)

{ s=r; r=r->next; free(s);

}

r=List_2->next;

while(r!=NULL)

{ s=r; r=r->next; free(s);

}

free(List_1);

free(List_2);

printf("\n成功退出系统!谢谢使用!\n");

return 0; }

/*******************************************************/

/*功能选择输入子函数*/

int EnterChoice(void)

{ char choice;

system("cls");

printf("\n----------------------------\n");

printf("\t学生管理系统\n");

printf("----------------------------\n");

printf("1.添加学员信息\n");

printf("2.查询学生记录\n");

printf("3.修改学生记录\n");

printf("4.浏览学生记录\n");

printf("5.存档学生记录\n");

printf("6.读取学生记录\n");

printf("7.推出系统\n");

printf("请选择操作(1-7):");

scanf("%d",&choice

);

return choice;//返回主函数 }

/*******************************************************/

/*添加学员信息子函数*/

void TianJia(LinkList List_1,LinkList List_2)

{ Student* s;

Student* r;

int i;

int n;

char* str;

s=NULL;

T: //若输入错误,返回此处执行

printf("请输入你们班的人数:");

scanf("%d",&n);

if(n

{ printf("人数应大于0!\n");

goto T;

}//输入错误

for(i=1;i

{ s=(Student*)malloc(sizeof(Student));

str=s->xs.xm;

L: //若输入学号已存在于学员记录信息中,程序返回此处继续执行

printf("请输入第%d个学员的学号:",i);

scanf("%d",&(s->xs.xh));

/*判断是否已存在该学号的学生*/

r=List_1->next; while(r!=NULL)

{

if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n\n");

goto L;

}

r=r->next;

}

r=List_2->next;

while(r!=NULL)

{

if(r->xs.xh==s->xs.xh)

{

printf("已存在该学号的学生!\n");

goto L;

}

r=r->next;

}

printf("请输入第%d个学员的姓名:",i);

scanf("%s",str);

printf("请输入第%d个学员的成绩:",i);

scanf("%f",&(s->xs.fs));

/*将此学生信息存入List_2中*/

s->next=List_2->next;

List_2->next=s;

}

printf("\n--------输入完毕!------------\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*查询学员信息子函数*/

void ChaXun(LinkList List_1,LinkList List_2)

{ Student* r; int x;

printf("请输入要查找的学员的学号:");

scanf("%d",&x);

/*查询该学生记录是否存放在List_1中*/

r=List_1->next;

while(r!=NULL)

{ if(x==r->xs.xh)

{ printf("\n此学员的学号为:[ %d ]\n",x);

printf("此学员的姓名为:[ %s ]\n",r->xs.xm);

printf("此学员的成绩为:[ %.1f ]\n",r->xs.fs);

getch();

return;//返回主函数

} else r=r->next;

}

/*查询该学生记录是否存放在List_2中*/

r=List_2->next;

while(r!=NULL)

{ if(x==r->xs.xh)

{ printf("此学员的学号为:[ %d ]\n",x);

printf("此学员的姓名为:[ %s ]\n",r->xs.xm);

printf("此学员的成绩为:[ %f ]\n",r->xs.fs);

getch();

return;//返回主函数

} else r=r->next;

}

printf("\n没有要查找的学员记录!\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*修改学员信息子函数*/

void XiuGai(LinkList List_1,LinkList List_2)

{ Student* r;

Student* s;

int xh;

int n;

int flag;

printf("请输入要修改的学员的学号:");

scanf("%d",&xh);

/*若该学员信息存放在List_1中,置flag为1*/

r=List_1->next;

while(r!=NULL)

{ if(r->xs.xh==xh)

{ flag=1; break;

}

r=r->next;

}

/*若该学员信息存放在List_2中,置flag为2*/

if(r==NULL)

{ r=List_2->next;

while(r!=NULL)

{ if(r->xs.xh==xh)

{ flag=2; break;

}

r=r->next;

}

}

if(r==NULL)

{

printf("\n没有该学员的纪录!\n");

getch();

return;//返回主函数

}

printf("\n学 号\t姓 名\t成 绩\n");

printf("%d\t%s\t%.1f\n",xh,r->xs.xm,r->xs.fs);

/*若该学员信息在List_2中,进行修改*/

if(2==flag)

{ r=List_2->next;

while(r->xs.xh!=xh)

r=r->next;

L1: //若输入功能选项错误,返回此处执行

printf("\n请选择修改的内容:1.学号 2.姓名 3.成绩 4.退出\n");

scanf("%d",&n);

switch(n)

{

case 1: L11: //若输入学号已存在于其他学员,返回此处执行

printf("\n请输入新的学号: ");

scanf("%d",&(r->xs.xh));

/*判断List_1中是否已存在该学号的学生*/

s=List_1->next;

while(s!=NULL)

{ if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n");

goto L11;

}

s=s->next;

}

/*判断List_2中是否已存在该学号的学生*/

s=List_2->next;

while(s!=NULL)

{ if(r->xs.xh==s->xs.xh && s!=r)

{ printf("已存在该学号的学生!\n");

goto L11;

}

s=s->next;

}

break;

case 2: printf("\n请输入新的姓名: ");

scanf("%s",r->xs.xm);

break;

case 3: printf("\n请输入新的成绩: ");

scanf("%f",&(r->xs.fs));

break;

case 4: printf("退出该功能!\n");

getch();

return;

default:printf("\n输入错误!请重新输入!\n");

goto L1;

}

printf("\n谢谢! 修改完毕!\n");

getch();

return;//返回主函数

}

/*若该学员信息在List_1中,进行修改*/

r=List_1;

while(r->next->xs.xh!=xh)

r=r->next;

s=r->next;

r->next=s->next;

s->next=List_2->next;

List_2->next=s;

L2: //若输入功能选项错误,返回此处执行

printf("\n请选择修改的内容:1.学号 2.姓名 3.成绩 4.退出\n");

scanf("%d",&n);

switch(n) {

case 1: L22: //若输入学号已存在于其他学员,返回此处执行

printf("\n请输入新的学号: ");

scanf("%d",&(s->xs.xh));

/*判断List_1中是否已存在该学号的学生*/

r=List_1->next;

while(r!=NULL)

{ if(r->xs.xh==s->xs.xh)

{ printf("已存在该学号的学生!\n");

goto L22;

}

r=r->next;

}

/*判断List_2中是否已存在该学号的学生*/

r=List_2->next;

while(r!=NULL)

{ if(r->xs.xh==s->xs.xh && r!=s)

{

printf("已存在该学号的学生!\n");

goto L22;

}

r=r->next;

}

break;

case 2: printf("\n请输入新

的姓名: ");

scanf("%s",s->xs.xm); break;

case 3: printf("\n请输入新的成绩: ");

scanf("%f",&(s->xs.fs)); break;

case 4: printf("退出该功能!\n");

getch(); return;

default:printf("\n输入错误!请重新输入!\n"); goto L2;

}

printf("\n谢谢! 修改完毕!\n");

getch();

return;//返回主函数

}

/*******************************************************/

/*浏览学员信息子函数*/

void LiuLan(LinkList List)

{ Student* r;

int i,j,n;

r=List->next;

if(r==NULL)

{ printf("\n学员信息未被添加或修改,没有可浏览的学生记录!\n");

getch();

return;//返回主函数

}//查看是否有添加或修改的学生记录

printf("\n\t学 号\t姓 名\t成 绩\n");

/*计算共有多少条可浏览的记录,存放在n中*/

n=0;

while(r!=NULL)

{ n++; r=r->next; }

/*用冒泡法对List做升序排序*/

for(j=1;j

{ r=List->next;

for(i=1;i

{ if(r->xs.xh>r->next->xs.xh)

swap(r,r->next);//交换r与r->next中的内容

r=r->next;

}

}

/*在屏幕上显示学员记录*/

r=List->next;

while(r!=NULL)

{ printf("\t%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

printf("\n班级信息显示完毕!\n");

getch();

return;//返回主函数

}

/*******************************************************/

/*存档学员信息子函数*/

void CunDang(LinkList L1,LinkList L2)

{ FILE* fp;

Student* r;

if((fp=fopen("c:\\abc.txt","w"))==NULL)

{ printf("open file error!\n"); exit(0); }//以写的方式打开文件

if(L1->next==NULL && L2->next==NULL)

{ printf("\n未输入需要保存的信息!\n");

getch();

return;//返回主函数

}//查看是否有需要保存的记录

/*将两个链表中的记录保存在硬盘文件上*/

r=L1->next;

while(r!=NULL)

{ fprintf(fp,"%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

r=L2->next;

while(r!=NULL)

{ fprintf(fp,"%d\t%s\t%.1f\n",r->xs.xh,r->xs.xm,r->xs.fs);

r=r->next;

}

printf("\n文件保存成功!\n");

getch();

fclose(fp);//关闭文件

return; //返回主函数

}

/*******************************************************/

/*读取学员信息子函数*/

void DuQu(void)

{ int i; char ch;

FILE* fp;

int xuehao;

float fenshu;

char str[10];

if((fp=fopen("c:\\abc.txt","r"))==NULL)

{ printf("ERROR!\n"); exit(0); }//以只读方式打开文件

/*查出回车数,即记录个数,存放在i中*/

i=0;

ch=fgetc(fp);

while(EOF!=ch)

{ if('\n'==ch) i++;

ch=fgetc(fp);

}

if(0==i)

{ printf("\n无保存记录!\n");

fclose(fp);

getch();

return;//返回主函数

}//文件中无学员记录

printf("\n\t

学 号\t姓 名\t成 绩\n");

/*读出文件中的数据并显示*/

rewind(fp);

for(;i>=1;i--)

{ fscanf(fp,"%d %s %f",&xuehao,str,&fenshu);

printf("\t%d\t%s\t%.1f\n",xuehao,str,fenshu);

}

fclose(fp);

printf("\n\n读取完毕!\n");

getch();

return;//返回主函数 }

/*******************************************************/

/*浏览前对记录排序时,用于交换两节点中内容的函数*/

void swap(Student* xs1,Student* xs2)

{ stu st;

st=xs1->xs;

xs1->xs=xs2->xs;

xs2->xs=st;

}


相关内容

  • 2014年南开大学新闻传播学考研真题
  • 育 明 教 育 2015年全国硕士研究生招生考试公告 根据<2015年全国硕士研究生招生工作管理规定>,现将2015年硕士研究生招生考试有关事项公告如下: 一.初试时间 2015年硕士研究生招生考试初试时间为:2014年12月27日至12月28日(每天上午8:30-11:30,下午14: ...

  • 关于做好2012届预计毕业生学历图像信息网上核对的通知(103316)
  • 关于做好2012届预计毕业生学历图像信息网上核对的通知 各系部: 2012届专科毕业生集中采集的毕业证书照片及其个人信息,已在"中国高等教育学生信息网"上公布(网址:http://www.chsi.com.cn), 请各系部通知毕业班学生自己上网校对并确认,没有经过校对确认的毕业 ...

  • 录取通知书查询通道(共5篇)
  • 篇一:14关于拟录取研究生政审和档案信息查询.录取通知书邮寄地址查询修改的通知 关于拟录取研究生政审和档案信息查询. 录取通知书邮寄地址查询修改的通知 (/yjscx/student/index.asp) 在全国硕士研究生录检工作结束,拟录取结果经教育部审核通过后以及考生的<思想政治情况调查表 ...

  • 财政部财政科学研究所
  • 财政部财政科学研究所 2015年招收攻读硕士学位研究生简章 一.培养目标 招收硕士研究生,是为了培养热爱祖国,拥护中国共产党的领导,拥护社会主义制度,遵纪守法,品德良好,具有服务国家服务人民的社会责任感,掌握本学科坚实的基础理论和系统的专业知识,具有创新精神.创新能力和从事科学研究.教学.管理等工作 ...

  • 学籍学历在线验证报告
  • 学籍/学历在线验证报告简介 <教育部学历证书电子注册备案表>(中文版/英文版) <教育部学籍在线验证报告>(中文版/英文版) 为满足求职招聘.派遣接收.升学(考研.专升本).出国留学.干部任免.职称评定.信用评估等领域的需要,学信网依托全国高等教育学生信息数据库,对学生的学籍 ...

  • 浙江大学2017年硕士研究生招生简章
  • 浙江大学2017年硕士研究生招生简章 2017年我校计划在305个学科专业招收全日制硕士研究生5500余名(其中学术学位3000余名,专业学位2500余名),其中接收推免生约为2700名左右(最终以实际录取人数为准):在30个学科专业(领域)招收非全日制硕士研究生1600余名(均为专业学位).全日制 ...

  • 学籍证明的格式
  • 学籍系统里打印出来就行,包括:学籍号,学号,家长姓名,出生年月,家庭地址,性别,族别,入学年月,家庭成员。。。。。。。 为满足求职招聘、派遣接收、升学(考研、专升本)、出国留学、干部任免、职称评定、信用评估等领域的需要,学信网依托全国高等教育学生信息数据库,对学生的学籍、学历、招生录取等相关信息提供 ...

  • 考研辅导:内蒙古大学金融硕士招生简章
  • 考研辅导:内蒙古大学金融硕士招生简 章 一.培养目标 本专业培养德.智.体全面发展的适应金融企业及金融行业管理部门需要的符合时代要求的实务型高层次综合管理人才. 二.培养类型 MF联考:是由国务院学位委员会和教育部主办,每年面向社会公开招生,毕业后获得金融硕士(MF)研究生毕业证书和金融硕士(MF) ...

  • 关于核对在籍学生学籍注册信息的重要通知
  • 关于核对在籍学生学籍注册信息的重要通知 各奥鹏学习中心: 根据教育部的关于"高校网络教育阳光招生服务平台"与"学信网"学籍数据对接的相关政策,学生基本信息和前置学历信息的准确性直接影响到每位学生的前置学历审核.学籍注册.学习.毕业.为确保学生学籍注册信息准确, ...

  • 2017年宁夏大学攻读硕士学位研究生招生简章
  • 宁夏大学2017年攻读硕士学位研究生招生简章 信息来源: 阅读次数:8757 次 发布日期:2016-09-26 宁夏大学是宁夏回族自治区人民政府与教育部共建的综合性 大学,国家"211工程"重点建设高校,教育部本科教学工作水平评估优秀等次学校.宁夏大学始建于1958年.学校坐落 ...