鱼C论坛

 找回密码
 立即注册
查看: 2992|回复: 3

可以帮修改下嘛

[复制链接]
发表于 2021-7-1 22:01:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#define NUM 1000
int N=0;
     int main()
    {denglu();
    caidan();
    shuru();
    cha();
    shanchu();
    xiugai();
    cr();
    return 0;
}
    void denglu()//登录主页
    {char zhanghao[20]={"ZXLWSD"};
    int mi=123;
    char y[20];
    int m,i=1;
    printf("***************用户登录***************\n");
    while(i<=3)
    {
    printf("请输入用户名:\n");
    scanf("%s",y);
    printf("请输入密码:\n");
    scanf("%d",&m);
    if(strcmp(zhanghao,y)==0&&mi==m)
    {printf("登录成功!\n");
    caidan();
    break;}
    else
    printf("您输入的账户与密码不匹配请重新输入!\n");
    i++;
    }
    if(i<=3)
    printf("\n");
    else
    printf("操作过频繁,请重新启用!\n");
    exit(0);
    }
    void caidan()//登录菜单
    {
    printf("**********主菜单**********\n");
    int a;
    while(1)
    {printf("******************\n");
    printf("*1:输入成绩       *\n");
    printf("*2:查询成绩       *\n");
    printf("*3:删除成绩       *\n");
    printf("*4:成绩修改       *\n");
    printf("*5:成绩排名       *\n");
    printf("*6:插入成绩       *\n");
    printf("*7:退出           *\n");
    printf("*请输入您的选项: *\n");
    printf("*******************\n");
    scanf("%d",&a);
    switch(a)
    {
    case 1:printf("输入成绩\n");shuru();break;
    case 2:printf("查询成绩\n");cha();break;
    case 3:printf("删除成绩\n");shanchu();break;
    case 4:printf("成绩修改\n");xiugai(); break;
    case 5:printf("成绩排名\n");pxxz();break;
    case 6:printf("插入成绩\n");cr();break;
    case 7:printf("退出\n");exit(0);break;
    default:printf("输入数据出错\n");
    }
    }
}
    struct student
    {int num;
    char name[10];
    float score[3];
    }stu[50];
    void input();
    void print();
    int shuru()
    {printf("请输入学生个数:\n");
    scanf("%d",&N);
    input(stu);
    print(stu);
    }
    void input()
    {int i;
    for (i=0; i<N; i++)
    {
    printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
    scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
    }
    printf("输入成功!\n");
    }
    void print()
    {
    int i;
    float average;//平均数
    float ts;//总分
    for(i=0; i<N; i++)
    {
    printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
    printf("学号%d 姓名%s 成绩1:%.1f 成绩2:%.1f 成绩3:%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f 平均分%.1f\n",ts,average);
           }
    }
    void cha()
    {printf("*********查找菜单*********\n");
    int b;
    while(1)
    {printf("**************************\n");
    printf("*1:姓名查找               *\n");
    printf("*2:学号查找               *\n");
    printf("*3:查询所有成绩           *\n");
    printf("*4:返回上一级菜单         *\n");
    printf("*请输入需要查找按键:     *\n");
    printf("***************************\n");
    scanf("%d",&b);
    switch(b)
    {
    case 1:xm(stu);break;
    case 2:xh(stu);break;
    case 3:zhenti(stu);break;
    case 4:return(0);break;
    default:printf("输入数据出错\n");
        }
      }
    }
    void zhenti()
    {
    int i;
    float average;//平均数
    float ts;//总分
    for(i=0;i<N;i++)
    {
    printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f 平均分%.1f\n ",ts,average);
    }
    }
    void xm()//姓名查找
    {
    int count=0;
    int i;
    float average;//平均数
    float ts;//总分
    char name1[10];
    printf("请输入要查找的姓名:\n");
    scanf(" %s",name1);
    for(i=0;i<N;i++)
    {
    if(strcmp(name1,stu[i].name)==0)
    {
    printf("学号为%d 姓名为%s 语文为%.1f 数学为%.1f 英语为%.1f",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f 平均分%.1f\n",ts,average);
    count++;
    }
    }
    if(count==0)
    printf("输入姓名有误!\n");
    }
    void xh()//学号查找
    {
    int i;
    int num1;
    float average;//平均数
    float ts;//总分
    printf("请输入要查找的学号:\n");
    scanf(" %d",&num1);
    for(i=0;i<N;i++)
    {
    if(num1==stu[i].num)
    {
    printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f平均分%.1f\n",ts,average);
    break;
    }
    }
    if(i==N)
    printf("输入的学号有误!\n");
    }
    void shanchu()//删除菜单
    {printf("*********删除菜单*********\n");
    int c;
    while(1)
    {printf("******************** \n");
    printf("*请输入删除途径:    *\n");
    printf("*1:姓名删除          *\n");
    printf("*2:学号删除          *\n");
    printf("*3:返回上一级菜单    *\n");
    printf("**********************\n");
    scanf("%d",&c);
    switch(c)
    {
    case 1:xmsc(stu);break;
    case 2:xhsc(stu);break;
    case 3:return(0);break;
    default:printf("输入数据出错\n");
        }
      }
    }
    void xmsc()//姓名删除
    {int count=0;
    int i,j;
    float average;//平均数
    float ts;//总分
    char name2[10];
    printf("请输入要删除的姓名:\n");
    scanf(" %s",name2);
    for(i=0;i<N;i++)
    {
    if(strcmp(name2,stu[i].name)==0)
    {
    count++;
    for(j=i;j<N-1;j++)
    {
    stu[j]=stu[j+1];
    }
    printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f 平均分%.1f\n",ts,average);
    N--;
    }
    }
    printf("删除成功!\n");
    if(count==0)
    printf("输入有误!");
    }
    void xhsc()//学号删除
    {int i,j;
    int num2;
    float average;//平均数
    float ts;//总分
    printf("请输入要删除的学号:\n");
    scanf(" %d",&num2);
    for(i=0;i<N;i++)
    {
    if(num2==stu[i].num)
    {
    for(j=i;j<N-1;j++)
    {stu[j]=stu[j+1];
    }
    printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
    average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
    printf("总分%.1f 平均分%.1f\n",ts,average);
    N--;
    }
    }
    printf("删除成功!\n");
    if(i==N-1)
    printf("输入的学号有误!\n");

    }
    void xiugai()//修改成绩
    {
    int i,k;
    int num3,s1;
    char s2[10];
    float s3,s4,s5;
    printf("请输入修改学生学号:\n");
    scanf("%d",&num3);
    for(i=0;i<N;i++)
    {
    if(num3==stu[i].num)
    {num3=i;
    printf("*********修给界面***********\n");
    printf("*    1.修改姓名            *\n");
    printf("*    2.修改语文成绩          *\n");
    printf("*    3.修改数学成绩          *\n");
    printf("*    4.修改英语成绩          *\n");
    printf("*    5.退出本菜单          *\n");
    printf("****************************\n");
    while(1)
    {
    printf("请选择修改内容编号:\n");
    scanf("%d",&k);
    switch(k)
    {
    case 1:printf("    请输入新姓名; ");scanf("%s",s2);strcpy(stu[i].name,s2);break;
    case 2:printf("    请输入新语文成绩; ");scanf("%f",&s3);stu[i].score[0]=s3;break;
    case 3:printf("    请输入新数学成绩; ");scanf("%f",&s4);stu[i].score[1]=s4;break;
    case 4:printf("    请输入新英语成绩; ");scanf("%f",&s5);stu[i].score[2]=s5;break;
    case 5:return;break;
    }
    }
    }
    else
    printf("   ");
    }
    }
    void xhpx()//按照学号排序
    {int i,j;
    float average;//平均数
    float ts;//总分
    struct student stu1;//定义一个中间量
    for(i=0;i<N-1;i++)
    {for(j=i+1;j<N;j++)
    {
    if(stu[i].num>stu[j].num)
    {
    stu1=stu[i];
    stu[i]=stu[j];
    stu[j]=stu1;
    }
    }
    }
    }
void xmpx()//按照姓名排序
{int i,j;
float average;//平均数
float ts;//总分
struct student stu1;
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{if(strcmp(stu[i].name,stu[j].name)>0)
{
stu1=stu[i];
stu[i]=stu[j];
stu[j]=stu1;
}
}
}
}
    void pxxz()//排序方式选择
    {int a;
    printf("     0:返回上一级菜单 \n");
    printf("     1:按照学号排序 \n");
    printf("     2:按照姓名排序- \n");
    printf("请选择:\n");
    scanf("%d",&a);
    switch(a)
    {case 0:return 0;break;
    case 1:xhpx();break;
    case 2:xmpx();break;
    }
    }
