C语言学生成绩管理系统编码.docx
《C语言学生成绩管理系统编码.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统编码.docx(20页珍藏版)》请在冰点文库上搜索。
C语言学生成绩管理系统编码
#include
#include
#include
#include
#define kemu 10//最多考试科目
//函数声明部分
void menu();//界面
void quanbu();//显示全部数据
void insert();//增加数据
void change();//修改学生数据
void dele();//删除数据
void find();//查看某位同学记录
void pingjun();//按平均分排序
//void quanbu();//
//结构
struct student
{
charxue[20];//学号
charming[10];//姓名
float chengji[kemu];//M 门成绩
float zong;//总分
float pingjun;//平均分
}xuesheng[100],xuesheng2[100],x2;//我假设一次最
多有 100 名学生要输入数据
//////////////////////////////
void insert() //增加数据函数
{
int i;
char yn;
char daiti[20];
FILE *fp=NULL; /*定义文件指针*/
fp=fopen("学生记录.txt","a+");
if((fp)==NULL) /*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch(); /*待按任意键继续*/
exit(0); /*终止程序*/
}
for(i=0;i<100;i++)
{
if(i%2==0)
{
printf("要加入学生数据吗?
y/n:
\n");
}
scanf("%c",&yn);
if(yn=='n')
{
break;
}
else if(yn=='y')
{
printf("请输入 5 位数以内的学号:
");
scanf("%s",xuesheng[i].xue);
if(strlen(xuesheng[i].xue)>5)
{
printf("输入错误!
请输入 5 位数以内的学
号!
\n\n\n");
}
zeng();
printf("输入 4 个汉字以内的名字:
");
scanf("%s",xuesheng[i].ming );
if(strlen(xuesheng[i].ming)>8)
{
printf("输入错误!
请输入 4 个汉字以内的
名字!
\n\n\n");
}
zeng();
printf("请输入程序成绩:
");
scanf("%f",&xuesheng[i].chengji [0] );
printf("请输入英语成绩:
");
scanf("%f",&xuesheng[i].chengji [1] );
printf("请输入网页成绩:
");
scanf("%f",&xuesheng[i].chengji [2] );
xuesheng[i].pingjun
=(xuesheng[i].chengji [0]+xuesheng[i].chengji
[1]+xuesheng[i].chengji [2])/3;
fprintf(fp,"%s\t\t%s\t\t%f\t\t%f\t\t%f\t\t%f\t\t\n",xueshen
g[i].xue ,xuesheng[i].ming, xuesheng[i].chengji
[0],xuesheng[i].chengji [1],xuesheng[i].chengji
[2],xuesheng[i].pingjun );
}
}
fclose(fp);
system("cls");
jie();
}
////////////////////////////
void change()//修改数据
{
int i,j;
char a[20]; //要修改学生的学号
char yn;
FILE *fp;
system("cls");
fp=fopen("学生记录.txt","r");
if((fp)==NULL)/*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch();/*待按任意键继续*/
exit(0); /*终止程序*/
}
printf("请输入要修改学生的学号:
");
scanf("%s",a);
for(i=0;i<100;i++)
{
fscanf(fp," %s\t%s%f\t%f\t%f\t%f\t
\n",xuesheng2[i].xue ,xuesheng2[i].ming, &xuesheng2[i].chengji
[0],&xuesheng2[i].chengji [1],&xuesheng2[i].chengji
[2],&xuesheng2[i].pingjun);
if(xuesheng2[i].xue ==NULL)
{
break;
}
}
for(i=0;i<100;i++)
{
if(strcmp(xuesheng2[i].xue,a)==0)
{
printf("请输入 5 位数以内的学号:
");
scanf("%s",xuesheng2[i].xue);
if(strlen(xuesheng2[i].xue)>5)
{
printf("输入错误!
请输入 5 位数以内的学
号!
\n\n\n");
}
getch();
xiu();
printf("输入 4 个汉字以内的名字:
");
scanf("%s",xuesheng2[i].ming );
if(strlen(xuesheng2[i].ming)>8)
{
printf("输入错误!
请输入 4 个汉字以内的
名字!
\n\n\n");
}
getch();
xiu();
printf("请输入程序成绩:
");
scanf("%f",&xuesheng2[i].chengji [0] );
printf("请输入英语成绩:
");
scanf("%f",&xuesheng2[i].chengji [1] );
printf("请输入网页成绩:
");
scanf("%f",&xuesheng2[i].chengji [2] );
xuesheng2[i].pingjun
=(xuesheng2[i].chengji [0]+xuesheng2[i].chengji
[1]+xuesheng2[i].chengji [2])/3;
xuesheng[i].pingjun
=(xuesheng2[i].chengji [0]+xuesheng2[i].chengji
[1]+xuesheng2[i].chengji [2])/3;
fprintf(fp,"%s\t\t%s\t\t%f\t\t%f\t\t%f\t\t%f\t\t\n",xueshen
g2[i].xue ,xuesheng2[i].ming, xuesheng2[i].chengji
[0],xuesheng2[i].chengji [1],xuesheng2[i].chengji
[2],xuesheng2[i].pingjun );
}
}
fclose(fp);
fp=fopen("学生记录.txt","w");
for(i=0;i<100;i++)
{
//
printf("|%s\f\t|%s\f\t|%.2f\f\t|%.2f\f\t
|%.2f\f\t|%.2f\f\t\n",xuesheng[i].xue ,xuesheng[i].ming,
xuesheng[i].chengji [0],xuesheng[i].chengji [1],xuesheng[i].chengji
[2],xuesheng[i].pingjun);
xuesheng2[i].xue[0] <='9')
if(xuesheng2[i].xue[0] >='0'&&
{
fprintf(fp,"%s\t\t%s\t\t%f\t\t%f\t\t%f\t\t%f\t\t\n",xueshen
g2[i].xue ,xuesheng2[i].ming, xuesheng2[i].chengji
[0],xuesheng2[i].chengji [1],xuesheng2[i].chengji
[2],xuesheng2[i].pingjun );
}
else
{
}
break;
}
}
////////////////////////////
void dele()//删除数据
fclose(fp);
printf("\n\t\t\t 请按任意键继续。
。
。
\n");
getch();
jie();
{
int i,j;
char a[20]; //要删除学生的学号
char yn;
FILE *fp;
system("cls");
fp=fopen("学生记录.txt","r");
if((fp)==NULL)/*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch();/*待按任意键继续*/
exit(0); /*终止程序*/
}
printf("请输入要删除学生的学号:
");
scanf("%s",a);
for(i=0;i<100;i++)
{
if(xuesheng2[i].xue[0] >='0'&&
xuesheng2[i].xue[0] <='9')
{
fscanf(fp," %s\t%s%f\t%f\t%f\t%f\t
\n",xuesheng2[i].xue ,xuesheng2[i].ming, &xuesheng2[i].chengji
[0],&xuesheng2[i].chengji [1],&xuesheng2[i].chengji
[2],&xuesheng2[i].pingjun);
}
else
{
}
break;
}
for(i=0;i<100;i++)
{
if(strcmp(xuesheng2[i].xue,a)==0)
{
printf(" 学号姓名程序成绩英语
成绩网页成绩平均成绩\n");
printf("______________________________________________________
__________________________");
printf(" %s\f\t%s\f\t%.2f\f\t%.2f\f\t%.2f\f\t %
.2f\f\t\n",xuesheng2[i].xue ,xuesheng2[i].ming,
xuesheng2[i].chengji [0],xuesheng2[i].chengji
[1],xuesheng2[i].chengji [2],xuesheng2[i].pingjun);
break;
}
}
if(i==100)
{
printf("不存在此学生!
");
}
for(j=i;j<100;j++)
{
xuesheng2[j] =xuesheng2[j+1] ;
}
fclose(fp);
getch();
fp=fopen("学生记录.txt","w");
xuesheng2[i].xue[0] <='9')
for(i=0;i<100;i++)
{
if(xuesheng2[i].xue[0] >='0'&&
{
fprintf(fp,"%s\t\t%s\t\t%f\t\t%f\t\t%f\t\t%f\t\t\n",xueshen
g2[i].xue ,xuesheng2[i].ming, xuesheng2[i].chengji
[0],xuesheng2[i].chengji [1],xuesheng2[i].chengji
[2],xuesheng2[i].pingjun );
}
else
{
}
break;
}
}
////////////////////////////
void find()//查询学生记录
fclose(fp);
printf("\n\t\t\t 请按任意键继续。
。
。
\n");
getch();
jie();
{
int i;
char yn;
char a[20];//要查询的姓名
FILE *fp;
system("cls");
fp=fopen("学生记录.txt","r");
if((fp)==NULL) /*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch(); /*待按任意键继续*/
exit(0); /*终止程序*/
}
printf("请输入要查询学生的姓名:
");
scanf("%s",&a);
for(i=0;i<=100;i++)
{
fscanf(fp," %s\t%s%f\t%f\t%f\t%f\t
\n",xuesheng[i].xue ,xuesheng[i].ming, &xuesheng[i].chengji
[0],&xuesheng[i].chengji [1],&xuesheng[i].chengji
[2],&xuesheng[i].pingjun);
if(strcmp(xuesheng[i].ming,a)== 0)
{
break;
}
}
if(i==101)
{
printf("不存在此学生。
\n");
}
else
{
printf(" 学号姓名程序成绩英语
成绩网页成绩平均成绩\n");
printf("______________________________________________________
__________________________");
printf(" %s\f\t%s\f\t%.2f\f\t%.2f\f\t%.2f\f\t %
.2f\f\t\n",xuesheng[i].xue ,xuesheng[i].ming, xuesheng[i].chengji
[0],xuesheng[i].chengji [1],xuesheng[i].chengji
[2],xuesheng[i].pingjun);
}
scanf("%c",&yn);
printf("请问要继续查看吗?
y/n:
\n");
scanf("%c",&yn);
if(yn=='y')
{
fclose(fp);
cha();
}
else
{
fclose(fp);
jie();
}
}
////////////////////////////
void pingjun()//按平均分排序
{
char a[20];
char yn;
int i,j;
FILE *fp;
system("cls");
fp=fopen("学生记录.txt","r");
if((fp)==NULL)/*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch();/*待按任意键继续*/
exit(0); /*终止程序*/
}
for(i=0;i<100;i++)
{
fscanf(fp," %s\t%s%f\t%f\t%f\t%f\t
\n",xuesheng2[i].xue ,xuesheng2[i].ming, &xuesheng2[i].chengji
[0],&xuesheng2[i].chengji [1],&xuesheng2[i].chengji
[2],&xuesheng2[i].pingjun);
}
for(i=0;i<100;i++)
for(j=i+1;j<100;j++)
{
if(xuesheng2[i].pingjun
{
x2=xuesheng2[i];
xuesheng2[i]=xuesheng2[j];
}
}
xuesheng2[j]=x2;
xuesheng2[i].xue[0] <='9')
for(i=0,j=1;i<100;i++,j++)
{
if(xuesheng2[i].xue[0] >='0'&&
{
printf("第%d 名
____________________________________________________________________
___\n",j);
printf(" 学
号姓名程序成绩英语成绩网页成绩平均
成绩\n");
printf(" %s\f\t%s\f\t%.2f\f\t%.2f\f\t%.2f\f\t %
.2f\f\t\n",xuesheng2[i].xue ,xuesheng2[i].ming,
xuesheng2[i].chengji [0],xuesheng2[i].chengji
[1],xuesheng2[i].chengji [2],xuesheng2[i].pingjun);
}
else
{
break;
}
fclose(fp);
}
printf("\n\t\t\t 请按任意键继续。
。
。
\n");
}
getch();
jie();
/////////////////////////////
void quanbu()//显示学生全部记录
{
int i;
FILE *fp;
system("cls");
fp=fopen("学生记录.txt","r");
if((fp)==NULL)/*如果打开文件失败,则结束程序*/
{
printf("文件不存在!
\n");
getch();/*待按任意键继续*/
exit(0); /*终止程序*/
}
printf(" 学号姓名程序成绩英语
成绩网页成绩平均成绩\n");
printf("______________________________________________________
__________________________");
for(i=0;i<100 ;i++)
{
//编码中发现用结构体 xuesheng 打印会出现数据混
乱,为此创建了 xuesheng2.
fscanf(fp," %s\t%s%f\t%f\t%f\t%f\t
\n",xuesheng2[i].xue ,xuesheng2[i].ming, &xuesheng2[i].chengji
[0],&xuesheng2[i].chengji [1],&xuesheng2[i].chengji
[2],&xuesheng2[i].pingjun);
//if(xuesheng[i].xue[0] ==
'1'||xuesheng[i].xue[0] =='2'||xuesheng[i].xue[0]
=='3'||xuesheng[i].xue[0] =='4'||xuesheng[i].xue[0]
=='5'||xuesheng[i].xue[0] =='6'||xuesheng[i].xue[0]
=='7'||xuesheng[i].xue[0] =='8'||xuesheng[i].xue[0]
=='9'||xuesheng[i].xue[0] =='0')
if(xuesheng2[i].xue[0] >='0'&&
xuesheng2[i].xue[0] <='9')
{
printf(" %s\f\t%s\f\t%.2f\f\t%.2f\f\t%.2f\f\t %
.2f\f\t\n",xuesheng2[i].xue ,xuesheng2[i].ming,
xuesheng2[i].chengji [0],xuesheng2[i].chengji
[1],xuesheng2[i].chengji [2],xuesheng2[i].pingjun);
}
else
{
break;
}
}
fclose(fp);
printf("\n\t\t\t 请按任意键继续。
。
。
\n");
getch();
menu();
}
//////////////////////////////
void menu()//界面.
{
int xuanze;
system("cls");
);
printf("\n\t\t\t------ 学生成绩管理系统 ------\n");
printf("\t\t***********************************************\n");
printf("\t\t*\t\t1.增加学生记录\t *\n");
printf("\t\t*\t\t2.修改学生记录\t *\n");
printf("\t\t*\t\t3.删除学生记录\t *\n");
printf("\t\t*\t\t4.查询学生记录\t *\n");
printf("\t\t*\t\t5.按学生平均分排序\t *\n");
printf("\t\t*\t\t6.显示学生全部记录\t *\n");
printf("\t\t*\t\t7.退出 *\n");
printf("\t\t***********************************************\n"
printf("\n\t\t 请选择<1—7>:
\n");
scanf("%d",&xuanze);
switch(xuanze)
{
case
(1):
zeng();break;
case
(2):
xiu();break;
case(3):
shan();break;
case(4):
cha();break;
case(5):
pingjun();break;
case(6):
quanbu();break;
case(7):
exit(7);break;
default:
printf("输入错误,请重新输入!
");getch();system("cls");jie();
}
}
//////////
main()
{
printf("\n\t\t\t******************************\n");
printf("\t\t\t**\n");
printf("\t\t\t*作品:
学生成绩管理系统*\n");
p