当前位置:   article > 正文

大学生选课管理系统c语言版

大学生选课管理系统c语言版

//大学生选课管理系统 
#include <stdio.h>
#include <cstring>
#include <stdlib.h>
#include<malloc.h>
#define MAXSIZE 100
#define error 0
#define ok 1
typedef struct{
    char name[10];
    char id[15];
    char course_name[10];
    int xuefen;
}ElemType;
typedef struct{
    ElemType *elem;
    int length;
}SqList;
int chuangjian(SqList &L){
    L.elem=new ElemType[MAXSIZE];
    if(L.elem==NULL)
    return error;
    L.length=0;
    return ok;
}
int tianjia(SqList &L,int n){
    if(L.elem==NULL)return error;
    for(int i=0;i<n;i++){
        printf("请输入第%d个数据:\n",i+1);
        printf("姓名:");
        scanf("%s",L.elem[i].name);
        printf("学号:");
        scanf("%s",L.elem[i].id);
        printf("课程名称:");
        scanf("%s",L.elem[i].course_name);
        printf("课程学分:");
        scanf("%d",&L.elem[i].xuefen);
        L.length++;
    }
    
}
int print(SqList L,int n){
    if(L.elem==NULL)return error;
    if(n<=L.length){
    printf("\t\t\t\t学生选课详情\n");
    printf("编号\t  姓名  \t学号  \t选课名称  \t课程学分\n");
    for(int i=0;i<n;i++){
        printf("%d%12s%12s%12s%12d\n",i+1,L.elem[i].name,L.elem[i].id,L.elem[i].course_name,L.elem[i].xuefen);
    }
    return ok;
}
}
int increase(SqList &L,int n){
    int i=L.length;
    int j=L.length;
    if((MAXSIZE-L.length)>=n){
        for(i;i<n+j;i++){
        printf("请输入第%d个数据:\n",i+1);
        printf("姓名:");
        scanf("%s",L.elem[i].name);
        printf("学号:");
        scanf("%s",L.elem[i].id);
        printf("课程名称:");
        scanf("%s",L.elem[i].course_name);
        printf("课程学分:");
        scanf("%d",&L.elem[i].xuefen);
        L.length++;
    }
    }
}
void chakan(SqList L){
    int n;
    printf("存储空间为%d,已用%d\n",MAXSIZE,L.length);
    printf("请输入查看数据个数:");
    scanf("%d",&n);
    if(n<=L.length)
    print(L,n);    
    else{
        do{
    printf("数据超标!请重新输入查看数据个数:");
    scanf("%d",&n);    
        }while(n>L.length);
        print(L,n);
    }    
}
int insert(SqList &L,ElemType e,int n){
    if(n<1||n>L.length+1)
    return error;
    if(L.length==MAXSIZE)return error;
    if(MAXSIZE>=n>0){
        for(int i=L.length-1;i>=n-1;i--){
            L.elem[i+1]=L.elem[i];
        }
        L.elem[n-1]=e;
        L.length++;
        return ok;
    }
}

int chazhao(SqList L,ElemType e){
    if(L.elem==NULL)return error;
    for(int i=0;i<L.length;i++){
        if(strcmp(L.elem[i].name,e.name)==0){
            printf("查找成功!\n该数据在表单的第:%d个位置\n",i+1);    
            return ok;
        }
    }
    
    return error;
}
int xiugai(SqList &L,ElemType e,int n){
    if(L.elem==NULL)return error;
    L.elem[n]=e;
    return ok;        
}
int shanchu(SqList &L,int n){
    if((n<1)||(n>L.length))return error;
    for(int i=n;i<L.length;i++)
        L.elem[n-1]=L.elem[n];
     L.length--;
     return ok;
}
int main(){
    SqList L;
    int n;
    char k;
    ElemType e;
while(1){
    printf("\t\t大学生选课管理系统\n--------------------------------------\n");
    printf("请输入你的操作:(添加0,增加1,插入2,查看3,查找4,修改5,创建6,删除7,退出8):");    
    scanf("%d",&n);
    switch (n) {
    case 0:
          printf("请输入添加元素的个数:") ;
          scanf("%d",&n);
        n=tianjia(L,n);
        if(n==error)printf("未创建线性表请创建!\n");
         break;    
    case 1:
        printf("请输入增加数据的个数");
        scanf("%d",&n);
        increase(L,n);
        break;
        case 2:
    printf("总空间%d已用空间%d",MAXSIZE,L.length);
    printf("插入到第i位置:i=");
    scanf("%d",&n);
        printf("姓名:");
        scanf("%s",e.name);
        printf("学号:");
        scanf("%s",e.id);
        printf("课程名称:");
        scanf("%s",e.course_name);
        printf("课程学分:");
        scanf("%d",&e.xuefen);
     insert(L,e,n);
            break;
        case 3:
            chakan(L);
            break;
        case 4:
            printf("请输入你要查找的数据:\n");
            printf("姓名:");
            scanf("%s",e.name);
            printf("学号:");
            scanf("%s",e.id);
            printf("课程名称:");
            scanf("%s",e.course_name);
            printf("课程学分:");
            scanf("%d",&e.xuefen);
            if(chazhao(L,e)==0);
            printf("查无此果!");
            break;
        case 5:
            printf("请输入你要修改数据的位置:\n");
            scanf("%d",&n);
            printf("姓名:");
            scanf("%s",e.name);
            printf("学号:");
            scanf("%s",e.id);
            printf("课程名称:");
            scanf("%s",e.course_name);
            printf("课程学分:");
            scanf("%d",&e.xuefen);
            xiugai(L,e,n);
            break;
        case 6:
            int m;
            m = chuangjian(L);
            if(m=ok)printf("创建成功!\n");
             else printf("数组已经存在,无需创建!");
            break;
        case 7:
            printf("请输入你要删除数据的位置:\n");
            scanf("%d",&n);
             shanchu(L,n);
    break;
    case 8:
        printf("安全退出!");
        return 0;         
        default:
            printf("你输入的不在0-7之间请重新输入!");


}
}
}
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/615775
推荐阅读
相关标签
  

闽ICP备14008679号