#include
#include
#include
FILE *fp;
void menu();
void input();
void del();
void search();
void motify();
void insert();
int total();
int m=total();//总数
struct mark
{
int mark1;
int mark2;
int mark3;
double ave;
double sum;
};
struct student
{
int num;
char name[20];
struct mark app;
}nmm[100];
int main()
{
menu();
int n;
scanf("%d",&n);
while(n)
{
switch(n)
{
case 1: input(); break;
case 2: del(); break;
case 3: search(); break;
case 4: motify(); break;
case 5: insert(); break;
case 6: total(); break;
default:printf("请重新输入"); scanf("%d",&n); break;
}
scanf("%d",&n);
}
}
void menu()
{
system("cls");
printf("nnnnnn");
printf("ttt * 学生信息管理系统 *n");
printf("ttt * *n");
printf("ttt ******************************************************nn");
printf("ttt*********************系统管理菜单************************* n");
printf("ttt --------------------- --------------------- n");
printf("ttt ********************************************* n");
printf("ttt * 0. exit * * 1. input record * n");
printf("ttt ********************************************* n");
printf("ttt * 2. delete record * * 3. search record * n");
printf("ttt ********************************************* n");
printf("ttt * 4. modify record * * 5. insert record * n");
printf("ttt ********************************************* n");
printf("ttt * 6. total * * * n");
printf("ttt ********************** ********************** n");
printf("ttt --------------------- --------------------- n");
printf("tttchoose(0-6): ");
}
void input()
{
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("can't open!n");
exit(0);
}
int i,j,n;
for(i=1;i<=m;i++)
{
fscanf(fp,"%d %s %d %d %d %lf %lf",&nmm[i].num,nmm[i].name,&nmm[i].app.mark1,&nmm[i].app.mark2,&nmm[i].app.mark3,&nmm[i].app.sum,&nmm[i].app.ave);
}
fclose(fp);
fp=fopen("c:\Users\22670\Desktop\data.txt","w");
printf("please input the number you want to input:");
scanf("%d",&n);
m=m+n;
for(i=m-n+1;i<=m;i++)
{
printf("nthe num of the %dTH student:",i);
scanf("%d",&nmm[i].num );
printf("nthe name of the %dTH student:",i);
scanf("%s",nmm[i].name );
printf("nthe marks of three subject:");
scanf("%d %d %d",&nmm[i].app.mark1,&nmm[i].app.mark2,&nmm[i].app.mark3);
nmm[i].app.sum=nmm[i].app.mark1+nmm[i].app.mark2+nmm[i].app.mark3;
nmm[i].app.ave=nmm[i].app.sum/3;
}
for(j=1;j<=m;j++)
{
fprintf(fp,"%d %s %d %d %d %.0lf %.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
printf("ID:%6d NAME:%6s MARK1:%6d MARK2:%6d MARK3:%6d SUM:%6.0lf AVE:%6.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
}
if(fclose(fp))
{
printf("can't close!n");
exit(0);
}
printf("ok!");
}
void del()
{
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("can't open!n");
exit(0);
}
int i,j,k,n,choose;
printf("please input the num you want to delete:");
scanf("%d",&n);
if(n>m)printf("nover!please input again!");
else
{
printf("nyou can delete it!sure?(input 1/0)");
scanf("%d",&choose);
if(choose)
{
for(i=1;i<=m;i++)
{
fscanf(fp,"%d %s %d %d %d %lf %lf",&nmm[i].num,nmm[i].name,&nmm[i].app.mark1,&nmm[i].app.mark2,&nmm[i].app.mark3,&nmm[i].app.sum,&nmm[i].app.ave);
}
fclose(fp);
fp=fopen("c:\Users\22670\Desktop\data.txt","w");
for(j=n+1;j<=m;j++)
{
nmm[j-1].num=nmm[j].num;
strcpy(nmm[j-1].name,nmm[j].name);
nmm[j-1].app.mark1=nmm[j].app.mark1;
nmm[j-1].app.mark2=nmm[j].app.mark2;
nmm[j-1].app.mark3=nmm[j].app.mark3;
nmm[j-1].app.sum=nmm[j].app.sum;
nmm[j-1].app.ave=nmm[j].app.ave;
}
for(k=1;km)printf("nno find!");
}
else
{
printf("nplease input the num:");
scanf("%d",&oo);
for(j=1;j<=m;j++)
{
if(nmm[j].num==oo)
{
printf("nfind it!");
k=j;
break;
}
}
if(j>m)printf("nno find!");
}
printf("ID:%6d NAME:%6s MARK1:%6d MARK2:%6d MARK3:%6d SUM:%6.0lf AVE:%6.0lf",nmm[k].num,nmm[k].name,nmm[k].app.mark1,nmm[k].app.mark2,nmm[k].app.mark3,nmm[k].app.sum,nmm[k].app.ave);
if(fclose(fp))
{
printf("can't close!n");
exit(0);
}
}
void motify()
{
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("can't open!n");
exit(0);
}
int i,j,n,a1,a2,a3;
printf("please input the num you want to motify:");
scanf("%d",&n);
printf("nplease input the renew data:");
scanf("%d %d %d",&a1,&a2,&a3);
for(i=1;i<=m;i++)
{
fscanf(fp,"%d %s %d %d %d %lf %lf",&nmm[i].num,nmm[i].name,&nmm[i].app.mark1,&nmm[i].app.mark2,&nmm[i].app.mark3,&nmm[i].app.sum,&nmm[i].app.ave);
}
fclose(fp);
fp=fopen("c:\Users\22670\Desktop\data.txt","w");
{
nmm[n].app.mark1=a1;
nmm[n].app.mark2=a2;
nmm[n].app.mark3=a3;
nmm[n].app.sum=a1+a2+a3;
nmm[n].app.ave=nmm[n].app.sum/3;
}
for(j=1;j<=m;j++)
{
fprintf(fp,"%d %s %d %d %d %.0lf %.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
printf("ID:%6d NAME:%6s MARK1:%6d MARK2:%6d MARK3:%6d SUM:%6.0lf AVE:%6.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
}
printf("nok!");
if(fclose(fp))
{
printf("can't close!n");
exit(0);
}
}
void insert()
{
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("can't open!n");
exit(0);
}
int i,j,n,oo,a1,a2,a3;
char nn[20];
printf("please input the address you want to insert:");
scanf("%d",&n);
for(i=1;i<=m;i++)
{
fscanf(fp,"%d %s %d %d %d %lf %lf",&nmm[i].num,nmm[i].name,&nmm[i].app.mark1,&nmm[i].app.mark2,&nmm[i].app.mark3,&nmm[i].app.sum,&nmm[i].app.ave);
}
fclose(fp);
fp=fopen("c:\Users\22670\Desktop\data.txt","w");
printf("nplease input the insert data:");
scanf("%d %s %d %d %d",&oo,nn,&a1,&a2,&a3);
m++;
for(j=n+1;j<=m;j++)
{
nmm[j].num=nmm[j-1].num;
strcpy(nmm[j].name,nmm[j-1].name);
nmm[j].app.mark1=nmm[j-1].app.mark1;
nmm[j].app.mark2=nmm[j-1].app.mark2;
nmm[j].app.mark3=nmm[j-1].app.mark3;
nmm[j].app.sum=nmm[j-1].app.sum;
nmm[j].app.ave=nmm[j-1].app.ave;
}
{
nmm[n].num=oo;
strcpy(nmm[n].name,nn);
nmm[n].app.mark1=a1;
nmm[n].app.mark2=a2;
nmm[n].app.mark3=a3;
nmm[n].app.sum=a1+a2+a3;
nmm[n].app.ave=nmm[n].app.sum/3;
}
for(j=1;j<=m;j++)
{
fprintf(fp,"%d %s %d %d %d %.0lf %.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
printf("ID:%6d NAME:%6s MARK1:%6d MARK2:%6d MARK3:%6d SUM:%6.0lf AVE:%6.0lfn",nmm[j].num,nmm[j].name,nmm[j].app.mark1,nmm[j].app.mark2,nmm[j].app.mark3,nmm[j].app.sum,nmm[j].app.ave);
}
printf("nok!");
if(fclose(fp))
{
printf("can't close!n");
exit(0);
}
}
int total()
{
int m=0;
char ch[20];
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("can't open!n");
exit(0);
}
while(!feof(fp))
{
m++;
fscanf(fp,"%d %s %d %d %d %lf %lf",&nmm[m].num,nmm[m].name,&nmm[m].app.mark1,&nmm[m].app.mark2,&nmm[m].app.mark3,&nmm[m].app.sum,&nmm[m].app.ave);
}
m--;
printf("total=%d",m);
return m;
}