C程序设计学生成绩管理_学生成绩管理程序设计

2020-02-27 其他范文 下载本文

C程序设计学生成绩管理由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学生成绩管理程序设计”。

《C程序设计》综合性实验

实验报告

题目: 学生成绩管理

姓名: 班级: 学号: 指导教师: 完成时间:

一、实验题目

学生成绩管理

二、实验目的1.掌握一维数组、二维数组的使用方法。2.掌握结构体数组的定义和使用。

3.综合应用数据文件的读写语句保存结构体数组中的数据。

三、实验要求

有4个学生,每个学生有3门课的成绩,从键盘上输入以上数据,计算每个学生的平均分,并把这些信息(包括学号、姓名、班级、3门课的成绩及平均分)保存到一个文件(score.txt)中,并显示在屏幕上。

具体要求:

定义结构体类型(student_type),其中包括学号(num[11])、姓名(name[8])、班级(cla[20])、3门课成绩(score[3])和平均成绩(ave)。利用该结构体类型定义数组stud[4]。

在主函数中输入学生学号、姓名、班级、3门课的成绩,并计算出平均成绩,然后调用save()函数将学生数据保存在score.txt文件中,调用display()函数读取score.txt文件,并将其中的内容显示在屏幕上。

定义保存文件函数save()和显示文件函数display()。

四、程序流程图

五、程序代码

#include #include #include #include

int insert();//录入学生成绩信息函数 int query();//查询学生成绩信息函数 int list();//列出学生成绩信息函数定义 void save();//把数据写入到文件 void display();//从文件读入学生记录

typedef struct {

char num[20];

char name[8];

char cla[20];int score[3];int ave;}studs;

studs * stud =NULL;int current = 0;int total = 0;

