c语言程序设计(学生选修课设计)
#包含“stdio.h”
#包含" stdlib.h "
#包含" string.h "
typedef结构课程
{
字符编号[15],名称[25];
实物、时间、课时、实习时间、信用、期限;
}类型;
FILE * FP 1;
void overview();//浏览功能,负责浏览整个课程信息。
void seek();//查询函数,负责查询课程信息。
void choose _ course();//选课功能,负责让用户选课。
void out(类型temp);
void输入();
int main()
{
int n,I;
if((FP 1 = fopen(" course _ information . txt "," wb"))==NULL)
{printf("创建文件失败!\ n ");退出(0);}
Printf("请输入要存储的课程数:\ n ");
scanf("%d ",& ampn);
Printf("开始创建文件,请输入课程信息:\ n \ n ");
for(I = 0;我& ltn;i++)
{
Printf("请输入%d课程的信息:\n ",I+1);
input();
printf(" \ n ");
}
Printf("如果想浏览整个课程信息,请输入1;如果要查询课程信息,请输入2;如果要选课,请输入3;如果要结束选课制,请输入0!\ n ");
while((scanf("%d ",& ampn))!=EOF)
{
如果(n==1)
overview();
如果(n==2)
seek();
如果(n==3)
choose _ course();
如果(n==0)
退出(0);
printf(" \ n \ n如果您想继续操作,只需根据规则输入您想做的事情!\ n规则:要浏览整个课程信息,请输入1;如果要查询课程信息,请输入2;如果要选课,请输入3!\ n ");
}
Printf("欢迎使用本程序选课,谢谢!\ n ");
fclose(FP 1);
返回0;
}
无效输入()
{
课程c _ a;
Printf("请输入课程代码:");
scanf("%s ",c _ a . number);
Printf("请输入课程名称:");
scanf("%s ",c _ a . name);
Printf("请输入课程性质:课程有限,请输入1;可选课程,请输入2;必修课,请输入3!”);
scanf("%d ",& ampc _ a . name);
Printf("请输入总课时:");
scanf("%d ",& ampc _ a . time);
Printf("请输入课程教学时间:");
scanf("%d ",& ampc _ a . lesson time);
Printf("请输入课程实验或练习时间:");
scanf("%d ",& ampc _ a . practice time);
Printf("请输入课程学分:");
scanf("%d ",& ampc _ a . credit);
Printf("请输入课程所在的学期,如第二学期,输入2即可。");
scanf("%d ",& ampc _ a . term);
fwrite(& amp;c_a,sizeof(结构课程),1,FP 1);//将结构元素写入文件。
}
空出(类型temp)
{
Printf("课程代码:%s\n课程名称:% s \ n ",临时编号,临时名称);
Printf("课程名称:%s\n ",temp . name);
if(temp.kind==1)
Printf("课程性质:有限选修课\ n ");
else if(temp.kind==2)
Printf("课程性质:选修课\ n ");
else if(temp.kind==3)
Printf("课程性质:必修课\ n ");
其他
Printf("编码系统未知,即没有对应的课程性质!\ n ");
Printf("总课程时数:% d \ n课程教学时数:% d \ n实验或计算机时数:% d \ n学分:% d \ n课程期限:% d \ n \ n ",temp。时间,温度。上课时间,临时工。练习时间,临时的。信用,临时。
}
无效概述()
{
倒带(FP 1);
课程温度;
Printf("整个课程信息如下:\ n ");
而((fread(& amp;temp,sizeof(type),1,fp1)!=0)
out(临时);
}
void seek()
{
int judge,credit=0,kind = 0;
char a = ' N
课程温度;
Printf("如果要按信用查询,请输入1;如果要按课程性质,请输入2:\ n”);
scanf("%d ",& amp法官);
倒带(FP 1);//将文件指针位置设置到开头。
if(judge==1)
{
Printf("请输入要查询的学分:\ n ");
scanf("%d ",& amp信用);
而((fread(& amp;temp,sizeof(type),1,fp1)!=0)
if(信用= =临时信用)
out(临时);
}
else if(judge==2)
{
Printf("请输入你要找的课程性质(仅限选修课,请输入1;可选课程,请输入2;必修课,请输入3):);
scanf("%d ",& amp善良);
而((fread(& amp;temp,sizeof(type),1,fp1)!=0)
if(temp.kind==kind)
out(临时);
}
其他
Printf("抱歉,没有这个查询!\ n ");
}
void choose_course()
{
倒带(FP 1);
课程温度;
int judge=1,n=0,time=0,credit = 0;
char选择[20][20];
R1: printf("请开始填写课程号选择课程:\ n ");
while(judge==1)
{
Printf("请输入您所选课程的标签:");
scanf("%s ",choose[n]);
n++;
Printf("如果要继续选课,请输入1;如果要提交,请输入0!\ n ");
scanf("%d ",& amp法官);
}
而((fread(& amp;temp,sizeof(type),1,fp1)!=0)
{
for(int I = 0;我& ltn;i++)
if(strcmp(temp.number,choose[i])==0)
{ time = time+temp . time;信用=临时信用;打破;}
}
如果(时间& lt270 | |信用& lt40)
转到r 1;
Printf("您选择的课程是:\ n ");
而((fread(& amp;temp,sizeof(type),1,fp1)!=0)
{
for(int I = 0;我& ltn;i++)
if(strcmp(temp.number,choose[i])==0)
{ out(temp);打破;}
}
}