A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

严正声明:仅是给不会做的人参考一下,提供个思路。请勿原本照搬,别忘了老师也会看帖子的。


经典入学基础测试题。你做对了吗??



ps:也是某吧友发出来的。现改正了。完美运行,回复查收哦。

-----如帮助到了你,请大方打赏点黑马币,谢谢。





#include <stdio.h>
#include<string.h>
#include <stdlib.h>
#define N 500//结构体数组的大小

void caidan();/*功能浏览表,供使用者选择功能*/
void zengjia();/*学生信息的增加*/
void shanchu();/*学生信息的删除*/
void chaxun();/*学生信息的查询*/
int leve = 0;
struct Student
{
    char *name;
    int age;
    char sex[2];
    int number;
    int score;
}stu[N];


int main()
{
    //int leve = 0;
    caidan();
    return 0;
}

void caidan()
{
    int x=0;
    printf("\n\n\n\n\n\n\n\n\t\t\t欢迎使用学生管理系统!\n");
    printf("\t\t\t*******************\n");
    printf("\t\t\t  1.增加学生信息\n");
    printf("\t\t\t  2.删除学生信息\n");
    printf("\t\t\t  3.查询学生信息\n");
    printf("\t\t\t*******************\n");
    printf("\n\t退出请输入:0\n\n\n");//输入0程序执行完毕
    printf("请输入功能序号:\n");
    scanf("%d",&x);
    switch(x)/*每个case后均有菜单函数,功能结束后返回功能表,按88结束*/
    {
        case 1:zengjia();caidan();break;
        case 2:shanchu(stu);caidan();break;
        case 3:chaxun();caidan();break;
        case 0:break;
        default:printf("请输入正确的序号!");caidan() ;break;
    }
}
void zengjia()
{
   
游客,如果您要查看本帖隐藏内容请回复

    }
}




评分

参与人数 1黑马币 +3 收起 理由
张文文 + 3 很给力!

查看全部评分

70 个回复

倒序浏览
void shanchu()  //(struct student stu[N])
{
    int i,s,l,k=1;/*k判断是否有要删除的学生*/
    printf("请输入要删除学生的学号:");
    scanf("%d",&s);
    for(i=0;i<N;i++)
    {
        if(s==stu.number)
        {
            k=0;/*若有该学号k赋值为0*/
            printf("您要删除的学生信息为:\n");
            printf("   姓 名  年龄  性别  学号  分数\n");
            printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
            printf("\n");
            printf("确认请按:1\n按任意键返回\n");
            scanf("%d",&k);
            if(k==1)
            {
                leve--; /*删除后已录入学生个数减一*/
                for(l=i;l<N;l++)
                {
                    strcpy(stu[l].name,stu[l+1].name);
                    stu[l].age=stu[l+1].age;
                    strcpy(stu[l].sex,stu[l+1].sex);
                    stu[l].number=stu[l+1].number;
                    stu[l].score=stu[l+1].score;
                }
                printf("   姓 名  年龄  性别  学号  分数\n");
                for(i=0;i<=N && stu.number!=0;i++)
                {
                    printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                    printf("\n");
                }
            }

            caidan();
        }
    }
    if(k)/*k若未被赋值0,则说明没有需要删除的学生*/
        printf("没有您要查询的学生不需要删除!");
}

回复 使用道具 举报
void chaxun()
{
    int y,z,i,word=1,nianling,geshu=0;/*y为查询菜单中的变量,z为要查询的学号,geshu记录查询结果中年龄相同或性别相同的学生个数,word用来判断是否有要查询的学生信息*/
    char xingming[20],xingbie[10];
    printf("\t\t*******************************\n");
    printf("\t\t1.按学号查询\n");
    printf("\t\t2.按姓名查询\n");
    printf("\t\t3.按性别查询");
    printf("\t\t4.按年龄查询\n");
    printf("\t\t5.查询所有\n");
    printf("\t\t*******************************\n");
    printf("请输入功能序号:");
    scanf("%d",&y);
    switch(y)
    {
        case 1:printf("请输入要查询的学号:");
            scanf("%d",&z);

            printf("   姓 名  年龄  性别  学号  分数\n");
            for(i=0;i<N;i++)
            {
                if(z==stu.number)//由学号来寻找目标学生
                {
                    printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                    printf("\n");
                    word=0;/*若有要查询的学生则word赋值0   下同*/
                };
            }
            if(word)/*判断word的值  下同*/
                printf("没有您查询的学生信息!\n");
            ;break;
        case 2:printf("请输入要查询的姓名:");
            scanf("%s",xingming);
            printf("   姓 名  年龄  性别  学号  分数\n");
            for(i=0;i<N;i++)
            {
                if(strcmp(xingming,stu.name)==0)//姓名字符比较
                {
                    printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                    printf("\n");
                    word=0;
                };
            }
            if(word)
                printf("没有您查询的学生信息!\n");
            break;
        case 3:printf("请输入要查询的性别:");
            scanf("%s",xingbie);
            printf("   姓 名  年龄  性别  学号  分数\n");
            for(i=0;i<N;i++)/*将结构体中信息逐一比较*/
            {
                if(strcmp(xingbie,stu.sex)==0)
                {
                    printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                    printf("\n");
                    word=0;
                    geshu++;/*若相等个数自增  下同*/
                };
            }
            if(word==0)
                printf("%s生的个数为:%d",xingbie,geshu);/*输出查询性别的学生个数  下同*/
            if(word)
                printf("没有您查询的学生信息!\n");
            geshu=0;
            break;
        case 4:printf("请输入要查询的年龄:");
            scanf("%d",&nianling);
            printf("   姓 名  年龄  性别  学号  分数\n");
            for(i=0;i<N;i++)
            {
                if(nianling==stu.age)
                {
                    printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                    printf("\n");
                    word=0;
                    geshu++;
                };
            }
            if(word==0)
                printf("%d岁的学生个数为:%d",nianling,geshu);//输出所查询学生的个数
            if(word)
                printf("没有您查询的学生信息!\n");
            geshu=0;
            break;
        case 5:
            printf("   姓 名  年龄  性别  学号  分数\n");/*顶行输出属性*/
            printf("\n");
            for(i=0;i<=N && stu.number!=0;i++)
            {
                printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
                printf("\n");
            }
            break;
        default :printf("请输入正确的序号!\n");
    }
}

回复 使用道具 举报
记得之前做过一个图书管理系统,跟这个完全类似啊!
回复 使用道具 举报
学习一下
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报 1 0
看看~~~~~~
回复 使用道具 举报
.....加油
回复 使用道具 举报
来研究一下
回复 使用道具 举报
没抽到这个题,来看看~
回复 使用道具 举报
:)感谢。楼主好人。。
回复 使用道具 举报
:):):):):):)
回复 使用道具 举报
正好5个字
回复 使用道具 举报
谢谢楼主分享哦。。。
回复 使用道具 举报
好人啊。。。。
回复 使用道具 举报
xiexie1111111
回复 使用道具 举报
看看                                               
回复 使用道具 举报
正在为这一道题目烦恼,赶紧来看看
回复 使用道具 举报
很多人的题都是这个啊
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马