重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
专注于为中小企业提供网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业大石桥免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
#include string.h
#include ctype.h
#include stdlib.h
#define STU_NUM 40 /* 最多的学生人数 */
#define COURSE_NUM 10 /* 最多的考试科目 */
struct student
{
int number; /* 每个学生的学号 */
char name[10]; /* 每个学生的姓名 */
int score[COURSE_NUM]; /* 每个学生M门功课的成绩 */
int sum; /* 每个学生的总成绩 */
float average; /* 每个学生的平均成绩 */
};
typedef struct student STU;
/* 函数功能: 向链表的末尾添加从键盘输入学生的学号、姓名和成绩等信息
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void AppendScore(STU *head, int n, int m)
{
int j;
STU *p;
for (p=head; phead+n; p++)
{
printf("\nInput number:");
scanf("%d", p-number);
printf("Input name:");
scanf("%s", p-name);
for (j=0; jm; j++)
{
printf("Input score%d:", j+1);
scanf("%d", p-score+j);
}
}
}
/* 函数功能: 打印n个学生的学号、姓名和成绩等信息
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void PrintScore(STU *head, int n, int m)
{
STU *p;
int i;
char str[100] = {'\0'}, temp[3];
strcat(str, "Number Name ");
for (i=1; i=m; i++)
{
strcat(str, "Score");
itoa(i,temp, 10);
strcat(str, temp);
strcat(str, " ");
}
strcat(str," sum average");
printf("%s", str); /* 打印表头 */
for (p=head; phead+n; p++) /* 打印n个学生的信息 */
{
printf("\nNo.%3d%8s", p-number, p-name);
for (i=0; im; i++)
{
printf("%7d", p-score[i]);
}
printf("%11d%9.2f\n", p-sum, p-average);
}
}
/* 函数功能: 计算每个学生的m门功课的总成绩和平均成绩
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void TotalScore(STU *head, int n, int m)
{
STU *p;
int i;
for (p=head; phead+n; p++)
{
p-sum = 0;
for (i=0; im; i++)
{
p-sum = p-sum + p-score[i];
}
p-average = (float)p-sum / m;
}
}
/* 函数功能: 用选择法按总成绩由高到低排序
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
函数返回值: 无
*/
void SortScore(STU *head, int n)
{
int i, j, k;
STU temp;
for (i=0; in-1; i++)
{
k = i;
for (j=i; jn; j++)
{
if ((head+j)-sum (head+k)-sum)
{
k = j;
}
}
if (k != i)
{
temp = *(head+k);
*(head+k) = *(head+i);
*(head+i) = temp;
}
}
}
/* 函数功能: 查找学生的学号
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量num,表示要查找的学号
整型变量n,表示学生人数
函数返回值: 如果找到学号,则返回它在结构体数组中的位置,否则返回-1
*/
int SearchNum(STU *head, int num, int n)
{
int i;
for (i=0; in; i++)
{
if ((head+i)-number == num) return i;
}
return -1;
}
/* 函数功能: 按学号查找学生成绩并显示查找结果
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void SearchScore(STU *head, int n, int m)
{
int number, findNo;
printf("Please Input the number you want to search:");
scanf("%d", number);
findNo = SearchNum(head, number, n);
if (findNo == -1)
{
printf("\nNot found!\n");
}
else
{
PrintScore(head+findNo, 1, m);
}
}
/* 函数功能: 显示菜单并获得用户键盘输入的选项
函数参数: 无
函数返回值: 用户输入的选项
*/
char Menu(void)
{
char ch;
printf("\nManagement for Students' scores\n");
printf(" 1.Append record\n");
printf(" 2.List record\n");
printf(" 3.Search record\n");
printf(" 4.Sort record\n");
printf(" 0.Exit\n");
printf("Please Input your choice:");
scanf(" %c", ch); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/
return ch;
}
int main()
{
char ch;
int m, n;
STU stu[STU_NUM];
printf("Input student number and course number(student number40,course number10):");
scanf("%d,%d", n, m);
while (1)
{
ch = Menu(); /* 显示菜单,并读取用户输入 */
switch (ch)
{
case'1':AppendScore(stu, n, m);/* 调用成绩添加模块 */
TotalScore(stu, n, m);
break;
case'2':PrintScore(stu, n, m); /* 调用成绩显示模块 */
break;
case'3':SearchScore(stu, n, m);/* 调用按学号查找模块 */
break;
case'4':SortScore(stu, n); /* 调用成绩排序模块 */
printf("\nSorted result\n");
PrintScore(stu, n, m); /* 显示成绩排序结果 */
break;
case'0':exit(0); /* 退出程序 */
printf("End of program!");
break;
default:printf("Input error!");
break;
}
}
}
#include "conio.h"
struct student
{
char name [15];
int score;
};
int find (struct student s[]);void main()
{
int i=0;
struct student stu[5];
for(i=0;i5;i++)
{
printf("输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("输入第%d个学生的成绩:",i+1);
scanf("%d",stu[i].score);
}
int nIndex=find(stu);
if(nIndex!=-1)
printf("找到该同学信息,该同学位于第%d个位置(数组下标)",nIndex);
getch();
}int find(struct student s[])
{
char name[15];
int i=0;
int nIndex=-1;
printf("输入要查询学生的姓名:");
scanf("%s",name);
for(i=0;i5;i++)
{
if(strcmp(s[i].name,name)==0)
{
nIndex=i;
break;
}
}
return nIndex;
}
#includestdio.h
#includestdlib.h
#includestring.hstruct record
{
char xuehao[10];//学号
char name[20]; //姓名
char sex[3];//性别
int ke1;//数学
int ke2 ;//语文
int ke3;//英语
int pin;
}stu[50];
int k=1,n,m;void readfile();
void seek();
void insert();
void del();
void save();
void menu();
void seek()
{int i,j,item,flag;brchar s1[20];brprintf("------------------\n");brprintf("1.按学号查询\n");brprintf("2.退出本菜单\n");brprintf("------------------\n");brwhile(1)br{ printf("请选择子菜单编号:");brscanf("%d",item);brflag=0;brswitch(item)br{brcase 1:brprintf("请输入要查询的学生的学号:\n");brscanf("%s",s1);brfor(i=0;in;i++)brif(strcmp(stu[i].xuehao,s1)==0)br{ flag=1;brprintf("该学生学号,姓名,性别,数学,语文,英语 分别为:\n");brprintf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,brstu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);br}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:return;
default:printf("请在1-2之间选择\n");
}
}
}
void insert()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",stu[i].xuehao);
for(j=0;ji;j++)
if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break;
}
}
printf("请输入第 %d 个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("\n请输入第 %d 个学生的性别:",i+1);
scanf("%s",stu[i].sex);
printf("\n请输入第 %d 个学生的数学成绩:",i+1);
scanf("%d",stu[i].ke1);
printf("\n请输入第 %d 个学生的语文成绩:",i+1);
scanf("%d",stu[i].ke2);
printf("\n请输入第 %d 个学生的英语成绩:",i+1);
scanf("%d",stu[i].ke3);if(flag==0)
{ i=i;
i++;
}
}while(in+m);
n+=m;
printf("录入完毕!\n\n");
}void del()
{ int i,j,flag=0;
char s1[20];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;in;i++)
if(strcmp(stu[i].xuehao,s1)==0)
{ flag=1;
for(j=i;jn-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单6\n");
n--;
}
}
void readfile()
{
char buf[80],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,
stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3)==6)
{ i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;im;i++)
{
fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].ke1,
stu[i].ke2,stu[i].ke3);
fclose(fp);
printf("已储存");
}
}
void paixu()
{
int i,j,k,t;
for(i=0;im;i++)
{
stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;
}
for(i=0;i=m-2;i++)
{
k=i;
for(j=i+1;j=m-1;j++)
if(stu[j].pinstu[k].pin)
k=j;
if(k!=i)
{
t=stu[k].pin;
stu[k].pin=stu[i].pin;
stu[i].pin=t;
}
}
for(i=0;im;i++)
{printf("第 %d 个学生的姓名%s:",i+1,stu[i].name);br printf("\n第 %d 个学生的性别:%s",i+1,stu[i].sex);br printf("\n第 %d 个学生的数学成绩:%d",i+1,stu[i].ke1);br printf("\n第 %d 个学生的语文成绩:%d",i+1,stu[i].ke2);br printf("\n第 %d 个学生的英语成绩:%d",i+1,stu[i].ke3);br printf("\n第 %d 个学生的平均成绩:%d",i+1,stu[i].pin);br }
}
void menu()
{ int nub;
printf(" \n\n学生成绩管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.输入学生信息\n");
printf("2.查询学生信息\n");
printf("3.按学号删除信息\n");
printf("4.读入学生信息\n");
printf("5.保存信息(要把修改保存到文件,退出程序前必须执行本项)\n");
printf("6.查询学生平均成绩信息\n");
printf("0.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",nub);
switch(nub)
{
case 1:insert();break;
case 2:seek();break;
case 3:del();break;
case 4:readfile();break;
case 5:save();break;
case 6:paixu();break;
case 0:k=0;break;
default:printf("请在0-6之间选择\n");
}}
void main()
{
while(k)
menu();
}
//平均数是排序后,输出的,如果你不想直接输入,那就不要对每个学生进行选择排序了
写了个创建和查找函数:
#include stdio.h
#include string.h
#include stdlib.h
typedef struct Information
{
char no[20];
int english;
int math;
int computer;
struct Information *next;
}INFORMATION, *PINFORMATION;
PINFORMATION head = NULL;
void createLink()
{
int n, i;
PINFORMATION p, q;
printf ("请输入?个学生的信息:");
scanf ("%d", n);
head = (PINFORMATION)malloc(sizeof(INFORMATION));
head-next = NULL;
p = head;
for (i = 1; i = n; ++i){
q = (PINFORMATION)malloc(sizeof(INFORMATION));
fflush(stdin);
printf ("请输入第%d个学生的学号:", i);
scanf ("%s", q-no);
printf ("请输入第%d个学生的英语成绩:", i);
scanf ("%d", q-english);
printf ("请输入第%d个学生的数学成绩:", i);
scanf ("%d", q-math);
printf ("请输入第%d个学生的计算机成绩:", i);
scanf ("%d", q-computer);
q-next = NULL;
p-next = q;
p = p-next;
}
}
void searchInformation()
{
char no[20];
PINFORMATION p = head-next;
int flag = 0;
printf ("请输入要查找的学生学号:");
fflush(stdin);
scanf ("%s", no);
while (p != NULL){
if (strcmp(p-no, no)==0){
flag = 1;
break;
}
p = p-next;
}
if (flag){
printf ("学号:%s\t英语成绩:%d\t数学成绩:%d\t计算机成绩:%d\n", p-no, p-english, p-math, p-computer);
}
else {
printf ("没有找到学号为%s的学生记录!\n", no);
}
}
int main()
{
createLink();
searchInformation();
return 0;
}
#includestdlib.h
#includestdio.h
#includestring.h
#includeconio.h
#define N 10
/*****定义结构体*****/
typedef struct students /*标记为students*/
{
char num[10]; /*学生学号*/
char name[10]; /*学生姓名*/
int age; /*年龄*/
char sex[10]; /*性别*/
float cyy; /*C语言成绩*/
float computer; /*计算机成绩*/
float english; /*英语成绩*/
float pj; /*平均成绩*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//导出
int Locate(STU students[],int n);//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 学生成绩管理 \n");
printf("-----------------------------------应用菜单-------------------------------------\n");
printf(" 1 输入学生成绩\n\n");
printf(" 2 输出学生成绩\n\n");
printf(" 3 查询学生成绩\n\n");
printf(" 4 修改学生成绩\n\n");
printf(" 5 查看成绩排序\n\n");
printf(" 6 查看成绩统计\n\n");
printf(" 7 保存数据\n\n");
printf(" 8 读取数据\n\n");
printf(" 9 退出系统\n\n");
printf(" 请选择你想进行的操作:");
k=getchar();
return k;
}
/*****定义输出函数*****/
void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p;
p=pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p-num,p-name,p-age,p-sex,p-cyy,p-computer,p-english,p-pj);
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 请输入学生信息 \n");
printf(" 退出请在学生号处输入:0 \n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("请输入学生年龄:\n ");
scanf("%d",students[i].age);
printf("****************\n\n\n");
printf("请输入学生性别:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("请输入C语言成绩:\n ");
scanf("%f",students[i].cyy);
printf("****************\n\n\n");
printf("请输入计算机成绩:\n ");
scanf("%f",students[i].computer);
printf("****************\n\n\n");
printf("请输入英语成绩:\n ");
scanf("%f",students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("学生平均成绩: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出请输入:0 \n");
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");
scanf("%d",k);
if(k==1)
{
printf("请输入你要查询的学生学号:\n");
scanf("%s",num);
while(in)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf("学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\nC语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i=n)
printf("没有所找学生信息\n");
getchar();
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n");
scanf("%s",name);
while(in)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i=n)
printf("没有所找学生信息\n");
}
return m;/*返回一个根m便于修改学生信息*/
getchar();
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n");
}
printf("\n\n");
printheader(); /*输出表格头部*/
i=0;
while(in) /*逐条输出数组中存储的学生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n=0)
{
system("cls");
printf(" \n退出请输入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改学生信息");
input(students,n);
i=Locate(students,n); /*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n");
printf(" 学号: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年龄: ");
scanf("%d",students[i].age);
printf(" 性别: ");
scanf("%s",students[i].sex);
printf(" C语言: ");
scanf("%f",students[i].cyy);
printf(" 英语: ");
scanf("%f",students[i].english);
printf(" 计算机: ");
scanf("%f",students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成绩: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");
}
else
printf("not found!\n");
getchar();
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出请输入:0 \n");
printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");
scanf("%d",k);
if(k==1) /*用选择法对C语言排序*/
{
for(i=0; in; i++)
for(j=0;jn-1;j++)
{
if(students[i].englishstudents[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}
}
}
else if(k==2)/*英语用冒泡法*/
{
for(a=0; an-1; a++)
{
c=a;
//未完待续
#include"stdio.h"
#include"string.h"
#define N 1000
void menu();
int password();
int dedao();
int uninque(struct STUDENT shu[],int len,int xuehao);
void shuchu(struct STUDENT shu[],int len);
void send(struct STUDENT shu[],int len);
int readFromFile(struct STUDENT shu[]);
void chaxun(struct STUDENT shu[],int len);
void paixu(struct STUDENT shu[],int len);
struct STUDENT
{
int num;
char name[10];
int score;
} shu[N];
main()
{ int len=0,key,choice;
do {
key=password();
}while(key==0);
while(1)
{ menu();
printf("请输入选项1,2,3,4,5,6,7\n");
scanf("%d",choice);
switch(choice)
{
case 1:printf("输入信息函数\n"); len=dedao(shu,len); break;
case 2:printf("输出函数被调用\n"); shuchu(shu,len); break;
case 3:printf("保存到文件函数被调用\n"); send(shu,len); break;
case 4:printf("从文件读函数被调用\n"); len=readFromFile( shu); break;
case 5:printf("按学号查询函数被调用\n"); chaxun(shu,len); break;
case 6:printf("按成绩排序函数被调用\n"); paixu(shu,len); break ;
case 7:exit(0);break;
}
}
}
void menu()
{
printf("\n");
printf(" *******************************************\n");
printf(" * 学生成绩管理系统2.0 *\n");
printf(" * 1.输入信息 *\n");
printf(" * 2.输出信息 *\n");
printf(" * 3.保存到文件 *\n");
printf(" * 4.从文件读 *\n");
printf(" * 5.按学号查询 *\n");
printf(" * 6.按成绩排序(由大到小) *\n");
printf(" * 7.程序结束 *\n");
printf(" *******************************************\n");
}
int password()
{
char a[100];
char key[]="asd";
printf("请输入密码\n");
scanf("%s",a);
if(strcmp(a,key)==0)
return 1;
else
return 0;
}
int dedao(struct STUDENT shu[],int len)
{ int i=len;
int flag=0;
int xuehao,bank,chengji;
while(iN)
{
while(1)
{
printf("学号");
scanf("%d",xuehao);
if(xuehao==0)
{ flag=1;
break;
}
bank=uninque(shu,i,xuehao);
if(bank==0)
{ shu[i].num=xuehao;
break;}
}
if(flag==1)
break;
printf("姓名");
scanf("%s",shu[i].name);
while (1)
{
printf("成绩");
if(scanf("%d",chengji)==1)
{break;}
printf("输入格式错误,请重新输入!");
while(getchar()!='\n')
continue;
}
while(getchar()!='\n')
continue;
shu[i].score=chengji;
i++;
}
return i;
}
int uninque(struct STUDENT shu[],int len,int xuehao)
{ int i;
int bank=0;
for (i=0;ilen;i++)
{
if(xuehao==shu[i].num)
bank=1;
}
return bank;
}
void shuchu(struct STUDENT shu[],int len)
{
int i;
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
for(i=0;ilen;i++)
{
printf("%-4d %-10s %-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
}
printf("\n\n");
}
void send(struct STUDENT shu[],int len)
{
int i;
FILE *fp;
fp=fopen("d:\\chegnji.txt","wb");
if(fp==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
for(i=0;ilen;i++)
fwrite(shu+i,sizeof(struct STUDENT),1,fp);
fclose(fp);
}
int readFromFile(struct STUDENT shu[])
{
FILE *fp=NULL;
int i=0;
fp=fopen("d:\\chegnji.txt","rb");
if(fp!=NULL)
{
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
while(!feof(fp))
{
if(i=N)
break;
if(fread(shu+i,sizeof(struct STUDENT),1,fp))
printf("%-4d %-10s %-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
i++;
}
fclose(fp);
}
i=i-1;
return i;
}
void chaxun(struct STUDENT shu[],int len)
{
int i,nue,b=0;
while(1)
{printf("input the student number (input'0' close) ");
scanf("%d",nue);
b=0;
if(nue==0)
break;
for (i=0;ilen;i++)
{
if(nue==shu[i].num)
{ printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
printf("%-4d %-10s %-3d\n",shu[i].num,shu[i].name,shu[i].score);
b=1;
}
}
if(b==0)
printf("The number is not exist!\n");
}
}
void paixu(struct STUDENT shu[],int len)
{
int i,j;
struct STUDENT temp;
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
for(i=0;ilen;i++)
{
for(j=i;jlen;j++)
{
if(shu[j].scoreshu[i].score)
{
temp=shu[j];
shu[j]=shu[i];
shu[i]=temp;
}
}
printf("%-4d %-10s %-3d\n",shu[i].num,shu[i].name,shu[i].score);
}
}