查找学生成绩C语言
㈠ 学生成绩查询系统c语言
这个是我自己做的类式的,你可以按自己的要求改下·不难的和你的差不多,给分哦
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
/*****定义结构体*****/
typedef struct students /*标记为students*/
{
char num[10]; /*学生学号*/
char name[10]; /*学生姓名*/
int age; /*年龄*/
char sex[10]; /*性别*/
float cyy; /*C语言成绩*/
float computer; /*计算机成绩*/
float english; /*英语成绩*/
float pj; /*平均成绩*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//导出
int Locate(STU students[],int n);//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 学生成绩管理 \n");
printf("-----------------------------------应用菜单-------------------------------------\n");
printf(" 1 输入学生成绩\n\n");
printf(" 2 输出学生成绩\n\n");
printf(" 3 查询学生成绩\n\n");
printf(" 4 修改学生成绩\n\n");
printf(" 5 查看成绩排序\n\n");
printf(" 6 查看成绩统计\n\n");
printf(" 7 保存数据\n\n");
printf(" 8 读取数据\n\n");
printf(" 9 退出系统\n\n");
printf(" 请选择你想进行的操作:");
k=getchar();
return k;
}
/*****定义输出函数*****/
void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p;
p=&pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj);
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 请输入学生信息 \n");
printf(" 退出请在学生号处输入:0 \n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("请输入学生年龄:\n ");
scanf("%d",&students[i].age);
printf("****************\n\n\n");
printf("请输入学生性别:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("请输入C语言成绩:\n ");
scanf("%f",&students[i].cyy);
printf("****************\n\n\n");
printf("请输入计算机成绩:\n ");
scanf("%f",&students[i].computer);
printf("****************\n\n\n");
printf("请输入英语成绩:\n ");
scanf("%f",&students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("学生平均成绩: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出请输入:0 \n");
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");
scanf("%d",&k);
if(k==1)
{
printf("请输入你要查询的学生学号:\n");
scanf("%s",num);
while(i<n)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf(">>学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\n>C语言成绩:%-8.0f\n>计算机成绩:%-8.0f\n>>英语成绩:%-8.0f\n>>平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
getchar();
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n");
scanf("%s",name);
while(i<n)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
}
return m;/*返回一个根m便于修改学生信息*/
getchar();
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n");
}
printf("\n\n");
printheader(); /*输出表格头部*/
i=0;
while(i<n) /*逐条输出数组中存储的学生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n<=0)
{
system("cls");
printf(" \n退出请输入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改学生信息");
input(students,n);
i=Locate(students,n); /*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n");
printf(" 学号: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年龄: ");
scanf("%d",&students[i].age);
printf(" 性别: ");
scanf("%s",students[i].sex);
printf(" C语言: ");
scanf("%f",&students[i].cyy);
printf(" 英语: ");
scanf("%f",&students[i].english);
printf(" 计算机: ");
scanf("%f",&students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成绩: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");
}
else
printf("not found!\n");
getchar();
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出请输入:0 \n");
printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");
scanf("%d",&k);
if(k==1) /*用选择法对C语言排序*/
{
for(i=0; i<n; i++)
for(j=0;j<n-1;j++)
{
if(students[i].english<students[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}
}
}
else if(k==2)/*英语用冒泡法*/
{
for(a=0; a<n-1; a++)
{
c=a;
for(b=a+1; b<n; b++)
if(students[b].cyy>students[c].cyy)
c=b;
if (c!=a)
{
temp=students[a];
students[a]=students[c];
students[c]=temp;
}
}
}
if(k==3) /*平均成绩用插入法*/
{
for(d=1;d<n;d++)
{
p=students[d].pj;
for(e=0;e<d;e++)
if(students[e].pj<p)
break;
if(e==d)
continue;
for(f=d;f>e;f--)
students[f]=students[f-1];
students[e]=temp;
}
}
input(students,n); /*显示排序后的所有记录*/
save(students ,n);
printf("\n 排序完成!\n");
}
/*****统计学生分数在各等级的人数子程序*****/
void Tongji(STU students[],int n)
{
int count6085=0,count85=0,count60=0;
int i=0;
system("cls");
printf(" \n退出请输入:0 \n");
input(students,n);
i=0;
while(i<n)
{
if(students[i].pj>85) /*平均成绩=>85*/
if(students[i].pj>=60&&students[i].pj<=85) /*60<平均成绩<85*/
if(students[i].pj<60) /*平均成绩<60*/
}
printf("\n************统计结果************\n\n");
printf("平均成绩高于85分的人数:%d \n",count85);
printf(" \n");
printf("平均成绩在65分和80分之间的人数:%d \n",count6085);
printf(" \n");
printf("平均成绩低于60分的人数:%d \n",count60);
printf(" \n");
printf("\n\n**********统计结束**********");
getchar();
}
/*****导出或保存数据*****/
void save(STU students[],int n)
{
FILE* fp;
int i=0;
fp=fopen("students","wb+");/*以读写方式打开创建一个二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n*******打开文件错误!*******\n");
return ;
}
for(i=0;i<n;i++)
{
if(fwrite(&students[i],sizeof(STU),1,fp)==1)/*每次写一条记录或一个结构数组元素至文件*/
{
continue;
}
else
{
break;
}
}
if(i>0)
{
getchar();
printf("\n\n*共导出%d个学生信息*\n",i);
getchar();
}
else
{
system("cls");
printf("**没有信息导出*\n");
getchar();
}
fclose(fp); /*关闭此文件*/
}
/*****导入数据*****/
void Read(STU students[],int * n)
{
FILE* fp;
int i=0;
fp=fopen("students","rb");/*以只读方式打开一个已有的二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n********打开文件错误!********\n");
exit(0);
}
for(i=0;i<N;i++)
{
if(fread(&students[i],sizeof(STU),1,fp)==1)/*每次读一条记录或一个结构数组元素至文件*/
continue;
else
break;
}
*n=i;
if(i>0)
{
printf("\n\n************共导入:%d 个学生信息 ************\n",i);
getchar();
}
else
{ system("cls");
printf("************没有信息导入!************\n");
getchar();
}
getchar();
fclose(fp); /*关闭此文件*/
}
/*****主函数*****/
void main()
{
STU students[N];
int n;
char s1[3],s2[3]=;
int i,k;
printf("\n\n");
printf("******************************************************\n");
printf("^ < 欢迎使用本软件> ^\n\n");
printf("^ <版本 : oooo> ^\n\n\n");
printf("^ <姓名>:卢景光 <班级>: 09623 <学号>:34 ^\n");
printf("^ ^\n");
printf("******************************************************\n");
printf("\n\n");
for(i=0;i<3;i++)
{
printf("\n请输入密码:");
gets(s1);
if(strcmp(s1,s2)==0)
break;
else
printf("\n>密码错误,请重新输入");
}
if(i>2)
{
printf("\n您已连续3次输错,系统将退出!\n");
exit(0);
}
else
{
while(1)
{
k=displaymenu();
switch(k)
{
case '1' : add(students,&n); break;
case '2' : Read(students,&n);input(students,n) ;break;
case '3' : Read(students,&n);Locate(students,n);break;
case '4' : Read(students,&n);Modify(students,n);;break;
case '5' : Read(students,&n);sort(students,n);break;
case '6' : Read(students,&n);Tongji(students,n); break;
case '7' : save(students,n) ;break;
case '8' : Read(students,&n);break;
case '9' : system("cls");
printf("\n **********谢谢您的使用**********\n");exit(0);break;
default : printf("\n\n输入错误,输入必须是0~9之间的一个数字!请重新输入\n");getchar();getchar();
}
}
}
}
希望对你有帮助
㈡ C语言 统计学生成绩
#include<stdio.h>
#include<stdlib.h>
struct student
{
double score[5];
}s[10];
void avg()
{
printf("\n");
double sum;
for(int i=0;i<10;i++)
{
sum=0;
printf("第%d位学生的平均分数是: ",i+1);
for(int j=0;j<5;j++)
sum+=s[i].score[j];
printf("%.2lf\n",sum/5);
}
printf("\n");
return ;
}
void tavg()
{
printf("\n");
double sum;
for(int j=0;j<5;j++)
{
sum=0;
for(int i=0;i<10;i++)
sum+=s[i].score[j];
printf("第%d门功课的平均分是: %.2lf\n",j+1,sum/10);
}
return ;
}
void maxsc()
{
printf("\n");
double max=-1;
int i,j;
for( i=0;i<10;i++)
{
for( j=0;j<5;j++)
if(max<s[i].score[j])
{
max=s[i].score[j];
}
}
printf("最高分是:%.2lf分,对应学生与功课如下:\n",max);
for(i=0;i<10;i++)
{
for(int j=0;j<5;j++)
if(max==s[i].score[j])
{
printf("第%d位学生的第%d门成绩\n",i+1,j+1);
}
}
printf("\n");
}
int main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
printf("输入第%d位学生的第%d门功课的成绩: ",i+1,j+1);
scanf("%lf",&s[i].score[j]);
printf("\n");
}
printf("\n");
}
printf("学生平均分数情况:\n");
avg(); //每个学生的平均分
printf("功课平均分数情况:\n");
tavg(); //每门功课的平均分
printf("最高分数即对应学生功课:\n");
maxsc(); //最高分对应的学生和功课
system("PAUSE");
return 0;
}
㈢ C语言编程 学生成绩查询
#include <stdio.h>
#include <stdlib.h>
#define N 10 //the number of students
int main()
{
float a[N],t,look;
int i,j;
for(i=0;i<=N-1;i++) scanf("%f",&a[i]);
for(i=0;i<=N-2;i++)
{
for(j=i+1;j<=N-1;j++)
{
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
}
printf("排序后乘机分布为:\n");
for(i=0;i<=N-1;i++) printf("%d:%f\n",i+1,a[i]);
printf("请输入要查询的分数.\n");
scanf("%f",&look);
for(i=0;i<=N-1;i++)
{
if(look==a[i]) printf("所排名次为:%d\n",i+1);
}
system("pause");
return 0;
}
流程图自己搞定吧!呵呵
㈣ C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的
代码:
#include<stdio.h>
struct student
{
int num,score[3],age;
char name[20];
float aver;
}stu[1000];
main()
{
int i,j,n;
struct student temp;
/*注意:变量temp的类型与数组stu的元素类型为相同结构体的时候,才可交换两个结构体数组元素,所以此处需要定义temp的类型*/
printf("请输入学生人数: ");
scanf("%d",&n);
printf("请按顺序输入名字、学号、年龄、分数: ");
for(i=0;i<n;i++)
{
scanf("%s",&stu<i>.name);
scanf("%d",&stu<i>.num);
scanf("%d",&stu<i>.age);
for(j=0;j<3;j++)
scanf("%d",&stu<i>.score[j]);
}
for(i=0;i<n;i++)
{int sum=0;
for(j=0;j<3;j++)
sum+=stu<i>.score[j];
stu<i>.aver=sum/3.0;
}
for(i=0;i<n-1;i++)/*利用冒泡排序法按平均分高低排序*/
{for(j=0;j<n-i-1;j++)
{
if(stu[j].aver>stu[j+1].aver)
{temp=stu[j];/*此处交换的应当是数组元素,而不是平均分*/
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
printf("学生信息如下(姓名、学号、年龄、成绩、平均分): ");
for(i=0;i<n;i++)
{
printf("%s%d%d",stu<i>.name,stu<i>.num,stu<i>.age);
for(j=0;j<3;j++)
printf("%d",stu<i>.score[j]);
printf("%.2f ",stu<i>.aver);
}
}
(4)查找学生成绩C语言扩展阅读:
头文件#include<stdio.h>中
stdio.h是stand input&output的缩写,意思是标准输入输出头文件。凡是用到标准输入输出函数,就要调用该头文件。
查看stdio.h目录下包含哪些函数:主要有文件访问、二进制输入/输出、格式化和非格式化输入/输出、文件定位、错误处理、文件操作等。
具体打开自己的VS安装目录,找到include文件夹,打开include夹下面的stdio.h文件即可查看
(C:Program Files(x86)Microsoft Visual Studio 14.-1.1.10include)
常用标准输入输出函数:
scanf()从屏幕格式输入
printf()格式输出到屏幕
getchar()从屏幕得到一个字符
putchar()字符输出到屏幕
gets()从屏幕得到一个字符串
puts()字符串输出到屏幕
fscanf()从磁盘格式输入
fprintf()格式输出到磁盘
fgetc()从磁盘得到一个字符
fputc()字符输出到磁盘
fgets()从磁盘得到一个字符串
fputs()字符串输出到磁盘
#号是预处理语句,表明在编译之前预先进行处理。
.h是header file的缩写,表面这是一个头文件。
include是文件包含命令,后面跟着引号""或者尖括号<>,意思是将引号或尖括号内指定的文件包含到本程序中,成为本程序的一部分,而包含的文件通常是由系统提供的。
㈤ 用c语言,求学生成绩
#include<stdio.h>
#include<stdlib.h>
/*定义全局变量*/
int num;
struct student
{
l name[20];
charong id;
char sex[10];
int math;
int english;
int c_program;
int total;
}stu[41];
/*主菜单*/
void page_title()
{
printf("※※※※※※※※计算机系学生成绩管理※※※※※※※※\n");
printf(" 1、请录入学生成绩记录\n");
printf(" 2、请显示学生成绩记录\n");
printf(" 3、请修改学生成绩记录\n");
printf(" 4、请删除学生成绩记录\n");
printf(" 5、请按学号查询学生成绩记录\n");
printf(" 6、请按学号显示学生成绩记录\n");
printf(" 7、请按总成绩递减输出\n");
printf(" 8、请保存\n");
printf(" 0、请退出\n");
}
/*main()
{
system("cls");
pape_title();
}*/
void student_new()//1、录入学生成绩
{
int i;
printf("请输入学生个数<1-41>:");
scanf("%d",&num);
printf("*****************************************************\n");
printf("学号 姓名 性别 数学 英语 C语言\n");
printf("*****************************************************\n");
for(i=0;i<num;i++)//num个学生
{
scanf("%ld%s%s%d%d%d",&stu[i].id,&stu[i].name,&stu[i].sex,&stu[i].math,&stu[i].english,&stu[i].c_program);
stu[i].total=stu[i].math+stu[i].english+stu[i].c_program;
printf("-----------------------------------------------------\n");
}
}
void show()//2、显示学生成绩
{
int i;
printf("*******************************************************\n");
printf("学号 姓名 性别 数学 英语 C语言 总成绩\n");
printf("*******************************************************\n");
for(i=0;i<num;i++)
{
printf("%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
printf("-------------------------------------------------------\n");
}
}
void student_edit()//3、修改学生信息
{
int i,n;
long stunum;
printf("请输入要修改的学号:");
scanf("%d",&stunum);
printf("==============以下选项可供选择===============\n");
printf(" 1、请修改学号\n");
printf(" 2、请修改姓名\n");
printf(" 3、请修改性别\n");
printf(" 4、请修改数学成绩\n");
printf(" 5、请修改英语成绩\n");
printf(" 6、请修改c语言成绩\n");
printf("请输入要修改的选项:");
scanf("%d",&n);
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//查找
{
if(n==1)
{
printf("请修改学号:\n");
scanf("%ld",&stu[i].id);
}
if(n==2)
{
printf("请修改姓名:\n");
scanf("%s",&stu[i].name);
}
if(n==3)
{
printf("请修改性别:\n");
scanf("%s",&stu[i].sex);
}
if(n==4)
{
printf("请修改数学成绩:\n");
scanf("%d",&stu[i].math);
}
if(n==5)
{
printf("请修改英语成绩:\n");
scanf("%d",&stu[i].english);
}
if(n==6)
{
printf("请修改c语言成绩:\n");
scanf("%d",&stu[i].c_program);
}
stu[i].total=stu[i].math+stu[i].english+stu[i].c_program;//求总成绩
break;
}
if(i==num)
printf("该生信息不存在!");
}
}
void student_del()//*4、删除一个学生的学号(把后面的数<i+1>往前移,把要删除的那个数挤掉)【修改与之相似】
{
int i,j,t;
long stunum;
printf("请输入您要删除的学号:");
scanf("%d",&stunum);
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//查找
{
printf("确认要删除该生信息!\n");
printf("输入的数为0,其他则退出\n");
scanf("%d",&t);
if(t==0)
{
for(j=i+1;j<num;j++)//删除
{
stu[j-1]=stu[j];
}
num--;//退学,减少了一个人
break;
}
}
}
if(i==num)
printf("该学生信息不存在\n");
}
void sore_search()//5、按学号查询学生成绩
{
int i=0;
long stunum;//定义学号
printf("请输入您要查找的学号:");
scanf("%d",&stunum);//输入要查找到的学号
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//输入的学号和所有学生的学号比较,即查找
{
printf("*******************************************************\n");
printf("学号 姓名 性别 数学 英语 C语言 总成绩\n");
printf("*******************************************************\n");
printf("%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
printf("-------------------------------------------------------\n");
break;//找到后马上停止
}
}
if(i==num)//说明for都执行了一遍,for语句里没有num;
printf("该生信息不存在");
}
void score_sort()//7、按总成绩递减排序
{
int i,j;
struct student t;
for(i=0;i<=num-2;i++)//轮数//
{
for(j=0;j<=num-2;j++)//相邻两个数进行比较
{
if(stu[j].total<stu[j+1].total)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}
}
}
void save()//8、保存(通过代码来控制文件,在C盘中)
{
int i;
FILE *fp=fopen("c:\\score.txt","w+");//FILE(一定要大写):文件类型 *FP代表指针 .txt代表记事本文件 w+:既可以保存,又可以写
if(fp==NULL)//fp文件若为空
{
printf("文件打开失败");
exit(1);
}
for(i=0;i<num;i++)
fprintf(fp,"%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
fclose(fp);//fprintf:保存,fp:保存到fp文件中,fclose:关闭fp文件
}
void load()//1、加载文件函数
{
int i;
int n;//n:记录数
FILE *fp=fopen("c:\\score.txt","r");//r->read的标志 fopen的功能是打开文件
if(fp==NULL)
{
printf("文件打开失败");
exit(1);
}
printf("请输入记录数:");
scanf("%d",&n);
num=n;//把读到的n的个数赋给num
for(i=0;i<num;i++)
{
fscanf(fp,"%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&stu[i].id,&stu[i].name,&stu[i].sex,&stu[i].math,&stu[i].english,&stu[i].c_program,&stu[i].total);
}//fscanf:从文件中读取数据
fclose(fp);//关闭fp文件
}
main()
{
int select;//选择选项
int flag=1;//退出标志
int user,admin;
printf("★◎★◎★◎====欢迎使用学生信息管理系统!====★◎★◎★◎\n");
printf("========请输入您的账号和密码:========\n");
scanf("%d,%d",&user,&admin);
if(user==123&&admin==123)
{
system("cls");//清屏
page_title();
while(flag!=0)//只要flag!=0,就一直循环
{
printf("请输出选项:");
scanf("%d",&select);
switch(select)
{
case 1:student_new();break;
case 2:show();break;//显示
case 3:student_edit();show();break;//修改
case 4:student_del();show();break;
case 5:sore_search();break;
case 6:load();show();break;
case 7:score_sort();show();break;
case 8:save();show();break;
case 0:flag=0;break;
default:break;
}
}
}
else printf("对不起,您输入的密码不正确!");
}
㈥ C语言,按学号查询学生成绩
#include "stdio.h"
#include "string.h"
struct student
{
char num[10];
int cscore;//yu wen
int iscore;//ying yu
char name[20]
};
void main()
{
struct student qq[3];
int i;
for(i = 0;i < 3;i++)
{
printf("请输入 语文成绩 英语成绩 学号 姓名:\n");
scanf("%d %d %s %s",&qq[i].cscore,&qq[i].iscore,qq[i].num,qq[i].name);
printf("语文成绩%d 英语成绩%d 学号%s 姓名%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
printf("---%d ---%d --%s --%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
}
//下面是查询
char nnm[10];
printf("请输入 学号:\n");
scanf("%s",nnm);
for(i = 0;i < 3;i++)
{
if(memcmp(nnm,qq[i].num,strlen(nnm)) == 0)
{
printf("语文成绩%d 英语成绩%d 学号%s 姓名%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
break;
}
else
printf("未找到\n");
}
}
㈦ C语言,按学号查询学生成绩
#include <stdio.h>
#include <stdlib.h>
typedef struct node //定义结点//
{
long num;
char Name[10];
char sex;
int age;
struct node *next;
}NODE;
NODE *create(int n) //创建链表//
{
NODE *s,*head=NULL,*r=NULL;
int i;
for(i=0;i<n;i++)
{
s=(NODE *)malloc(sizeof(NODE));
printf("\n输入学号:");
scanf("%ld",&s->num);
getchar();
printf("\n输入姓名:");
scanf("%s",s->Name);
getchar();
printf("\n输入性别(M/W):");
scanf("%c",&s->sex);
getchar();
printf("\n输入年龄:");
scanf("%d",&s->age);
getchar();
s->next=NULL;
if(head==NULL)
{
head=s;
r=s;
}
else
{
r->next=s;
r=s;
}
}
return head;
}
void sch(NODE *head,int num)
{
NODE *p=head;
while(1)
{
if(p->num==num)
{
printf("学号:%ld 姓名:%s 性别: %c 年龄:%d",
p->num,
p->Name,
p->sex,
p->age);
break;
}
else
p=p->next;
}
if(p==0)
printf("not find!");
}
main()
{
int num,n;
NODE *head=NULL;
printf("\n请输入学生数:");
scanf("%d",&n);
getchar();
head=create(n);
printf("输入要查找的学号:");
scanf("%d",&num);
getchar();
sch(head,num);
return 0;
}
㈧ C语言编程—学生成绩查询系统!紧急!!!
这个是我自己做的类式的,你可以按自己的要求改下·不难的和你的差不多,给分哦
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
/*****定义结构体*****/
typedef struct students /*标记为students*/
{
char num[10]; /*学生学号*/
char name[10]; /*学生姓名*/
int age; /*年龄*/
char sex[10]; /*性别*/
float cyy; /*C语言成绩*/
float computer; /*计算机成绩*/
float english; /*英语成绩*/
float pj; /*平均成绩*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//导出
int Locate(STU students[],int n);//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 学生成绩管理 \n");
printf("-----------------------------------应用菜单-------------------------------------\n");
printf(" 1 输入学生成绩\n\n");
printf(" 2 输出学生成绩\n\n");
printf(" 3 查询学生成绩\n\n");
printf(" 4 修改学生成绩\n\n");
printf(" 5 查看成绩排序\n\n");
printf(" 6 查看成绩统计\n\n");
printf(" 7 保存数据\n\n");
printf(" 8 读取数据\n\n");
printf(" 9 退出系统\n\n");
printf(" 请选择你想进行的操作:");
k=getchar();
return k;
}
/*****定义输出函数*****/
void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p;
p=&pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj);
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 请输入学生信息 \n");
printf(" 退出请在学生号处输入:0 \n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("请输入学生年龄:\n ");
scanf("%d",&students[i].age);
printf("****************\n\n\n");
printf("请输入学生性别:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("请输入C语言成绩:\n ");
scanf("%f",&students[i].cyy);
printf("****************\n\n\n");
printf("请输入计算机成绩:\n ");
scanf("%f",&students[i].computer);
printf("****************\n\n\n");
printf("请输入英语成绩:\n ");
scanf("%f",&students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("学生平均成绩: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出请输入:0 \n");
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");
scanf("%d",&k);
if(k==1)
{
printf("请输入你要查询的学生学号:\n");
scanf("%s",num);
while(i<n)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf(">>学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\n>C语言成绩:%-8.0f\n>计算机成绩:%-8.0f\n>>英语成绩:%-8.0f\n>>平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
getchar();
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n");
scanf("%s",name);
while(i<n)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
}
return m;/*返回一个根m便于修改学生信息*/
getchar();
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n");
}
printf("\n\n");
printheader(); /*输出表格头部*/
i=0;
while(i<n) /*逐条输出数组中存储的学生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n<=0)
{
system("cls");
printf(" \n退出请输入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改学生信息");
input(students,n);
i=Locate(students,n); /*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n");
printf(" 学号: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年龄: ");
scanf("%d",&students[i].age);
printf(" 性别: ");
scanf("%s",students[i].sex);
printf(" C语言: ");
scanf("%f",&students[i].cyy);
printf(" 英语: ");
scanf("%f",&students[i].english);
printf(" 计算机: ");
scanf("%f",&students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成绩: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");
}
else
printf("not found!\n");
getchar();
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出请输入:0 \n");
printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");
scanf("%d",&k);
if(k==1) /*用选择法对C语言排序*/
{
for(i=0; i<n; i++)
for(j=0;j<n-1;j++)
{
if(students[i].english<students[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}
}
}
else if(k==2)/*英语用冒泡法*/
{
for(a=0; a<n-1; a++)
{
c=a;
for(b=a+1; b<n; b++)
if(students[b].cyy>students[c].cyy)
c=b;
if (c!=a)
{
temp=students[a];
students[a]=students[c];
students[c]=temp;
}
}
}
if(k==3) /*平均成绩用插入法*/
{
for(d=1;d<n;d++)
{
p=students[d].pj;
for(e=0;e<d;e++)
if(students[e].pj<p)
break;
if(e==d)
continue;
for(f=d;f>e;f--)
students[f]=students[f-1];
students[e]=temp;
}
}
input(students,n); /*显示排序后的所有记录*/
save(students ,n);
printf("\n 排序完成!\n");
}
/*****统计学生分数在各等级的人数子程序*****/
void Tongji(STU students[],int n)
{
int count6085=0,count85=0,count60=0;
int i=0;
system("cls");
printf(" \n退出请输入:0 \n");
input(students,n);
i=0;
while(i<n)
{
if(students[i].pj>85) {count85++;i=i+1;continue;} /*平均成绩=>85*/
if(students[i].pj>=60&&students[i].pj<=85) {count6085++;i=i+1;continue;} /*60<平均成绩<85*/
if(students[i].pj<60) {count60++;i=i+1;continue;} /*平均成绩<60*/
}
printf("\n************统计结果************\n\n");
printf("平均成绩高于85分的人数:%d \n",count85);
printf(" \n");
printf("平均成绩在65分和80分之间的人数:%d \n",count6085);
printf(" \n");
printf("平均成绩低于60分的人数:%d \n",count60);
printf(" \n");
printf("\n\n**********统计结束**********");
getchar();
}
/*****导出或保存数据*****/
void save(STU students[],int n)
{
FILE* fp;
int i=0;
fp=fopen("students","wb+");/*以读写方式打开创建一个二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n*******打开文件错误!*******\n");
return ;
}
for(i=0;i<n;i++)
{
if(fwrite(&students[i],sizeof(STU),1,fp)==1)/*每次写一条记录或一个结构数组元素至文件*/
{
continue;
}
else
{
break;
}
}
if(i>0)
{
getchar();
printf("\n\n*共导出%d个学生信息*\n",i);
getchar();
}
else
{
system("cls");
printf("**没有信息导出*\n");
getchar();
}
fclose(fp); /*关闭此文件*/
}
/*****导入数据*****/
void Read(STU students[],int * n)
{
FILE* fp;
int i=0;
fp=fopen("students","rb");/*以只读方式打开一个已有的二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n********打开文件错误!********\n");
exit(0);
}
for(i=0;i<N;i++)
{
if(fread(&students[i],sizeof(STU),1,fp)==1)/*每次读一条记录或一个结构数组元素至文件*/
continue;
else
break;
}
*n=i;
if(i>0)
{
printf("\n\n************共导入:%d 个学生信息 ************\n",i);
getchar();
}
else
{ system("cls");
printf("************没有信息导入!************\n");
getchar();
}
getchar();
fclose(fp); /*关闭此文件*/
}
/*****主函数*****/
void main()
{
STU students[N];
int n;
char s1[3],s2[3]={"1"};
int i,k;
printf("\n\n");
printf("******************************************************\n");
printf("^ < 欢迎使用本软件> ^\n\n");
printf("^ <版本 : oooo> ^\n\n\n");
printf("^ <姓名>:卢景光 <班级>: 09623 <学号>:34 ^\n");
printf("^ ^\n");
printf("******************************************************\n");
printf("\n\n");
for(i=0;i<3;i++)
{
printf("\n请输入密码:");
gets(s1);
if(strcmp(s1,s2)==0)
break;
else
printf("\n>密码错误,请重新输入");
}
if(i>2)
{
printf("\n您已连续3次输错,系统将退出!\n");
exit(0);
}
else
{
while(1)
{
k=displaymenu();
switch(k)
{
case '1' : add(students,&n); break;
case '2' : Read(students,&n);input(students,n) ;break;
case '3' : Read(students,&n);Locate(students,n);break;
case '4' : Read(students,&n);Modify(students,n);;break;
case '5' : Read(students,&n);sort(students,n);break;
case '6' : Read(students,&n);Tongji(students,n); break;
case '7' : save(students,n) ;break;
case '8' : Read(students,&n);break;
case '9' : system("cls");
printf("\n **********谢谢您的使用**********\n");exit(0);break;
default : printf("\n\n输入错误,输入必须是0~9之间的一个数字!请重新输入\n");getchar();getchar();
}
}
}
}
㈨ c语言 学生成绩查询系统
C语言程序:
#include<stdio.h>
#defineMAX100
/*显示菜单*/
voidShowMenu()
{
printf(" ");
printf("||===================================|| ");
printf("||-----------------------------------|| ");
printf("||-------学生成绩查询系统------------|| ");
printf("||-----------------------------------|| ");
printf("||-----------------------------------|| ");
printf("||-----------------------------------|| ");
printf("||===================================|| ");
printf(" ");
printf("|----------------------------------| ");
printf("|----------请输入(0-6)-----------| ");
printf("|1.输入成绩------------| ");
printf("|2.显示成绩------------| ");
printf("|3.查询平均分----------| ");
printf("|4.查询最高分----------| ");
printf("|5.成绩排名------------| ");
printf("|6.退出----------------| ");
printf("|----------------------------------|请输入0-6:");
}
/*排序*/
voidSort(intarr[],intn)
{
inti,j,k;
inttemp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(arr[j]>arr[k])
{
k=j;
}
}
if(k!=i)
{
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
}
voidmain(){
intchoice;
intscores[MAX]={80,78}; /*存储成绩*/
intn=2; /*人数*/
intback[MAX];
intmax; /*最高分*/
doubleavg; /*平均分*/
inti;
while(1)
{
ShowMenu();
scanf("%d",&choice);
switch(choice)
{
case1: /*输入成绩*/
{
printf("请输入新成绩:");
scanf("%d",&scores[n]);
n++;
break;
}
case2: /*显示成绩*/
{
printf("成绩列表: ");
for(i=0;i<n;i++)
{
printf("%4d",scores[i]);
}
printf(" ");
break;
}
case3: /*查询平均分*/
{
avg=0;
for(i=0;i<n;i++)
{
avg+=scores[i];
}
avg/=n;
printf("平均分:%.2lf ",avg);
break;
}
case4: /*查询最高分*/
{
max=scores[0];
for(i=1;i<n;i++)
{
if(scores[i]>max)
{
max=scores[i];
}
}
avg/=n;
printf("最高分:%d ",max);
break;
}
case5: /*成绩排名*/
{
for(i=0;i<n;i++)
{
back[i]=scores[i];
}
Sort(back,n);
printf("成绩排名: ");
printf("%8s%8s ","名次","成绩");
for(i=0;i<n;i++)
{
printf("%8d%8d ",i+1,back[i]);
}
printf(" ");
break;
}
case6: /*退出*/
{
return;
}
default: /*继续*/
{
break;
}
}
}
}
运行测试: