




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<stdio.h>
#include<stdlib.h>//forsystem(,,cls,')
#include<string.h>
#include<conio.h>//forgetche()and
getch()
/*定义学生结构体*/
typedefstruct//Student
(
charID[20];
charName[20];
floatMath;
floatEnglish;
floatComputer;
floatAverage;
floatSum;
JStudent;
/*声明学生数组及学生数量*/
Studentstudents[1000];
intnum=0;
/*求平均值*/
floatAvg(Studentstu)
return
(stu.Math+stu.English+stu.Computer)/3;
)
/*求总成绩*/
floatSum(Studentstu)
(
return
(stu.Math+stu.English+stu.Computer);
/*通过学号返回数组下标*/
intStudent_SearchBylndex(charid[|)
(
inti;
for(i=0;i<num;i++)
(
if(strcmp(students[i].ID,id)==O)
(
returni;
)
)
return-1;
)
/*显示单条学生记录*/
voidStudent_DisplaySingle(intindex)
(
printf(H%-8s%-8s%-10s%-10s%-15s%-1Os
%-1Os\n”,“学号”,“姓名%数学成绩“J英语成
绩7计算机成绩7平均成绩7总成绩”);
printf("-------------------------------------------------
-----------------------------\n");
printf(”%・8s%・8s%・10.2f%-10.2f%-15.2f%
-10.2f%-10.2f\n',,students[index].ID,studen
ts[index].Name,
students[index].Math,students[index].Engli
sh,students[index].Computer,students[ind
ex].Average,students[index].Sum);
)
/*查找学生信息*/
voidStudent_Search()
(
charid[20];
intindex;
printf("请输入要查找的学生的学号
scanf(''%s",&id);
getchar();
index=Student_SearchBylndex(id);
Student_DisplaySingle(index);
)
/*插入学生信息*/
voidStudent_A|Dpend()
(
while(1)
(
printf("请输入学号:”);
scanf(”%s”,&students[num]」D);
getchar();
printf(”请输入姓名:");
scanf("%sH,&students[num].Name);
getcharQ;
printf("请输入数学成绩:");
scanf("%f,,&students[num].Math);
getchar();
printf("请输入英语成绩:");
scanf("%f',&students[num].English);
getchar();
printfC请输入计算机成绩
scanfC^f\&studentstnuml.Computer);
getchar();
students[num].Average=Avg(students[nu
m]);
students[num].Sum=Sum(students[num]);
num++;
printf("是否继续?(y/n)”);
if(getchar()=='n'||getchar()=='N,)
break;
)
)
)
/*修改学生信息*/
voidStudent_Modify()
(
floatMath,English,Computer;
while(1)
charid[20];
intindex;
printf(“请输入要修改的学生的学号
scanf("%s",&id);
getchar();
index=Student_SearchBylndex(id);
if(index==-1)
(
printf(“学生不存在!\n“);
)
else
(
printf("你要修改的学生信息为:\n”);
Student_DisplaySingle(index);
printf("~请输入新值7n");
printf(”请输入学号:“);
scanf("%sn,&students[index].ID);
getchar();
printf(”请输入姓名
scanf(”%s”,&students[index].Name);
getchar();
printf(”请输入成绩:");
scanfC^f\&studentsOndexJ.Math);
getchar();
printf(”请输入成绩:");
scanf("%f,,&students[index].English);
getchar();
printf(”请输入成绩:");
scanf("%f',&students[index].Computer);
getcharQ;
students[index].Average=Avg(students[ind
ex]);
students[index].Sum=Sum(students[index]
);
)
printf("是否继续?(y/n)");
if(getchar()=='n'||getchar()=='N,)
(
break;
)
)
)
/*删除学生信息*/
voidStudent_Delete()
(
inti;
while(1)
(
charid[20];
intindex;
printf("请输入要删除的学生的学号
scanf(”%s”,&id);
getchar();
index=Student_SearchBylndex(id);
if(index==-1)
printf("学生不存在!\n。;
)
else
printf(“你要删除的学生信息为:\n”);
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)”);
if(getchar()=='y')
(
for(i=index;i<num-1;i++)
(
students[i]=students[i+1];
)
num-;
)
getchar();
)
printf("是否继续?(y/n)1');
if(getchar()==,n'||getchar()==,N,)
(
break;
)
)
)
/*按总成绩降排序*/
voiddescending_order_by_sum()
intij;
Studenttmp;
for(i=0;i<num;i++)
(
for(j=1;j<num-i;j++)
(
if(studentsO-1].Sum<studentsO].Sum)
(
tmp=students[j-1];
students0-1]=students[j];
students[j]=tmp;
)
)
}
)
/*按总成绩升排序*/
voidascending_order_by_sum()
(
intij;
Studenttmp;
for(i=0;i<num;i++)
(
for(j=1;j<num-i;j++)
if(studentsO-1].Sum<studentsO].Sum)
tmp=students[j-1];
studentsO-1]=students[j];
students[j]=tmp;
)
)
)
)
/*按学号降排序*/
voiddescending_order_by_num()
inti,j;
Studenttmp;
for(i=0;i<num;i++)
(
for(j=1;j<num-i;j++)
(
if
(strcmp(studentsO-1].ID,studentsO].ID)<0)
(
tmp=students[j-1];
students0-1]=students[j];
students[j]=tmp;
)
)
}
)
/*按学号升排序*/
voidascending_order_by_num()
(
inti,j;
Studenttmp;
for(i=0;i<num;i++)
for(j=1;j<num-i;j++)
if
(strcmp(studentsO-1].ID,studentsO].ID)<0)
(
tmp=students[j-1];
studentsO-1]=studentsO];
studentsO]=tmp;
)
)
)
/*显示学生信息*/
voidStudent_List()
inti;
printf(H%-8s%-8s%-10s%-10s%-15s%-1Os
%-10s\n7学号”,“姓名7数学成绩“J英语成
绩计算机成绩7平均成绩*”总成绩)
printf("-------------------------------------------------
-----------------------------\n");
for(i=0;i<num;i++)
(
printf(”%・8s%・8s%・10.2f%-10.2f%-15.2f%
-10.2f%-10.2f\n",students[i].ID,students[i].
Name,
students[i].Math,students[i].English,studen
ts[i].Computer,students[i].Average,student
s[i].Sum);
)
)
/*将学生信息从文件读出*/
voidRead_File()
(
FILE*fp;
inti;
if((fp=fopen("Database.txt,,,,'rb,,))==NULL)
printf("不能打开文件!\n“);
return;
)
if(fread(&num,sizeof(int),1,fp)!=1)
(
num=-1;
)
else
(
for(i=0;i<num;i++)
(
fread(&students[i],sizeof(Student),1,fp);
)
)
fclose(fp);
/*将学生信息写入文件*/
voidWrite_File()
(
FILE*fp;
inti;
if
((fp=fopen(',Database.txt",Hwb"))==NULL)
printf("不能打开文件!\n”);
return;
)
if(fwrite(&num,sizeof(int),1,fp)!=1)
(
printf("写入文件错误!\n”);
)
for(i=0;i<num;i++)
(
if
(fwrite(&students[i],sizeof(Student),1,fp)!=
1)
(
printf(“写入文件错误!\n”);
}
)
fclose(fp);
)
〃初始化
voidinitialize(void)
(
inti=0;
Read_File();
for(i=0;i<1000;i++)
Read_File();
strcpy(students[i].ID,'1");
strcpy(students[i].Name,"");
students[i].Math=O.O;
students[i].English=O.O;
students[i].Computer=0.0;
students[i].Average=O.O;
students[i].Sum=O.O;
)
)
/*主程序*/
intmain(void)
charchoice=AO',yes_no='\O';
initialize();
while(1)
(
system("cls");
〃主菜单*/
printf("\nManagementfor
Students'scores\n");
printf(H\n
-----------------------------------------------\n»);
printf(n|1.Appendrecord
|\n”);
printf("|2.Listrecord
H);
printf(H|3.Deleterecord
W);
printfC1|4.Modifyrecord
W);
printf(H|5.Searchrecord
W);
printf(n|6.SortScoreindescending
orderbysum|\n");
printf("|7.SortScoreinascending
orderbysum|\nH);
printfC1I8.SortScoreindescending
orderbynum|\n");
printf(H|9.SortScoreinascending
orderbynum|\nn);
printf("|W.WritetoaFile
|\n”);
printf(H|R.Readfroma
File|\n");
printf(n|0.Exit
|\nH);
printf(H
-----------------------------------------------\n");
printf("PleaseInputyour
choiceAn");
choice=getche();
switch(choice)
(
case'T:
printf(,'\nH);
Student_Append();
break;
case'2':
printfOn");
Student_List();
break;
case'3':
Student_Delete();
break;
case'4':
printf(,,\nH);
Student_Modify();
break;
case5:
printf("\n");
Student_Search();
break;
ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅行学习与研学活动安排计划
- 社会实践小班社区活动的开展计划
- 人力资源的发展与管理计划
- 2025年企业管理服务项目建议书
- 2025年白喉、百日咳、破伤风、乙肝四联制剂合作协议书
- 跨国业务数据转换合规指南
- 基于人工智能的智能家居设计合作协议
- 服装设计行业服装设计版权协议
- 2025年抗帕金森病药项目建议书
- Pipemidic-acid-trihydrate-Standard-生命科学试剂-MCE
- 小学数学教学评一致性研讨活动
- EIM Book 1 Unit 7 Learning languages单元检测试题
- WTC瓦斯突出参数仪操作规程
- 四川省政府采购评审专家考试题库
- 混凝土搅拌站安全生产风险分级管控和隐患排查治理双体系方案资料2021-2022完整实施方案模板
- GB/T 34875-2017离心泵和转子泵用轴封系统
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
- GA/T 1081-2020安全防范系统维护保养规范
- 民宿教学讲解课件
- 2023一年级下册语文教学工作计划(2篇)
- 山东省中考物理总复习 八上 第2讲 声现象
评论
0/150
提交评论