版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年八年级英语下册Unit7FoodFestivalTopic1WerepreparingforafoodfestivalSectionB课时作业无答案新版仁爱版
- 2024-2025学年高中语文第6单元9呼兰河传小团圆媳妇之死作业含解析新人教版选修中国小说欣赏
- 婚姻合伙协议合同范例
- 小区租赁合同模板
- 合同范例讨论会
- 2024年辽宁客运车资格证考试题及答案
- 2024年长沙客运从业资格证应用能力考试
- 2024年上海客运从业资格证考试流程图片
- 《寡人之于国也》《劝学》《过秦论》《师说》导学案
- 国际经济学复习题
- 高一英语语法知识点北师大
- 鼻咽癌的放射治疗课件
- 明孝端皇后九龙九凤冠
- 生殖实验室简介课件
- 注塑车间规划方案
- 生猪屠宰厂员工培训方案
- 营养不良五阶梯治疗
- 装修项目的工程量清单
- 标本运送培训课件
- 2024年中国船级社质量认证公司招聘笔试参考题库含答案解析
- 《法律效力层级》课件
评论
0/150
提交评论