zoukankan      html  css  js  c++  java
  • 用顺序表建立一个简单的可以插入删除的学生成绩管理表

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<malloc.h>
    #define maxsize 200
    #define len sizeof(seqlist)
    typedef struct stud

    {char no[10];
    char name[5];
    float score[2];
    }student;
    typedef struct
    {
    student data[maxsize];
    int size;
    }seqlist;
    seqlist *create_seqlist(seqlist *l,int n);//建立一个学生顺序表
    void print_seqlist(seqlist *l);//输出学生顺序表
    int insert_seqlist(seqlist *l,int n);//在指定位置插入一个新的学生记录
    int delet_seqlist(seqlist *l,int n);//删除指定位置学生记录
    int menu();//菜单函数


    seqlist *create_seqlist(seqlist *l,int n)
    {
    l=(seqlist *)malloc(len);
    if(l==NULL)
    return l;
    else
    l->size=0;
    while(l->size!=n)
    {
    printf("请输入学生学号: ");
    scanf("%s",&l->data[l->size].no);
    printf("请输入学生姓名: ");
    scanf("%s",&l->data[l->size].name);
    printf("请输入学生数学成绩: ");
    scanf("%f",&l->data[l->size].score[0]);
    printf("请输入学生英语成绩: ");
    scanf("%f",&l->data[l->size].score[1]);
    l->size++;
    system("cls");//清屏函数
    }
    return l;
    }
    void print_seqlist(seqlist *l)
    {
    int n=0;
    while(n!=l->size)
    {
    printf(" 学号:%s 姓名:%s 数学:%.1f 英语:%.1f ",l->data[n].no,l->data[n].name,l->data[n].score[0],l->data[n].score[1]);
    n++;
    }
    }
    int insert_seqlist(seqlist *l)
    {
    int n;
    int y=l->size;
    printf("请选择插入位置:");
    scanf("%d",&n);
    if(n>l->size)
    {
    printf("插入位置错误! ");
    return 0;
    }
    for(y=l->size-1;y>=n;y--)
    {
    int i=0,j=0,k=0;
    while(l->data[y].no[i]!='')
    {
    l->data[y+1].no[i]=l->data[y].no[i];
    i++;
    }
    l->data[y+1].no[i+1]='';
    while(l->data[y].name[j]!='')
    {
    l->data[y+1].name[j]=l->data[y].name[j];
    j++;
    }
    l->data[y+1].no[j+1]='';


    for(k=0;k<=1;k++)
    {
    l->data[y+1].score[k]=l->data[y].score[k];
    }

    }

    printf("请输入学生学号: ");
    scanf("%s",&l->data[n].no);
    printf("请输入学生姓名: ");
    scanf("%s",&l->data[n].name);
    printf("请输入学生数学成绩: ");
    scanf("%f",&l->data[n].score[0]);
    printf("请输入学生英语成绩: ");
    scanf("%f",&l->data[n].score[1]);
    l->size++;
    return 1;
    }

    int delet_seqlist(seqlist *l)
    {
    int y,n;
    printf("请选择删除位置:");
    scanf("%d",&n);
    if(n>l->size||n<0)
    {
    printf("删除位置错误! ");
    return 0;
    }
    for(y=n;y<=l->size;y++)
    {
    int i=0,j=0,k=0;
    while(l->data[y].no[i]!='')
    {
    l->data[y].no[i]=l->data[y+1].no[i];
    i++;
    }
    l->data[y+1].no[i+1]='';
    while(l->data[y].name[j]!='')
    {
    l->data[y].name[j]=l->data[y+1].name[j];
    j++;
    }
    l->data[y+1].no[j+1]='';
    for(k=0;k<2;k++)
    {
    l->data[y].score[k]=l->data[y+1].score[k];
    }

    }
    l->size--;
    return 1;
    }
    int menu()
    {
    int n;
    char c;
    printf(" 0.退出 1.建立学生成绩表 2.插入一个学生信息 3.删除一个学生信息 4.输出显示成绩表 ");
    do
    {
    fflush(stdin);
    printf(" 请输入数字选择对应功能: ");
    c=getchar();
    n=c-48;
    if(n<0||n>4)
    printf(" 输入选项错误!请重新输入选项");
    }while(n<0||n>4);
    return n;
    }

    main()
    {
    int select,n;
    seqlist *y;
    do{
    system("cls");
    select=menu();
    system("cls");
    switch(select)
    {
    case 1:printf("请输入学生个数: ");
    scanf("%d",&n);
    y=create_seqlist(y,n);
    break;
    case 2:insert_seqlist(y);
    break;
    case 3:delet_seqlist(y);
    break;
    case 4:print_seqlist(y);
    break;
    case 0:printf(" 谢谢使用!再见....");
    exit(0);
    }
    printf(" ");
    system("pause");
    }while(select!=0);

    }

  • 相关阅读:
    常吃二十种降血脂食物,三高不再缠身
    员工能力要从“人海战术”转向“精兵强将”
    企业家必备的4项核心能力
    优秀管理者在哪些方面超乎常人
    高血压 降压方法
    教育视频
    吉他和弦 学习
    spoj 375 QTREE
    hihocoder #1260 : String Problem I
    codeforces 282E. Sausage Maximization Trie
  • 原文地址:https://www.cnblogs.com/qin5429/p/8352721.html
Copyright © 2011-2022 走看看