模拟程序
这个程序仅供参考,一般类似一些作业型的程序,其真实的的说明和程序请看代码:
/*
该程序使用顺序表的存储方法来进行对问卷的数据分析
问卷的单个个体一共有10个数据域
其中work,age,sex必填,其他的选填
利用数据流的方式将txt文本里的问卷信息读取到创建好的顺序表里
分析填答各题的人数和百分比,填写问卷的男女数量
分析学生的大多数人对于手机的最高价格的接受的范围
分析男生和女生谁对于手机的像素要求比较高
分析不同年龄段对cpu性能的在意或不在意
*/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int discoverysum = 100;//调查问卷最多个数
const string filename = "E:\\phone.txt";//问卷数据所在文件处
//手机问卷信息数据
typedef struct Wdata
{
string work;//职业
int age;//年龄
string sex;//性别
string price;//可接受最高价格
string weight;//手机重量
string color;//颜色
int time;//待机时长
string photo;//照片质量
string voice;//音响效果
string cpu;//处理器
}Data;
//总的问卷数据
//用顺序表统计
struct Destovery
{
Data *a;//储存空间的基地址
int length;//当前读取的数据的份数
};
struct head
{
string Lhead;
};
//在文件中读取数据
int DataInsert(Destovery &L)
{
ifstream induf(filename, ios::in);//以读的方式打开文件
char head[150];
int n = 0;//统计数据的个数
induf.seekg(0, ios::beg);//把指针放在文件开头
if (!induf)//若打不开文件,返回
{
cout << "打开文件失败!" << endl;
abort();
}
induf.getline(head,150);//跳过文本的一行标题
//从文件读取值到顺序表里
while (induf >> L.a[n].work >> L.a[n].age >> L.a[n].sex >> L.a[n].price >> L.a[n].weight >> L.a[n].color >> L.a[n].time >> L.a[n].photo >> L.a[n].voice >> L.a[n].cpu)
{
n++;//数据个数+1
}
induf.close();//关闭文件
return n;
}
//每道题答题的人数和百分比
void question(Destovery &L,int sum)//sum为填写问卷人数
{
int worksum=0;//填写总人数
int agesum=0;//填写年龄总人数
int sexsum=0