#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct student
{
int xuehao;
char xingming[20];
float DS;
float DB;
float OS;
float zongfen;
}st,*tu;
int count;
typedef struct tnode
{
st data;
struct tnode *lchild, *rchild;
}TNODE;
TNODE *root=NULL;
//void find(tu r,int n, int key);
//void BubbleSort(tu r,int n);
//void findbyname(tu r,int n, char key);
st stu[60];//全局变量
st h[60];
typedef struct Node{
st data;
struct Node *next;
}HNode;
HNode **HA;
typedef struct hash{
st *data;
int Length;
int num;
}hstable;
void menu()
{
printf("**************************menu*************************\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:按DS成绩查找(链地址法) **\n");
printf("* 11:按DS成绩查找(开放地址法) **\n");
printf("* 0:exit **\n");
printf("********************************************************\n");
}
void creat_list(int m)
{
int i;
for(i = 1; i <= m; i++)
{
printf("请输入第%d位学生的 学号 姓名 数据结构DS成绩 数据库DB成绩 操作系统OS成绩\n", i);
scanf("%d %s %f %f %f",&stu[i].xuehao,&stu[i].xingming,&stu[i].DS,&stu[i].DB,&stu[i].OS);
stu[i].zongfen = stu[i].DB + stu[i].DS + stu[i].OS;
// stu[i].xuehao = i+1 ;
// printf("%s",stu[i].xingming);
printf("%f\n", stu[i].zongfen);
}
}
//输出学生信息
void print_list(tu r)
{
for (int i = 1; i<= count;i++) {
printf("%d %s %f %f %f %f\n",r[i].xuehao,r[i].xingming, r[i].DS, r[i].DB,r[i].OS,r[i].zongfen);
}
}
//折半查找,根据学号
void find(tu r,int n, int key)
{
int low = 1 , high = n , mid ;
/* int count = 0 ;*/
while (low <= high)
{
mid = (low + high)/2 ;
if (r[mid].xuehao == key){
printf("%s %f %f %f %f \n",r[mid].xingming,r[mid].zongfen ,r[mid].DB, r[mid].DS, r[mid].OS);
return;
}
if (r[mid].xuehao > key)
high = mid - 1 ;
else
low = mid + 1 ;
}
printf("不存在学号为%d的学生\n",key);
}
void ListInsert(tu r,int i)//插入
{
int j;
if(i<1||i>count){
printf("插入位置不合法!");
return;
}
for(j=count; j>=i; j--)
r[j+1]=r[j];//将线性表第i个元素之后的所有元素向后移动
printf("请输入第%d位学生的 学号 姓名 数据结构DS成绩 数据库DB成绩 操作系统OS成绩\n", i);
scanf("%d %s %f %f %f",&r[i].xuehao,&r[i].xingming,&r[i].DS,&r[i].DB,&r[i].OS);
r[i].zongfen = r[i].DB + r[i].DS + r[i].OS;
//L->
学生管理系统-线性表
于 2022-08-15 19:19:27 首次发布