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);打破;}

}

}