c语言程序设计之学生成绩管理系统精华版Word文档下载推荐.docx
《c语言程序设计之学生成绩管理系统精华版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言程序设计之学生成绩管理系统精华版Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
typedefstruct
charname[20];
intnum;
intclasses;
intage;
charsex[10];
intbianhao;
charmingcheng[20];
intxuefen;
intkaoshi;
intpingshi;
intbianhao1;
charmingcheng1[20];
intxuefen1;
intkaoshi1;
intpingshi1;
}student;
students[MAX];
intlength;
}Lstudent;
voidwelcome()/*界面函数*/
SetConsoleColor(FOREGROUND_RED);
printf("
◢▇▇▇▇▇▇▇▇▇▇▇▇◣\n"
);
▇欢迎进入成绩管理系统▇\n"
◥▇▇▇▇▇▇▇▇▇▇▇▇◤\n"
\n"
SetConsoleColor(FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
printf("
◢▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇◣\n"
◢▇▇▇0.读取信息▇▇▇◣\n"
◢▇▇▇▇1.输入成绩▇▇▇▇◣\n"
◢▇▇▇▇▇2.输出成绩▇▇▇▇▇◣\n"
◢▇▇3.插入成绩▇▇◣\n"
◢▇▇▇4.删除成绩▇▇▇◣\n"
▇▇▇▇5.查找成绩▇▇▇▇\n"
▇▇▇▇6.修改成绩▇▇▇▇\n"
◥▇▇▇7.不及格▇▇▇◤\n"
◥▇▇8.平均成绩及排名▇▇◤\n"
◥▇▇▇▇9.存储信息▇▇▇▇◤\n"
◥▇▇▇10.退出成绩管理系统▇▇▇◤\n"
◥▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇◤\n"
}
voidread(Lstudent*Ls,FILE*fp)
{
system("
cls"
if((fp=fopen("
scoresystem.txt"
"
rt+"
))==NULL)
{
无法打开此文件\n"
请按回车键返回主界面"
getchar();
}
else
while(!
feof(fp))
putchar(getc(fp));
按回车键返回主界面"
fclose(fp);
voidinput(Lstudent*Ls)/*输入学生的成绩*/
{intn;
inti;
请输入学生数:
"
scanf("
%d"
&
n);
Ls->
length=n;
for(i=0;
i<
n;
i++)
输入第%d个学生的数据:
\n"
i+1);
姓名:
%s"
Ls->
s[i].name);
学号:
s[i].num);
班级:
s[i].classes);
年龄:
s[i].age);
性别:
s[i].sex);
课程编号:
s[i].bianhao);
课程名称:
s[i].mingcheng);
学分:
s[i].xuefen);
考试成绩:
s[i].kaoshi);
平时成绩:
s[i].pingshi);
s[i].bianhao1);
s[i].mingcheng1);
s[i].xuefen1);
s[i].kaoshi1);
s[i].pingshi1);
录入成绩完成,请按回车键返回主界面"
voidoutput(Lstudent*Ls)/*输出学生的成绩信息*/
length;
i++)
┏━━━┳━━━┳━━━┳━━━┳━━━┳\n"
┃姓名┃学号┃班级┃年龄┃性别┃\n"
┣━━━╋━━━╋━━━╋━━━╋━━━╋\n"
┃%-6.6s┃%-4d┃%-4d┃%-4d┃%-6.6s┃\n"
Ls->
s[i].name,Ls->
s[i].num,Ls->
s[i].classes,Ls->
s[i].age,Ls->
┣━━━╋━━━╋━━━╋━━━╋━━━┫\n"
┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n"
┃课程1编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n"
┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n"
┃%-4d┃%-6.6s┃%-4d┃%-4d┃%-4d┃%-4.1f┃\n"
s[i].bianhao,Ls->
s[i].mingcheng,Ls->
s[i].xuefen,Ls->
s[i].kaoshi,Ls->
s[i].pingshi,A);
┃课程2编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n"
s[i].bianhao1,Ls->
s[i].mingcheng1,Ls->
s[i].xuefen1,Ls->
s[i].kaoshi1,Ls->
s[i].pingshi1,B);
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"
请按回车键回到主界面"
voidinsert(Lstudent*Ls)/*插入学生成绩信息*/
intn,i,l;
l=Ls->
请输入要插入的学生数:
请输入插入第%d个学生的数据:
s[i+1].name);
s[i+1].num);
s[i+1].classes);
s[i+1].age);
s[i+1].sex);
s[i+1].bianhao);
s[i+1].mingcheng);
s[i+1].xuefen);
s[i+1].kaoshi);
s[i+1].pingshi);
s[i+1].bianhao1);
s[i+1].mingcheng1);
s[i+1].xuefen1);
s[i+1].kaoshi1);
s[i+1].pingshi1);
length+=n;
插入成绩完成,请按回车键返回主界面"
voiddelet(Lstudent*Ls)/*按学号删除*/
inti=0,j,x;
请输入要删除的学生的学号:
x);
while((i<
length)&
&
(Ls->
s[i].num!
=x))
i++;
if(i<
length)
for(j=i;
j<
j++)
s[j]=Ls->
s[j+1];
length--;
已成功删除"
else
对不起,无此学生成绩,无法删除\n"
voidsearch(Lstudent*Ls)/*按学号查找*/
inti=0,x;
请输入要查找学生的学号:
未找到此学生\n"
voidsave(Lstudent*Ls,FILE*fp)/*将学生成绩信息存储在文件scoresystem.txt中*/
wt+"
{fprintf(fp,"
┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━┳\n"
fprintf(fp,"
┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━╋\n"
┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━┫\n"
}//注中括号在循环语句中的使用
信息已存储在名为“scoresystem.txt的文件中”,按回车键返回主界面"
voidaver(Lstudent*Ls)//计算平均分并排序
inti=0,n,j,k;
floata[20],t;
i++)//逐个赋值,千万不能少
a[i]=(A+B)/2;
for(k=0;
k<
k++)//此处为冒泡排序法
for(j=1;
for(i=0;
length-j;
if(a[i]<
a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
┏━━━┳━━━┳━━━━┳\n"
┃名次┃姓名┃平均分┃\n"
┣━━━╋━━━╋━━━━╋\n"
i++)//已输入学生长度为Ls->
length
{printf("
┃%-4d┃%-6.6s┃%-4.1f┃\n"
i+1,Ls->
s[i].name,a[i]);
//注意有调用顺序问题
voidnopass(Lstudent*Ls)//?
列出不及格学生清单(学号、姓名、不及格的课程和成绩)
{intn;
不及格学生信息\n"
{
if(A<
60)
{printf("
┏━━━┳━━━━━┳━━━┳━━━━┳\n"
┃姓名┃学号┃课程┃考试成绩┃\n"
┣━━━╋━━━━━╋━━━╋━━━━╋\n"
┃%-6.6s┃%-4d┃%-6.6s┃%-4.1f┃\n"
s[i].mingcheng,A);
if(B<
60)
{printf("
s[i].mingcheng1,B);
voidchange(Lstudent*Ls)//修改成绩
inti=0,n;
请输入要修改的学号:
if(Ls->
s[i].num==n)
\n请输入学生姓名:
fflush(stdin);
\n请输入学生班级:
\n请输入学生年龄:
\n请输入学生性别:
\n请输入课程1编号:
\n请输入课程名称: