A1410122876 2021-12-14 23:16 采纳率: 50%
浏览 25

如何在不用指针的情况下将用函数输入的信息用函数输出(语言-c++)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

img

img

运行结果及报错内容

输入信息但是无法输出

我的解答思路和尝试过的方法

结构体里面的变量用static型,好像没用

我想要达到的结果

在不用指针的情况下将用函数输入的信息用函数输出


```c++

//需求:建立一个《程序设计基础》课程的成绩统计系统。若成绩组成为:学生作业成绩、上机成绩(综合大作业)和笔试成绩分别占总成绩的15% 、25% 和60% 。
//要求:
//1.    形成4张表:
//作业成绩表(学号,姓名,班级,5次作业成绩,作业成绩)
//上机成绩表(学号,姓名,班级,ppt20, 讲述20,代码60,上机成绩)
//笔试成绩表(基本概念50,综合应用50,笔试成绩)
//总评成绩表(作业成绩15%, 上机成绩25% ,笔试成绩60% ,成绩)
//2    功能模块:录入,修改,删除,查询,登录验证,输出表格。
//3.每张表格包含本小班所有人员。
//4.界面:可以是简单的字符信息界面;也可以自行开展提高,比如使用QT等界面工具(加分)。
#include<iostream>
#include<string>
#include<iomanip>
#define managenum 315
#define managecode 315
using namespace std;

struct homework//作业成绩表
{
     int score1 ;
     int score2 ;
     int score3 ;
     int score4 ;
     int score5 ;
     int homeworkscore ;
    homework() { score1 = 0; score2 = 0; score3 = 0; score4 = 0; score5 = 0; homeworkscore = 0; }
};

struct student//学生结构体
{
    string num ;
    string name ;
    string classroom;
    struct homework hom;
    student() { num = " "; name = " "; classroom = " "; }
};



void displayhomework(student std[4])//输出作业成绩表
{
    cout << "学号" << setw(5) << "姓名" << setw(5) << "班级" << "第一次作业成绩" << setw(5) << "第二次作业成绩" << setw(5) << "第三次作业成绩" << setw(5) << "第四次作业成绩" << setw(5) << "第五次作业成绩" << setw(5)<<"作业成绩" << endl;
    for (int i = 0; i < 4; i++)
    {
        cout << std[i].num << setw(5) << std[i].name << setw(5) << std[i].classroom << setw(5) << std[i].hom.score1 << setw(5) << std[i].hom.score2 << setw(5) << std[i].hom.score3 << setw(5) << std[i].hom.score4 << setw(5) << std[i].hom.score5<<setw(5)<<std[i].hom.homeworkscore << endl;
    }
}
void cinhomework(student std[4])//输入作业成绩单表格
{
    for (int i = 0; i < 4; i++)
    {
        
        cout << "请输入第" << i + 1 << "位同学的学号" << endl;
        cin >> std[i].num;
        if (std[i].num == "0")
        {
            break;
        }
        cout << "请输入第" << i + 1 << "位同学的姓名" << endl;
        cin >> std[i].name;
        cout << "请输入第" << i + 1 << "位同学的班级" << endl;
        cin >> std[i].classroom;
        cout << "请输入第" << i + 1 << "位同学的第一次作业成绩" << endl;
        cin >> std[i].hom.score1;
        cout << "请输入第" << i + 1 << "位同学的第二次作业成绩" << endl;
        cin >> std[i].hom.score2; 
        cout << "请输入第" << i + 1 << "位同学的第三次作业成绩" << endl;
        cin >> std[i].hom.score3;
        cout << "请输入第" << i + 1 << "位同学的第四次作业成绩" << endl;
        cin >> std[i].hom.score4;
        cout << "请输入第" << i + 1 << "位同学的第五次作业成绩" << endl;
        cin >> std[i].hom.score5;
        std[i].hom.homeworkscore = (std[i].hom.score1 + std[i].hom.score2 + std[i].hom.score3 + std[i].hom.score4 + std[i].hom.score5) / 5;
    }
}

void startdisplay(int cinnum, int cincode)//登录验证界面
{
    for (int i = 0; ; i++)
    {
        cout << "请输入管理员账号" << endl;
        cin >> cinnum;
        cout << "请输入管理员密码" << endl;
        cin >> cincode;
        if (cinnum != managenum || cincode != managecode)
        {
            cout << "密码错误,请重新输入" << endl;
        }
        if (cinnum == managenum && cincode == managecode)
        {
            cout << "欢迎进入成绩统计系统" << endl;
            break;
        }
    }
}
void outpage()//展示表格
{
    cout << "请输入表格编号" << endl;
    cout << "A.作业成绩表" << endl;
}

void pagefun()//展示功能大厅
{
    cout<<"请输入功能编号"<<endl;
    cout << "a.录入" << endl;
    cout << "e.登录验证" << endl;
    cout << "f输出表格" << endl;
}
void cinexcell()
{
    cout << "请输入录入表格的编号"<<endl;
    cout << "E.作业成绩表" << endl;
}
void  choosefun(char ch)//输入数字和功能编号对应从而转接到不同的函数
{
    student stdu[4];
    if (ch == 'A')//作业成绩表
    {
        displayhomework(stdu);
    }
    if (ch == 'a')//录入表格
    {
        return cinexcell();
    }
    
    if (ch == 'E')//录入作业成绩表
    {
        student std[4];
        cinhomework(std);
    }
    if (ch == 'e')//登录界面验证
    {
        int a=0, b=0;
        return startdisplay( a,b);
    }
    if (ch == 'f')//进入展示表格
    {
        return outpage();
    }
    if (ch == '1')//返回功能大厅
    {
        return pagefun();
    }


}

void cinpan(char ch)//从键盘输入功能编号
{
    cout << "返回功能大厅请输入1" << endl;
    cin >> ch;
    choosefun(ch);
}

int main()
{
    int cinnum = 0;
    int cincode = 0;
    char ch = 'p';
    student stdu[4];
    cout << "*********成绩统计系统*********" << endl;
    startdisplay(cinnum, cincode);
    pagefun();
    for (int i = 0;; i++)//循环为了确保每次使用功能后都能返回
    {
        cinpan(ch);
    }
}




```

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-12-15 00:01
    关注

    不使用指针可以使用数组方式

    评论

报告相同问题?

问题事件

  • 修改了问题 12月14日
  • 修改了问题 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 求帮看看那里的问题ssh项目报错
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统