学生成绩管理系统代码.docx
《学生成绩管理系统代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统代码.docx(14页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统代码
5.源程序清单
源程序:
#include
#include
#include
#include
#defineN20
structcourse
{
charno[10];
charname[20];
charquality[2];
intnumber;
intnum_1;
intnum_2;
floatscore;
intnum_3;
}
cou[N];
intnum;
voidnew1();
voidshanchu();
voidxiugai();
voidsave();
voidread1();
voidshencha();
voidoutput();
intfind(charsno[]);
voidnewfile();
voidpaixu();
voidliu();
voidoutput()
{
inti;
printf("课程编号课程名称课程性质(选修1/必修2)总学时授课学时实验或上机学时学分开课学期(1/2)\n");
printf("\n");
for(i=0;i{
printf("%s\t%-8s\t%-4s\t%-2d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number);
printf("%-2d\t%-2d\t%4.2f\t%-2d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3);
printf("\n");
}
}
voidinit()
{
if(access("cou.dat",0))
newfile();
else
read1();
}
voidnewfile()
{
inti;
FILE*fp;
if((fp=fopen("cou.dat","wb"))==NULL)
{
printf("文件创建失败!
请重新运行程序!
\n");
exit(0);
}
printf("请输入课程数:
");
scanf("%d",&num);
for(i=0;i{
printf("请输入第%d门的课程编号:
",i+1);
getchar();
gets(cou[i].no);
printf("课程名称:
");
gets(cou[i].name);
printf("课程性质(选修1/必修2):
");
gets(cou[i].quality);
printf("总学时");
scanf("%d",&cou[i].number);
printf("授课学时:
");
scanf("%d",&cou[i].num_1);
printf("实验或上机学时:
");
scanf("%d",&cou[i].num_2);
printf("总学分:
");
scanf("%f",&cou[i].score);
printf("开课学期(1/2):
");
scanf("%d",&cou[i].num_3);
fwrite(&cou[i],1,sizeof(structcourse),fp);
}
fclose(fp);
}
voidread1()
{
FILE*fp;
num=0;
fp=fopen("cou.dat","r");
if(fp==NULL)
{
printf("文件打开失败!
请重新运行程序!
\n");
exit(0);
}
while(!
feof(fp))
{
fread(&cou[num],1,sizeof(structcourse),fp);
num++;
}
num--;
fclose(fp);
}
voidshencha()
{
intchoice1;
printf("\n");
printf("课程管理审查子菜单:
\n");
printf("1.新增\n");
printf("2.删除\n");
printf("3.修改\n");
printf("\n");
printf("请选择:
\n");
scanf("%d",&choice1);
switch(choice1)
{
case1:
new1();
break;
case2:
shanchu();
break;
case3:
xiugai();
break;
default:
printf("选择错误,请重新选择!
\n");
}
}
voidnew1()
{
printf("课程编号:
");
getchar();
gets(cou[num].no);
printf("课程名称:
");
gets(cou[num].name);
printf("课程性质(选修1/必修2):
");
gets(cou[num].quality);
printf("总学时");
scanf("%d",&cou[num].number);
printf("授课学时:
");
scanf("%d",&cou[num].num_1);
printf("实验或上机学时:
");
scanf("%d",&cou[num].num_2);
printf("学分:
");
scanf("%f",&cou[num].score);
printf("开课学期(1/2):
");
scanf("%d",&cou[num].num_3);
num++;
printf("现在共有%d门课程数据为:
\n",num);
output();
}
voidshanchu()
{
chardno[10];
inti,j;
printf("请输入要删除的课程编号:
");
getchar();
gets(dno);
i=find(dno);
if(i!
=-1)
{
for(j=i;jcou[j]=cou[j+1];
num--;
printf("删除后还有%d门课程数据为:
\n",num);
output();
}
else
printf("输入有误,请重新输入!
\n");
}
voidxiugai()
{
chardno[10];
inti;
printf("请输入要修改课程的编号:
");
getchar();
gets(dno);
i=find(dno);
printf("课程名称:
");
gets(cou[i].name);
printf("课程性质(选修1/必修2):
");
gets(cou[i].quality);
printf("总学时");
scanf("%d",&cou[i].number);
printf("授课学时:
");
scanf("%d",&cou[i].num_1);
printf("实验或上机学时:
");
scanf("%d",&cou[i].num_2);
printf("学分:
");
scanf("%f",&cou[i].score);
printf("开课学期(1/2):
");
scanf("%d",&cou[i].num_3);
printf("修改后为:
\n");
printf("课程编号课程名称课程性质(选修1/必修2)总学时授课学时实验或上机学时学分开课学期(1/2)\n");
printf("=====\n");
for(i=0;iprintf("%s\t%s\t%s\t%d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number);
printf("%-2d\t%-2d\t%4.2f\t%-6d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3);
printf("\n");
}
intfind(charsno[])
{
inti;
for(i=0;iif(cou[i].no-sno[10]==0)
returni;
return-1;
}
voidfind1()
{
floatsum=0.0;
chardno[10];
inti;
do
{
printf("请输入所选的课程编号:
\n");
getchar();
gets(dno);
i=find(dno);
if(i!
=-1)
{
printf("%f",cou[i].score);
sum+=cou[i].score;
if(sum<60)
printf("所选课程学分不足60,请继续选择\n");
}
else
printf("所选课程不存在\n");
}
while(sum<60);
printf("恭喜选课成功!
");
}
voidsave()
{
inti;
FILE*fp;
if((fp=fopen("cou.dat","wb"))==NULL)
{
printf("文件创建失败,请重新运行程序。
\n");
exit(0);
}
for(i=0;ifwrite(&cou[i],sizeof(structcourse),1,fp);/*把第i+1名学生成绩写入文件*/
fclose(fp);
}
voidpaixu()
{
inti,j,k;
structcoursetemp;
for(i=0;i{
k=i;
for(j=i+1;jif(cou[k].number>cou[j].number)
{
temp=cou[i];
cou[i]=cou[k];
cou[k]=temp;
}
}
printf("排序后的课程为:
\n");
output();
}
voidfind2()
{
inti;
chardnum_3[20];
paixu();
printf("输入要查询课程的开课学期(1/2):
");
getchar();
gets(dnum_3);
i=find(dnum_3);
if(i!
=-1)
{
printf("查找的课程信息为:
\n");
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期(1/2)\n");
printf("\n");
printf("%s\t%-8s\t%-4s\t%-2d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number);
printf("%-2d\t%-2d\t%4.2f\t%-6d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3);
printf("\n");
}
else
printf("所选课程不存在.\n");
}
voidliu()
{
output();
}
voidmain()
{
intchoice=1,m;
printf("欢迎使用本系统,请根据需要进行操作!
\n");
init();
while(choice!
=6)
{
printf("\n");
printf("主菜单\n");
printf("1.课程排序\n");
printf("2.课程审查\n");
printf("3.课程查询\n");
printf("4.课程选修\n");
printf("5.浏览\n");
printf("6.退出\n");
printf("\n");
printf("请选择:
");
scanf("%d",&choice);
switch(choice)
{
case1:
paixu();
break;
case2:
shencha();
break;
case3:
find2();
break;
case4:
find1();
break;
case5:
liu();
case6:
save();
printf("感谢使用本系统!
\n");
break;
default:
printf("选择错误,请重新选择!
\n");
}
}
}