怎样用C++程序将一千组数据按表格形式输出,用户有选择性输出。
怎样用C++程序读出一个有一千组数据的文件并将这一千组数据按表格形式输出,如首先输出全体数据学号姓名年龄成绩性别0001李辉2085男0002李娟2175女。。。。然后可...
怎样用C++程序读出一个有一千组数据的文件并将这一千组数据按表格形式输出,如首先输出全体数据 学号 姓名 年龄 成绩 性别
0001 李辉 20 85 男
0002 李娟 21 75 女
。。。。
然后可以按用户选择,输出这一千组数据的指定的数据,如一千个学生的数据,只输出其中每个人的学号、 姓名和(年龄,成绩或性别。。。)
如(用户选择年龄)输出 学号 姓名 年龄
0001 李辉 20
0002 李娟 21 展开
0001 李辉 20 85 男
0002 李娟 21 75 女
。。。。
然后可以按用户选择,输出这一千组数据的指定的数据,如一千个学生的数据,只输出其中每个人的学号、 姓名和(年龄,成绩或性别。。。)
如(用户选择年龄)输出 学号 姓名 年龄
0001 李辉 20
0002 李娟 21 展开
2个回答
展开全部
#include<iostream.h>
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
//定义程序变量
int id=1000,z=1,ag,r,w=0,d[1000],j=1,h=1,b=1;
char nam[1000][20],sex[10];
float sc,T[1000];
//打开一个用于读取的文件
FILE *fin, *fout;
fin = fopen("C:\\学生数据表.xls","r");
//当目标文件不存在或已经损坏时
if(!fin)
{
cout<<"C:\\学生数据表.xls不能打开,请确认该文件是否存在或已损坏!.\n";
}
cout<<"请按以下循序输入学生数据:\n"<<endl;
cout<<"\t\t>>姓名"<<"\t\t>>性别"<<"\t\t>>年龄"<<"\t\t>>得分"<<endl;
fclose (fin);
//fclose()关闭给出的文件流,fclose()执行成功时返回0,否则返回EOF.
fout = fopen("C:\\学生数据表.xls","w");
//打开"学生数据表.xls"进行写入操作
fprintf(fout, "\t\t学生数据表\n");
fprintf(fout, "学号\t姓名\t性别\t年龄\t得分\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do
{
cin>>nam[j]>>sex>>ag>>sc;
//用户键入数据
for(w=z-1;w<z;w++)
{
*(d+j)=ag; *(T+j)=sc;
//for()语句使指针与用户输入的各个数据进行对接
cout<<id+z<<"\t\t"<<nam[j]<<"\t\t"<<sex<<"\t\t"<<ag<<"\t\t"<<sc<<endl;
//用户输入的数据以表格形式输出
fprintf(fout, "%d\t%s\t%s\t%d\t%0.1f\n",id+z,nam[j],sex,ag,sc);
//将数据对齐写入目标文件
cout<<"(1.退出键入 (2.继续键入?,请选择^_^!"<<"\n"<<endl;
cin>>r;
//用户键入数据后选择离开或继续键入
switch(r)
//用switch()语句处理用户选择
{
case 1:
cout<<"按回车退出输入^_^!"<<"\n"<<endl;
break;
case 2:
cout<<"请输入你要存储的数据^_^!"<<"\n"<<endl;
break;
default :
cout<<"什么眼神!大哥,没喝高吧?^_^!"<<"\n"<<"没关系,重来一次,别再弄错了哦!"<<"\n"<<endl;
cout<<"(1.退出键入 (2.继续键入?,请选择^_^!"<<"\n"<<endl;
cin>>r;
break;
}
}
z++;j++;
}
while (r!=1);
fclose(fout);
fout = fopen("C:\\学生基本资料.xls","w");
//新建并打开"学生基本资料.xls"进行写入操作
fprintf(fout, "\t学生资料表\n");
fprintf(fout, "学号\t姓名\t年龄\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do {
fprintf(fout, "%d\t%s\t%d\n",id+h,nam[h],*(d+h));h++;
//将数据以表格式写人入目标文件
}
while (h<z);
fclose(fout);
//关闭并保存"学生基本资料.xls"
fclose(fout);
fout = fopen("C:\\学生学科成绩.xls","w");
//新建并打开"学生学科成绩.xls"进行表格式写入操作
fprintf(fout, "\t学生成绩表\n");
fprintf(fout, "学号\t姓名\t得分\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do
{
fprintf(fout, "%d\t%s\t%0.1f\n",id+b,nam[b],*(T+b));b++;
//将数据以表格式写人入目标文件
}
while (b<z);
fclose(fout);
//关闭并保存"学生学科成绩.xls"
}
#include<string.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
//定义程序变量
int id=1000,z=1,ag,r,w=0,d[1000],j=1,h=1,b=1;
char nam[1000][20],sex[10];
float sc,T[1000];
//打开一个用于读取的文件
FILE *fin, *fout;
fin = fopen("C:\\学生数据表.xls","r");
//当目标文件不存在或已经损坏时
if(!fin)
{
cout<<"C:\\学生数据表.xls不能打开,请确认该文件是否存在或已损坏!.\n";
}
cout<<"请按以下循序输入学生数据:\n"<<endl;
cout<<"\t\t>>姓名"<<"\t\t>>性别"<<"\t\t>>年龄"<<"\t\t>>得分"<<endl;
fclose (fin);
//fclose()关闭给出的文件流,fclose()执行成功时返回0,否则返回EOF.
fout = fopen("C:\\学生数据表.xls","w");
//打开"学生数据表.xls"进行写入操作
fprintf(fout, "\t\t学生数据表\n");
fprintf(fout, "学号\t姓名\t性别\t年龄\t得分\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do
{
cin>>nam[j]>>sex>>ag>>sc;
//用户键入数据
for(w=z-1;w<z;w++)
{
*(d+j)=ag; *(T+j)=sc;
//for()语句使指针与用户输入的各个数据进行对接
cout<<id+z<<"\t\t"<<nam[j]<<"\t\t"<<sex<<"\t\t"<<ag<<"\t\t"<<sc<<endl;
//用户输入的数据以表格形式输出
fprintf(fout, "%d\t%s\t%s\t%d\t%0.1f\n",id+z,nam[j],sex,ag,sc);
//将数据对齐写入目标文件
cout<<"(1.退出键入 (2.继续键入?,请选择^_^!"<<"\n"<<endl;
cin>>r;
//用户键入数据后选择离开或继续键入
switch(r)
//用switch()语句处理用户选择
{
case 1:
cout<<"按回车退出输入^_^!"<<"\n"<<endl;
break;
case 2:
cout<<"请输入你要存储的数据^_^!"<<"\n"<<endl;
break;
default :
cout<<"什么眼神!大哥,没喝高吧?^_^!"<<"\n"<<"没关系,重来一次,别再弄错了哦!"<<"\n"<<endl;
cout<<"(1.退出键入 (2.继续键入?,请选择^_^!"<<"\n"<<endl;
cin>>r;
break;
}
}
z++;j++;
}
while (r!=1);
fclose(fout);
fout = fopen("C:\\学生基本资料.xls","w");
//新建并打开"学生基本资料.xls"进行写入操作
fprintf(fout, "\t学生资料表\n");
fprintf(fout, "学号\t姓名\t年龄\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do {
fprintf(fout, "%d\t%s\t%d\n",id+h,nam[h],*(d+h));h++;
//将数据以表格式写人入目标文件
}
while (h<z);
fclose(fout);
//关闭并保存"学生基本资料.xls"
fclose(fout);
fout = fopen("C:\\学生学科成绩.xls","w");
//新建并打开"学生学科成绩.xls"进行表格式写入操作
fprintf(fout, "\t学生成绩表\n");
fprintf(fout, "学号\t姓名\t得分\n");
//fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
do
{
fprintf(fout, "%d\t%s\t%0.1f\n",id+b,nam[b],*(T+b));b++;
//将数据以表格式写人入目标文件
}
while (b<z);
fclose(fout);
//关闭并保存"学生学科成绩.xls"
}
参考资料: 自己编写
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询