C语言实验报告

题目:综合性程序设计
一、实验目的
二、实验内容
利用结构体数据类型编程实现从键盘输入20个学生的信息,包括:姓名、学号、性别、年龄以及三门课程(英语、数学、程序设计)的成绩并计算其总分,并将这些信息以文件形式保存到磁盘。
三、实验器材
Windows操作系统、PC机一台、TC或C++
四、实验步骤
流程图
代码
结果
结果分析

请帮忙把第四步写出来
邮箱:[email protected]


// 要求,在输入姓名的时候请不要有空格,比如ZhangSan 不能为Zhang San
//你的题目要求不是很详细,这个大概能满足你的需求
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;
#define MAX_NUM 30

struct STUDENT
{
string stuName; //姓名
string stuSex; //性别 m f
int stuNum; //学号
double stuScore[3]; //成绩
double stuAver; //平均成绩
double stuAll; //总分
};

void inputData(STUDENT stu[],int &ID)
{
cout<<"请分别输入该学生的姓名,性别,学号,3科成绩"<<endl;
cin>>stu[ID].stuName>>stu[ID].stuSex>>stu[ID].stuNum>>stu[ID].stuScore[0];
cin>>stu[ID].stuScore[1]>>stu[ID].stuScore[2];
cin>>stu[ID].stuScore[4];
// 总分,平均分

stu[ID].stuAll=(stu[ID].stuScore[0]+stu[ID].stuScore[1]+stu[ID].stuScore[2]);
stu[ID].stuAver=stu[ID].stuAll/3.0;

cout<<"录入成功!"<<endl;
ID++;
}

void showTable()
{
cout<<" 姓名 性别 学号 课程1 课程2 课程3 总分 平均分"<<endl;
}

void showData(STUDENT stu[],int ID)
{
cout<<setw(8)<<stu[ID].stuName<<setw(7)<<stu[ID].stuSex<<setw(7)<<stu[ID].stuNum<<setw(7)<<stu[ID].stuScore[0];
cout<<setw(7)<<stu[ID].stuScore[1]<<setw(7)<<stu[ID].stuScore[2];
cout<<setw(7)<<stu[ID].stuAll<<setw(7)<<stu[ID].stuAver<<endl;
}

void queryData(STUDENT stu[],int ID)
{
string stuName;
cout<<"请输入要查询的姓名:";
cin>>stuName;
cout<<endl;
for(int i=0;i<ID;i++)
{
if(stu[i].stuName==stuName)
{
cout<<"信息找到"<<endl;
showTable();
showData(stu,i);
system("pause");
return ;

}
}
cout<<"未找到信息"<<endl;
}

//总分排序
void sortByAll(STUDENT stu[],int ID)
{
int i,j;
STUDENT temp;
for(i=0;i<ID-1;i++)
{
for(j=i+1;j<ID;j++)
{
if (stu[i].stuAll > stu[j].stuAll)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"<<endl;
}

void funTable()
{
cout<<"================================="<<endl;
cout<<" 1---输入学生信息"<<endl;
cout<<" 2---查询学生信息"<<endl;
cout<<" 3---总分排序"<<endl;
cout<<" 4---显示当前学生信息"<<endl;
cout<<" 5---退出"<<endl;
cout<<"=================================="<<endl;
cout<<"请给出你的选择:"<<endl;
}

int main()
{
STUDENT stu[MAX_NUM]; //开辟30个空间来存放学生信息;
int ID=0; //用来计数,记当前学生信息的总数
char ch;
bool flag=true;
int i;
while(flag)
{
funTable();
cin>>ch;

switch (ch)
{
case '1':
inputData(stu,ID);
break;
case '2':
queryData(stu,ID);
break;
case '3':
sortByAll(stu,ID);
break;
case '4':
showTable();
for(i=0;i<ID;i++)
{
showData(stu,i);
}
break;
default:
cout<<"用户选择退出……"<<endl;
system("pause"); //暂停
flag=false;
break;
}
system("pause"); //暂停
system("cls"); //清屏
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-25
呵呵,就这样发一贴会有人帮你写吗?追问

没办法呀,不然怎么办?

追答

难到是不难,不过估计愿意帮你写的人不多
一般都是应该自己写的,呵呵~

追问

我不会呀,你要多少分嘛

追答

分对我来说无所谓
如果你在编程的过程中遇到问题,我可以帮你解答.但是你根本就一句不会就找人帮你写~~那也太那什么点吧.
而且我也没WINDOWS环境.只有LINUX环境的C语言.
不过你这么简单的东西,什么C都一样.

而且我现在天天写文档,最烦写文档了

自己定义一个结构体类型,包括你上面说的所有字段,然后定义一个结构体数组.
允许界面输入,就用scanf获取数据.也可以从文件里读取,和保存在文件里的.
然后写个查询和打印出来,有什么难的呢?最多300行代码就OK了

================
这么久也没见你回复,看来是算了?

相似回答