c语言做的学生成绩管理系统,c语言程序学生成绩管理系统

本文目录一览:

c语言编写查询学生成绩管理程序。

#includestdio.h

#includestdlib.h

#includestring.hstruct record

{

char xuehao[10];//学号

char name[20]; //姓名

char sex[3];//性别

int ke1;//数学

int ke2 ;//语文

int ke3;//英语

int pin;

}stu[50];

int k=1,n,m;void readfile();

void seek();

void insert();

void del();

void save();

void menu();

void seek()

{int i,j,item,flag;brchar s1[20];brprintf(“——————\n”);brprintf(“1.按学号查询\n”);brprintf(“2.退出本菜单\n”);brprintf(“——————\n”);brwhile(1)br{ printf(“请选择子菜单编号:”);brscanf(“%d”,item);brflag=0;brswitch(item)br{brcase 1:brprintf(“请输入要查询的学生的学号:\n”);brscanf(“%s”,s1);brfor(i=0;in;i++)brif(strcmp(stu[i].xuehao,s1)==0)br{ flag=1;brprintf(“该学生学号,姓名,性别,数学,语文,英语 分别为:\n”);brprintf(” %s %s %s %d %d %d”,stu[i].xuehao,stu[i].name,brstu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);br}

if(flag==0)

printf(“该学号不存在!\n”); break;

case 2:return;

default:printf(“请在1-2之间选择\n”);

}

}

}

void insert()

{ int i=n,j,flag;

printf(“请输入待增加的学生数:\n”);

scanf(“%d”,m);

do

{ flag=1;

while(flag)

{ flag=0;

printf(“请输入第 %d 个学生的学号:\n”,i+1);

scanf(“%s”,stu[i].xuehao);

for(j=0;ji;j++)

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

{ printf(“已有该学号,请检查后重新录入!\n”);

flag=1;

break;

}

}

printf(“请输入第 %d 个学生的姓名:”,i+1);

scanf(“%s”,stu[i].name);

printf(“\n请输入第 %d 个学生的性别:”,i+1);

scanf(“%s”,stu[i].sex);

printf(“\n请输入第 %d 个学生的数学成绩:”,i+1);

scanf(“%d”,stu[i].ke1);

printf(“\n请输入第 %d 个学生的语文成绩:”,i+1);

scanf(“%d”,stu[i].ke2);

printf(“\n请输入第 %d 个学生的英语成绩:”,i+1);

scanf(“%d”,stu[i].ke3);if(flag==0)

{ i=i;

i++;

}

}while(in+m);

n+=m;

printf(“录入完毕!\n\n”);

}void del()

