當前位置:編程學習大全網 - 編程語言 - 跪求高手用JAVA編程

跪求高手用JAVA編程

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "malloc.h"

typedef char ElemType;

#define OK 1

#define ERROR 0

#define OVER -1

typedef struct node

{

int number;

char name[20];

int chinese,math,english;

struct node *next;

} LinkList;

LinkList *InitList()

{

LinkList *H;

H=(LinkList *)malloc(sizeof(LinkList));

H->next=NULL;

return(H);

}

int Length_list(LinkList *H)

{

LinkList *p;

int j=0;

p=H;

while(p->next!=NULL)

{ p=p->next;

j++;

}

return j;

}

void CreateList(LinkList *H,int n)

{

int i;

LinkList *s,*last;

char ch;

last=H;

for(i=1;i<=n;i++)

{ s=(LinkList *)malloc(sizeof(LinkList));

printf("\n請輸入第%d個學生的學號:",i);

scanf("%d",&s->number);

printf("\n請輸入第%d個學生的姓名:",i);

scanf("%s",&s->name);

printf("\n請輸入第%d個學生的語文、數學和英語成績:",i);

scanf("%d%d%d",&s->chinese,&s->math,&s->english);

s->next=NULL;

last->next=s;

last=s;

}

}

LinkList *Locate(LinkList *H,int num)

{

LinkList *p;

p=H->next;

while(p!=NULL&&p->number!=num)

p=p->next;

return p;

}

LinkList *GetList(LinkList *H,int i)

{

LinkList *p;

int j=0;

p=H;

while(p->next!=NULL &&j<i)

{

p=p->next;

j++;

}

if(j==i)

return p;

else

return NULL;

}

int InsList(LinkList *p,LinkList x)

{

LinkList *s;

s=(LinkList *)malloc(sizeof(LinkList));

s->number=x.number;

strcpy(s->name,x.name);

s->chinese=x.chinese;

s->math=x.math;

s->english=x.english;

s->next=p->next;

p->next=s;

return OK;

}

int Ins_List(LinkList *H,int i,LinkList x)

{

LinkList *p;

p=GetList(H,i-1);

if(p!=NULL)

{

InsList(p,x);

return OK;

}

else

return ERROR;

}

int DelList(LinkList *p,LinkList *x)

{

LinkList *s;

s=p->next;

x->number=s->number;

strcpy(x->name,s->name);

x->chinese=s->chinese;

x->math=s->math;

x->english=s->english;

p->next=s->next;

free(s);

return OK;

}

int Del_List(LinkList *H,int i,LinkList *x)

{

LinkList *p;

p=GetList(H,i-1);

if(p!=NULL&&p->next!=NULL)

{

DelList(p,x);

return OK;

}

else

return ERROR;

}

out()

{

printf("\n*****************************************");

printf("\n請輸入序號(0-4)選擇要進行的操作:");

printf("\n0-------退出");

printf("\n1-------建立壹個學生信息表");

printf("\n2-------插入壹個學生信息");

printf("\n3-------刪除壹個學生信息");

printf("\n4-------查找壹個學生是否在該學生信息表中");

printf("\n*****************************************\n");

}

void DisLinkList(LinkList *H)

{

LinkList *p;

printf("\n所有學生的信息如下:");

printf("\n 學號 姓名 語文 數學 英語\n");

p=H->next;

while(p!=NULL)

{

printf("%2d%10s%9d%9d%9d\n",p->number,p->name,p->chinese,p->math,p->english);

p=p->next;

}

}

void main()

{

LinkList *H,*p,*q,x;

int i,n,menux,flag,num;

//clrscr();

out();

H=InitList();

scanf("%d",&menux);

do{switch(menux)

{

case 0: exit(0); break;

case 1:

printf("\n請輸入要生成學生信息表的元素各數:");

scanf("%d",&n);

CreateList(H,n);

printf("建立的學生信息表為:\n");

DisLinkList(H);

break;

case 2:

printf("\n請輸入要插入的學生位置:");

scanf("%d",&i);

printf("\n請輸入要插入的學生信息:");

printf("\n請輸入學生的學號:");

scanf("%d",&x.number);

printf("\n請輸入學生的姓名:");

scanf("%s",&x.name);

printf("\n請輸入學生的語文 數學和英語成績:");

scanf("%d%d%d",&x.chinese,&x.math,&x.english);

flag=Ins_List(H,i,x);

if(flag)

{

printf("\n插入後的學生信息表為:");

DisLinkList(H);

}

break;

case 3:

printf("請輸入要刪除的學生的位置:");

scanf("%d",&i);

flag=Del_List(H,i,&x);

if(flag)

{

printf("\n刪除第%d個學生後,表中信息為:",i);

DisLinkList(H);

}

break;

case 4:

printf("\n請輸入查找的學生學號:\n");

scanf("%d",&num);

if((q=Locate(H,num))!=NULL)

{

printf("\n在學生信息表中存在著學號為%d的學生!",num);

printf("\n學號 姓名 語文 數學 英語\n");

printf("%2d%10s%9d%9d%9d",q->number,q->name,q->chinese,q->math,q->english);

}

else

printf("\n在學生信息表中不存在著學號為%d的學生!",num);

break;

default:

printf("\n輸入選項錯誤,請重新輸入(0-4)!");

}

out();

scanf("%d",&menux);

}while(1);

}

C++的 妳將就用嗎

  • 上一篇:互聯網大廠招聘新人的標準是什麽?
  • 下一篇:月薪7萬的編程書怎麽樣