读书人

用C语言编高校录取管理系统解决思路

发布时间: 2012-02-14 19:19:19 作者: rapoo

用C语言编高校录取管理系统
[问题描述] 模拟高校旧录取流程,现有4个学校,4个考生,每位考生填写1个志愿,录取规则如下:每个学校同时按志愿进行录取
一、系统功能
1、录入:
(1)学校信息:编号、名称
(2)考生信息:编号、姓名、分数、志愿
2、查询和统计:
按考生编号查询录取情况,包括编号、姓名、填写志愿信息、录取学校编号


下面是我编的程序,但就是在查询时输出的录取学校编号有误,请高手帮帮忙
#include <stdio.h>
#define M 3
#define N 4
struct school
{
int num;
char name[30];

}sch[M]={{1, "zhejianguniversity "},{2, "ningbouniversity "},{3, "wenzhouuniversity "}};
struct student
{
int num;
char name[8];
int score;
int ruqu;
char will[20];
}stu[N];
int main()
{ //菜单化界面
  printf( "##############################\n ");
  printf( "## 高校录取管理系统 ##\n ");
  printf( "##############################\n ");
  printf( "********** 系统功能 **********\n ");  
printf( "********** 录入功能 **********\n ");
printf( "********** 查找功能 **********\n ");
  printf( "********** 统计功能 **********\n ");
  printf( "********** 信息输出 **********\n ");
  printf( "zhejianguniversity---------------1\n ");
  printf( "ningbouniversity-----------------2\n ");
  printf( "wenzhouuniversity----------------3\n ");
  printf( "******************************\n ");
  printf( "* 按 “1”键进入系统 *\n ");
  
void print(struct student stu[]);
void luqu(struct student stu[]);
void chaxun(struct student stu[]);
  int a,i;
  scanf( "%d ",&a);
if(a==1)
{ printf( "********** 录入功能 **********\n ");
{ printf( " 警告:请按学生的成绩高低输入\n ");
printf( "请输入学生的学号,姓名,成绩,志愿\n ");
printf( "\n ");
   for(i=0;i <N;i++)
{
printf( "学生%d\n ",i+1);
   printf( " 学号: ");
   scanf( "%d ",&stu[i].num);
   printf( " 姓名: ");
scanf( "%s ",&stu[i].name);
printf( " 成绩: ");
   scanf( "%d ",&stu[i].score);
   printf( " 志愿: ");
   scanf( "%s ",&stu[i].will);
printf( "\n ");


}

  print(stu);
  }
}  
else
{ printf( " 无法进入系统\n ");
return (0); }


//录取功能
luqu(stu);


//查找功能
  printf( "\n ");
printf( "********** 查找功能 **********\n ");
chaxun(stu);
}
void print( struct student stu[])
{
int i;

{printf( "\n你输入的信息为: ");
printf( "\n ");
printf( "\n NO. name score 志愿\n ");
for(i=0;i <N;i++)
{ printf ( "学生 %d %s %d %s\n ",stu[i].num,stu[i].name,stu[i].score,stu[i].will);
printf( "\n "); }
}

}


void luqu(struct student stu[])
{ int i;
for(i=0;i <N;i++)
{
if(stu[i].will==sch[0].name)stu[i].ruqu=1;
else if(stu[i].will==sch[1].name)stu[i].ruqu=2;
else if(stu[i].will==sch[2].name)stu[i].ruqu=3;
}
}


void chaxun(struct student stu[])
{ int i,j,flag;
printf( "请输入您想查询的学生的学号: ");
scanf( "%d ",&j);
flag=1;
for (i=0;i <N;i++)
{ if(j==stu[i].num)
{printf( "学生:%d\n ",stu[i].num);
printf( "学生姓名: %s 志愿: %s 录取学校编号:%d\n ",stu[i].name,stu[i].will,stu[i].ruqu);
flag=0;}
}
if(flag==1)
printf( "没有你要查询的学生 ");
}

[解决办法]
zycy(混世魔王) ( ) 信誉:100
;;;;;
已经说对了,字符串不能作为整体比较,要一个字符一个字符比较,strcmp()函数可以帮你实现
strcmp(a,b);a> b,返回大于零的数
      a=b,返回0
      a<b,返回 小于零的书

读书人网 >C语言

热点推荐