学生管理数组文件C语言c.docx

上传人:b****6 文档编号:13760326 上传时间:2023-06-17 格式:DOCX 页数:17 大小:16.10KB
下载 相关 举报
学生管理数组文件C语言c.docx_第1页
第1页 / 共17页
学生管理数组文件C语言c.docx_第2页
第2页 / 共17页
学生管理数组文件C语言c.docx_第3页
第3页 / 共17页
学生管理数组文件C语言c.docx_第4页
第4页 / 共17页
学生管理数组文件C语言c.docx_第5页
第5页 / 共17页
学生管理数组文件C语言c.docx_第6页
第6页 / 共17页
学生管理数组文件C语言c.docx_第7页
第7页 / 共17页
学生管理数组文件C语言c.docx_第8页
第8页 / 共17页
学生管理数组文件C语言c.docx_第9页
第9页 / 共17页
学生管理数组文件C语言c.docx_第10页
第10页 / 共17页
学生管理数组文件C语言c.docx_第11页
第11页 / 共17页
学生管理数组文件C语言c.docx_第12页
第12页 / 共17页
学生管理数组文件C语言c.docx_第13页
第13页 / 共17页
学生管理数组文件C语言c.docx_第14页
第14页 / 共17页
学生管理数组文件C语言c.docx_第15页
第15页 / 共17页
学生管理数组文件C语言c.docx_第16页
第16页 / 共17页
学生管理数组文件C语言c.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生管理数组文件C语言c.docx

《学生管理数组文件C语言c.docx》由会员分享,可在线阅读,更多相关《学生管理数组文件C语言c.docx(17页珍藏版)》请在冰点文库上搜索。

学生管理数组文件C语言c.docx

学生管理数组文件C语言c

#include

#include//forsystem("cls")

#include

#include//forgetche()andgetch()

 

/*定义学生结构体*/

typedefstruct//Student

{

charID[20];

charName[20];

floatMath;

floatEnglish;

floatComputer;

floatAverage;

floatSum;

}Student;

 

/*声明学生数组及学生数量*/

Studentstudents[1000];

intnum=0;

 

/*求平均值*/

floatAvg(Studentstu)

{

return(stu.Math+stu.English+stu.Computer)/3;

}

 

/*求总成绩*/

floatSum(Studentstu)

{

return(stu.Math+stu.English+stu.Computer);

}

 

/*通过学号返回数组下标*/

intStudent_SearchByIndex(charid[])

