分类:
2008-04-01 23:04:54
#include "stdio.h"
#include"stdlib.h"
#include"string.h"
#include"process.h"
#define N 3
#include"top.c"
void main_1();
struct students{
int n;
char name[20];
float cj[3];
}st[3];
int i=0; //计数器;
void init(struct students st[],int num){
int j,c,xz,m;
FILE *fp1,*fp2;//fp1中存i值;fp2为读入文件;
printf("按1从文件导入数据,按2重新输入数据;");
scanf("%d",&xz);
if(xz==1){
fp1=fopen("d:\\c\\i.txt","r");
if(fp1==NULL){
printf("文件中尚无记录!");
exit(1);
}
fscanf(fp1,"%d",&i);//读出i的值;
fp2=fopen("d:\\c\\SSMS.txt","r");
if(fp2==NULL){
printf("文件不存在,请检查(d:\c\学生成绩管理.txt)是否存在。");
exit(1);
}
printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
for(m=0;m fscanf(fp2,"%d%s%d%d%d",&st[m].n,st[m].name,&st[m].cj[0],&st[m].cj[1],&st[m].cj[2]);
printf("%3d\t%3s\t%3d\t%3d\t%3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
}
printf("文件导入成功!按ENTER返回主界面。");getchar();getchar();
system("cls");
main_1();
}
else{
do{
st[i].n=i;
printf("请输入编号%d的姓名:",st[i].n+1);
fflush(stdin);
gets(st[i].name);
for(j=0;jprintf("第%d门成绩:",j+1);
scanf("%f",&st[i].cj[j]);
if(st[i].cj[j]<0||st[i].cj[j]>100) {
fflush(stdin);printf("输入失败,成绩范围在0-100之间!\n");j--;
}
}
i++;
printf("还要输入吗?(y/n)");fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
}
void paixu(){
int m,j,n,c;
struct students p;
do{
if(i==0) {
printf("尚未找到成绩,请按回车回主页面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("请选择按哪一门成绩进行排序(1-3):");
scanf("%d",&n);
printf("您选择了按第%d门成绩排序:",n);
for(m=0;mfor(j=m+1;j if(st[m].cj[n-1] p=st[m];
st[m]=st[j];
st[j]=p;
}
}
printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
for(m=0;m printf("\t\n%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
}
printf("还要输入吗?(y/n)");fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
fflush(stdin);
getchar();
system("cls");
main_1();
}
void chaxun(){
int n,xh,m,c,flag=0;
char name[20];
do{
if(i==0) {
printf("尚未找到成绩,请按回车回主页面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("请选择按什么方式进行查询\n按1以学号查询,按2以姓名查询:");
scanf("%d",&n);
if(n==1){
printf("您选择了按学号查询:\n");
printf("请输入您要查询的学号:");
scanf("%d",&xh);
for(m=0;m if(xh==st[m].n)
flag=1;
if(flag==1){
printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
printf("%d\t%s\t%d\t%d\t%d\n",st[xh].n,st[xh].name,st[xh].cj[0],st[xh].cj[1],st[xh].cj[2]);
}else
printf("暂无该学员数据。\n");
}
else{
printf("您选择了按姓名查询:\n");
printf("请输入您要查询的姓名:");
scanf("%s",name);
for(m=0,flag=0;m if(strstr(st[m].name,name)!=NULL)
printf("%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
else
flag++;
}if(flag==m)
printf("暂无该学员数据。\n");
}
}
printf("还想查询吗?(y/n)");
fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
void xiugai(){
int m,k,j;
char c;
do{
if(i==0) {
printf("尚未找到成绩,请按回车回主页面添加;"); fflush(stdin);
getchar();system("cls");main_1();
}
else{
printf("\n编号\t姓名\t语文\t数学\t英语\n");
for(k=0;k printf("%d\t%s\t%d\t%d\t%d\n",st[k].n,st[k].name,st[k].cj[0],st[k].cj[1],st[k].cj[2]);
printf("请输入您想要修改的信息编号:");
loop: scanf("%d",&m);
if(m>i){
printf("没有该数据\n请重新输入:");
goto loop;
}
else
j=m-1;
printf("姓名:");
scanf("%s",st[j].name);
printf("语文:");
scanf("%d",&st[j].cj[0]);
printf("数学:");
scanf("%d",&st[j].cj[1]);
printf("英语:");
scanf("%d",&st[j].cj[2]);
printf("数据已保存\n");
}
printf("还想修改吗?(y/n)");
fflush(stdin);
c=getchar();
}while(c=='y'||c=='Y');
system("cls");
main_1();
}
void shuchu(){
FILE *fp1,*fp2;
int m;
fp1=fopen("d:\\c\\SSMS.txt","w");
fp2=fopen("d:\\c\\i.txt","w");
fprintf(fp2,"%d",i);
for(m=0;m fprintf(fp1,"%d\t",st[m].n);
fprintf(fp1,"%s\t",st[m].name);
fprintf(fp1,"%d\t",st[m].cj[0]);
fprintf(fp1,"%d\t",st[m].cj[1]);
fprintf(fp1,"%d\n",st[m].cj[2]);
}
fclose(fp1);
fclose(fp2);
printf("成功储存,按ENTER回主界面!");
fflush(stdin);
getchar();
system("cls");
main_1();
}
void tongji(){
int sum[N],avg[N],m;
char c,name[20];
FILE *fp;
printf("\n编号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");
for(m=0;m sum[m]=st[m].cj[0]+st[m].cj[1]+st[m].cj[2];
avg[m]=sum[m]/3;
printf("%d\t%3s\t%3d\t%3d\t%3d\t %3d\t %3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2],avg[m],sum[m]);
}printf("是否输出列表信息(y/n)");
fflush(stdin);c=getchar();
if(c=='y'||c=='Y'){
printf("请填写报表名字:");
scanf("%s",name);
fp=fopen(name,"w");
fprintf(fp,"\t学生成绩报表 SSMS3.0\n");
fprintf(fp,"\n编号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");
for(m=0;m fprintf(fp,"%d\t",st[m].n);
fprintf(fp,"%s\t",st[m].name);
fprintf(fp,"%d\t",st[m].cj[0]);
fprintf(fp,"%d\t",st[m].cj[1]);
fprintf(fp,"%d\t",st[m].cj[2]);
fprintf(fp,"%d\t",avg[m]);
fprintf(fp,"%d\n",sum[m]);
}fclose(fp);
printf("文件成功保存!");
fflush(stdin);getchar();
system("cls");
main_1();
}else{
system("cls");
main_1();
}
}
void main_1(){
int n,count=0;
top();//头文件;
printf("请选择:");
for(;;){
scanf("%d",&n);
if(n==1)
{system("cls");tian_jia();init(st,3);}
else if(n==2)
{system("cls");cha_xun();chaxun();}
else if(n==3)
{system("cls");pai_xu();paixu();}
else if(n==4)
{system("cls");xiu_gai();xiugai();}
else if(n==5)
{system("cls");shu_chu();shuchu();}
else if(n==6)
{system("cls");tong_ji();tongji();}
else if(n==7)
{system("cls");about();printf("按ENTER返回主界面!");fflush(stdin);getchar();system("cls");main_1();}
else if(n==8){
exit(0);
break;
}
else{
fflush(stdin);
printf("您选择出错!\n请重新选择:");
}
}
}
void main(){
main_1();
}