////////////////////从文件中读学生信息 void readinformationfile() { FILE *fp; student *p; fp=fopen("student.txt","r"); if(!fp) { printf("文件不存在\n"); return; } p=mallocnode(); while(fscanf(fp,"%s%s%s%f%f%f",p->studentnumber,p->studentname,p->classname,&p->mark1,&p->mark2,&p->mark3)>0) { insertonenode(p); p=mallocnode(); } fclose(fp); }
//////////////////////显示菜单,根据用户输入完成相应的功能 void displaymenu() { student *p; system("color 5e"); /* HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY |FOREGROUND_RED | FOREGROUND_GREEN);*/ printf(" ********请选择相应的功能********\n"); printf(" 1 显示所有学生信息\n"); printf(" 2 按姓名查询学生信息\n"); printf(" 3 按学号查询学生信息\n"); printf(" 4 增加学生信息\n"); printf(" 5 删除学生信息\n"); printf(" 6 按姓名修改学生成绩\n"); printf(" 7 按学号修改学生成绩\n"); printf(" 8 保存所有学生信息\n"); printf(" 9 显示优秀和不及格学生成绩\n"); printf(" 10 排序结果并输出成绩\n"); printf(" 11 退出程序\n"); printf(" 12 修改密码\n"); scanf("%d",&choose);//用户选择 switch(choose) { case 1: outputinformation(); break; case 2: displayinformationbystudentname(); break; case 3: displayinformationbystudentnumber(); break; case 4: p=mallocnode(); getinformation(p); insertonenode(p); break; case 5: deletenodebystudentnumber(); break; case 6: changemarkbystudentname(); break; case 7: changemarkbystudentnumber(); break; case 8: savelinktofile(); break; case 9: displaymarksegment(); break; case 10: compositorbytotalmark(); break; case 11: savelinktofile(); free(headlink); return; case 12: changepassword(); break; default: break; } displaymenu();//递归调用 }
void main(){ int menu=0,s,key; char a; printf("--Programa de ARVORE BINARIA DE BUSCA Inicializado--"); printf("\nMENU:"); printf("\n1.Inserir elemento."); printf("\n2.Deletar elemento."); printf("\n3.Buscar elemento."); printf("\n4.Impressao em posordem."); printf("\n5.Impressao em ordem."); printf("\n6.Impressao em preordem."); printf("\n7.Impressao em colchetes rotulados."); printf("\n8.Sair."); printf("\nEscolha alguma das opcoes com seu respectivo numero:"); while(menu!=8){ scanf("%d",&menu); switch(menu){ case 1: printf("Quantos elementos deseja adicionar? "); int n,i; scanf("%d",&n); for(i=1;i<=n;i++){ struct tree *node=mallocnode(); printf("Entre a chave do no %d:",i); scanf("%d",&node->key); if(root==NULL)root=node; else insert(node,node->key); } break; case 2: printf("Entre a chave a ser deletada:\n"); scanf("%d",&key); del(root,key); break; case 3: printf("Entre a chave a ser buscada:\n"); scanf("%d",&s); if(root==NULL)printf("Arvore esta vazia! Adicione elementos."); if(search(root,s)==0)printf("O elemento nao se encontra na arvore!"); if(search(root,s)==1)printf("O elemento esta na arvore!"); break; case 4: postorder(root); break; case 5: inorder(root); break; case 6: preorder(root); break; case 7: brcktng(root); break; case 8: printf("Tchau."); return; default: printf("Entrada errada, escolha dentre os numeros!!"); break; } printf("\nEscolha novamente:"); } return; }