{

inti;

for(i=0;i

{

if(strcmp(students[i].ID,id)==0)

{

returni;

}

}

return-1;

}

 

/*显示单条学生记录*/

voidStudent_DisplaySingle(intindex)

{

printf("%-8s%-8s%-10s%-10s%-15s%-10s%-10s\n","学号","姓名","数学成绩","英语成绩","计算机成绩","平均成绩","总成绩");

printf("---------------------------------------------------------------------------\n");

printf("%-8s%-8s%-10.2f%-10.2f%-15.2f%-10.2f%-10.2f\n",students[index].ID,students[index].Name,

students[index].Math,students[index].English,students[index].Computer,students[index].Average,students[index].Sum);

}

 

/*查找学生信息*/

voidStudent_Search()

{

charid[20];

intindex;

printf("请输入要查找的学生的学号:

");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

Student_DisplaySingle(index);

}

 

/*插入学生信息*/

voidStudent_Append()

{

while

(1)

{

printf("请输入学号:

");

scanf("%s",&students[num].ID);

getchar();

printf("请输入姓名:

");

scanf("%s",&students[num].Name);

getchar();

printf("请输入数学成绩:

");

scanf("%f",&students[num].Math);

getchar();

printf("请输入英语成绩:

");

scanf("%f",&students[num].English);

getchar();

printf("请输入计算机成绩:

");

scanf("%f",&students[num].Computer);

getchar();

students[num].Average=Avg(students[num]);

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_SearchByIndex(id);

if(index==-1)

{

printf("学生不存在!

\n");

}

else

{

printf("你要修改的学生信息为:

\n");

Student_DisplaySingle(index);

printf("--请输入新值--\n");

printf("请输入学号:

");

scanf("%s",&students[index].ID);

getchar();

printf("请输入姓名:

");

scanf("%s",&students[index].Name);

getchar();

printf("请输入成绩:

");

scanf("%f",&students[index].Math);

getchar();

printf("请输入成绩:

");

scanf("%f",&students[index].English);

getchar();

printf("请输入成绩:

");

scanf("%f",&students[index].Computer);

getchar();

students[index].Average=Avg(students[index]);

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_SearchByIndex(id);

if(index==-1)

{

printf("学生不存在!

\n");

}

else

{

printf("你要删除的学生信息为:

\n");

Student_DisplaySingle(index);

printf("是否真的要删除?

(y/n)");

if(getchar()=='y')

{

for(i=index;i

{

students[i]=students[i+1];

}

num--;

}

getchar();

}

printf("是否继续?

(y/n)");

if(getchar()=='n'||getchar()=='N')

{

break;

}

}

}

 

/*按总成绩降排序*/

voiddescending_order_by_sum()

{

inti,j;

Studenttmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Sum

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

 

/*按总成绩升排序*/

voidascending_order_by_sum()

{

inti,j;

Studenttmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Sum

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

 

/*按学号降排序*/

voiddescending_order_by_num()

{

inti,j;

Studenttmp;

for(i=0;i

{

for(j=1;j

{

if(strcmp(students[j-1].ID,students[j].ID)<0)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

 

/*按学号升排序*/

voidascending_order_by_num()

{

inti,j;

Studenttmp;

for(i=0;i

{

for(j=1;j

{

if(strcmp(students[j-1].ID,students[j].ID)<0)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

 

/*显示学生信息*/

voidStudent_List()

{

inti;

printf("%-8s%-8s%-10s%-10s%-15s%-10s%-10s\n","学号","姓名","数学成绩","英语成绩","计算机成绩","平均成绩","总成绩");

printf("---------------------------------------------------------------------------\n");

for(i=0;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,students[i].Computer,students[i].Average,students[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

{

fread(&students[i],sizeof(Student),1,fp);

}

}

fclose(fp);

}

 

/*将学生信息写入文件*/

 

voidWrite_File()

{

FILE*fp;

inti;

if((fp=fopen("Database.txt","wb"))==NULL)

{

printf("不能打开文件!

\n");

return;

}

if(fwrite(&num,sizeof(int),1,fp)!

=1)

{

printf("写入文件错误!

\n");

}

for(i=0;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,"");

strcpy(students[i].Name,"");

students[i].Math=0.0;

students[i].English=0.0;

students[i].Computer=0.0;

students[i].Average=0.0;

students[i].Sum=0.0;

}

}

 

/*主程序*/

intmain(void)

{

charchoice='\0',yes_no='\0';

initialize();

while

(1)

{

system("cls");

/*主菜单*/

printf("\nManagementforStudents'scores\n");

printf("\n-----------------------------------------------\n");

printf("|1.Appendrecord|\n");

printf("|2.Listrecord|\n");

printf("|3.Deleterecord|\n");

printf("|4.Modifyrecord|\n");

printf("|5.Searchrecord|\n");

printf("|6.SortScoreindescendingorderbysum|\n");

printf("|7.SortScoreinascendingorderbysum|\n");

printf("|8.SortScoreindescendingorderbynum|\n");

printf("|9.SortScoreinascendingorderbynum|\n");

printf("|W.WritetoaFile|\n");

printf("|R.ReadfromaFile|\n");

printf("|0.Exit|\n");

printf("-----------------------------------------------\n");

printf("PleaseInputyourchoice:

\n");

choice=getche();

switch(choice)

{

case'1':

printf("\n");

Student_Append();

break;

case'2':

printf("\n");

Student_List();

break;

case'3':

Student_Delete();

break;

case'4':

printf("\n");

Student_Modify();

break;

case'5':

printf("\n");

Student_Search();

break;

case'6':

printf("\n");

descending_order_by_sum();

Student_List();

break;

case'7':

printf("\n");

ascending_order_by_sum();

Student_List();

break;

case'8':

printf("\n");

descending_order_by_num();

Student_List();

break;

case'9':

printf("\n");

ascending_order_by_num();

Student_List();

break;

case'w':

case'W':

Write_File();

break;

case'r':

case'R':

Read_File();

break;

case'0':

break;

default:

printf("%c为非法项!

\n",choice);

break;

}

if(choice=='0')

break;

printf("\n要继续选择吗?

(Y/N)?

\n");

do

{

yes_no=getch();

}while(yes_no!

='Y'&&yes_no!

='y'&&yes_no!

='N'&&yes_no!

='n');

}while(yes_no=='Y'||yes_no=='y');

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2