问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
输入信息但是无法输出
我的解答思路和尝试过的方法
结构体里面的变量用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);
}
}
```