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

作者&投稿:弥慧 (若有异议请与网页底部的电邮联系)
学生成绩管理系统,使用c语言程序编写。~

给一个我以前写过的吧,功能应该差不多
#include #include #include #include #include #include #include #include #include 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
","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------
"); printf("%10s%10s%8.2f%8.2f%8.2f%10.2f
",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("学生不存在!
"); } else { printf("你要修改的学生信息为:
"); Student_DisplaySingle(index); printf("-- 请输入新值--
"); 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("学生不存在!
"); } else { printf("你要删除的学生信息为:
"); 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("学生不存在!
"); } else { printf("你要查询的学生信息为:
"); 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
","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------
"); for (i=0;i<num;i++) { printf("%10s%10s%8.2f%8.2f%8.2f%10.2f
",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("不能打开文件!
"); 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("不能打开文件!
"); return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf("写入文件错误!
"); } for (i=0;i<num;i++) { if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf("写入文件错误!
"); } } fclose(fp);} /*主程序*/void main(){ int choice; IO_ReadInfo(); while(1) { /*主菜单*/ printf("
------ 学生成绩管理系统------
"); printf("1. 增加学生记录
"); printf("2. 修改学生记录
"); printf("3. 删除学生记录
"); printf("4. 按姓名查询学生记录
"); printf("5. 按平均成绩排序
"); printf("6. 退出
"); 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语言编写的小软件——学生成绩查询系统,同学们可以将其作为一个综合实例,对其进行仔细的阅读和研究,体验编程处理问题的过程,加深对编程语言的理解,提高处理问题的综合能力。
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欢迎使用班级成绩管理系统

