| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1837 人关注过本帖
标题:c语言题目求解
只看楼主 加入收藏
ko871330656
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2016-6-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
c语言题目求解
1、输入:函数input把20学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,然后计算出平均成绩和总成绩放在结构体对应的域中。
2、插入:insert 函数输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。
 3、排序:sort函数对所有学生按要求排序(1.学号  2.总成绩  ),并输出。
4、查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。
5、删除:delete函数输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。
 6、输出:函数output 输出全部学生的记录。
7、main调用所有函数,实现全部函数功能。
搜索更多相关主题的帖子: insert 结构体 总成绩 c语言 记录 
2016-06-26 00:39
ko871330656
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2016-6-26
收藏
得分:0 
求大神接一下
2016-06-26 09:48
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:5 
你写多少了?可以先发上来看看
2016-06-26 10:57
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:5 
你先写出自己代码出来。
2016-06-26 11:03
网络小白
Rank: 2
等 级:论坛游民
帖 子:26
专家分:35
注 册:2014-9-13
收藏
得分:5 
我承认我无聊了哈!!!只是写了个框。。没有判断输入条件。。。。小白大神勿喷。


#include <stdio.h>
#include <string.h>


struct student
{
    char name[8] = { 0 };
    int id=0;
    char sex[3] = { 0 };
    int age=0;
    int Math;//数学
    int Language;//语文
    int English;//英语
    int Physical;//物理
    int Average;//平均分
    int Total;//总成绩
}_student[20];



/*************************************************************************

*    函数    :  void input()
*    函数功能:  插入学生信息   
*   
*    不建议在函数内循环打印信息。简易在main函数内循环打印

*************************************************************************/
void input()
{
    for (int i = 0;i < 3;i++)
    {
        printf("请输入学号: ");
        scanf_s("%d", &_student[i].id);
        printf("\n");
        printf("请输入学生姓名:  ");
        scanf_s("%s", _student[i].name,7);
        printf("\n");
        printf("请输入性别: ");
        scanf_s("%s", _student[i].sex,3);
        printf("\n");
        printf("请输入年龄:  ");
        scanf_s("%d", &_student[i].age);
        printf("\n");
        printf("请输入语文的成绩:  ");
        scanf_s("%d", &_student[i].Language);
        printf("\n");
        printf("请输入数学的成绩:  ");
        scanf_s("%d", &_student[i].Math);
        printf("\n");
        printf("请输入物理的成绩:  ");
        scanf_s("%d", &_student[i].Physical);
        printf("\n");
        printf("请输入英语的成绩:  ");
        scanf_s("%d", &_student[i].English);
        printf("\n");
        _student[i].Total = _student[i].English + _student[i].Language + _student[i].Math + _student[i].Physical;
        printf("你的总成绩是: %d", _student[i].Total);
        printf("\n");
        _student[i].Average = _student[i].Total / 4;
        printf("你的平均成绩是: %d\n", _student[i].Average);
            
    }
}


/************************************************************************

*   函数    :  bool insert()
*   函数功能:  插入学生信息

************************************************************************/

bool insert()
{
    printf("请输入要插入的学号: ");
    int Id;
    scanf_s("%d", &Id);


    for (int i = 0;i < 20;i++)
    {
        if (_student[i].id ==0 && _student[i].age==0)
        {
            _student[i].id = Id;
            
            printf("\n");
            printf("请输入学生姓名:  ");
            scanf_s("%s", _student[i].name,7);
            printf("\n");
            printf("请输入性别: ");
            scanf_s("%s", _student[i].sex,3);
            printf("\n");
            printf("请输入年龄:  ");
            scanf_s("%d", &_student[i].age);
            printf("\n");
            printf("请输入语文的成绩:  ");
            scanf_s("%d", &_student[i].Language);
            printf("\n");
            printf("请输入数学的成绩:  ");
            scanf_s("%d", &_student[i].Math);
            printf("\n");
            printf("请输入物理的成绩:  ");
            scanf_s("%d", &_student[i].Physical);
            printf("\n");
            printf("请输入英语的成绩:  ");
            scanf_s("%d", &_student[i].English);
            printf("\n");
            _student[i].Total = _student[i].English + _student[i].Language + _student[i].Math + _student[i].Physical;
            printf("你的总成绩是: %d", _student[i].Total);
            printf("\n");
            _student[i].Average = _student[i].Total / 4;
            printf("你的平均成绩是: %d\n", _student[i].Average);

            return true;
        }
            
    }
    return false;
}
   