void cr()//插入
{
printf("**********************************\n");
printf("*按学号插入请按1                 *\n");
printf("*按学号插入请按2                 *\n");
printf("*返回上一级菜单0                 *\n");
int m;
printf("请输入你的选择:");
scanf("%d",&m);
switch(m)
{case 0:return 0;break;
case 1:cr1();break;
case 2:break;
}
}
void cr1()
{
int a,i,j;
printf("请输入需要添加的学生总人数");
scanf("%d",&a);
N=N+a;
for(i=N-a;i<N;i++)
{printf("请输入学生%d的学号,姓名:\n",i+1);
scanf("%s%s",stu[i].num,stu[i].name);
printf("请输入学生成绩:\n");
printf("语文,数学,英语,总分,平均分");
for(j=0;j<N;j++)
printf("添加成功\n");
}
caidan();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-2 21:42:27 | 显示全部楼层
看看 我的链接吧 https://fishc.com.cn/thread-173037-1-1.html 把里面的代码改一下就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-2 21:59:07 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 1000
void denglu();void caidan();int
shuru();void cha();void shanchu
();void xiugai();void cr();void
pxxz();void xm();void xh();void
zhenti();void xmsc();void xhsc()
;void cr1();int N=0;
int main()
{denglu();
caidan();
shuru();
cha();
shanchu();
xiugai();
cr();
return 0;
}
void denglu()//登录主页
{char zhanghao[20]={"ZXLWSD"};
int mi=123;
char y[20];
int m,i=1;
printf("***************用户登录***************\n");
while(i<=3)
{
printf("请输入用户名:\n");
scanf("%s",y);
printf("请输入密码:\n");
scanf("%d",&m);
if(strcmp(zhanghao,y)==0&&mi==m)
{printf("登录成功!\n");
caidan();
break;}
else
printf("您输入的账户与密码不匹配请重新输入!\n");
i++;
}
if(i<=3)
printf("\n");
else
printf("操作过频繁,请重新启用!\n");
exit(0);
}
void caidan()//登录菜单
{
printf("**********主菜单**********\n");
int a;
while(1)
{printf("******************\n");
printf("*1:输入成绩       *\n");
printf("*2:查询成绩       *\n");
printf("*3:删除成绩       *\n");
printf("*4:成绩修改       *\n");
printf("*5:成绩排名       *\n");
printf("*6:插入成绩       *\n");
printf("*7:退出           *\n");
printf("*请输入您的选项: *\n");
printf("*******************\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("输入成绩\n");shuru();break;
case 2:printf("查询成绩\n");cha();break;
case 3:printf("删除成绩\n");shanchu();break;
case 4:printf("成绩修改\n");xiugai(); break;
case 5:printf("成绩排名\n");pxxz();break;
case 6:printf("插入成绩\n");cr();break;
case 7:printf("退出\n");exit(0);break;
default:printf("输入数据出错\n");
}
}
}
struct student
{int num;
char name[10];
float score[3];
}stu[50];
void input();
void print();
int shuru()
{printf("请输入学生个数:\n");
scanf("%d",&N);
input(stu);
print(stu);
return 0;
}
void input()
{int i;
for (i=0; i<N; i++)
{
printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}
printf("输入成功!\n");
}
void print()
{
int i;
float average;//平均数
float ts;//总分
for(i=0; i<N; i++)
{
printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
printf("学号%d 姓名%s 成绩1:%.1f 成绩2:%.1f 成绩3:%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
}
}
void cha()
{printf("*********查找菜单*********\n");
int b;
while(1)
{printf("**************************\n");
printf("*1:姓名查找               *\n");
printf("*2:学号查找               *\n");
printf("*3:查询所有成绩           *\n");
printf("*4:返回上一级菜单         *\n");
printf("*请输入需要查找按键:     *\n");
printf("***************************\n");
scanf("%d",&b);
switch(b)
{
case 1:xm(stu);break;
case 2:xh(stu);break;
case 3:zhenti(stu);break;
case 4:return;break;
default:printf("输入数据出错\n");
}
}
}
void zhenti()
{
int i;
float average;//平均数
float ts;//总分
for(i=0;i<N;i++)
{
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n ",ts,average);
}
}
void xm()//姓名查找
{
int count=0;
int i;
float average;//平均数
float ts;//总分
char name1[10];
printf("请输入要查找的姓名:\n");
scanf(" %s",name1);
for(i=0;i<N;i++)
{
if(strcmp(name1,stu[i].name)==0)
{
printf("学号为%d 姓名为%s 语文为%.1f 数学为%.1f 英语为%.1f",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
count++;
}
}
if(count==0)
printf("输入姓名有误!\n");
}
void xh()//学号查找
{
int i;
int num1;
float average;//平均数
float ts;//总分
printf("请输入要查找的学号:\n");
scanf(" %d",&num1);
for(i=0;i<N;i++)
{
if(num1==stu[i].num)
{
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f平均分%.1f\n",ts,average);
break;
}
}
if(i==N)
printf("输入的学号有误!\n");
}
void shanchu()//删除菜单
{printf("*********删除菜单*********\n");
int c;
while(1)
{printf("******************** \n");
printf("*请输入删除途径:    *\n");
printf("*1:姓名删除          *\n");
printf("*2:学号删除          *\n");
printf("*3:返回上一级菜单    *\n");
printf("**********************\n");
scanf("%d",&c);
switch(c)
{
case 1:xmsc(stu);break;
case 2:xhsc(stu);break;
case 3:return;break;
default:printf("输入数据出错\n");
}
}
}
void xmsc()//姓名删除
{int count=0;
int i,j;
float average;//平均数
float ts;//总分
char name2[10];
printf("请输入要删除的姓名:\n");
scanf(" %s",name2);
for(i=0;i<N;i++)
{
if(strcmp(name2,stu[i].name)==0)
{
count++;
for(j=i;j<N-1;j++)
{
stu[j]=stu[j+1];
}
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
N--;
}
}
printf("删除成功!\n");
if(count==0)
printf("输入有误!");
}
void xhsc()//学号删除
{int i,j;
int num2;
float average;//平均数
float ts;//总分
printf("请输入要删除的学号:\n");
scanf(" %d",&num2);
for(i=0;i<N;i++)
{
if(num2==stu[i].num)
{
for(j=i;j<N-1;j++)
{stu[j]=stu[j+1];
}
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
N--;
}
}
printf("删除成功!\n");
if(i==N-1)
printf("输入的学号有误!\n");

}
void xiugai()//修改成绩
{
int i,k;
int num3,s1;
char s2[10];
float s3,s4,s5;
printf("请输入修改学生学号:\n");
scanf("%d",&num3);
for(i=0;i<N;i++)
{
if(num3==stu[i].num)
{num3=i;
printf("*********修给界面***********\n");
printf("*    1.修改姓名            *\n");
printf("*    2.修改语文成绩          *\n");
printf("*    3.修改数学成绩          *\n");
printf("*    4.修改英语成绩          *\n");
printf("*    5.退出本菜单          *\n");
printf("****************************\n");
while(1)
{
printf("请选择修改内容编号:\n");
scanf("%d",&k);
switch(k)
{
case 1:printf("    请输入新姓名; ");scanf("%s",s2);strcpy(stu[i].name,s2);break;
case 2:printf("    请输入新语文成绩; ");scanf("%f",&s3);stu[i].score[0]=s3;break;
case 3:printf("    请输入新数学成绩; ");scanf("%f",&s4);stu[i].score[1]=s4;break;
case 4:printf("    请输入新英语成绩; ");scanf("%f",&s5);stu[i].score[2]=s5;break;
case 5:return;break;
}
}
}
else
printf("   ");
}
}
void xhpx()//按照学号排序
{int i,j;
float average;//平均数
float ts;//总分
struct student stu1;//定义一个中间量
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{
if(stu[i].num>stu[j].num)
{
stu1=stu[i];
stu[i]=stu[j];
stu[j]=stu1;
}
}
}
}
void xmpx()//按照姓名排序
{int i,j;
float average;//平均数
float ts;//总分
struct student stu1;
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{if(strcmp(stu[i].name,stu[j].name)>0)
{
stu1=stu[i];
stu[i]=stu[j];
stu[j]=stu1;
}
}
}
}
void pxxz()//排序方式选择
{int a;
printf("     0:返回上一级菜单 \n");
printf("     1:按照学号排序 \n");
printf("     2:按照姓名排序- \n");
printf("请选择:\n");
scanf("%d",&a);
switch(a)
{case 0:return;break;
case 1:xhpx();break;
case 2:xmpx();break;
}
}
void cr()//插入
{
printf("**********************************\n");
printf("*按学号插入请按1                 *\n");
printf("*按学号插入请按2                 *\n");
printf("*返回上一级菜单0                 *\n");
int m;
printf("请输入你的选择:");
scanf("%d",&m);
switch(m)
{case 0:return;break;
case 1:cr1();break;
case 2:break;
}
}
void cr1()
{
int a,i,j;
printf("请输入需要添加的学生总人数");
scanf("%d",&a);
N=N+a;
for(i=N-a;i<N;i++)
{printf("请输入学生%d的学号,姓名:\n",i+1);
scanf("%d%s",&stu[i].num,stu[i].name);
printf("请输入学生成绩:\n");
printf("语文,数学,英语,总分,平均分");
for(j=0;j<N;j++)
printf("添加成功\n");
}
caidan();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-2 22:10:50 | 显示全部楼层
去掉了几个没有使用的变量,这次是0错误0警告
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 1000
void denglu();void caidan();int
shuru();void cha();void shanchu
();void xiugai();void cr();void
pxxz();void xm();void xh();void
zhenti();void xmsc();void xhsc()
;void cr1();int N=0;
int main(){denglu();
caidan();shuru();cha();
shanchu();xiugai();cr();
return 0;}
void denglu()//登录主页
{char zhanghao[20]={"ZXLWSD"};
int mi=123;
char y[20];
int m,i=1;
printf("***************用户登录***************\n");
while(i<=3){printf("请输入用户名:\n");
scanf("%s",y);
printf("请输入密码:\n");
scanf("%d",&m);
if(strcmp(zhanghao,y)==0&&mi==m)
{printf("登录成功!\n");
caidan();
break;}
else
printf("您输入的账户与密码不匹配请重新输入!\n");
i++;}
if(i<=3)
printf("\n");
else
printf("操作过频繁,请重新启用!\n");
exit(0);}void caidan()//登录菜单
{printf("**********主菜单**********\n");
int a;
while(1){printf("******************\n");
printf("*1:输入成绩       *\n");
printf("*2:查询成绩       *\n");
printf("*3:删除成绩       *\n");
printf("*4:成绩修改       *\n");
printf("*5:成绩排名       *\n");
printf("*6:插入成绩       *\n");
printf("*7:退出           *\n");
printf("*请输入您的选项: *\n");
printf("*******************\n");
scanf("%d",&a);
switch(a){case 1:printf("输入成绩\n");shuru();break;
case 2:printf("查询成绩\n");cha();break;
case 3:printf("删除成绩\n");shanchu();break;
case 4:printf("成绩修改\n");xiugai(); break;
case 5:printf("成绩排名\n");pxxz();break;
case 6:printf("插入成绩\n");cr();break;
case 7:printf("退出\n");exit(0);break;
default:printf("输入数据出错\n");}}}
struct student{int num;
char name[10];
float score[3];
}stu[50];
void input();
void print();
int shuru()
{printf("请输入学生个数:\n");
scanf("%d",&N);
input(stu);
print(stu);
return 0;}void input(){int i;
for (i=0; i<N; i++)
{printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);}
printf("输入成功!\n");}
void print(){int i;
float average;//平均数
float ts;//总分
for(i=0; i<N; i++){printf("请输入第%d个学生的学号,姓名,语文,数学,英语:\n", i+1);
printf("学号%d 姓名%s 成绩1:%.1f 成绩2:%.1f 成绩3:%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);}}
void cha()
{printf("*********查找菜单*********\n");
int b;
while(1)
{printf("**************************\n");
printf("*1:姓名查找               *\n");
printf("*2:学号查找               *\n");
printf("*3:查询所有成绩           *\n");
printf("*4:返回上一级菜单         *\n");
printf("*请输入需要查找按键:     *\n");
printf("***************************\n");
scanf("%d",&b);
switch(b){
case 1:xm(stu);break;
case 2:xh(stu);break;
case 3:zhenti(stu);break;
case 4:return;break;
default:printf("输入数据出错\n");}}}
void zhenti(){int i;
float average;//平均数
float ts;//总分
for(i=0;i<N;i++){
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n ",ts,average);}}
void xm()//姓名查找
{int count=0;
int i;
float average;//平均数
float ts;//总分
char name1[10];
printf("请输入要查找的姓名:\n");
scanf(" %s",name1);
for(i=0;i<N;i++)
{if(strcmp(name1,stu[i].name)==0)
{printf("学号为%d 姓名为%s 语文为%.1f 数学为%.1f 英语为%.1f",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
count++;}}
if(count==0)
printf("输入姓名有误!\n");}void xh()//学号查找
{int i;
int num1;
float average;//平均数
float ts;//总分
printf("请输入要查找的学号:\n");
scanf(" %d",&num1);
for(i=0;i<N;i++){if(num1==stu[i].num){
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f\n",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f平均分%.1f\n",ts,average);
break;}}
if(i==N)
printf("输入的学号有误!\n");}
void shanchu()//删除菜单
{printf("*********删除菜单*********\n");
int c;
while(1)
{printf("******************** \n");
printf("*请输入删除途径:    *\n");
printf("*1:姓名删除          *\n");
printf("*2:学号删除          *\n");
printf("*3:返回上一级菜单    *\n");
printf("**********************\n");
scanf("%d",&c);
switch(c){case 1:xmsc(stu);break;
case 2:xhsc(stu);break;
case 3:return;break;
default:printf("输入数据出错\n");}}}
void xmsc()//姓名删除
{int count=0;
int i,j;
float average;//平均数
float ts;//总分
char name2[10];
printf("请输入要删除的姓名:\n");
scanf(" %s",name2);
for(i=0;i<N;i++)
{if(strcmp(name2,stu[i].name)==0){count++;
for(j=i;j<N-1;j++){stu[j]=stu[j+1];}
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
N--;}}
printf("删除成功!\n");
if(count==0)
printf("输入有误!");}
void xhsc()//学号删除
{int i,j;
int num2;
float average;//平均数
float ts;//总分
printf("请输入要删除的学号:\n");
scanf(" %d",&num2);
for(i=0;i<N;i++)
{if(num2==stu[i].num)
{for(j=i;j<N-1;j++)
{stu[j]=stu[j+1];}
printf("学号%d 姓名%s 语文为%.1f 数学为%.1f 英语为%.1f ",stu[i].num, stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
ts=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("总分%.1f 平均分%.1f\n",ts,average);
N--;}}
printf("删除成功!\n");
if(i==N-1)
printf("输入的学号有误!\n");}
void xiugai()//修改成绩
{int i,k;
int num3;
char s2[10];
float s3,s4,s5;
printf("请输入修改学生学号:\n");
scanf("%d",&num3);
for(i=0;i<N;i++)
{if(num3==stu[i].num)
{num3=i;
printf("*********修给界面***********\n");
printf("*    1.修改姓名            *\n");
printf("*    2.修改语文成绩          *\n");
printf("*    3.修改数学成绩          *\n");
printf("*    4.修改英语成绩          *\n");
printf("*    5.退出本菜单          *\n");
printf("****************************\n");
while(1)
{printf("请选择修改内容编号:\n");
scanf("%d",&k);
switch(k)
{case 1:printf("    请输入新姓名; ");scanf("%s",s2);strcpy(stu[i].name,s2);break;
case 2:printf("    请输入新语文成绩; ");scanf("%f",&s3);stu[i].score[0]=s3;break;
case 3:printf("    请输入新数学成绩; ");scanf("%f",&s4);stu[i].score[1]=s4;break;
case 4:printf("    请输入新英语成绩; ");scanf("%f",&s5);stu[i].score[2]=s5;break;
case 5:return;break;}}}
else
printf("   ");}}
void xhpx()//按照学号排序
{int i,j;
struct student stu1;//定义一个中间量
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{if(stu[i].num>stu[j].num)
{stu1=stu[i];
stu[i]=stu[j];
stu[j]=stu1;}}}}
void xmpx()//按照姓名排序
{int i,j;
struct student stu1;
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{if(strcmp(stu[i].name,stu[j].name)>0)
{stu1=stu[i];
stu[i]=stu[j];
stu[j]=stu1;}}}}
void pxxz()//排序方式选择
{int a;printf("     0:返回上一级菜单 \n");
printf("     1:按照学号排序 \n");
printf("     2:按照姓名排序- \n");
printf("请选择:\n");
scanf("%d",&a);
switch(a)
{case 0:return;break;
case 1:xhpx();break;
case 2:xmpx();break;}}
void cr()//插入
{printf("**********************************\n");
printf("*按学号插入请按1                 *\n");
printf("*按学号插入请按2                 *\n");
printf("*返回上一级菜单0                 *\n");
int m;
printf("请输入你的选择:");
scanf("%d",&m);
switch(m)
{case 0:return;break;
case 1:cr1();break;
case 2:break;}}
void cr1()
{int a,i,j;
printf("请输入需要添加的学生总人数");
scanf("%d",&a);
N=N+a;
for(i=N-a;i<N;i++)
{printf("请输入学生%d的学号,姓名:\n",i+1);
scanf("%d%s",&stu[i].num,stu[i].name);
printf("请输入学生成绩:\n");
printf("语文,数学,英语,总分,平均分");
for(j=0;j<N;j++)
printf("添加成功\n");}
caidan();}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 01:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表