学生管理系统-线性表

#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->
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值