篇一:高校最低录取分数线的查询源代码
高校最低录取分数线的查询
问题描述:
现要开发一个开放式的高校本科招生最低录取分数线的查询系统,供师生和学生家长等查询,高校自愿放入该校的信息,可能随时有高校加入。
功能要求:
要求实现的查询功能有:
(1) 查询等于用户给定分数的高校;
(2) 查询大于(或小于)用户给定分数的高校;
(3) 查询最低录取分数线在用户给定的分数段中的高校。
(注:为了省下打字的工夫,函数功能相似的都压缩到了一起,所以个别函数会显得烦琐!)
/*************** 头文件 ***************/
#include"stdio.h"
#include"windows.h"
#define OK 1
#define ERROR 0
typedef struct node//学校名称
{
char SchoolName[10],SchoolNum[5];
struct node *next;
}SchoolList;
typedef struct //录取分数对应的学校
{
int PassMark;
SchoolList A;
}PassMark_Info;
typedef struct Node //二叉树节点定义
{
PassMark_Info data;
struct Node *lchild,*rchild;
}Btree,*QBtree;
void xy(int x, int y)
{
COORD c;
c.X=x-1;
c.Y=y-1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); }
/************** 保存文件 ******************/
void InOrder_(QBtree bt,FILE *fp)
{
if(bt!=NULL)
{
InOrder_(bt->lchild,fp);
fprintf(fp,"%s\t%s\t%d\t",bt->data.A.SchoolNum,bt->data.A.SchoolName,bt->data.PassMark);
InOrder_(bt->rchild,fp);
}
}
int SaveFiles(QBtree bt)
{
FILE *fp;
if((fp=fopen("passmark","wb"))==NULL)
{
printf("\tERROR...");
return 0;
}
else InOrder_(bt,fp);
fclose(fp);
return OK;
}
/*************************************/
void Print(QBtree bt)//输出
{
SchoolList *p=&(bt->data.A);
while(p)
{
printf("%10s\t%10s\t%10d\n",p->SchoolNum,p->SchoolName,bt->data.PassMark);
p=p->next;
}
}
void InOrder(QBtree bt,int PassMark,int PassMark_,int k)
{
if(bt!=NULL)
{
InOrder(bt->lchild,PassMark,PassMark_,k);
{
if((k==1&&bt->data.PassMark<=PassMark)||(k==2&&bt->data.PassMark>=PassMark)||(k==0&&PassMark<=bt->data.PassMark&&bt->data.PassMark<=PassMark_))
//printf("%10s\t%10s\t%10d\n",bt->data.A.SchoolNum,bt->data.A.SchoolName,bt->data.PassMark);
Print(bt);
}
InOrder(bt->rchild,PassMark,PassMark_,k);
}
}
Btree* Search(QBtree bt,int PassMark)
{
if((bt==NULL)||(bt->data.PassMark==PassMark))
return bt;
else if(bt->data.PassMark>PassMark)
return Search(bt->lchild,PassMark);
else return Search(bt->rchild,PassMark);
}
Btree* Bt_Insert(QBtree *bt,FILE *fp)
{
Btree *p,*pre,*q;
q=(Btree *)malloc(sizeof(Btree));
if(q!=NULL)
{
if(fp==NULL)
{
puts("请输入高校名称、学校代码和最低录取分数线:");
scanf("%s%s%d",q->data.A.SchoolName,q->data.A.SchoolNum,&q->data.PassMark);
}
else
fscanf(fp,"%s\t%s\t%d\t",q->data.A.SchoolNum,q->data.A.SchoolName,&q->data.PassMark);
q->lchild=q->rchild=NULL;
q->data.A.next=NULL;
}
if(*bt==NULL) {*bt=q;return *bt;}
p=*bt;
while(p!=NULL)
{
pre=p;
if(p->data.PassMark>q->data.PassMark) p=p->lchild;
else p=p->rchild;
}
if(pre->data.PassMark>q->data.PassMark) pre->lchild=q;
else if(pre->data.PassMark<q->data.PassMark) pre->rchild=q; else pre->data.A.next=&(q->data.A);
return q;
}
/************** 读取文件 ****************/
int ReadFiles(QBtree *bt)
{
FILE *fp;
if((fp=fopen("passmark","rb"))==NULL)
{
printf("\tERROR...");
return 0;
}
else
while(!feof(fp))
Bt_Insert(bt,fp);
fclose(fp);
return 1;
}
/***************************************/
void help()
{
printf("\n\n\t不好意思暂时没什么能帮助你的!");
system("pause");
}
int Menu()
{
int i;system("cls");
printf("\n");
printf("高校最低录取分数线查询系统菜单\n"); printf("┌──────────────────┬───────────────────┐");
printf("│ 1:按考生分数查询 │ 2:按分数线查询 │");
printf("├──────────────────┼───────────────────┤");
printf("│ 3:按分数段查询│ 4:添加高校信息 │");
printf("├──────────────────┼───────────────────┤");
printf("│ 5:系统帮助 │ 6:退
出│");
printf("├──────────────────┴───────────────────┤");
printf("│ 选择操作项
(1~6): │"); printf("└──────────────────────────────────────┘");
xy(23,10);
for(;;)
{
scanf("%d",&i);
getchar();
if(i<1||i>6)
{
xy(5,10);
puts(" 数据不合法!请重新选择操作项
(1~6): ");
xy(40,10);
continue;
}
else return i;
}
}
void main()
{
int i,j;
QBtree temp,bt=NULL;
ReadFiles(&bt);
while(1)
{
i=Menu();
system("cls");
switch(i)
{
case 1:
printf("输入成绩:");
scanf("%d",&i);
temp=Search(bt,i);
if(temp==NULL)
{
printf("没有相关信息,建议选择2或3方式查找!");
system("pause");
}
else
{
printf("有以下高校的最低录取线是 %d 分:\n 高校代码\t 高校名称\t最低录取线\n",i);
Print(temp);
篇二:2015年全国二本大学在北京理科录取分数线
2015年全国二本大学在北京理科录取分数线
2015年北京市高招本科二批高校录取最低分数(理工类)
篇三:2015年全国一本大学在陕西理科录取分数线
2015年全国一本大学在陕西理科录取分数线
《高校最低录取分数线》
由:创业小项目互联网用户整理提供,链接地址:
http://m.csmayi.cn/duwu/10966.html
转载请保留,谢谢!
- 上一篇:安全生产宣传咨询日
- 下一篇:安全生产月宣传咨询