int main(){

while(1)//显示程序基本信息

{ char choice;//定义一个字符类型的变量用来接收用户的菜单选择

printf(“n”);printf(“*******************************************************************************n”);n“);n”);printf(“

0---退出系统

1---printf(”

printf(“

学生成绩管理系统

录入学生成绩信息

n”);printf(“

2---查询学生成绩信息

3---列出所有学生成绩信息

n”);printf(“

4---保存学生成绩信息

5---加载学生成绩信息

n”);printf(“*******************************************************************************n”);

printf(“n”);

printf(“请选择:”);

choice=getch();

getchar();//过滤掉enter键

printf(“nn”);

switch(choice)

{

case'1':system(“cls”);

insert();/*此处调用添加录入学生成绩信息处理代码的函数*/

break;

case'2':system(“cls”);

query();/*此处调用添加查询学生成绩信息处理代码的函数*/

处理代码的函数*/

息处理代码的函数*/

信息处理代码的函数*/

}

} return 0;

break;case'3':system(“cls”);

list();/*此处调用添加列出学生成绩信息

break;case'4':system(“cls”);

save();/*此处调用添加保存学生成绩信

break;

case'5':system(“cls”);

display();/*此处调用添加加载学生成绩

break;

case'0':

if(stud!=NULL)

{

free(stud);

}

return 0;

default:

printf(“非法选择,请重新选择n”);

getch();//程序返回 }

/*各个函数的实现*/ int insert()//录入学生成绩信息函数定义 {

int i;int total=4;

if(stud==NULL)

stud=(studs *)malloc(total *sizeof(studs));

if(stud==NULL)

return 1;

if(current>=total)

{ printf(“对不起,由于人数已满,不能再添加新学生成绩信息n”);

return 1;

}

for(i=0;i

{ int a,b,c;printf(“请输入学号:”);

scanf(“%s”,&stud[current].num);

printf(“请输入姓名:”);

scanf(“%s”,&stud[current].name);

printf(“请输入班级:”);

scanf(“%s”,&stud[current].cla);printf(“请输入语文成绩:”);

scanf(“%d”,&stud[current].score[1]);

printf(“请输入数学成绩:”);

scanf(“%d”,&stud[current].score[2]);

printf(“请输入英语成绩:”);

scanf(“%d”,&stud[current].score[3]);

a=stud[current].score[1];b=stud[current].score[2];c=stud[current].score[3];stud[current].ave=(a+b+c)/3;printf(“n”);

current++;

} }

int query()//查询学生成绩信息函数定义 {

char k;printf(“***********************************n”);printf(“*

0---放弃查询

*n”);printf(“*

1---按学号查询

*n”);printf(“*

2---按姓名查询

*n”);printf(“***********************************n”);printf(“n”);

printf(“请选择:”);

k=getch();

getchar();//过滤掉enter键

printf(“nn”);

switch(k){ case '0':

break;case '1': { char num[20];

int i;

printf(“请输入要查询的学生学号:”);scanf(“%s”,&num);

for(i=0;i

if(strcmp(stud[i].num,num)==0){ printf(“学生成绩如下n”);

printf(“学号:%sn”,stud[i].num);

printf(“姓名:%sn”,stud[i].name);

printf(“班级:%sn”,stud[i].cla);

printf(“语文成绩:%dn”,stud[i].score[1]);

printf(“数学成绩:%dn”,stud[i].score[2]);printf(“英语成绩:%dn”,stud[i].score[3]);

printf(“平均成绩:%dn”,stud[i].ave);

return 0;} }

printf(“此信息不存在!nn”);

return 1;

break;} case '2': { char name[8];

int i;

printf(“请输入要查询的学生姓名:”);scanf(“%s”,&name);

for(i=0;i

if(strcmp(stud[i].name,name)==0){ printf(“学生成绩如下n”);

printf(“学号:%sn”,stud[i].num);

printf(“姓名:%sn”,stud[i].name);

printf(“班级:%sn”,stud[i].cla);

printf(“语文成绩:%dn”,stud[i].score[1]);

printf(“数学成绩:%dn”,stud[i].score[2]);printf(“英语成绩:%dn”,stud[i].score[3]);

printf(“平均成绩:%dn”,stud[i].ave);

return 0;} }

printf(“此信息不存在!nn”);

return 1;

break;} default:

printf(“非法选择,请重新选择n”);}

int list()//列出学生成绩信息函数定义 { }

int i;

printf(“学生成绩列表n”);printf(“***********************************n”);

for(i=0;i

{

printf(“学号:%sn”,stud[i].num);

printf(“姓名:%sn”,stud[i].name);

printf(“班级:%sn”,stud[i].cla);

printf(“语文成绩:%dn”,stud[i].score[1]);

printf(“数学成绩:%dn”,stud[i].score[2]);printf(“英语成绩:%dn”,stud[i].score[3]);

printf(“平均成绩:%dn”,stud[i].ave);

printf(“***********************************n”);

}

return 0;}

//把数据写入到文件 void save(){

for(i=0;i

} printf(“文件

score.txt

打开失败”);exit(0);fprintf(fb,“%20s%8s%20s%4d%4d%4d%4dn”,stud[i].num,stud[i].name,stud[i].cla,stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].ave);

}

//从文件读入学生记录 void display(){

if(stud==NULL)int i;int total=4;FILE *fp;

fclose(fb);

printf(“文件成功保存到

score.txt 中!n”);getchar();

stud=(studs *)malloc(total *sizeof(studs));

fscanf(fp,“%20s%8s%20s%4d%4d%4d%4dn”,&stud[i].num,&stud[i].name,&stif((fp=fopen(“score.txt”,“r”))==NULL){

}

for(i=0;i

score.txt

打开失败“);exit(0);ud[i].cla,&stud[i].score[1],&stud[i].score[2],&stud[i].score[3],&stud[i].ave);

printf(”学号:%sn“,stud[i].num);

printf(”姓名:%sn“,stud[i].name);

printf(”班级:%sn“,stud[i].cla);

printf(”语文成绩:%dn“,stud[i].score[1]);

printf(”数学成绩:%dn“,stud[i].score[2]);printf(”英语成绩:%dn“,stud[i].score[3]);

printf(”平均成绩:%dn“,stud[i].ave);

printf(”***********************************n“);

} } fclose(fp);getchar();

六、实验结果

七、实验体会

(写出完成此次综合性实验的心得体会,字数在200字以上。)

《C程序设计学生成绩管理.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C程序设计学生成绩管理
点击下载文档
相关专题 学生成绩管理程序设计 学生 程序设计 成绩 学生成绩管理程序设计 学生 程序设计 成绩
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文