求C语言达人帮做程序~万分感谢~简易学生成绩管理系统

准备数据(这个我会 就不用了)
功能要求
在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,然后显示菜单,利用菜单调用各个函数,分别完成如下功能:(注意:若文本文件DX0112存放在D盘的ABC文件夹中,则fopen()函数中的文件名应为:”D:\\ABC\\DX0112.txt”)。
1) 计算每个学生4门课的加权平均分(保留2位小数,4舍5入),并按加权平均分排列名次,加权平均分相同则名次并列。用C语言创建一个数据文件,文件名为:“班名+序号_1”,如电信01班的12号同学所建的文件名应为:DX0112_1.txt。用来存放班级名次后的成绩表,要求按以下形式存放:
名次 学号 姓名 大学英语 C语言 高等数学 思想道德修养 平均成绩
1 20080001 我自己 96 93 91 90 92.89
4 20080002 丁勇 76 89 89 61 86.87
5 20080003 董茂 91 71 67 84 86.13
7 20080004 冯联军 54 68 78 69 66.63
... ... ... ... ... ... ... ... ... ...
2) 实现排序功能:①按学生姓名排序;②按平均成绩排序。将排序后的结果显示在屏幕上。
3) 分别统计全班每门课的平均分,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。用C语言创建一个数据文件,文件名为:“班名+序号_2”,如电信01班的12号同学所建的文件名应为:DX0112_2.txt。在文件中存放的数据格式如下:
编号 课程名称 课程平均分 优秀 良好 中等 及格 不及格
1 大学英语 74.5 2 2 3 1 2
2 C语言 78 3 2 2 2 1
4) 实现显示学生成绩条的功能:①显示指定学号的学生成绩条;②显示指定姓名的学生成绩条(若有同名,则以第一次出现为准)。先输入一个学生的学号或姓名,若原始数据文件中不存在该学生的信息,则系统给出提示,不显示成绩条;若存在该学生信息,则将指定学生的成绩条显示在屏幕上,成绩条的格式如下:
学号 姓名 大学英语 C语言 高等数学 思想道德修养 平均成绩
20080004 冯联军 54 68 78 69 66.63
拜托各位了 帮我编一下 谢谢了 答得好追加分 (不要从其他地方粘贴复制过来的,不用心我怎么能给你分

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 20
void read_file(); //导入数据
void dis_menu(); //显示菜单
void ave_english();// 计算英语平均分
void ave_math();//计算数学平均分
void ave_c(); //计算c语言平均分
void ave_moral(); //计算思修平均分
void save_score();// 保存班级成绩表
void save_ave();// 保存班级每门课平均分
void calculate();//计算各阶段人数
void sort_name();//按姓名排序
void sort_ave();//按平均分排序
void display_1(int);//打印学生个人信息
void display_2();//按学号打印学生成绩条
void display_3();//按姓名打印学生成绩条
int changeStrInt(char *ch);//把字符串转化为整型
typedef struct
{
int num;//学号
char name[30];
float english;
float math;
float moral;//思修
float c;
float ave;
int no;//名次
}Stu;
typedef struct
{
int exce_num;
int good_num;
int medi_num;
int pass_num;
int fail_num;
}subsec;
Stu stu[MAX]={0,"\0",0};
subsec sub[4]={0};
bool tag=true,Tag=true;
float sum_eng=0;
float sum_math=0;
float sum_moral=0;
float sum_c=0;
int class_num=0;
float ave_eng=0;
float ave_mat=0;
float ave_mor=0;
float ave_C=0;
//test.cpp
void main()
{
dis_menu();
}
//test.cpp
void dis_menu()
{
int i=0,j=0,k=0,n=0;
char ch,c;
do{
printf("******** *欢迎使用学生管理系统* ********** ******\n");
printf("****** ****输入要进行的操作****** ******* ***** *\n");
printf("**** ******1:原始数据导入********** **** ***** **\n");
printf("** ********2: 信息查询(成绩显示)***** * ***** ***\n");
printf("* *********3:信息检索(排序)********** * ****** **\n");
printf("*** *******4:数据保存(成绩表)****** ***** ***** *\n");
printf("***** *****5:数据保存(分段表)**** ********* *****\n");
printf("******* ***0:退出系统********* ************** ***\n");
fflush(stdin);
scanf("%d",&i);
switch(i)
{
case 1:
read_file();
break;
case 2:
printf("************1:按学号显示********************\n");
printf("*************2:按姓名显示*******************\n");
fflush(stdin);
fflush(stdin);
scanf("%d",&j);
switch(j)
{
case 1:
display_2();
break;
case 2:
display_3();
break;
default: break;
} break;
case 3: printf("************1:按姓名排序********************\n");
printf("*************2:按平均分排序*****************\n");
fflush(stdin);
scanf("%d",&k);
switch(k)
{
case 1:
sort_name();
printf("是否打印学生成绩信息?(Y or N)\n");
fflush(stdin);
c=getchar();
switch(c)
{
case 'Y':
case 'y':
Tag=false;
printf("学号\t\t姓名\t 英语\t c语言\t 高数\t 思修\t平均成绩\n");
for(n=0;n<class_num;n++)
display_1(n);
break;
default: break;
}
break;
case 2:
sort_ave();
printf("是否打印学生成绩信息?(Y or N)\n");
fflush(stdin);
c=getchar();
switch(c)
{
case 'Y':
case 'y':
Tag=false;
printf("学号\t\t姓名\t 英语\t c语言\t 高数\t 思修\t平均成绩\n");
for(n=0;n<class_num;n++)
display_1(n);
break;
default: break;
}

default: break;
} break;
case 4:
save_score();
break;
case 5:
save_ave();
break;
default:
printf("感谢使用本系统!\n");
system("exit");
exit(0);
}
printf("是否继续?(Y or N)\n");
fflush(stdin);
ch=getchar();
system("cls");
}while(ch=='Y'||ch=='y');

}

int changeStrInt(char *ch)
{ int a=1,b=0,c=0,i;
for (i=strlen(ch)-1;i>=0;i--)
{ if (ch[i]<='9'&&ch[i]>='0')
{ b=a*(ch[i]-'0');
a=a*10;
c=c+b;
}
else
{ printf("%c不合法,无法将此字符转化为整形!\n",ch[i]);
return 0;
}
}
return c;
}

void read_file()
{
FILE *fp;
char filepath[20];
long position; char ch;
int i=0; char str_num[20]="\0";
char str_english[20]="\0"; char str_c[20]="\0";
char str_math[20]="\0"; char str_moral[20]="\0";
printf("输入原始数据存放路径:\n");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("原始数据导入失败,请检查输入路径是否正确\n");
return;
}
while(i!=1)
{
ch = fgetc(fp);
if(ch=='\n')
{
position=ftell(fp);
i++;
}
}
fseek(fp, position,SEEK_SET); //定位
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%s\t%s\t%s\t%s\t%s\t%s\n",str_num,stu[i].name,
str_english,str_c,str_math,str_moral);
stu[i].num=changeStrInt(str_num);
stu[i].english=(float)changeStrInt(str_english);
stu[i].math=(float)changeStrInt(str_math);
stu[i].c=(float)changeStrInt(str_c);
stu[i].moral=(float)changeStrInt(str_moral);
stu[i].ave=(stu[i].english+stu[i].math+stu[i].c+stu[i].moral)/4;
class_num++;
sum_math+=stu[i].math;
sum_eng+=stu[i].english;
sum_c+=stu[i].c;
sum_moral+=stu[i].moral;
}
fclose(fp);
ave_english();
ave_math();
ave_c();
ave_moral();
calculate();
printf("原始数据导入成功!\n");
}

