#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<ctype.h>
#define M 3
struct student
{long num;
char name[20];
char sex;
int score[5];
int ave;
}stu[M];
void init()
{
printf("\t\t********************************\n\n");
printf("\t\tStudent score management systerm \n");
printf("\n");
printf("\t\t Make by Maggiehe \n");
printf("\n");
printf("\t\t Student number is 3206***** \n\n");
printf("\t\t********************************\n\n");
}
void input()
{
int i,j;
printf("\nInput the student number name sex math English PE maolun majing:\n");
for(i=0;i<M;i++)
{scanf("%ld,%s,%c",&stu[i].num,stu[i].name,&stu[i].sex);
for(j=0;j<5;j++)
scanf("%d",&stu[i].score[j]);
scanf("%d",&stu[i].ave);
save();
}
}
void list()
{
int i,j;
clrscr();
printf("\t**********************student****************************\n");
printf("num name sex math English PE maolun majing:\n");
for(i=0;i<M;i++)
{
printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<5;j++)
printf("%d",stu[i].score[j]);
printf("%d",stu[i].ave);
}
if((i+1)%10==0)
{
printf("\npress any key continue.......\n");
getch();
}
printf("\t*************************end*********************************\n");
}
void average()
{
int i,j;
float sum[M];
for(i=0;i<M;i++)
for(j=0;j<5;j++)
sum[i]+=stu[i].score[j];
stu[i].ave=sum[i]/5.0;
}
void search_num()
{
long num;
int i,j;
printf("\nplease enter number which you want to search:");
scanf("%ld",&num);
printf("\n");
for(i=0;i<M;i++)
if(stu[i].num!=num)
printf("The number is not exist\n");
else
{ printf("number name sex math English PE maolun majing average\n");
printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<5;j++)
printf("%d",stu[i].score[j]);
printf("%d",stu[i].ave);
}
}
void search_nam()
{
int i,j;
char name[20];
printf("\nplease enter name which you want to search:");
scanf("%s",&name);
printf("\n");
for(i=0;i<M;i++)
if(strcmp(stu[i].name,name)==0)
{
printf("number name sex math English PE maolun majing average:\n");
printf("%ld%s%c",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<5;j++)
printf("%d",stu[i].score[j]);
printf("%d",stu[i].ave);
}
else
printf("\nThe name is not exist!!!\n");
}
void search_ave()
{
int i,j,a=0;
float k;
printf("please enter average score which you want to search:");
scanf("%f",&k);
printf("\n");
for(i=0;i<M;i++)
if(stu[i].ave!=k)
printf("The average score is not exist!!!\n");
else
for(i=0;i<M;i++)
{
if(stu[i].ave<=k)
printf("number name sex math English PE maolun majing average\n");
printf("%ld %s %c",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<5;j++)
printf("%d",stu[i].score[j]);
printf("%d",stu[i].ave);
a++;
}
}
void sort()
{
int i,j;
struct student temp;
for(i=0;i<M;i++)
for(j=i+i;j<M;j++)
if(stu[i].ave<stu[j].ave)
{temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
void save()
{
int i;
FILE *fp;
if((fp=fopen("student.dat","wb"))==NULL)
{printf("cannot open file\n");
return;
}
for(i=0;i<M;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void delect()
{
int i,t;
long num;
printf("please enter number which you want to delect:");
scanf("%ld",&num);
printf("\n");
for(i=0;i<M;i++)
{
if(stu[i].num!=num)
printf("The number is not exist!!!\n");
if(stu[i].num==num)
t=i;
}
for(i=t;i<M;i++)
stu[i]=stu[i+1];
save();
}
void insert()
{FILE *fp;
int i,n,t;
struct student s;
printf("please input record\n");
printf("number name sex math English PE maolun majing average\n"); scanf("%ld,%s,%c,%d%d%d%d%d%d",&s.num,s.name,&s.sex,&s.score[0],&s.score[1],&s.score[2],&s.score[3],&s.score[4],&s.ave);
s.ave=(s.score[0]+s.score[1]+s.score[2]+s.score[3]+s.score[4])/3.0;
if((fp=fopen("student.dat","wb"))==NULL)
{printf("cannot open file\n");
return;
}
i=M;
for(t=0;stu[i].ave>s.ave&&t<M;t++)
if(fwrite(&s,sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void MainMenu()
{clrscr();
printf("\t********************************************************************\n
\n);
Printf(“\n”);
printf("\t choose one of following:\n");
printf("\t 1. search record\n");
printf("\t 2. sort record\n");
printf("\t 3. insert record\n");
printf("\t 4. delect record\n");
printf("\t please enter your choice:");
printf(“\n”); printf("\t********************************************************************\n");
}
void menu_select()
{clrscr();
printf("\t******************************************************************\n\n"); printf(“\n”);
printf("\t choose one of following:\n");
printf("\t 1.1 search by number\n");
printf("\t 1.2 search by name\n");
printf("\t 1.3 search by average score\n");
printf("\t please enter your choice:");
printf(“\n”); printf("\t******************************************************************\n");
}
void search()
{
char ch;
clrscr();
menu_select();
ch=getch();
switch(ch)
{
case '1':search_num();break;
case '2':search_nam();break;
case '3':search_ave();break;
}
}
main()
{
char ch;
clrscr();
init();
input();
list();
average();
save();
MainMenu();
ch=getch();
switch(ch)
{
case '1':search();break;
case '2':sort();break;
case '3':insert();break;
case '4':delect();break;
}
search_num();
search_nam();
search_ave();
sort();
delect();
insert;
}