#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)
{
学生选课系统
最新推荐文章于 2022-01-07 23:53:53 发布