",ch);
printf("请输入输入和输出文件名(中间用一个空格隔开):
");
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,"nameyuwenshuxueyingyuwulihuaxuezongfen
");
for(i=1;i<=n;i++)
{
fprintf(f2,"%s",name[i]);
for(j=1;j<=m;j++)
fprintf(f2,"%d",data[i][j]);
fprintf(f2,"%d
",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!
",na,data[i][1]);break;
case '2':printf("%s的数学成绩为%d!
",na,data[i][2]);break;
case '3':printf("%s的英语成绩为%d!
",na,data[i][3]);break;
case '4':printf("%s的物理成绩为%d!
",na,data[i][4]);break;
case '5':printf("%s的化学成绩为%d!
",na,data[i][5]);break;
case 'a':
printf("%s的各科成绩为:
",name[i]);
printf("语文数学英语物理化学总成绩
");
for(j=1;j<=m;j++)
printf("%d",data[i][j]);
printf("%d
",data[i][0]);


break;
default: printf("没有这种查询方式,请确认后再次输入!
");
}

}
else printf("查无此人,请确认后再次查询!
");

printf("

");
}
main(){
init();//数据初始化
printf("数据初始化结束!

");
printf("------------------------------------------------

");

char na[20];
char num;
while(1){ // 7)该条语句的功能是什么?
//scanf("%s%c%c",na,&num,&num); // 8)此处的输入可不可以用这条语句?
printf("请输入学生的姓名和要查询成绩的科目代码(中间用一个空格隔开):
(1 语文 2 数学 3 英语 4 物理 5 化学 a 所有科目成绩 q 退出)
");
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("------------------------------------------------

");
printf("
请输入新的查询:

");

}
system("pause");
}

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct 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;<br>char s1[20];<br>printf("------------------\n");<br>printf("1.按学号查询\n");<br>printf("2.退出本菜单\n");<br>printf("------------------\n");<br>while(1)<br>{ printf("请选择子菜单编号:");<br>scanf("%d",&item);<br>flag=0;<br>switch(item)<br>{<br>case 1:<br>printf("请输入要查询的学生的学号:\n");<br>scanf("%s",s1);<br>for(i=0;i<n;i++)<br>if(strcmp(stu[i].xuehao,s1)==0)<br>{ flag=1;<br>printf("该学生学号,姓名,性别,数学,语文,英语 分别为:\n");<br>printf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,<br>stu[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;j<i;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(i<n+m);
n+=m;
printf("录入完毕!\n\n");
}void del()
{ int i,j,flag=0;
char s1[20];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].xuehao,s1)==0)
{ flag=1;
for(j=i;j<n-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;i<m;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;i<m;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].pin<stu[k].pin)
k=j;
if(k!=i)
{
t=stu[k].pin;
stu[k].pin=stu[i].pin;
stu[i].pin=t;
}
}
for(i=0;i<m;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语言编写一程序,统计N个学生的成绩信息。
struct Stu { int mc;int number;char name[10];double math;double English;double computer;};void px(struct Stu [],int);void census(struct Stu [],int);void found(struct Stu [],int);int main(int argc,char * argv[]){ int n,i;struct Stu stud[sm];printf("请输入学生人数:...

利用汇编语言统计学生成绩,按优秀、良好、中等、及格、不及格加以区分...
设内存中有一个字节数组SCORE,存有10个学生的考试成绩,编写多分支程序,统计大于(含等于,以下同)90分,大于80分,大于70分,大于60分,小于60分的人数,结果分别置于A、B、C、D、E字节单元。.model small .486 .stack .data score 70,86,90,45,60,96,100,65,72,87 count equ ...

使用C语言做一个学生成绩管理系统
题描述用C语言编写一个程序实现学生成绩管理,每个学生包括3门课的成绩,从键盘输入学生信息,包括学号、姓名、三门课成绩,计算出学生的平均成绩,按照学生平均成绩由大到小... 题描述 用C语言编写一个程序实现学生成绩管理,每个学生包括3门课的成绩,从键盘输入学生信息,包括学号、姓名、三门课成绩,计算出学生...

编写学生成绩管理系统。已知有50个学生的C语言课程成绩;
测试,我只输入5个学生,你把常量改成50就行。include<stdio.h>#define maxSize 5\/\/学生人数,需要改这里!!void input(int *score);void output(int *score);int max(int *score);int min(int *score);int average(int *score);int main(){ int score[maxSize]; input(score); ...

求一个 C语言的学生成绩的统计程序
include "stdio.h"\/*定义学生结构体*\/ 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....

学生成绩管理系统 用c语言写 能不能快一点给我答案呢 谢谢啦 第一次求...
int i=0; char no[CH]; \/\/学号 printf("请输入你要查询的学生学号:");scanf("%s",no);for(i=0;i<num;i++)\/\/先找到该学号对应的序号 if(strcmp(s[i].no,no)==0) { printf("姓名 学号 高数 英语 大学物理 C语言 总分数 平均分\\n"); ...

用C语言写一个学生信息查询系统
int,char *,char,int,stu *); stu *pStu=(stu *)malloc(sizeof(stu));\/\/定义头节点 并预申请内存空间 (头节点 为遍历链表而创建,只有成员链表指针指向首节点 其他成员不存储数据) stu st[4];\/\/定义大小为4 结构数组变量 printf("测试:录入4名学生信息\\n"); if(setStuInf...

C语言 编写一个程序,输入10位同学的姓名和成绩,并按学生成绩从高到低...
include<stdio.h>#include<string.h>#define N 10struct student{char name[20];int score;};void main(){struct student stu[N];struct student *p; int i,v,s,temp;char tempname1[20],tempname2[20];for(i=0;i<N;i++){printf("please input %d student name\\n",i+1);scanf...

【高分】帮忙用汇编语言做一个程序:学生成绩统计
【高分】帮忙用汇编语言做一个程序:学生成绩统计 一个班学生成绩的录入和输出,学生的信息包括学生姓名,学号,成绩。求这个班学生的平均成绩并精确到小数点后两位,还要按成绩排序。... 一个班学生成绩的录入和输出,学生的信息包括学生姓名,学号,成绩。求这个班学生的平均成绩并精确到小数点后两位,还要按成绩排序。

c语言作业 编写一个输出学生成绩等级的程序
\/* 求出序号是num的学生的成绩 *\/ printf("\\nPlease input the num of student(0-3):\\n");scanf("%d", &num);printf("The score of the %dth student is:\\n",num);StudentScore(score,num);getch();return 0;} 七、程序运行结果 c语言:C语言是一种计算机程序设计语言,它既具有高级...

海西蒙古族藏族自治州13538984166: 编程如何用C语言编写一个学生成绩管理系统程序 -
宗韵辣椒: 我们才做了这个作业... #include <malloc.h> #include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct scorenode) #define DEBUG #include <string.h> struct scorenode { int number;/*学号*/ char name[8];/*姓名*/ float cj1;/*成绩1*/ ...

海西蒙古族藏族自治州13538984166: c语言编写学生成绩管理系统 -
宗韵辣椒: #include <stdio.h> void main() { /*输入资料*/ int student[5][4],i; for (i=0; i<=4; i++); scanf("%d,%d,%d \n",student[i][0],student[i][1],student[i][2],student[i][3]) /*平均分*/ for (i=0; i<=4; i++); printf("%f",(float)((student[i][1]+student[i][2]+student[i][3]...

海西蒙古族藏族自治州13538984166: 如何用C语言编一个学生成绩管理系统 -
宗韵辣椒: #include "stdio.h"#include "stdlib.h"#include "string.h"#define NULL 0 int shoudsave=0; struct student { char num[10]; char name[20]; char sex[4]; int cgrade; int mgrade; int egrade; int totle; int ave; char neartime[10]; }; typedef struct node { ...

海西蒙古族藏族自治州13538984166: 怎么用c语言编写一个学生成绩管理系统啊?急…… -
宗韵辣椒: C语言课程设计报告-------学生成绩简单管理程序 一、系统菜单的主要功能 (1)输入若干条记录 (2)显示所有记录 (3)按学号排序 (4)插入一条记录 (5)按姓名查找,删除一条记录 (6)查找并显示一条记录 (7)输出统计信息 (新增)...

海西蒙古族藏族自治州13538984166: 求怎么用C语言做一个学生成绩管理系统 -
宗韵辣椒: 去年写的,你稍微改下加个成绩就行#include#include#include FILE *fp; struct student{ char name[10]; char number[12]; char age[3]; struct student *next; }; struct student *creat(); //手动创建链表 struct student *build_list(); //从文件读取信息...

海西蒙古族藏族自治州13538984166: 用C语言编写学生成绩管理系统
宗韵辣椒: #include<stdio.h> #include<malloc.h> #define NULL 0 #define LEN sizeof(struct student) #define s_in &p1->lesson.lesson_1,&p1->lesson.lesson_2,&p1->lesson.lesson_3,&p1->lesson.lesson_4 #define s_ou p1->lesson.lesson_1,p1->lesson....

海西蒙古族藏族自治州13538984166: C语言编程 学生成绩管理系统 -
宗韵辣椒: 这是我们大一时候课程设计做的,学生成绩管理系统,功能比楼主需要的稍多一些,你看一下,不需要的函数删掉它好了.#include<stdio.h> #include<malloc.h> #include<string.h>struct stu {long num;char name[20];float score1,score2,score...

海西蒙古族藏族自治州13538984166: 用c语言编学生成绩管理程序 -
宗韵辣椒: 自己改改把 #include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*其它说明*/ #include "string.h" /*字符串函数*/ #include "conio.h" /*屏幕操作函数*/ #include "mem.h" /*内存操作函数*/ #include "ctype.h" /*字符操作函数*/ #include "alloc....

海西蒙古族藏族自治州13538984166: c语言:学生成绩简单管理程序 -
宗韵辣椒: 给你一个模板吧:#include"stdio.h"#include"stdlib.h"#include"string.h"#include#include typedef struct list { ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网