当前位置:首页 » 编程语言 » c语言成绩录入

c语言成绩录入

发布时间: 2022-06-29 07:21:54

c语言怎么用数组录入3个学生成绩,每个学生有5门课成绩,并统计每个学生的平均分

#include<stdio.h>
#include<math.h>

intmain()

{
floatg[3][5];

for(inti=0;i<3;i++){
printf("请输入第%d个学生的成绩中间用空格分开: ",i+1);
scanf("%f%f%f%f%f",&g[i][0],&g[i][1],&g[i][2],&g[i][3],&g[i][4]);
}
for(inti=0;i<3;i++){
floatavg=0.0;
floatsum=0.0;
for(intj=0;j<5;j++){
sum+=g[i][j];
}
avg=sum/5;
printf("第%d个学生的平均成绩为:%f ",i+1,avg);
}

return0;

}

望采纳,谢谢

㈡ c语言程序设计实例(关于成绩输入问题)

同学你好!
这是我自己写的,肯定不是最好的,但是已经能够满足你的要求了,后面附有注释,若有不懂的话请留言。
#include<stdio.h>
#include<stdlib.h>
#define
N
1024
typedef
struct
node
{
int
sno;/*这里分别是学号(便于最后列表时统计),四门课的分数,总分,平均分*/
int
course1;
int
course2;
int
course3;
int
course4;
int
aver;
}student;
void
main()
{
int
i,j,number;
int
total1,total2,total3,total4;
total1=total2=total3=total4=0;/*total指的是四门课程的平均分*/
student
st[N],temp;
printf("Please
input
the
student's
number:");/*确定学生人数*/
scanf("%d",&number);
if(number>1024)
{
printf("The
number
is
too
large!\n");
exit(0);
}
for(i=0;i<number;i++)/*进行成绩输入*/
{
printf("Please
input
the
%dth
student's
sno:",i+1);
scanf("%d",&st[i].sno);
printf("Please
input
the
%d's
student's
course1:",st[i].sno);
scanf("%d",&st[i].course1);
printf("Please
input
the
%d's
student's
course2:",st[i].sno);
scanf("%d",&st[i].course2);
printf("Please
input
the
%d's
student's
course3:",st[i].sno);
scanf("%d",&st[i].course3);
printf("Please
input
the
%d's
student's
course4:",st[i].sno);
scanf("%d",&st[i].course4);
st[i].aver=(st[i].course1+st[i].course2+st[i].course3+st[i].course4)/4;
}
for(i=0;i<number;i++)/*输出每个学生的平均分*/
printf("The
%d's
student's
aver-score
is:%d\n",st[i].sno,st[i].aver);
for(i=0;i<number;i++)/*输出每科目平均分*/
{
total1+=st[i].course1;
total2+=st[i].course2;
total3+=st[i].course3;
total4+=st[i].course4;
}
total1/=number;
total2/=number;
total3/=number;
total4/=number;
printf("The
averscore
of
course1
is:%d\n",total1);
printf("The
averscore
of
course2
is:%d\n",total2);
printf("The
averscore
of
course3
is:%d\n",total3);
printf("The
averscore
of
course4
is:%d\n",total4);
for(i=0;i<number-1;i++)/*进行冒泡排序*/
for(j=i+1;j<number;j++)
if(st[i].aver<st[j].aver)
{
temp=st[i];
st[i]=st[j];
st[j]=temp;
}
printf("The
list
of
the
student's
course:\n");
printf("==========\n");/*列表公布成绩*/
for(i=0;i<number;i++)
{
printf("%d.",i+1);
printf("%dth
student:%d\n",st[i].sno,st[i].aver);
}
}
上级运行成功,希望对你有所帮助!
祝你的成绩步步高升!

㈢ 成绩录入与查询系统,用C语言

#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct student
{
char name[60];
char ID[7];
int score;
};int dq(struct student st[]);
void xianshi();
void bc(struct student st[]);
void add();
void select();
void zz();
void chazhao();
void xhcz();
void xmcz();
void del();
void xmsc();
void xhsc();
void tj();
void px();
void bjg();
void xg();
void xhxg();
void xmxg();
void bca();
void fh();
struct student st[300]; //这个数组用来保存所有的学生信息 和文件里面的一致
int Number=0; //记录总的学生人数 也就是数组/文件里面的学生人数
void main()
{
int choose=0;
FILE *fp=NULL;
char yesorno;

if((fp=fopen("C://student.dat","rb"))==NULL)
{
printf("\n=========>提示:文件不存在,是否要创建一个?(y/n)\n");
scanf("%c",&yesorno);
if(yesorno=='y'||yesorno=='Y')
{

//这里仅为了建立文件
fp=fopen("C://student.dat","wb");
fclose(fp);
}
else
exit(0);
}
else
{
Number=dq(st); //要是文件只能够已经有数据 将数据初始化到数组中
}
system("cls");
while(true)
{
xianshi();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case 0: exit(0);
//退出
break;
case 1: add();
fh();//增加学生成绩
break;
case 2: select();
fh();//查看学生成绩
break;
case 3: chazhao();
fh();// 查找
break;
case 4: del();
fh();//删除
break;
case 5: tj();
fh();//统计
break;
case 6: px();
fh();//排序
break;
case 7: bjg();
fh();//输出不及格
break;
case 8: xg();
fh();//修改
break;
case 9:zz();
fh();//作者
break;
case 10:bca();
fh();//保存

break;
default:
break;
}
fflush(stdin);
getchar();
system("cls");
}
}
void bca()
{
printf("\t=====程序在运行时已自动保存.....\n");
}
void fh()
{
printf("\t===>按Enter键返回主菜单\n");
}
void xg() //修改学生信息
{
int way=0;
printf("请选择修改查找方式\n");
printf("1 按姓名查找修改\n");
printf("2 按学号查找修改\n");
scanf("%d",&way);
switch(way)
{
case 1: xmxg();
break;
case 2: xhxg();
break;
default: printf("输入有误,结束!\n");
break;
}
}
//按姓名修改
void xmxg()
{
FILE *fp=NULL;
char name[60];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的学生姓名:");
scanf("%s",name);
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf("\t姓名\t学号\t成绩\n");
printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf("请重新输入该学生信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("学号:");
scanf("%s",st[changeIndex].ID);
printf("成绩:");
scanf("%d",&st[changeIndex].score); //信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void xhxg()//按学号修改
{
FILE *fp=NULL;
char id[60];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的学生学号:");
scanf("%s",id);
for (i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf("\t姓名\t学号\t成绩\n");
printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf("请重新输入该学生信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("学号:");
scanf("%s",st[changeIndex].ID);
printf("成绩:");
scanf("%d",&st[changeIndex].score);

//信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("\t=======>修改成功\n");
}void bjg() //输出不及格人数
{
int i=0;
printf("以下是不及格:\n");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (st[i].score<60)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void px()//排序
{
struct student temp;
int wantNUmber=0;
int i=0;
int j=0;
for(i=0;i<Number-1;i++)
{
for(j=i;j<Number-1;j++)
{
if(st[j].score>st[j+1].score)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
printf("你想输出前几名的成绩:");
scanf("%d",&wantNUmber);
if (wantNUmber>Number)
{
wantNUmber=Number;
} printf("\t姓名\t学号\t成绩\n");
for(i=0;i<wantNUmber;i++)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
void tj()//统计
{
int i=0;
double sum=0.0;
for(i=0;i<Number;i++)
{
sum+=st[i].score;
}
printf("全班总分为:%f\n",sum);
printf("平均分为:%f\n",sum/Number);
}
void del()//删除
{
int n=0;
printf("1 按姓名删除\n");
printf("2 按学号删除\n");
scanf("%d",&n);
switch(n)
{
case 1: xmsc();
break;
case 2: xhsc();
break;
}
}
void xmsc()//按姓名删除
{
FILE *fp=NULL;
char name[60];
int i=0;
int j=0;
printf("请输入要删除的学生姓名:");
scanf("%s",name);
for(i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0) //如果查找到就删除
{
for (j=i;j<Number-1;j++)
{
st[j]=st[j+1];
}
Number--;
}
} //将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("删除成功;\n");

}
void xhsc()//按学号删除
{
FILE *fp=NULL;
char id[60];
int i=0;
int j=0;
printf("请输入要删除的学生学号:");
scanf("%s",id);
for(i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID)==0) //如果查找到就删除
{
for (j=i;j<Number-1;j++)
{
st[j]=st[j+1];
}
Number--;
}
}

//将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("删除成功;\n");
}
void chazhao()//查找学生
{
int n=0;
printf("1 按姓名查找\n");
printf("2 按学号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xmcz();
break;
case 2: xhcz();
break;
default: printf("输入有误,结束!\n");
break;
}
}
void xhcz()//按学号查找
{
char id[7];
int i=0;
printf("请输入要查找学生学号:");
scanf("%s",id);
system("cls");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID)==0)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void xmcz()//按姓名查找
{
char name[7];
int i=0;
printf("请输入要查找学生姓名:");
scanf("%s",name);
system("cls");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void zz()
{
printf("\t**********************************************************\n\n");
printf("\t^^^^^^^^^^ 武汉工程大学邮电与信息工程学院 ^^^^^^^^^^\n\n");
printf("\t^^^^^^^^^ 07网络与安全管理2班 ^^^^^^^^^\n\n");
printf("\t^^^^^^^^ 易樊制作 ^^^^^^^^\n\n");
printf("\t^^^^^^^^^ 禁止CTRL+C 谢谢合作 ^^^^^^^^^\n\n");
printf("\t^^^^^^^^^^ QQ:895115828\n\n");
printf("\t**********************************************************\n\n");
}
void select()//查看学生
{
int i=0;
printf("以下是全部学生成绩\n");
printf("\t姓名\t学号\t成绩\n");
for(i=0;i<Number;i++)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
void add()//增加学生
{
int numberTemp=0;
int i=0;
struct student temp; //临时保存信息
printf("请输入要增加学生成绩个数:");
scanf("%d",&numberTemp);
for(i=0;i<numberTemp;i++)
{
printf("输入第%d个同学信息\n",i+1);
printf("姓名:");
scanf("%s",temp.name);
printf("学号:");
scanf("%s",temp.ID);
printf("成绩:");
scanf("%d",&temp.score);
st[Number++]=temp; //将刚添加的写入到数组
bc(&temp); //将刚添加的写入到文件 }
printf("添加成功\n");
}
void bc(struct student *st)
{
FILE *fp=NULL;
fp=fopen("C://student.dat","ab+");
fwrite(st,sizeof(struct student),1,fp);
fclose(fp);
}
int dq(struct student st[])
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://student.dat","rb");
while(fread(&st[i],sizeof(struct student),1,fp))
i++;
fclose(fp);
return i;
}
void xianshi()
{
printf("\t*****************************************************************\n");
printf("\t* *\n");
printf("\t* 学生成绩管理系统 *\n");
printf("\t* *\n");
printf("\t* [1] 增加学生成绩 [2] 查看学生成绩 *\n");
printf("\t* [3] 查找学生成绩 [4] 删除学生成绩 *\n");
printf("\t* [5] 统计(总成绩和平均分) [6] 输出前N名学生成绩 *\n");
printf("\t* [7] 输出不及格人数 [8] 修改学生信息 *\n");
printf("\t* [9] 关于作者 [10] 保存数据 *\n");
printf("\t* [0] 退出系统 *\n");
printf("\t*****************************************************************\n");
}

㈣ 学生成绩录入查询系统C语言程序

#include<iostream>
#include<string.h>
using
namespace
std;
struct
student
{
char
name[50];
int
score;
};
void
teacherC(student
*stu)//老师录入成绩
{
int
i,n;
cout<<"请输入需要录入的学生的个数\n";
cin>>n;
cout<<"请依次输入学生的姓名和成绩\n";
for(i=0;i<n;i++)
{
cin>>stu[i].name>>stu[i].score;
}
stu[i].score=-1;
}
void
show(student
*stu)
{
int
i=0;
for(;i<100;i++)
{
if(stu[i].score==-1)
break;
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
}
}
int
search(student
*stu,char
*name)
{
int
i=0,k=-1;
for(;i<100;i++)
{
if(stu[i].score==-1)
break;
if(strcmp(stu[i].name,name)==0)
{
k=i;
break;
}
}
return
k;
}
void
edit(student
*stu)
{
int
i=0,j=0;
char
name[30],an;
while(1)
{
cout<<"请输入需要修改的学生名字\n";
cin>>name;
i=search(stu,name);
if(i>=0)
{
cout<<"该学生的信息为:\n";
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
cout<<"确定要修改该学生的信息是的输入Y不是输入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
cout<<"请输入修改后的姓名成绩:\n";
cin>>stu[i].name>>stu[i].score;
cout<<"修改成功\n";
}
cout<<"继续修改请输入1退出输入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"没有该学生的信息\n";
}
}
void
dele(student
*stu)
{
int
i=0,j=0;
char
name[30],an;
while(1)
{
cout<<"请输入需要删除的学生名字\n";
cin>>name;
i=search(stu,name);
if(i>0)
{
cout<<"该学生的信息为:\n";
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
cout<<"确定要删除该学生的信息是的输入Y不是输入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
*stu[i].name=0;
cout<<"删除成功\n";
}
cout<<"继续删除请输入1退出输入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"没有该学生的信息\n";
}
}
int
main()
{
int
i,n;
char
name[30];
student
stu[100];//学生总数上限为100个
while(1)
{
cout<<"请做出以下的选择:"<<endl;
cout<<"输入
0
退出系统\n";
cout<<"输入
1
教书录入成绩\n";
cout<<"输入
2
学生查询成绩\n";
cout<<"输入
3
修改学生成绩\n";
cout<<"输入
4
删除学生成绩\n";
cin>>i;
switch(i)
{
case
1:
teacherC(stu);break;
case
2:
cout<<"请输入查询的姓名\n";
cin>>name;n=search(stu,name);cout<<"该学生成绩是:"<<stu[n].score<<endl;break;
case
3:
edit(stu);break;
case
4:
dele(stu);break;
default:if(i!=0)cout<<"请输入有效数字\n";
}
if(i==0)
break;
}
return
0;
}

㈤ C语言程序设计,定义3个函数:input()实现一批成绩的录入

定义的input(int
m)
m作用的作用从代码
printf(">>%s输入一个二进制数:\n",m?"请":"输入有误,请重新");
中的
m?"请":"输入有误,请重新"
这个三目运算符可以看出:
当m=1时
输出:请输入一个二进制数:
m
!=1时
输出:
输入有误,请重新输入一个二进制数:
也就是为了提示用户用的!
所以
这里的
n=input(1)

1就是说明要求系统提示:输入有误,请重新输入一个二进制数:

㈥ c语言成绩查询系统的录入部分问题

scanf_s使用有问题? 这个我没用过 用scanf改写了,发现没问题。查阅文档发现scanf_s还有一个长度参数,我仔细读读在看。http://msdn.microsoft.com/en-us/library/w40768et.aspx

测试了下 , 要加个长度才行。如 scanf_s("%s", stu.no, 8);

哦 对了还有 你那些成绩是double类型的,不要使用%s如【scanf_s("%s",&stu.c); 】这样会出错的。

㈦ 用c语言编制成绩录入查询系统

我在宏定义处 讲学生定义成了3个!你可以根据你的要求改!
#include<stdio.h>
#include<string.h>
#define SIZE 3
void swap(struct student a[],int b[]);//排序
void find(struct student a[],int b[]);//查询任何一个学生的成绩
int search(struct student a[],char c[]);//判断是否有该生
void search1(struct student a[],char c[],int b[]);//打印出寻找的学生成绩
struct student
{
char name[20];
int mark[4];
};
void main()
{
struct student a[SIZE];
int sum=0,b[SIZE];
int count=1;
for(int i=0;i<SIZE;i++)
{
printf("输入学生姓名:");
scanf("%s",a[i].name );
printf("输入该生成绩:");
for(int j=0;j<4;j++)
scanf("%d",&a[i].mark[j]);
}
for(int i=0;i<SIZE;i++)
{
for(int j=0;j<4;j++)
sum+=a[i].mark [j];
b[i]=sum;
sum=0;
}
swap(a,b);
printf("No. Name Course1 Course2 Course3 Course4 Average\n");
for(int i=0;i<SIZE;i++)
{
printf("%d %s ",count++,a[i].name );
for(int j=0;j<4;j++)
printf("%8d ",a[i].mark[j]);
printf(" %5d",b[i]/4);
printf("\n");

}
find(a,b);

}
void swap(struct student a[],int b[])
{
for(int i=0;i<SIZE;i++)
for(int j=i+1;j<SIZE;j++)
{
struct student temp;
int temp1;
if(b[i]<b[j])
{
temp=a[i];temp1=b[j];
a[i]=a[j];b[j]=b[i];
a[j]=temp;b[i]=temp1;
}
}
}
void find(struct student a[],int b[])
{
char c[20];
printf("输入要查询的学生姓名或者输入quit退出!\n");
while(scanf("%s",c)&&strcmp(c,"quit")!=0)
{
if(search(a,c)==0)
{
search1(a,c,b);
printf("\n");
}
else
{
printf("没有你输入的学生,重新输入或者输入quit退出!\n");

}
}
}
int search(struct student a[],char c[])
{
for(int i=0;i<SIZE;i++)
{
if(strcmp(a[i].name ,c)==0)
return 0;
else
continue;
}

}
void search1(struct student a[],char c[],int b[])
{
for(int i=0;i<SIZE;i++)
{
if(strcmp(a[i].name ,c)==0)
{
printf("该生成绩是:");
for(int j=0;j<4;j++)
{
printf("%d ",a[i].mark[j]);

}
printf("平均成绩是:%d",b[i]/4);
}
else
continue;
}
}

㈧ 用C语言做一个学生成绩管理系统 输入学生人数,录入学生成绩

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;

/*定义学生结构体*/

struct Student

{

char ID[20];

char Name[20];

float Mark1;

float Mark2;

float Mark3;

float Average;

};

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

struct Student students[1000];

int num=0;

/*求平均值*/

float Avg(struct Student stu)

{

return (stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

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

int Student_SearchByIndex(char id[])

{

int i;

for (i=0;i<num;i++)

{

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

{

return i;

}

}

return -1;

}

/*通过姓名返回数组下标*/

int Student_SearchByName(char name[])

{

int i;

for (i=0;i<num;i++)

{

if (strcmp(students[i].Name,name)==0)

{

return i;

}

}

return -1;

}

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

void Student_DisplaySingle(int index)

{

printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

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

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

}

/*插入学生信息*/

void Student_Insert()

{

while(1)

{

printf("请输入学号:");

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

getchar();

printf("请输入姓名:");

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

getchar();

printf("请输入成绩:");

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

getchar();

printf("请输入成绩:");

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

getchar();

printf("请输入成绩:");

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

getchar();

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

num++;

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*修改学生信息*/

void Student_Modify()

{

//float mark1,mark2,mark3;

while(1)

{

char id[20];

int index;

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].Mark1);

getchar();

printf("请输入成绩:");

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

getchar();

printf("请输入成绩:");

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

getchar();

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

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*删除学生信息*/

void Student_Delete()

{

int i;

while(1)

{

char id[20];

int index;

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<num-1;i++)

{

students[i]=students[i+1];//把后边的对象都向前移动

}

num--;

}

getchar();

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按姓名查询*/

void Student_Select()

{

while(1)

{

char name[20];

int index;

printf("请输入要查询的学生的姓名:");

scanf("%s",&name);

getchar();

index=Student_SearchByName(name);

if (index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要查询的学生信息为:\n");

Student_DisplaySingle(index);

}

printf("是否继续?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

/*按平均值排序*/

void Student_SortByAverage()

{

int i,j;

struct Student tmp;

for (i=0;i<num;i++)

{

for (j=1;j<num-i;j++)

{

if (students[j-1].Average<students[j].Average)

{

tmp=students[j-1];

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

students[j]=tmp;

}

}

}

}

/*显示学生信息*/

void Student_Display()

{

int i;

printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

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

for (i=0;i<num;i++)

{

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,

students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);

}

}

/*将学生信息从文件读出*/

void IO_ReadInfo()

{

FILE *fp;

int i;

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(struct Student),1,fp);

}

}

fclose(fp);

}

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

void IO_WriteInfo()

{

FILE *fp;

int i;

if ((fp=fopen("Database.txt","wb"))==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(struct Student),1,fp)!=1)

{

printf("写入文件错误!\n");

}

}

fclose(fp);

}

/*主程序*/

void main()

{

int choice;

IO_ReadInfo();

while(1)

{

/*主菜单*/

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

printf("1. 增加学生记录\n");

printf("2. 修改学生记录\n");

printf("3. 删除学生记录\n");

printf("4. 按姓名查询学生记录\n");

printf("5. 按平均成绩排序\n");

printf("6. 退出\n");

printf("请选择(1-6):");

scanf("%d",&choice);

getchar();

switch(choice)

{

case 1:

Student_Insert();

break;

case 2:

Student_Modify();

break;

case 3:

Student_Delete();

break;

case 4:

Student_Select();

break;

case 5:

Student_SortByAverage();

Student_Display();

break;

case 6:

exit(0);

break;

}

IO_WriteInfo();

}

}

㈨ c语言学生成绩输入

#defineCLEAR(c)while((c=getchar())!='
'&&c!=EOF)
#include<stdio.h>
#include<conio.h>
#defineN3
#defineM3
intmain(){/**FOUND**/
structstudent{
intnum;/*学号*/
charname[16];/*姓名*/
floatscore[M];/*成绩*/
}a[N];
inti,l,k,c;/**FOUND**/
for(i=0;i<N;i++){
for(l=0;l<M+2;l++){
if(l=0){
printf("学号");
scanf("%d",&a[i].num);/**FOUND**/
CLEAR(c);/**FOUND**/}
elseif(l=1){
printf("姓名");
scanf("%16s",&a[i].name);/**FOUND**/}
else{/*少个大括号*/
k=l-1;
printf("成绩%d",k);
scanf("%f",&a[i].score[M]);/**FOUND**/
CLEAR(c);/**FOUND**/
}
}
getch();
return0;/**FOUND**/
}

改动的地方我用注释作了标记。

㈩ 如何用c语言程序设计实现学生成绩的录入,查询,排序,删除等操作。

录入的话,可以直接从文件里面导入。

查询,最简单的方法就是for循环一个一个查,当然,想要更快的话,可以用二分搜索。

排序嘛~~~快排就行了。

删除,这个比较麻烦,必须看你的数据结构。如果是数组的话,把后面每一个元素前移。如果是链表的话,就直接将next指针往下连就行了。

热点内容
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662
情逢敌手迅雷下载ftp 发布:2024-09-17 01:32:35 浏览:337
安卓如何让软件按照步骤自动运行 发布:2024-09-17 01:28:27 浏览:197