




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出借咨询服务协议
- 联合研究开发协议
- 办公项目总结与未来展望报告
- 地坪浇筑劳务分包合同
- 独院买卖合同协议书
- 砖砌体工程施工合同协议书
- 高效办公流程优化解决方案
- 媒体资源共享合作框架协议
- 制作细胞的结构模型(第1课时)教学设计-2024-2025学年苏科版生物七年级上册
- 写字楼照明设计施工方案
- 路基换填级配碎石施工方案
- EIM Book 1 Unit 7 Learning languages单元检测试题
- 四川省政府采购评审专家考试题库
- GB/T 34875-2017离心泵和转子泵用轴封系统
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
- GA/T 1081-2020安全防范系统维护保养规范
- 2023一年级下册语文教学工作计划(2篇)
- 2022年云上贵州大数据(集团)有限公司招聘笔试试题及答案解析
- (虎符铜砭刮痧)基本理论及临床应用课件
- 文件袋、档案袋密封条模板
- 依图科技业务概述
评论
0/150
提交评论