{ int i,j,flag=0;

char s1[20];

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

scanf(“%s”,s1);

for(i=0;in;i++)

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

{ flag=1;

for(j=i;jn-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf(“该学号不存在!\n”);

if(flag==1)

{ printf(“删除成功,显示结果请选择菜单6\n”);

n–;

}

}

void readfile()

{

char buf[80],*p=”student.dat”;

FILE *fp;

int i=0;

if ((fp=fopen(“student.dat”,”r”))==NULL)

{ printf(“Open file %s error! Strike any key to exit!”,p);

system(“pause”);

exit(0);

}

while(fscanf(fp,”%s%s%s%d%d%d”,stu[i].xuehao,stu[i].name,

stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3)==6)

{ i++;

i=i;

}

fclose(fp);

n=i;

printf(“录入完毕!\n”);

}void save()

{ int i,j,k,flag=0;

FILE *fp;

fp=fopen(“student.dat”,”w”);

for(i=0;im;i++)

{

fprintf(fp,”%s%s%d%d%d”,stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].ke1,

stu[i].ke2,stu[i].ke3);

fclose(fp);

printf(“已储存”);

}

}

void paixu()

{

int i,j,k,t;

for(i=0;im;i++)

{

stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;

}

for(i=0;i=m-2;i++)

{

k=i;

for(j=i+1;j=m-1;j++)

if(stu[j].pinstu[k].pin)

k=j;

if(k!=i)

{

t=stu[k].pin;

stu[k].pin=stu[i].pin;

stu[i].pin=t;

}

}

for(i=0;im;i++)

{printf(“第 %d 个学生的姓名%s:”,i+1,stu[i].name);br printf(“\n第 %d 个学生的性别:%s”,i+1,stu[i].sex);br printf(“\n第 %d 个学生的数学成绩:%d”,i+1,stu[i].ke1);br printf(“\n第 %d 个学生的语文成绩:%d”,i+1,stu[i].ke2);br printf(“\n第 %d 个学生的英语成绩:%d”,i+1,stu[i].ke3);br printf(“\n第 %d 个学生的平均成绩:%d”,i+1,stu[i].pin);br }

}

void menu()

{ int nub;

printf(” \n\n学生成绩管理系统\n\n”);

printf(“*****系统功能菜单*****\n”);

printf(“———————-\n”);

printf(“1.输入学生信息\n”);

printf(“2.查询学生信息\n”);

printf(“3.按学号删除信息\n”);

printf(“4.读入学生信息\n”);

printf(“5.保存信息(要把修改保存到文件,退出程序前必须执行本项)\n”);

printf(“6.查询学生平均成绩信息\n”);

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

printf(“———————-\n”);

printf(“请选择菜单编号:”);

scanf(“%d”,nub);

switch(nub)

{

case 1:insert();break;

case 2:seek();break;

case 3:del();break;

case 4:readfile();break;

case 5:save();break;

case 6:paixu();break;

case 0:k=0;break;

default:printf(“请在0-6之间选择\n”);

}}

void main()

{

while(k)

menu();

}

//平均数是排序后,输出的,如果你不想直接输入,那就不要对每个学生进行选择排序了

怎样用C语言写学生成绩管理系统?

程序如下: #includestdio.h

void main()

{

float student[100][7];

//student[][0]存放学号,student[][1]到student[][4]存放四门成绩,

//student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名

int n,i,j,k,p,t,count,flag;

int a[100],b[100],c[100];

//a[]存放排序后的下标,b[]存放总分(备份),c[]存放排名的数据

printf(“输入学生的个数:\n”);

scanf(“%d”,n);

for(i=0;i=n-1;i++)

{

printf(“输入第%d个学生的学号:”,i+1);

scanf(“%f”,student[i][0]);

for(j=0,student[i][5]=0;j=3;j++)

{

printf(“输入第%d个学生的第%d门成绩:”,i+1,j+1);

scanf(“%f”,student[i][j+1]);

student[i][5]+=student[i][j+1]; //计算总分

}

b[i]=student[i][5]; //把总分再赋给b[]数组,以后排序用

student[i][6]=student[i][5]/4; //计算平均分

}

for(i=0;i=n-2;i++) //对数组b[](即总分)进行排序

for(j=0;j=n-2-i;j++)

{

if(b[j]b[j+1])

{

t=b[j];

b[j]=b[j+1];

b[j+1]=t;

}

}

for(i=0,k=0;i=n-1;i++)//用数组a[]取得排序后总分的下标

{

for(j=0,flag=0;j=n-1;j++)

{

if(b[i]==student[j][5])

{

if(0==k) //如果数组a[]中有零个元素,就把j直接赋给a[]

{

a[k]=j;

k++;

flag=1;

}

else //如果数组a[]中有元素了,则判断

{

for(p=0;p=k-1;p++)

if(a[p]!=j)

{

a[k]=j;

k++;

flag=1;

break;

}

}

}

if(1==flag)

break;

}

}

for(count=1,i=0;i=n-1;i++) //对c[](排名)进行处理

{

if(b[i]==b[i+1])

{

c[i]=count;

}

else

if(b[i]b[i+1])

{

c[i]=count;

count++;

}

}

printf(“\n以下是统计结果:\n”);

printf(“学号 s[1] s[2] s[3] s[4] 总分 平均分 排名\n”);

for(i=0;i=n-1;i++)

{

printf(“%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%f\t%d\n”,student[a[i]][0],student[a[i]][1],student[a[i]][2],student[a[i]][3],student[a[i]][4],student[a[i]][5],student[a[i]][6],c[i]);

}

} 有疑问提出

用c语言做一个学生成绩管理系统。。。。。

自己制作成绩查询系统成本高昂,建议使用易查分系统,三分钟即可搭建完成。

C语言 学生成绩管理系统?

附录* 综合实例——学生成绩查询系统

这是一个用c语言编写的小软件——学生成绩查询系统,同学们可以将其作为一个综合实例,对其进行仔细的阅读和研究,体验编程处理问题的过程,加深对编程语言的理解,提高处理问题的综合能力。

1、程序的功能:

1)可以根据用户输入的输入、输出文件名,读入学生成绩,完成数据的初始化。

