学生选课系统

#include<stdio.h>
#include<stdlib.h>

typedef  struct  Cou_num //课程编号以及成绩
{
   
    int number;
    int achieve;
}Cou_num;

typedef  struct  Student
{
   
    bool  sex;//1代表男生,0代表女生
    signed  int   grade;//年级,比如2017年入学的就是2017级。
    char   name[20];
    long  Stu_number;
    Cou_num nelenum[100];//已选课程编号以及成绩,-1代表此课程还未结课。number = 0代表未选课。
    int nelen;//已选课程总数
    Student * pnext;
}Student;

typedef  struct  Couse//课程信息结构体
{
   
    int num1;
    char name1[20];
    int  credit;
    int  class_hours;
    int nelepeo;//课程已选人数
    int Melepeo;//课程人数上限
    Couse * next;
}Couse;

 struct Couse *cou_headnode = (Couse *)calloc(1,sizeof(Couse));
 struct Student  *stu_headnode = (Student *)calloc(1,sizeof(Student));
 int  couse_count=0;//课程总数
 int  stu_count=0;//学生总数

void  Keyboardc()//录入课程子函数(从键盘录入)
{
   
    Couse *p = (Couse *)malloc(sizeof(Couse));
    if(p == NULL)
    {
   
        printf("Keyboardc is  error——malloc");
    }
    printf("\n课程编号\t课程名称\t学分\t学时\t课程人数上限\n");
    scanf("%d%s%d%d%d",&p->num1,&p->name1,&p->credit,&p->class_hours,&p->Melepeo);
    p->nelepeo = 0;
    p->next = cou_headnode->next;
    cou_headnode->next = p;
    couse_count++;
}

void delc(int num)//课程管理子函数(删除课程)
{
   
    Couse *pago = cou_headnode;
    Couse *pcur = pago->next; 
    if(!pcur)
    {
   
        printf("\n没有课程,无法删除!\n");
        return;
    }
    while(pcur)
    {
   
        if(pcur->num1 == num)
        {
   
            pago->next = pcur->next;
            free(pcur);
            pcur = NULL;
            printf("已删除该编号课程!\n");
            couse_count--;
            return;
        }
        pago = pcur;
        pcur= pago->next;
    }
    printf("课程未找到\n");
}

void  InputC()
{
   
    int i;
    start:
    printf("\t\t\t录入课程信息\n");
    printf("\n\n1.从键盘录入\n");
    printf("\n2.返回主菜单\n");
    scanf("%d",&i);
    if(i<1||i>2)
    {
   
        printf("输入错误,请重新输入:\n");
        goto  start;
    }
    switch(i)
    {
   
        case(1):Keyboardc();break;
        case(2):break;
    }
}

void managementc()//课程管理主函数
{
   
    int  i = 0;
    start:
    printf("\t\t\t课程管理\n");
    printf("1.新增课程\n");
    printf("2.删除课程\n");
    printf("3.返回主菜单\n");
    printf("请选择(1~3):\n");
    scanf("%d",&i);
    if(i<1||i>3)
    {
   
        printf("输入错误,请重新输入:\n");
        goto  start;
    }
    switch(i)
    {
   
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值