C语言的成绩查询系统,c语言 成绩查询系统

C语言的成绩查询系统,c语言 成绩查询系统设计目标1.掌握用c语言进行程序设计的基本方法。2.熟悉运用windows对文本进行的加工。3.初步完成一个应用程序的设计和编码,以及编码的调试,了解程序设计的过程,锻炼个人的逻辑思维和程序设计能力。通过c语言设计一个系统,实现学生成绩的查询和添加,在查询模块可以分别按学号查询和以班级查询,并且当输入一个课程名时可以查询并显示出不及格学生的成绩。课题分析与设计1、课题分析(1)主函数模块,实现结构…

设计目标

1.掌握用c语言进行程序设计的基本方法。

2.熟悉运用windows对文本进行的加工。

3.初步完成一个应用程序的设计和编码,以及编码的调试,了解程序设计的过程,锻炼个人的逻辑思维和程序设计能力。

通过c语言设计一个系统,实现学生成绩的查询和添加,在查询模块可以分别按学号查询和以班级查询,并且当输入一个课程名时可以查询并显示出不及格学生的成绩。

课题分析与设计

1、课题分析

(1)主函数模块,实现结构体数字组的定义,函数的声明,用二进制数据文件存放学生成绩信息,同时实现操作的选择。

(2)菜单显示模块,通过设计程序实现提示用户要查询的信息

(3)成绩添加模块,通过设计实现学生成绩的手动添加

(4)成绩查询模块,可分为三个函数实现,在一个函数中调用其他两个函数,分别实现按学号查询和按班级查询的目标

(5)课程不及格模块,输入课程名,查询并显示不及格学生的成绩

详细设计

(1)主函数模块,定义头文件,定义结构体类型,结构体数字组,通过

(2)菜单显示模块,通过输出函数printf提示用户可以进行那些选择。

(3)成绩添加模块,定义指向文件型数据的指针变量,分别用fopen函数和 fclose函数打开和关闭数据文件,实现成绩的添加。

(4)成绩显示模块,利用for循环和fopen函数实现文件里数据的输出,输出全部学生的成绩。

(5)成绩查询模块,运用switch语句实现按学号查询和按班级查询的功能,

在两个被调函数中运用strcmp函数实现成绩的输出。

(6)课程不及格模块,运用switch语句实现课程的选择,在被调函数中运用if语句实现不及格成绩的输出

程序清单

#include

#include

#include

struct student

{

char num[12];

char name[60];

char banji[60];

char term[60];

float English;

float math;

float cyvyan;

};int dq(struct student stu[]);//

void showmenu();

void add();

void xianshi();

void chaxun();

void xhcz();

void bjcz();

void bujige();

void yy();

void gs();

void cyy();

int number=0;//记录总的学生人数即文件里面的学生人数

struct student stu[1000];//该数组用来保存所有学生的成绩信息

void main()

{

int choose=0;

showmenu();

printf(“请输入要进行的操作步骤”);

scanf(“%d”,&choose);

switch(choose)

{

case 1:break;//退出系统

case 2:add();//添加学生成绩

case 3:xianshi();break;//输出所有学生的成绩

case 4:chaxun();break;//根据学号或班级查询该生或该班级的成绩

case 5:bujige();break;//根据课程名查询并输出该课程所有不及格成绩

default:printf(“输入错误\n”);break;

}

}

void showmenu()

{

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

printf(“欢迎使用成绩查询系统!\n”);

printf(“请输入要进行的操作:\n”);

printf(“1.退出系统\n”);

printf(“2.添加学生成绩\n”);

printf(“3.输出所有学生的成绩\n”);

printf(“4.查询成绩\n”);

printf(“5.输入课程名查询并输出该课程所有不及格成绩\n”);

printf(“谢谢使用本系统,下次再见!\n”);

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

}

void add()//向文件c:\stu.dat中追加一条成绩信息,成绩信息可以分多次录入

{

int i=0;

char ch;

FILE *fp;//定义一个指向文件型数据的指针变量

struct student stu; //struct student为自己声明的结构体类型,可以表示成绩信息

fp=fopen(“c:\\stu.dat”,”ab+”); //以ab+(读写)的方式打开数据文件c:\stu.dat

if(fp==NULL)

{

printf(“打开文件失败!\n”);

exit(0);

}

do

{

printf(“请输入第%d个学生的成绩:学号,姓名,班级,学期,英语成绩,高数成绩,c语言成绩\n”,i+1);

scanf(“%s%s%s%s%f%f%f”,stu.num,stu.name,stu.banji,stu.term,&stu.English,&stu.math,&stu.cyvyan);

fwrite(&stu,sizeof(struct student),1,fp);

number++; //全局变量,用来统计成绩总数

printf(“继续输入吗?继续输入请按y,结束输入请按n\n”);

ch=getchar();

i++;

}

while(ch==’y’);

fclose(fp);

}

