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

Python010

学生成绩录入查询系统C语言程序,第1张

#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=0i<ni++)

{

cin>>stu[i].name>>stu[i].score

}

stu[i].score=-1

}

void

show(student

*stu)

{

int

i=0

for(i<100i++)

{

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<100i++)

{

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>>namen=search(stu,name)cout<<"该学生成绩是:"<<stu[n].score<<endlbreak

case

3:

edit(stu)break

case

4:

dele(stu)break

default:if(i!=0)cout<<"请输入有效数字\n"

}

if(i==0)

break

}

return

0

}

程序如下: #include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a float student[100][7]\x0d\x0a//student[][0]存放学号,student[][1]到student[][4]存放四门成绩,\x0d\x0a//student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名\x0d\x0a int n,i,j,k,p,t,count,flag\x0d\x0a int a[100],b[100],c[100]\x0d\x0a//a[]存放排序后的下标,b[]存放总分(备份),c[]存放排名的数据\x0d\x0a printf("输入学生的个数:\n")\x0d\x0a scanf("%d",&n)\x0d\x0a for(i=0ib[i+1])\x0d\x0a{\x0d\x0a c[i]=count\x0d\x0a count++\x0d\x0a}\x0d\x0a }\x0d\x0a printf("\n以下是统计结果:\n")\x0d\x0a printf("学号 s[1]s[2]s[3]s[4] 总分 平均分排名\n")\x0d\x0a for(i=0i 回答于 2022-11-16

#include "stdio.h"

struct stu{

int sid,score

char g

}

void scorein(struct stu *p,int n){

int i,t

for(i=0i<ni++){

scanf("%d%d",&p[i].sid,&p[i].score)

p[i].g = (t=p[i].score)>89 && t<101 ? 'A' : t>79 && t<90 ? 'B' : t>69 && t<80 ? 'C' : t>59 && t<70 ? 'D' : 'E'

}

}

int sum(struct stu *p,int n){

int s=0

while(n--)

s+=p++->score

return s

}

void dssort(struct stu *p,int n){

int i,j,k

struct stu t

printf("\nSTUID\tSCORE\tCLASS\n=====================\n")

for(i=0i<ni++){

for(k=i,j=k+1j<nj++)

if(p[k].score<p[j].score)

k=j

if(k!=i)

t=p[k],p[k]=p[i],p[i]=t

printf("%d\t%d\t%c\n",p[i].sid,p[i].score,p[i].g)

}

}

void idsort(struct stu *p,int n){

int i,j,k

struct stu t

printf("\nSTUID\tSCORE\tCLASS\n=====================\n")

for(i=0i<ni++){

for(k=i,j=k+1j<nj++)

if(p[k].sid>p[j].sid)

k=j

if(k!=i)

t=p[k],p[k]=p[i],p[i]=t

printf("%d\t%d\t%c\n",p[i].sid,p[i].score,p[i].g)

}

}

void query(struct stu *p,int n){

int id

printf("\nPlease enter ID(int)...\n")

scanf("%d",&id)

while(id-p->sid && n)

p++,n--

if(n>=0){

printf("STUID\tSCORE\tCLASS\n=====================\n")

printf("%d\t%d\t%c\n\n",p->sid,p->score,p->g)

}

else

printf("No find!\n\n")

}

void level(struct stu *p,int n){

int d[5],i

char s[5][7]={"优秀","良好","中等","及格","不及格"}

printf("统计信息如下:\n")

for(i=0i<5d[i++]=0)

for(i=0i<ni++,d[p++->g-'A']++)

for(i=0i<5i++)

printf("%6s:\t%d\t%.2f%%\n",s[i],d[i],d[i]/(n+0.0)*100)

}

void outinfo(struct stu *p,int n){

int i

printf("\nSTUID\tSCORE\n=============\n")

for(i=0i<ni++)

printf("%d\t%d\n",p[i].sid,p[i].score)

}

int main(int argc,char *argv[]){

int n,s

struct stu a[30]

printf("Please enter n(int 0<n<31)...\n")

if(scanf("%d",&n)!=1 || n<1 || n>30){

printf("Input error, exit...\n")

return 0

}

scorein(a,n)//输入

dssort(a,n)//分数降序

idsort(a,n)//学号升序

query(a,n)//查询

level(a,n)//等级和百分比

outinfo(a,n)//输出各位学生信息

printf("总分: %d",s=sum(a,n))

printf("   平均分:   %.2f\n",s/(n+0.0))

return 0

}

运行样例: