有谁知道???啊
#include<stdio.h>#include<conio.h>
#include<stdlib.h>
#include<string.h>
//**********************************结构体*************************************
struct score
{
char class_num[10];
char person_num[10];
char name[15];
char sex;
int Math;
int Chinese;
int English;
int Physics;
int Chemistry;
}stu;
//***********************************输出*******************************************
void print1() //输出科目函数 //可避免这样的函数命名,可能让其他人误解
{
printf("班级 学号 姓名 性别 数学 语文 英语 物理 化学\n");
}
//************************************菜单***********************************************
int menu() //菜单函数 //每个菜单都在同一位置,做法很好
{
char i;
printf("\n\n\n\n");
puts("\t\t**********************主菜单******************\t\n");
puts("\t\t\t\t1.学生信息输入\n");
puts("\t\t\t\t2.学生信息浏览\n");
puts("\t\t\t\t3.学生信息检索\n");
puts("\t\t\t\t4.学生信息修改\n");
puts("\t\t\t\t5.学生信息删除\n");
puts("\t\t\t\t6.学生成绩排序\n");
puts("\t\t\t\t7.退出系统\n");
puts("\t\t**********************************************\t\n");
printf("\n请选择相应的序号:[ ]\b\b");
i=getchar();
system("cls");
return i;
}
//**************************************** 输入函数*******************************************
void Enter()
{
FILE *fp;
char ch;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\nCannot open file!\n");
getch();
exit(1);
}
do
{
printf("Enter class_num:");scanf("%s",&stu.class_num);getchar(); printf("\n");
printf("Enter person_num:");gets(stu.person_num); printf("\n");
printf("Enter name:");gets(stu.name); printf("\n");
printf("Enter sex(m/f):");scanf("%c",&stu.sex);getchar(); printf("\n");
printf("Enter math score:");scanf("%d",&stu.Math); printf("\n");
printf("Enter chinese score:");scanf("%d",&stu.Chinese); printf("\n");
printf("Enter english score:");scanf("%d",&stu.English); printf("\n");
printf("Enter physics score:");scanf("%d",&stu.Physics); printf("\n");
printf("Enter chemistry score:");scanf("%d",&stu.Chemistry);printf("\n");getchar();
fwrite(&stu,sizeof(stu),1,fp);
printf("continue(y/n)?");
ch=getchar(); getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
system("cls");
}
//*********************************************浏览函数**********************************************
void Browse()
{
FILE *fp;
int total=0;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\tCan not open the inform file!");
getch();
exit(1);
}
while(fread(&stu,sizeof(stu),1,fp)==1)
{
total++;
if(total==1)
print1();
printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
printf("%-8c",stu.sex);
printf("%-4d ",stu.Math);
printf("%-4d ",stu.Chinese);
printf("%-4d ",stu.English);
printf("%-4d ",stu.Physics);
printf("%-4d ",stu.Physics);
printf("\n");
}
fclose(fp);
printf("\n\n\tThere are %d record in all!\n",total);
printf("\tpress any key to continue!");
getchar();
getchar();
system("cls");
}
//**********************************查询函数*********************************************
void Query()
{
FILE * fp;
char num1[10];
char ch;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\tCan not open the inform file!");
getch();
exit(1);
}
do
{
getchar();
rewind(fp);
printf("Please input the student number you want to search:");
gets(num1);
while(fread(&stu,sizeof(stu),1,fp)==1)
if(strcmp(num1,stu.person_num)==0)
{
print1();
printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
printf("%-8c",stu.sex);
printf("%-4d ",stu.Math);
printf("%-4d ",stu.Chinese);
printf("%-4d ",stu.English);
printf("%-4d ",stu.Physics);
printf("%-4d ",stu.Physics);
printf("\n");
break;
}
printf("Search any more?(Y/N):[ ]\b\b");
ch=getchar(); getchar();
}while(ch=='Y'||ch=='y');
fclose(fp);
system("cls");
}
//**********************************学生成绩修改函数***********************************
void Recopose()
{
FILE * fp1,* fp2;
char num1[10];
char ch;
int j=0;
getchar();
do
{
if((fp1=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\tCan not open the infom file!");
getch();
exit(1);
}
if((fp2=fopen("f:\\ziye.txt","a+"))==NULL)
{
printf("\tCan not creat the temp file!");
getch();
exit(1);
}
printf("Please input the num you want to modify:");
gets(num1);
while(fread(&stu, sizeof(stu),1,fp1)==1)
{
if(strcmp(num1,stu.person_num)==0)
{
print1();
printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
printf("%-8c",stu.sex);
printf("%-4d ",stu.Math);
printf("%-4d ",stu.Chinese);
printf("%-4d ",stu.English);
printf("%-4d ",stu.Physics);
printf("%-4d ",stu.Physics);
printf("\n");
printf("\n\nPlease input the new information:\n");
printf("\t班级代号:");gets(stu.class_num);
printf("\t学生学号:");gets(stu.person_num);
printf("\t学生姓名:"); gets(stu.name);
printf("\t学生性别:");gets(&stu.sex);
printf("\t学生成绩(数学):");scanf("%d",&stu.Math);
printf("\t学生成绩(英语):");scanf("%d",&stu.English);
printf("\t学生成绩(语文):");scanf("%d",&stu.Chinese);
printf("\t学生成绩(物理):");scanf("%d",&stu.Physics);
printf("\t学生成绩(化学):");scanf("%d",&stu.Chemistry);
getchar();
}
fwrite(&stu,sizeof(stu),1,fp2);
}
fclose(fp1);
fclose(fp2);
printf("Modify sucess!\n");
remove("f:\\zimou.txt");
rename("f:\\ziye.txt","f:\\zimou.txt");
printf("Modify ang more?(Y/N):[ ]\b\b");
ch=getchar(); getchar();
}while(ch=='Y'||ch=='y');
system("cls");
}
//***************************************删除函数******************************************
void Delete()
{
FILE * fp1,* fp2;
int flag;
char num1[10];
char ch;
getchar();
do
{
if((fp1=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\tCan not open the inform file!");
getch();
exit(1);
}
if((fp2=fopen("f:\\ziye.txt","a+"))==NULL)
{
printf("\tCan not creat the temp file!");
getch();
exit(1);
}
printf("请输入你要删除的学生的学号(person_num):");
gets(num1);
flag=0;
while(fread(&stu,sizeof(stu),1,fp1)==1)
{
if(strcmp(num1,stu.person_num)==0)
{
print1();
printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
printf("%-8c",stu.sex);
printf("%-4d ",stu.Math);
printf("%-4d ",stu.Chinese);
printf("%-4d ",stu.English);
printf("%-4d ",stu.Physics);
printf("%-4d ",stu.Physics);
printf("\n");
flag=1;
}
else
fwrite(&stu,sizeof(stu),1,fp2);
}
fclose(fp1);
fclose(fp2);
if(flag==1)
{
remove("f:\\zimou.txt"); //这是核心算法,可以看看
rename("f:\\ziye.txt","f:\\zimou.txt");
}
else
printf("can not find this record!\n");
printf("Delete any more?(Y/N):[ ]\b\b");
ch=getchar(); getchar();
}while(ch=='Y'||ch=='y');
system("cls");
}
//********************************排序*****************************
void Score_sort()
{
struct score stud[100];
FILE * fp;
int total=0;
int i=0;
char ch;
int a,b;
struct score temp;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
printf("\tCan not open file!");
getch();
exit(1);
}
do
{
rewind(fp);
printf("请输入你所要排序的科目(1.数学2.语文3.英语4.物理5.化学):[ ]\b\b");
ch=getchar();getchar();
total=0;
while(fread(&stu,sizeof(stu),1,fp)==1)
{
total++; //计数从而使结构体数组起到作用
stud[i]=stu;
i++;
}
switch(ch)
{
case'1':
for(a=0;a<total-1;++a)
for(b=a+1;b<total;++b)
{
if(stud[a].Math>stud[b].Math)
{
temp=stud[a];
stud[a]=stud[b];
stud[b]=temp;
}
}
break;
case'2':
for(a=0;a<total-1;++a)
for(b=a+1;b<total;++b)
{
if(stud[a].Chinese>stud[b].Chinese)
{
temp=stud[a];
stud[a]=stud[b];
stud[b]=temp;
}
}
break;
case'3':
for(a=0;a<total-1;++a)
for(b=a+1;b<total;++b)
{
if(stud[a].English>stud[b].English)
{
temp=stud[a];
stud[a]=stud[b];
stud[b]=temp;
}
}
break;
case'4':
for(a=0;a<total-1;++a)
for(b=a+1;b<total;++b)
{
if(stud[a].Physics>stud[b].Physics)
{
temp=stud[a];
stud[a]=stud[b];
stud[b]=temp;
}
}
break;
case'5':
for(a=0;a<total-1;++a)
for(b=a+1;b<total;++b)
{
if(stud[a].Chemistry>stud[b].Chemistry)
{
temp=stud[a];
stud[a]=stud[b];
stud[b]=temp;
}
}
break;
}
print1();
for(i=0;i<total;i++)
{
printf("%-10s%-10s%-20s",stud[i].class_num,stud[i].person_num,stud[i].name);
printf("%-8c",stud[i].sex);
printf("%-4d ",stud[i].Math);
printf("%-4d ",stud[i].Chinese);
printf("%-4d ",stud[i].English);
printf("%-4d ",stud[i].Physics);
printf("%-4d ",stud[i].Physics);
printf("\n");
}
printf("\n\n总共有 %d 笔数据满足条件!",total);
printf("继续?(Y/N):[ ]\b\b");
ch=getchar();getchar();
}while(ch=='Y'||ch=='y');
fclose(fp);
}
//***********************************出口**************************************
void Exit()
{
exit(0);
}
//***********************************主函数****************************************
int main()
{
while(1)
switch(menu())
{
case '1':Enter();break;
case '2':Browse();break;
case '3':Query();break;
case '4':Recopose();break;
case '5':Delete();break;
case '6':Score_sort();break;
case '7':Exit();break;
}
return 0;
}
这个程序 在添加一个求平均分 最高分最低分的 模块 怎么写!!????