/************************************************************************

*   函数    :  bool  sort()
*   函数功能:  通过学号或者总分排序

*************************************************************************/
bool sort()
{
    printf("请输入排序方式:1.按学号排序  2.按总分排序  3.退出排序\n");
    int _sort;
    while (true)
    {
        printf("请输入排序方式: ");
        scanf_s("%d", &_sort);
        if (_sort == 1)
        {
            for (int i = 0;i < 3;i++)
            {
                for (int j = 1;j < 3;j++)
                {
                    if (_student[j - 1].id > _student[j].id)
                    {
                        student  tem = _student[j - 1];
                        _student[j - 1] = _student[j];
                        _student[j] = tem;
                    }
                }
            }

            for (int i = 0;i < 3;i++)
            {
                if (_student[i].age == 0 && _student[i].id == 0)
                {
                    continue;
                }
                printf("\n\n");
                printf("学号:%d  姓名:%s   年龄:%d    性别:%s \n ", _student[i].id, _student[i].name, _student[i].age, _student[i].sex);
                printf("语文:%d  数学:%d    物理:%d    英语: %d \n", _student[i].Language, _student[i].Math, _student[i].Physical, _student[i].English);
                printf("你的总成绩是: %d     你的平均成绩是:  %d\n", _student[i].Total, _student[i].Average);
                printf("\n\n");

            }
        }
   
        else if (_sort == 2)
        {
            for (int i = 0;i < 3;i++)
            {
                for (int j = 1;j < 3;j++)
                {
                    if (_student[j - 1].Total < _student[j].Total)
                    {
                        student tem = _student[j - 1];
                        _student[j - 1] = _student[j];
                        _student[j] = tem;
                    }
                }
            }

            for (int i = 0;i < 3;i++)
            {
                if (_student[i].age == 0 && _student[i].id == 0)
                {
                    continue;
                }
                printf("\n\n");
                printf("学号:%d  姓名:%s   年龄:%d    性别:%s  ", _student[i].id, _student[i].name, _student[i].age, _student[i].sex);
                printf("语文:%d  数学:%d    物理:%d    英语: %d \n", _student[i].Language, _student[i].Math, _student[i].Physical, _student[i].English);
                printf("你的总成绩是: %d     你的平均成绩是:  %d\n", _student[i].Total, _student[i].Average);
                printf("\n\n");
            }
        }
        else if (_sort == 3)
        {
            return true;
        }
    }
    //return false;

}


/**************************************************************************

*   函数    :   bool find()
*   函数功能:   通过姓名或者学号查找学生信息

***************************************************************************/
bool find()
{
    printf("输入1按学号查找,输入2按姓名查找,输入3退出查找\n");
    int n;
    int ID;
    char buff[8];
    while (true)
    {
        printf("请输入查找方式: ");
        scanf_s("%d", &n);
        if (n == 1)
        {
            printf("请输入要查找的学号: ");
            scanf_s("%d", &ID);
            for (int i = 0;i < 3;i++)
            {
                if (ID == _student[i].id)
                {
                    printf("\n\n");
                    printf("学号:%d  姓名:%s   年龄:%d    性别:%s\n", _student[i].id, _student[i].name, _student[i].age, _student[i].sex);
                    printf("语文:%d  数学:%d    物理:%d    英语: %d \n", _student[i].Language, _student[i].Math, _student[i].Physical, _student[i].English);
                    printf("你的总成绩是: %d     你的平均成绩是:  %d\n", _student[i].Total, _student[i].Average);
                    printf("\n\n");
                    break;
                }
               
            }
        }
        else if (n == 2)
        {
            printf("请输入要查找的姓名: ");
            scanf_s("%s", buff,7);
            for (int i = 0;i < 3;i++)
            {
                if (strcmp(_student[i].name,buff)==0)
                {
                    printf("\n\n");
                    printf("学号:%d  姓名:%s   年龄:%d    性别:%s\n", _student[i].id, _student[i].name, _student[i].age, _student[i].sex);
                    printf("语文:%d  数学:%d    物理:%d    英语: %d \n", _student[i].Language, _student[i].Math, _student[i].Physical, _student[i].English);
                    printf("你的总成绩是: %d     你的平均成绩是:  %d\n", _student[i].Total, _student[i].Average);
                    printf("\n\n");
                    break;
                }

            }
        }if (n == 3)
        {
            return true;
        }
        
    }
    //return false;
}


/*******************************************************************

*   函数    :  bool del()
*   函数功能:  通过姓名或者学号删除学员

*********************************************************************/
bool del()
{
    printf("输入1按学号删除,输入2按姓名删除,输入3退出\n");
    int n;
    int ID;
    char buff[8];
    while (true)
    {
        printf("请选择要删除的方式: ");
        scanf_s("%d", &n);
        if (n == 1)
        {
            printf("请输入要删除的学号: ");
            scanf_s("%d", &ID);
            for (int i = 0;i < 3;i++)
            {
                if (ID == _student[i].id)
                {
                    memset(&_student[i], 0, sizeof(_student[i]));
                    break;
                }

            }
        }
        else if (n == 2)
        {
            printf("请输入要删除的姓名: ");
            scanf_s("%s", buff,7);
            for (int i = 0;i < 3;i++)
            {
                if (strcmp(_student[i].name, buff) == 0)
                {
                    memset(&_student[i], 0, sizeof(_student[i]));
                    break;
                }

            }
        }if (n == 3)
        {
            return true;
        }

    }
    //return false;
}


/**************************************************************

*   函数    :    void output()
*   函数功能:   打印所有学生信息

***************************************************************/
void output()
{
    printf("打印所有学生信息\n");
    for (int i = 0;i < 3;i++)
    {
        if (_student[i].age == 0 && _student[i].id == 0)
        {
            continue;
        }
            printf("\n\n");
            printf("学号:%d  姓名:%s   年龄:%d    性别:%s  ", _student[i].id, _student[i].name, _student[i].age, _student[i].sex);
            printf("语文:%d  数学:%d    物理:%d    英语: %d \n", _student[i].Language, _student[i].Math, _student[i].Physical, _student[i].English);
            printf("你的总成绩是: %d     你的平均成绩是:  %d\n", _student[i].Total, _student[i].Average);
            printf("\n\n");
        
    }

}
int main(void)
{

    input();
    printf("\n\n");

    find();
    printf("\n\n");

    del();
    printf("\n\n");

    output();
    printf("\n\n");

    insert();
    printf("\n\n");

    sort();
    printf("\n\n");
   
    output();
    return 0;
}


2016-06-26 13:03
快速回复:c语言题目求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016370 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved