【文件属性】:
文件名称:#include
文件大小:2KB
文件格式:C
更新时间:2017-07-30 09:52:01
yuan dai ma
#include
#include
struct DATA
{
int ID;
char name[4];
char sex[3];
int score;
};
void paixu(int*,DATA*,int);
int sishewuru(double);
void func1(int*,int*,DATA*,int*,int,int,int,int);//统计男女比例
int func2(int*,int,DATA*);//查找考生序号
void print();
void main()
{
int length=0,i,yiben,erben,sanben,dazhuan,male[4],female[4];
int yi,er,san,si;
char input;
FILE* file=fopen("f1.txt","r"),*file1;
if(file==NULL)
{
printf("No such file!\n");
return;
}
while(EOF!=fscanf(file,"%*[^\n]\n")) length++;//自动计算考生数罝ATA* data=(DATA*)malloc(length*sizeof(DATA));
int* pai=(int*)malloc(length*sizeof(int));
rewind(file);
for(i=0;i='0'&&input<='4'))
{
printf("非法输入,请重新输入\n请输入:");
fflush(stdin);
}
else break;
}
getchar();
switch(input)
{
case '0':
printf("\n一类本科招生线:%d\n二类本科招生线:%d\三类本科招生线:%d\\n高职高专招生线:%d\n",yi,er,san,si);
printf("是否打印为文件?(y/n):");
if(getchar()=='y')
{
file1=fopen("各批次录取分数线.txt","w");
fprintf(file1,"一类本科招生线:%d\n二类本科招生线:%d\\n三类本科招生线:%d\n高职高专招生线:%d\n",yi,er,san,si);
fclose(file1);
}
fflush(stdin);
break;
case '1':
func1(male,female,data,pai,yiben,erben,sanben,dazhuan);
printf("一类本科招生线男女比例:%d:%d\n",male[0],female[0]);
printf("二类本科招生线男女比例:%d:%d\n",male[1],female[1]);
printf("三类本科招生线男女比例:%d:%d\n",male[2],female[2]);
printf("高职高专招生线招生线男女比例:%d:%d\n",male[3],female[3]);
printf("是否打印为文件?(y/n):");
if(getchar()=='y')
{
file1=fopen("各批次录取男女比例.txt","w");
fprintf(file1,"一类本科招生线男女比例:%d:%d\n",male[0],female[0]);
fprintf(file1,"二类本科招生线男女比例:%d:%d\n",male[1],female[1]);
fprintf(filel,"三类本科招生线男女比例:%d:%d\n",male[2],female[2]);
fprintf(file1,"高职高专招生线招生线男女比例:%d:%d\n",male[3],female[3]);
fclose(file1);
}
fflush(stdin);
break;
case '2':
printf("按考号查询输入0 按姓名查询输入1\n请输入查询码:");
for(input=getchar();;input=getchar())
{
if(input!='0'&&input!='1')
{
printf("非法输入,请重新输入\n请输入:");
fflush(stdin);
}
else break;
}
getchar();
int shuru,j,ss[10];//假设最多10个重名的
for(j=0;j<10;j++) ss[i]=0;
if(input=='0')
{
start1:
printf("请输入考号:");
for(j=scanf("%d",&shuru);j!=1||shuru/10000!=4211;j=scanf("%d",&shuru))
{//假设考号开头为4211
printf("非法输入,请重新输入\n请输入:");
fflush(stdin);
}
getchar();
j=shuru000;//假设考号和序号的关系
printf("该生考号:%d 姓名:%s 性别:%s 分数:%d 录取情况:", shuru,data[j].name,data[j].sex,data[j].score);
if(data[j].score>=yi) printf("一本\n");
else if(data[j].score>=er) printf("二本\n");
else if(data[j].score>=san) printf("三本\n");
else if(data[j].score>=si) printf("高职高专\n");
else printf("未过线,请继续努力!\n");
printf("是否继续查询?(y/n):");
if(getchar()=='y')
{
fflush(stdin);
goto start1;
}
}
else
{
start2:
printf("请输入姓名:");
j=func2(ss,length,data);//查找考生序号
if(j==0) printf("查无此人!\n");
else if(j==1)
{
printf("该生考号:%d 姓名 %s 性别:%s 分数:%d 录取情况:", data[ss[0]].ID,data[ss[0]].name,data[ss[0]].sex,data[ss[0]].score);
if(data[ss[0]].score>=yi) printf("一本\n");
else if(data[ss[0]].score>=er) printf("二本\n");
else if(data[ss[0]].score>=san) printf("三本\n");
else if(data[ss[0]].score>=si) printf("高职高专\n");
else printf("未过线,请继续努力!\n");
}
else
{
printf("有多个考生姓名为%s,数据如下:\n",data[ss[0]].name);
for(j=j-1;j>=0;j--)
{
printf("该生考号:%d 姓名:%s 性别:%s 分数:%d 录取情况:", data[ss[j]].ID,data[ss[j]].name,data[ss[j]].sex,data[ss[j]].score);
if(data[ss[j]].score>=yi) printf("一本\n");
else if(data[ss[j]].score>=er) printf("二本\n");
else if(data[ss[j]].score>=san) printf("三本\n");
else if(data[ss[j]].score>=si) printf("高职高专\n");
else printf("
未过线,请继续努力!\n");
}
}
printf("是否继续查询?(y/n):");
if(getchar()=='y')
{
fflush(stdin);
goto start2;
}
}
break;
case '3':
fclose(file);
free(data);
return;
case '4':
print();
break;
}
}
fclose(file);
free(data);
}
void paixu(int* pai,DATA* data,int length)
{
int i,j,temp;
for(i=0;i1)
{
if((l-(int)l)<0.5) return (int)l;
else return (int)l+1;
}
else return 1;
}
void func1(int* male,int* female,DATA* data,int* pai,int a,int b,int c,int d)
{
int i;
for(i=0;i<4;i++) {male[i]=0;female[i]=0;}
for(i=0;i<=a;i++)
{
if(data[pai[i]].sex[0]==-60) male[0]++;
else female[0]++;
}
for(;i<=b;i++)
{
if(data[pai[i]].sex[0]==-60) male[1]++;
else female[1]++;
}
for(;i<=c;i++)
{
if(data[pai[i]].sex[0]==-60) male[2]++;
else female[2]++;
}
for(;i<=d;i++)
{
if(data[pai[i]].sex[0]==-60) male[3]++;
else female[3]++;
}
}
void print()
{
printf("--------------------------------高考招生录取程序-------------------------------\n");
printf("今年招生计划:一类本科招生计划为10%\n 二类本科招生计划为15%\n\ 三类本科招生计划为20%\n 四类高职高专招生计划为20%\n");
printf("查询:\n各类招生分数线输入0 各批次男女比例输入1\ \n单个学生录取情况输入2 退出系统输入3\n重新打印初试界面输入4\n");
}
int func2(int* ss,int length,DATA* data)
{
int i,j=0;
char s[4];
while(1)
{
i=scanf("%s",s);
fflush(stdin);
if(i!=1)
{
printf("非法输入,请重新输入\n请输入:");
continue;
}
for(i=0;i