weixin_44105682 2020-09-03 17:54 采纳率: 0%
浏览 74

怎么把c语言转成java有没有大佬试下

#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.PassMarkdata.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(i6)
{
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);
system("pause");
}break;
case 2:
printf("输入分数线:");
scanf("%d",&i);
printf("选择方向:1,录取线在%d分以下的高校; 2,录取线在%d分以上的高校:\n",i,i);
scanf("%d",&j);
while(j>2||j {
printf("输入错误,请重新选择:");
scanf("%d",&j);
}
printf("有以下高校满足查询条件:\n");
printf(" 高校代码\t 高校名称\t最低录取线\n");
InOrder(bt,i,0,j);system("pause");
break;
case 3:
printf("请分别输入最低分和最高分:");
scanf("%d%d",&i,&j);
if(i>j) {i=i+j;j=i-j;i=i-j;}
printf("有以下高校满足查询条件:\n 高校代码\t 高校名称\t最低录取线\n");
InOrder(bt,i,j,0);system("pause");
break;
case 4:
Bt_Insert(&bt,NULL);
break;
case 5:help();break;
case 6:SaveFiles(bt);exit(0);
}
}
}

  • 写回答

2条回答 默认 最新

  • 兰舟千帆 Java领域优质创作者 2020-09-03 20:45
    关注

    那你这个就是用java写了。语法的差别不是很大,很容易实现的。

    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码