2)可以查询指定学生的成绩,可以是指定科目的成绩,也可以是全部科目的成绩。

3)友好退出。

2、使用说明:

1)将输入文件放到指定的目录下(即../student/)

图1

2)启动管理程序student.exe

3)在程序的使用界面,首先输入输入文件名和输出文件名,完成程序的初始化,操作如下图所示

图2

然后,按照按照提示,输入学生姓名和需要程序的成绩(此软件暂时只设置了五成成绩,同学们可以按照需要扩展)科目代码,也可以输入查询所有成绩的代码。程序成绩,如下图所示

图3

4)输入代码“q”退出程序。

3、程序代码

#include

#include

#include

FILE *f1,*f2;

char file1[20],file2[20],name[200][20],name1[15];

int n,m,data[200][10];

void init(){

int i,j;

char ch=’ ‘;

printf(“%20c欢迎使用班级成绩管理系统\n\n”,ch);

printf(“请输入输入和输出文件名(中间用一个空格隔开):\n”);

scanf(“%s %s”,file1,file2);// 1)该条语句的功能是什么?

f1=fopen(file1,”r”);

f2=fopen(file2,”w”);

fscanf(f1,”%d%d”,n,m); // 2)该条语句的功能是什么?

for(i=1;i=n;i++)

{

fscanf(f1,”%s”,name[i]); // 3)该条语句的功能是什么?

data[i][0]=0; // 4)该条语句的功能是什么?没有这条语句可不可以?

for(j=1;j=m;j++)

{

fscanf(f1,”%d”,data[i][j]);

data[i][0]+=data[i][j]; // 5)该条语句的功能是什么?

}

}

fprintf(f2,”name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n “);

for(i=1;i=n;i++)

{

fprintf(f2,”%s\t”,name[i]);

for(j=1;j=m;j++)

fprintf(f2,”%d\t”,data[i][j]);

fprintf(f2,”%d\n”,data[i][0]);

}

fclose(f1);// 6)问什么可以在这关闭输入文件?

fclose(f2);

}

void search(char na[],char num){

int i=1,j;

while((i=n)(strcmp(na,name[i])!=0))i++;

if(i=n){

switch(num){

case ‘1’:printf(“%s的语文成绩为%d!\n”,na,data[i][1]);break;

case ‘2’:printf(“%s的数学成绩为%d!\n”,na,data[i][2]);break;

case ‘3’:printf(“%s的英语成绩为%d!\n”,na,data[i][3]);break;

case ‘4’:printf(“%s的物理成绩为%d!\n”,na,data[i][4]);break;

case ‘5’:printf(“%s的化学成绩为%d!\n”,na,data[i][5]);break;

case ‘a’:

printf(“%s的各科成绩为:\n”,name[i]);

printf(“语文\t数学\t英语\t物理\t化学\t总成绩\n”);

for(j=1;j=m;j++)

printf(“%d\t”,data[i][j]);

printf(“%d\n”,data[i][0]);

break;

default: printf(“没有这种查询方式,请确认后再次输入!\n”);

}

}

else printf(“查无此人,请确认后再次查询!\n”);

printf(“\n\n”);

}

main(){

init();//数据初始化

printf(“数据初始化结束!\n\n”);

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

char na[20];

char num;

while(1){ // 7)该条语句的功能是什么?

//scanf(“%s%c%c”,na,num,num); // 8)此处的输入可不可以用这条语句?

printf(“请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):\n(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)\n”);

scanf(“%s”,na);

if(strcmp(na,”q”)==0)break; // 9)问什么要用这条语句strcmp(na,”q”)==0?

scanf(“%c%c”,num,num); // 10)为什么用了两次num?

search(na,num);

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

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

}