void ave_english()
{
ave_eng=sum_eng/class_num;
}

void ave_math()
{
ave_mat=sum_math/class_num;
}

void ave_c()
{
ave_C=sum_c/class_num;
}

void ave_moral()
{
ave_mor=sum_moral/class_num;
}

void sort_ave()
{
Stu temp;
int i,j;
for(i=1;i<class_num;i++)
for(j=1;j<=class_num-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
stu[i-1].no=i;
}
stu[i-1].no=i;
if(tag)
{
printf("排序完成!\n");

}
}

void sort_name()
{
Stu temp;
int i,j;
for(i=1;i<class_num;i++)
for(j=1;j<=class_num-i;j++)
{
if(strcmp(stu[j-i].name,stu[j].name)>0)//按字典序列由大到小
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
if(tag)
{
printf("排序完成!\n");

}

}

void calculate()
{
int i;
//英语
for(i=0;i<class_num;i++)
{
if(stu[i].english<60)
sub[0].fail_num++;
else if(stu[i].english<70)
sub[0].pass_num++;
else if(stu[i].english<80)
sub[0].medi_num++;
else if(stu[i].english<90)
sub[0].good_num++;
else sub[0].exce_num++;
}
//c语言
for(i=0;i<class_num;i++)
{
if(stu[i].c<60)
sub[1].fail_num++;
else if(stu[i].c<70)
sub[1].pass_num++;
else if(stu[i].c<80)
sub[1].medi_num++;
else if(stu[i].c<90)
sub[1].good_num++;
else sub[1].exce_num++;
}
//高数
for(i=0;i<class_num;i++)
{
if(stu[i].math<60)
sub[2].fail_num++;
else if(stu[i].math<70)
sub[2].pass_num++;
else if(stu[i].math<80)
sub[2].medi_num++;
else if(stu[i].math<90)
sub[2].good_num++;
else
sub[1].exce_num++;
}
//思修
for(i=0;i<class_num;i++)
{
if(stu[i].moral<60)
sub[3].fail_num++;
else if(stu[i].moral<70)
sub[3].pass_num++;
else if(stu[i].moral<80)
sub[3].medi_num++;
else if(stu[i].moral<90)
sub[3].good_num++;
else sub[3].exce_num++;
}

}

void save_score()
{
char filepath[30];
FILE *fp;
int i;
tag=false;
printf("输入要保存的路径:\n");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w+"))==NULL)
{
printf("保存失败,请检查文件名,路径是否正确!\n");
return;
}
sort_ave();//存盘时,先用"按平均分排序"进行排序,否则名次输出有误
fprintf(fp,"名次\t学号\t\t姓名\t英语\tc语言\t高数\t思修\t平均成绩\n");
for(i=0;i<class_num;i++)
{
fprintf(fp,"%d\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].num,
stu[i].name,stu[i].english,stu[i].c,stu[i].math,stu[i].moral,stu[i].ave);
}
fclose(fp);
printf("学生成绩文件已经保存完毕!\n");
}

void save_ave()
{
FILE *fp; tag=false;
char filepath[30];
char course[4][30]={"英语","c语言","高数","思修"};
float ave[4]={ave_eng,ave_C,ave_mat,ave_mor};
int i;
printf("输入文件保存路径:\n");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w+"))==NULL)
{
printf("保存失败,请检查文件名,路径是否正确!");
return;
}
sort_name();
fprintf(fp,"编号\t课程名称\t课程平均分\t优秀\t良好\t中等\t及格\t不及格\n");
for(i=0;i<4;i++)
{
fprintf(fp,"%d\t%s\t\t%.2f\t\t%d\t%d\t%d\t%d\t%d\n",i+1,*(course+i),ave[i],
sub[i].exce_num,sub[i].good_num,sub[i].medi_num,sub[i].pass_num,
sub[i].fail_num);
}
fclose(fp);
printf("学生成绩文件已经保存完毕!\n");
}

void display_1(int i)
{
if(Tag)
printf("学号\t\t姓名\t英语\tc语言\t高数\t思修\t平均成绩\n");
printf("%d\t%s\t%.2f\t%.2f\t %.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,
stu[i].english,stu[i].c,stu[i].math,stu[i].moral,stu[i].ave);
fflush(stdin);
return;
}

void display_2()
{
int i,no;
volatile int flag=0;
printf("请输入你要查询学生的学号:\n");
fflush(stdin);
scanf("%d",&no);
for(i=0;i<class_num;i++)
{
if(no==stu[i].num&&!flag)
{
printf("学生信息如下:\n");
fflush(stdin);
display_1(i);
flag=1;
}
}
if(!flag)
{
printf("查询学生不存在,请检查学号输入是否正确!\n");
return;
}

}

void display_3()
{
char name[30];
int i;
volatile int flag=0;
printf("输入你要查询学生的姓名:\n");
fflush(stdin);
gets(name);
for(i=0;i<class_num;i++)
{
if((strcmp(stu[i].name,name)==0)&&!flag)
{
printf("学生信息如下:\n");
display_1(i);
flag=1;
}
}
if(!flag)
{
printf("查询学生不存在,请检查学号输入是否正确!\n");
return;
}

}

写好了,看看合适否?建立原始文件时,不能有名次和平均成绩,分数为整数;格式如下:
学号 姓名 英语 c语言 高数 思修
20080001 我自己 96 93 91 90
20080002 丁勇 76 89 89 61
20080003 董茂 91 71 67 84
20080004 冯联军 54 68 78 69
希望对你用帮助,有问题再联系,考试顺利!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-06
#include<stdio.h>
#include <time.h>
#include<conio.h> /*清屏*/
#include <stdlib.h> /*显示目录*/
#include<string.h>
#define MAX 80
void input(); /*输入数据函数*/
void sort();/*排序数据函数*/
void sort1();
void sort2();
void sort3();
void display();/*显示数据函数*/
void display1();
void insert(); /*插入数据函数*/
void del(); /*删除数据函数*/
void average(); /*平均值函数*/
void find();/*查找数据函数*/
void find1();
void find2();
void save(); /*保存数据函数*/
void read(); /*读出数据函数*/
void del_file(); /*删除文件函数*/
void modify(); /*修改文件函数*/
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
char ch;
do{

start: printf("\n\n\n\t\t\t欢迎使用学生成绩管理系统\n");
printf("\n\n\n\n\n\n\t\t******************按任意键继续********************");
ch=getch();
}
while(!ch);
system("cls");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学员单科成绩排序\n\t\t\t\t5.添加学员信息\n\t\t\t\t6.删除学员信息\n\t\t\t\t7.修改学员信息\n\t\t\t\t8.查询学员信息\n\t\t\t\t9.从文件读入学员信息\n\t\t\t\t10.删除文件中学员信息\n\t\t\t\t11.保存学员信息\n\t\t\t\t12.退出\n");
printf("\t\t\t\t选择功能选项(输入所选功能前的数字):");
fflush(stdin);
/*可用可不用,用于清除缓存防止下次用scanf输入是出现错误*/
scanf("%d",&as);
switch(as)
{
case 1:system("cls");
input();
break;
case 2:system("cls");
display();
break;
case 3:system("cls");
sort();
break;
case 4:system("cls");
display1();
break;
case 5:system("cls");
insert();
break;
case 6:system("cls");
del();
break;
case 7:system("cls");
modify();
break;
case 8:system("cls");
find();
break;
case 9:system("cls");
read();
break;
case 10:system("cls");
del_file();
break;
case 11:system("cls");
save();
break;
case 12:system("exit");
exit(0);
default:system("cls");
goto start;
}
}while(1);/*while(1),1表示真,所以while(1)表示永远循环下去,一般在while(1)的循环体内都有break 或者return 跳出循环*/
/*至此功能选择结束*/
}

void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
printf("排序以完成进入功能2可进行显示\n");
system("pause");
system("cls");
}
void sort1()/*排序数据函数*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score1<stu[j].score1)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void sort2()/*排序数据函数*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score2<stu[j].score2)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void sort3()/*排序数据函数*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score3<stu[j].score3)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void display1()/*显示数据函数*/
{
int i;
char as;
do
{
printf("\t\t\t班级学员score1成绩排序\n");
printf("\t编号\t姓名\t性别\t成绩1\n");
sort1();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1);
printf("\t\t\t班级学员score2成绩排序\n");
printf("\t编号\t姓名\t性别\t成绩2\n");
sort2();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score2);
printf("\t\t\t班级学员score3成绩排序\n");
printf("\t编号\t姓名\t性别\t成绩3\n");
sort3();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score3);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void average()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20];
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
{
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
}
system("cls");
}

void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause"); /*按任意键继续*/
system("cls");
}

void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}
这个非常强大 呵呵 你自己稍微改改就ok了
第2个回答  2011-01-05
你这个问题不难,不过就是耗费时间……没事的时候可以给你做一下!
相似回答