学生选课管理系统c语言程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include〈stdio。h>
#include〈stdlib.h>
#include〈string。h>
int N1,N2;
struct couse *head1;
structstudent* head2;
struct couse ﻩ//课程信息结构体
{
int num1;ﻩﻩﻩ//课程编号
charname1[20];ﻩ//课程名称
char type[20];ﻩ//课程性质
inthour;ﻩ//总学时
ﻩintteach;ﻩﻩ//上课学时
ﻩintexp;ﻩﻩ//实验上机学时
int credit;ﻩﻩﻩ//学分
ﻩint semester; ﻩ//开课学期
int nelepeo;ﻩ//课程已选人数
ﻩintMelepeo;//课程上限
struct couse *next;
};
struct studentﻩﻩ//学生信息结构体
{
int num2;ﻩﻩﻩﻩ//学号
char name2[20];ﻩ//姓名
intnelenum[50];ﻩ//已选课程编号
char nelename[10][20];ﻩ//已选名称
int nelen; //已选课程数量
ﻩint score;//总学分
ﻩintgainscore; //已获得的学分
struct student *next;
};
void manger();
void student();
void managementc();
voidmanagements();
void manage();
void main();
voidintoc() //存储课程信息
{
FILE *fp;
struct couse *p;
char filepath[30];
ﻩprintf(”\t\t\t*****************************\n”);
printf("\n\t\t\t\t欢迎使用此系统!\n”);
printf(”\t\t\t*****************************\n");
ﻩprintf("输入路径:");
getchar();
ﻩgets(filepath);
ﻩif((fp=fopen(filepath,”w"))==NULL)
ﻩ{
ﻩﻩprintf("无法储存!”);
exit(0);
}
p=head1;
ﻩwhile(p!=NULL)
{
fprintf(fp,”%d%s%s%d%d%d%d%d%d%d\n",p-〉num1,p->name1,p->t ype,p->hour,p—>teach,p->exp,p->credit,p—〉semester,p-〉nelepeo,p->Melepeo);
ﻩp=p-〉next;
ﻩ}
fclose(fp);
printf("已储存入%s文件!\n”,filepath);
}
voidkeyboardc()ﻩﻩﻩﻩﻩ//录入课程子函数(从键盘录入)
{
structcouse*p1,*p2;
N1=0;
p1=p2=(structcouse*) malloc(sizeof(struct couse));
printf("\t\t\t*****************************\n");
printf(”\n\t\t\t\t欢迎使用此系统!\n”);
printf(”\t\t\t*****************************\n");
printf(”编号\\名称\\性质\\总学时\\上课学时\\实验上机学时\\学分\\开课学期\\已选人数\\课程上限\n");
scanf(”%d%s %s %d %d %d%d %d%d %d",&p1—>num1,p1—〉name1,&p1—>type,&p1—>hour,&p1—〉teach,&p1—〉exp,&p1-〉credit,&p1—>semester,&p1-〉nelepeo,&p1—>Melepeo);
head1=NULL;
while(p1-〉num1!=0)
{
N1=N1+1;
if(N1==1)head1=p1;
else p2->next=p1;ﻩﻩﻩ//对这段语句有疑问
p2=p1;
p1=(structcouse * )malloc(sizeof(struct couse));
sca nf(”%d %s %s%d %d %d%d%d%d %d”,&p1—>num1,p1—〉name 1,p1->type,&p1—>hour,&p1—>teach,&p1-〉exp,&p1-〉credit,&p1->seme ster,&p1-〉nelepeo,&p1->Melepeo);
}
p2-〉next=NULL;
}
void filec()ﻩﻩﻩﻩﻩﻩﻩ//录入键盘子函数(从文件录入)
{
FILE* fp;
charfilepath[20];
structcouse*p1,*p2;
N1=0;
ﻩprintf(”\t\t\t*****************************\n");
printf(”\n\t\t\t\t欢迎使用此系统!\n”);
printf(”\t\t\t*****************************\n”);
printf(”输入要读入的文件路径:");
getchar();
gets(filepath);
if((fp=fopen(filepath,”rb"))==NULL)
{
printf(”找不到%s文件!\n",filepath);
exit(0);
}
p1=p2=(struct couse*)malloc(sizeof(structcouse));
fscanf(fp,”%d%s%s%d%d%d%d%d%d%d”,&p1->num1,p1-〉name1,p1—>typ e,&p1—>hour,&p1—>teach,&p1—〉exp,&p1-〉credit,&p1—〉semester,&p 1-〉nelepeo,&p1—>Melepeo);
head1=NULL;
while(!feof(fp))ﻩﻩﻩﻩﻩ
{
N1=N1+1;
if(N1==1)head1=p1;
else p2->next=p1;
p2=p1;
p1=(struct couse * )malloc(sizeof(struct couse));
fscanf(fp,"%d%s%s%d%d%d%d%d%d%d",&p1—>num1,p1-〉n ame1,p1-〉type,&p1—〉hour,&p1-〉teach,&p1-〉exp,&p1—〉credit,&p1->seme ster,&p1—>nelepeo,&p1-〉Melepeo);
}
p2->next=NULL;
}
void inputc()ﻩﻩﻩﻩﻩﻩ//录入课程主函数
{
int i;
ﻩprintf("\t\t\t*****************************\n”);
printf("\n\t\t\t\t欢迎使用此系统!\n”);
printf("\t\t\t*****************************\n");