system(“pause”);

}

这是我以前的一个程序,你改改吧,应该很好改

如何用C语言编写”学生成绩管理系统”

#includestdio.h

#includestdlib.h

#includeconio.h

#includestring.h

struct student{

int id;

char name[10];

int age;

char sex[10];

char birthady[20];

int tel;

char nativeplace[50];

}st[50];

int i=0;

void shuru() {

char a;

do{

printf(“\n请输入学号:”);

scanf(“%d”,st[i].id);

fflush(stdin);

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

gets(st[i].name);

printf(“\n”) ;

printf(“请输入年龄:”);

scanf(“%d”,st[i].age);

fflush(stdin);

printf(“\n请输入姓别:”);

gets(st[i].sex);

fflush(stdin);

printf(“\n请输入生日:”);

gets(st[i].birthady);

printf(“\n请输入电话:”);

scanf(“%d”,st[i].tel);

fflush(stdin);

printf(“\n请输入籍贯:”);

gets(st[i].nativeplace);

printf(“\n是否继续输入另外一个学生信息?(y/n)”);

fflush(stdin);

a=getchar();

i++;

}while(a==’y’ i=50);

}

void xianshi()

{

int j;

printf(“\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n”);

for(j=0;ji;j++)

printf(“\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n”,

st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);

}

void paixu() //按年龄从大到小排序函数

{

int j,k;

int temp;

for(j=0;ji;j++)

{

for(k=0;ki-1-j;k++)

{

if(st[k].agest[k+1].age)

{

temp=st[k].age;

st[k].age=st[k+1].age;

st[k+1].age=temp;

}

}

}

xianshi(); //排序后输出

}

void chazhao()

{

int m;

char name[20],b;

do

{

printf(“\n请输入想查找的学生姓名:”);

fflush(stdin);

gets(name);

for(m=0;mi;m++)

{

if(strcmp(name,st[m].name)==0)

{

printf(“\n\t您查找的学生在第%d个位置找到了!!!\n”,m+1);

break;

}

}

if(m=20)

printf(“\n\t没有找到这个学生!!!\n”);

else

{

printf(“\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n”);

printf(“\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n”,

st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);

}

printf(“\n是否查找另一个学生的信息?(y/n)”);

fflush(stdin);

b=getchar();

}while(b==’y’);

}

void shanchu()

{

char name[20],c;

int a,b;

do

{

printf(“\n请输入要删除的学生姓名:\n”);

fflush(stdin);

gets(name);

for(a=0;ai;a++)

{

if(strcmp(name,st[a].name)==0)

break;

}

for(b=a;bi;b++)

st[b]=st[b+1];

if(ai)

printf(“\t没有找到这个学生!!!\n”);

else

{

i–;

xianshi();

}

printf(“\n是否继续删除另一个学生信息?(y/n) “);

fflush(stdin);

c=getchar();

}while(c==’y’);

}

void charu()

{

shuru();

paixu();

}

void main() //主函数

{

int change;

do{

system(“cls”);

printf(“============================学生信息管理系统===================================\n”);

printf(“\t\t一: 输入学生信息\n”);

printf(“\t\t二: 显示学生信息\n”);

printf(“\t\t三: 查找学生信息\n”);

printf(“\t\t四: 删除学生信息\n”);

printf(“\t\t五: 插入学生信息\n”);

printf(“\t\t六: 退出程序\n”);

fflush(stdin);

printf(“\t\t请输入功能选项:”);

scanf(“%d”,change);

switch(change)

{

case 1:

shuru(); break;

case 2:

xianshi(); break;

case 3:

chazhao(); break;

case 4:

shanchu(); break;

case 5:

charu(); break;

case 6:

break;

}

getch();

}while(change!=6);

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/158093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-19 00:39
下一篇 2024-11-19 00:39

相关推荐

  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29

发表回复

登录后才能评论