c语言程序设计之学生成绩管理系统精华版.docx
《c语言程序设计之学生成绩管理系统精华版.docx》由会员分享,可在线阅读,更多相关《c语言程序设计之学生成绩管理系统精华版.docx(22页珍藏版)》请在冰豆网上搜索。
c语言程序设计之学生成绩管理系统精华版
II111.CPP:
定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include
#include
#include
#defineALs->s[i].kaoshi*0.7+Ls->s[i].pingshi*0.3
#defineBLs->s[i].kaoshi1*0.7+Ls->s[i].pingshi1*0.3
#defineMAX1000
#include
BOOLSetConsoleColor(WORDwAttributes)
{
HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);if(hConsole==INVALID_HANDLE_VALUE)
returnFALSE;
returnSetConsoleTextAttribute(hConsole,wAttributes);
}//使用色彩
typedefstruct
{
charname[20];
intnum;
intclasses;
intage;
charsex[10];
intbianhao;
charmingcheng[20];
intxuefen;
intkaoshi;
intpingshi;
intbianhao1;
charmingcheng1[20];
intxuefen1;
intkaoshi1;
intpingshi1;
}student;
typedefstruct
{
students[MAX];
intlength;
}Lstudent;
voidwelcome。
/*界面函数*/
{
SetConsoleColor(FOREGROUND_RED);
printf("■欢迎进入成绩管理系统■\n");
^■■■■■■■■■■■■F\n");
printf(”\n");
SetConsoleColor(FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
丄■■■■■■■■■■■■■■■■'
printf(”
/■■■
0.
读取信息
■■■^\n");
printf(”
/■■■■
1.
输入成绩
■■V\n");
printf(”
/■■■■■
2.
输出成绩
■■■■i\n
printf(”
3.
插入成绩
\n");
printf(”
/■■■
4.
删除成绩
■■■i\n");
printf(”
■■■■
5.
查找成绩
■■■\n")
printf(”
■■■■
6.
修改成绩
■■■\n");
printf(”
、■■■
7.
不及格名单
■■F\n");
printf(”
8.
平均成绩及排名
■F\n");
printf(”
、■■■■
9.
存储信息
■■■■F\n");
printf(”
、■■■
10.
退出成绩管理系统
■■F\n");
^■■■■■■■■■■■■■■■■■■F\n");
}
voidread(Lstudent*Ls,FILE*fp)
{
system("cls");
if((fp=fopen("scoresystem.txt","rt+"))==NULL)
{
printf(”无法打开此文件\n");
printf("请按回车键返回主界面");
getchar();
}
else
{
while(!
feof(fp))
putchar(getc(fp));
printf("按回车键返回主界面");
getchar();
getchar();
}
fclose(fp);
}
voidinput(Lstudent*Ls)/*输入学生的成绩*/
{intn;
inti;
system("cls");
printf("请输入学生数:
");
scanf("%d",&n);
Ls->length=n;
for(i=0;i{
printf(”输入第%d个学生的数据:
\n”,i+1);
printf("姓名:
");
scanf("%s",&Ls->s[i].name);
printf("学号:
");
scanf("%d",&Ls->s[i].num);
printf("班级:
");
scanf("%d",&Ls->s[i].classes);
printf("年龄:
");
scanf("%d",&Ls->s[i].age);
printf("性别:
");
scanf("%s",&Ls->s[i].sex);
printf("课程编号:
");
scanf("%d",&Ls->s[i].bianhao);
printf("课程名称:
");
scanf("%s",&Ls->s[i].mingcheng);
printf("学分:
");
scanf("%d",&Ls->s[i].xuefen);
printf("考试成绩:
");
scanf("%d",&Ls->s[i].kaoshi);
printf("平时成绩:
");
scanf("%d",&Ls->s[i].pingshi);
printf("课程编号:
");
scanf("%d",&Ls->s[i].bianhao1);
printf("课程名称:
");
scanf("%s",&Ls->s[i].mingcheng1);
printf("学分:
");
scanf("%d",&Ls->s[i].xuefen1);
printf("考试成绩:
");
scanf("%d",&Ls->s[i].kaoshi1);
printf("平时成绩:
");
scanf("%d",&Ls->s[i].pingshi1);
}
printf("录入成绩完成,请按回车键返回主界面”);
getchar();
getchar();
}
voidoutput(Lstudent*Ls)/*输出学生的成绩信息*/
{
inti;
system("cls");for(i=0;ilength;i++){
printf(”
111
1
11
\n”);
printf(”
|姓名|学号
|班级
|年龄丨性别
|\n");
printf(”
|1
十
HH
\n");
printf("
|%-6.6s
1%-4d
|%-4d
|%-4d
|%-6.6s
\n"丄s->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);
printf("|11111\n");
printf(”i1111\n");
printf("丨课程1编号丨名称丨学分丨考试成绩丨平时成绩丨综合成绩丨
\n");
printf(”|11111H
\n");
printf(”|%-4d|%-6.6s|%-4d|%-4d|%-4d|%-4.1f
I
\n"丄s->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i
].pingshi,A);
printf("|11111H
\n");
printf("i11111r
\n");
printf("|
\n");
printf("
\n");
printf("
课程2编号
H
|名称
1
|学分
1
|考试成绩
1
|平时成绩丨综合成绩|
H
|%-4d
1
|%-6.6s
1
|%-4d
1
|%-4d
HH
|%-4d
|%-4.1f
|
\n"丄s->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls-
>s[i].pingshi1,B);
printf("|11111H
\n");
printf(”
");
}
printf(”请按回车键回到主界面");
getchar();
getchar();
}
voidinsert(Lstudent*Ls)/*插入学生成绩信息*/
{
intn,i,l;
system("cls");
l=Ls->length;
printf(”请输入要插入的学生数:
”);
scanf("%d",&n);
for(i=0;i{
printf(”请输入插入第%d个学生的数据:
\n",i+1);
printf("姓名:
");
scanf("%s",&Ls->s[i+1].name);
printf("学号:
");
scanf("%d",&Ls->s[i+1].num);
printf("班级:
");
scanf("%d",&Ls->s[i+1].classes);
printf("年龄:
");
scanf("%d",&Ls->s[i+1].age);
printf("性别:
");
scanf("%s",&Ls->s[i+1].sex);
printf("课程编号:
");
scanf("%d",&Ls->s[i+1].bianhao);
printf("课程名称:
");
scanf("%s",&Ls->s[i+1].mingcheng);
printf("学分:
");
scanf("%d",&Ls->s[i+1].xuefen);
printf("考试成绩:
");
scanf("%d",&Ls->s[i+1].kaoshi);
printf("平时成绩:
");
scanf("%d",&Ls->s[i+1].pingshi);
printf("课程编号:
");
scanf("%d",&Ls->s[i+1].bianhao1);
printf("课程名称:
");
scanf("%s",&Ls->s[i+1].mingcheng1);
printf("学分:
");
scanf("%d",&Ls->s[i+1].xuefen1);
printf("考试成绩:
");
scanf("%d",&Ls->s[i+1].kaoshi1);
printf("平时成绩:
");
scanf("%d",&Ls->s[i+1].pingshi1);
}
Ls->length+=n;
printf("插入成绩完成,请按回车键返回主界面");
getchar();
getchar();
}
voiddelet(Lstudent*Ls)/*按学号删除*/
{
inti=O,j,x;
system("cls");
printf(”请输入要删除的学生的学号:
”);
scanf("%d",&x);
while((ilength)&&(Ls->s[i].num!
=x))
i++;
if(ilength)
{
for(j=i;jlength;j++)
Ls->s[j]=Ls->s[j+1];
Ls->length--;
printf("已成功删除");
}
else
printf(”对不起,无此学生成绩,无法删除\n");
printf("请按回车键返回主界面");
getchar();
getchar();
}
voidsearch(Lstudent*Ls)/*按学号查找*/
{
inti=0,x;
system("cls");
printf("请输入要查找学生的学号:
”);
scanf("%d",&x);
while((ilength)&&(Ls->s[i].num!
=x))
i++;
if(ilength)
{
printf("i1111r\n");
printf("丨姓名丨学号丨班级丨年龄丨性别丨\n");printf("|1111H\n");
I%-6.6s|
printf("|%-6.6s|%-4d|%-4d|%-4d\n"丄s->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);
printf("|11111\n");
printf("i11111r
\n");
printf("|课程1编号|名称|学分|考试成绩|平时成绩丨综合成绩|
\n");
printf("|11111H
\n");
printf("|%-4d|%-6.6s|%-4d|%-4d|%-4d|%-4.1f
|
\n"丄s->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i
].pingshi,A);
printf(”|11111H
\n");
printf("i11111r
\n");
printf("丨课程2编号丨名称丨学分丨考试成绩丨平时成绩丨综合成绩丨
\n");
printf(”|11111H
\n");
printf(”|%-4d|%-6.6s|%-4d|%-4d|%-4d|%-4.1f
I
\n"丄s->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls-
>s[i].pingshi1,B);
printf("|11111H
\n");
printf(”
");
}
else
printf("未找到此学生\n");
printf(”请按回车键回到主界面");
getchar();
getchar();
}
voidsave(Lstudent*Ls,FILE*fp)/*将学生成绩信息存储在文件scoresystem.txt中*/
{
inti;
system("cls");
if((fp=fopen("scoresystem.txt","wt+"))==NULL)
printf("无法打开此文件\n");
else
for(i=0;ilength;i++)
{fprintf(fp,"
1
11
11
11
11
11
\n");
fprintf(fp,"
|
姓名
|学号
|班级
|年龄
丨性别
|\n");
fprintf(fp,"
|
H
H
H
H
1
L
\n");
1
H
H
H
H
H
fprintf(
fp,"
|%-6.6s|%-4d
|%-4d|
%-4d
|%-6.6s
\n"丄s->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);
fprintf(fp,"
|
11
11
11
11
11
\n");
fprintf(fp,"r\n");
fprintf(fp,"丨课程1编号丨名称丨学分丨考试成绩丨平时成绩丨综合成
绩丨\n");
fprintf(fp,"I11111
—H\n");
fprintf(fp,"|%-4d|%-6.6s|%-4d|%-4d|%-4d
I%-4.1f|
\n"丄s->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i
].pingshi,A);
fprintf(fp,"I11111
—H\n");
fprintf(fp,"i11111
t\n");
fprintf(fp,"|课程2编号|名称|学分|考试成绩|平时成绩丨综合成绩
|\n");
fprintf(fp,"I11111
+\n");
fprintf(fp,"|%-4d|%-6.6s|%-4d|%-4d|%-4d|%-4.1f
|
\n"丄s->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls-
>s[i].pingshi1,B);
fprintf(fp,"I11111
—+\n");
fprintf(fp,"
");
}//注中括号在循环语句中的使用
printf("信息已存储在名为"scoresystem.txt的文件中”,按回车键返回主界面”);
fclose(fp);
getchar();
getchar();
}
voidaver(Lstudent*Ls)〃
{
inti=0,n,j,k;
floata[20],t;
for(i=0;ilength;i++)〃
{
a[i]=(A+B)/2;
}
system("cls");
for(k=0;klength;k++)//for(j=1;jlength;j++)
计算平均分并排序
逐个赋值,千万不能少
此处为冒泡排序法
for(i=0;ilength-j;i++)if(a[i]}
printf(”
printf("
printf("
for(i=0;ilength;i++)〃
{printf("
printf("
}
getchar();
getchar();
}
voidnopass(Lstudent*Ls)〃?
绩)
{intn;
system("cls");
inti;
printf("不及格学生信息\n");
for(i=0;ilength;i++)
{
if(A<60)
{printf("
printf("
printf("
printf("
I名次I姓名
\n”);
I\n”);
\n");
已输入学生长度为Ls->length
I平均分
I%-4dI%-6.6sI%-4.1fI\n",i+1,Ls->s[i].name,a[i]);
I11H\n");//注意有调用顺序问题
列出不及格学生清单
(学号、
姓名、不及格的课程和成
I姓名I学号
I课程丨考试成绩I
I%-6.6sI
%-4d
\n”);
\n");
\n");
%-6.6s
%-4.1f
\n"丄s->s[i].name,Ls->s[i].num,Ls->s[i].mingcheng,A);
printf("|111——
if(B<60)
{printf("
printf("
printf("
printf("
\n");
\n");
\n");
%-6.6s
\n"丄s->s[i].name,Ls->s[i].num,Ls->s[i].mingcheng1,B);}printf("|111
}
printf(”请按回车键回到主界面");
getchar();
getchar();
}
voidchange(Lstudent*Ls)〃
修改成绩
\n");}
\n");
%-4.1f
请输入学生姓名:
”);
请输入学生班级:
”);
请输入学生年龄:
");
请输入学生性别:
”);
请输入课程1编号:
");
请输入课程名称:
”);
请输入课程学分:
”);
请输入课程考试成绩:
”);请输入课程平时成绩:
”);请输入课程2编号:
");
请输入课程名称:
”);
请输入课程学分:
”);请输入课程考试成绩:
”);
{
inti=0,n;
printf(”请输入要修改的学号:
”);
scanf("%d",&n);
if(Ls->s[i].num==n)
{
printf("\n
fflush(stdin);
scanf("%s",&Ls->s[i].name);
printf("\n
fflush(stdin);
scanf("%s",&Ls->s[i].classes);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].age);
printf("\n
fflush(stdin);
scanf("%s",&Ls->s[i].sex);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].bianhao);
printf("\n
fflush(stdin);
scanf("%s",&Ls->s[i].mingcheng);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].xuefen);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].kaoshi);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].pingshi);
printf("\n
fflush(stdin);
scanf("%d",&Ls->s[i].bianhao1);
printf("\n
fflush(stdi