void xianshi() //逐条输出二进制数据文件c:\stu.dat中的成绩信息

{

FILE *fp;

struct student stu;

fp=fopen(“c:\\stu.dat”,”rb”);

//打开保存成绩信息的数据文件c:\stu.dat,打开方式为rb(只读)

if(fp==NULL)

{

printf(“打开文件失败!\n”);

exit(0);

}

printf(“全体学生的成绩为:\n”);

fread(&stu,sizeof(struct

student),1,fp); //先读一条成绩信息,保存到结构体变量xj中

while(!feof(fp)) //判断文件是否结束

{

//若文件没结束,则输出刚读到的成绩信息

printf(“%s\t%s\t%s\t%s\t%f\t%f\t%f\n”,stu.num, stu.name, stu.banji,

stu.term, stu.English, stu.math, stu.cyvyan);

fread(&stu,sizeof(struct

student),1,fp); //继续读下一条成绩信息

}

fclose(fp);

}

void chaxun()//查找学生成绩

{

int n=0;

printf(“1.按学号查找\n”);

printf(“2.按班级查找\n”);

scanf(“%d”,&n);

switch(n)

{

case 1:xhcz();break;

case 2:bjcz();break;

default :printf(“输入有误,结束!\n”);break;

}

}

void xhcz()//按学号查找学生成绩

{

char num[12];

int i=0;

printf(“请输入要查找学生的学号:\n”);

scanf(“%s”,num);

system(“cls”);//清楚屏幕先前的显示内容

printf(“\t姓名\t学号\t英语成绩\t高数成绩\tc语言成绩\n”);

for(i=0;i

{

if(strcmp(num,stu[i].num)==0)//字符串比较函数,如果输入的学号与数组中的学号一致

//则输出该学号对应的成绩

{

printf(“\t%s\t%s\t%f\t%f\t%f\n”,stu[i].name,stu[i].num,stu[i].English,stu[i].math,stu[i].cyvyan);

}

}

void bjcz() //按班级查询成绩

{

char banji[60];

int i=0;

printf(“请输入查询的班级:\n”);

scanf(“%s”,banji);

for(i=0;i

{

if(strcmp(banji,stu[i].banji)==0)

{

printf(“\t%s\t%s\t%f\t%f\t%f\n”,stu[i].banji,stu[i].name,stu[i].English,stu[i].math,stu[i].cyvyan);

}

}

}

void bujige()//输入课程名,查询并显示该课程所有不及格成绩

{

int m=0;

printf(“1.英语课程\n”);

printf(“2.高数课程\n”);

printf(“3.c语言课程\n”);

scanf(“%d”,&m);

switch(m)

{

case 1:yy();break;

case 2:gs();break;

case 3:cyy();break;

default:printf(“输入错误\n”);break;

}

}

void yy() //输出英语不及格的成绩

{

int i=0;

printf(“以下是不及格\n”);

printf(“\t姓名\t学号\t成绩\n”);

for(i=0;i

{

if(stu[i].English<60)

{

printf(“\t%s\t%s\t%f\n”,stu[i].name,stu[i].num,stu[i].English);

}

}

}

void gs() //输出高数不及格的成绩

{

int i=0;

printf(“以下是不及格\n”);

printf(“\t姓名\t学号\t成绩\n”);

for(i=0;i

{

if(stu[i].math<60)

{

printf(“\t%s\t%s\t%f\n”,stu[i].name,stu[i].num,stu[i].math);

}

}

}

void cyy() //输出c语言成绩不及格的成绩

{

int i=0;

printf(“以下是不及格\n”);

printf(“\t姓名\t学号\t成绩\n”);

for(i=0;i

{

if(stu[i].cyvyan<60)

{

printf(“\t%s\t%s\t%f\n”,stu[i].name,stu[i].num,stu[i].cyvyan);

}

}

}

今天的文章C语言的成绩查询系统,c语言 成绩查询系统分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25789.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注