C语言程序设计(学生选修课程设计)
这是我做的你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以如果满意,多给我追加点分!
#includestdio.h
#includestdlib.h
#includestring.h
typedefstructcourse
{
charnumber[15],name[25];
intkind,time,lessontime,practicetime,credit,term;
}type;
FILE*fp1;
voidoverview();//浏览函数,负责浏览整个课程信息
voidseek();//查询函数,负责查询课程信息
voidchoose_course();//选课函数,负责让用户选课
voidout(typetemp);
voidinput();
intmain()
{
intn,i;
if((fp1=fopen(course_information.txt,wb))==NULL)
{printf(创建文件失败!\n);exit(0);}
printf(请输入要存储的课程数目:\n);
scanf(%d,&n);
printf(开始创建文件,请输入课程信息:\n\n);
for(i=0;i<n;i++)
{
printf(请输入第%d门课程的信息:\n,i+1);
input();
printf(\n);
}
printf(如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3;如想结束选修课系统,请输入0!\n);
while((scanf(%d,&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf(\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n);
}
printf(欢迎您使用此程序进行选课,谢谢!\n);
fclose(fp1);
return0;
}
voidinput()
{
coursec_a;
printf(请输入课程编码:);
scanf(%s,c_a.number);
printf(请输入课程名:);
scanf(%s,c_a.name);
printf(请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3!);
scanf(%d,&c_a.name);
printf(请输入课程总学时:);
scanf(%d,&c_a.time);
printf(请输入课程授课时间:);
scanf(%d,&c_a.lessontime);
printf(请输入课程实验或实践时间:);
scanf(%d,&c_a.practicetime);
printf(请输入课程学分:);
scanf(%d,&c_a.credit);
printf(请输入课程所在的学期,比如第二学期,就输入2即可。);
scanf(%d,&c_a.term);
fwrite(&c_a,sizeof(structcourse),1,fp1);//将一个结构体元素写入文件中
}
voidout(typetemp)
{
printf(课程代码:%s\n课程名:%s\n,temp.number,temp.name);
printf(课程名:%s\n,temp.name);
if(temp.kind==1)
printf(课程性质:Limitedoptionalcourse\n);
elseif(temp.kind==2)
printf(课程性质:Optionalcourse\n);
elseif(temp.kind==3)
printf(课程性质:RequiredCourses\n);
else
printf(该编码系统不认识,即无对应的课程性质存在!\n);
printf(课程总学时:%d\n课程授课学时:%d\n实验或上机学时:%d\n学分:%d\n课程开课学期:%d\n\n,temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
voidoverview()
{
rewind(fp1);
coursetemp;
printf(整个课程信息如下:\n);
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
voidseek()
{
intjudge,credit=0,kind=0;
chara='N';
coursetemp;
printf(如想按学分查询,请输入1;如想按课程性质,请输入2:\n);
scanf(%d,&judge);
rewind(fp1);//将文件指针位置置为开头
if(judge==1)
{
printf(请输入要查询的学分:\n);
scanf(%d,&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
elseif(judge==2)
{
printf(请输入你要查找课程的性质(限选课,请输入1;选修课,请输入2;必修课,请输入3):);
scanf(%d,&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf(不好意思,无此类查询!\n);
}
voidchoose_course()
{
rewind(fp1);
coursetemp;
intjudge=1,n=0,time=0,credit=0;
charchoose[20][20];
r1:printf(请开始填写课程编号进行选课:\n);
while(judge==1)
{
printf(请输入你所选课程的标号:);
scanf(%s,choose[n]);
n++;
printf(如想继续选课,请输入1;如想提交,请输入0!\n);
scanf(%d,&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(inti=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
gotor1;
printf(你所选的课为:\n);
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(inti=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