当前位置:新励学网 > 秒知问答 > C语言程序设计(学生选修课程设计)

C语言程序设计(学生选修课程设计)

发表时间:2024-07-20 03:43:21 来源:网友投稿

这是我做的你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以如果满意,多给我追加点分!

#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;}

}

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!