C语言打印表头的函数 c语言打印表格

各位大佬C语言程序设计题 , 帮帮忙?/****************************************************************/
/*程序:学生成绩管理系统*/
/*功能:主菜单的选择*/
/*作者:戴鹏*/
/*时间:2019-12-11*/
/*修改:(请修改为自己的姓名)*/
/*时间:2019-12-*/
/****************************************************************/
#include "stdafx.h"
#include iostream
#includestdio.h
#includestdlib.h
#includeconio.h
//#include memory.h
#includestring
using namespace std;
#define MAX_SIZE 30//学生成绩单最大长度
#define MATH_COL 0//数学成绩的列号
#define CHI_COL 1//语文成绩的列号
#define ENG_COL 2//英语成绩的列号
#define AVE_COL 3//平均成绩的列号
//输入一条学生记录
void InputLst(char *number, char *name, float *score)
{
printf("请输入学号:");//输入学号
gets(number);
printf("请输入姓名:");//输入姓名
gets(name);
score[AVE_COL]=0;
printf("请输入数学成绩:");//输入数学成绩
cinscore[MATH_COL];
score[AVE_COL] =score[MATH_COL];
printf("请输入语文成绩:");//输入语文成绩
cinscore[CHI_COL];
score[AVE_COL] =score[CHI_COL];
printf("请输入英语成绩:");//输入英语成绩
cinscore[ENG_COL];
score[AVE_COL] =score[ENG_COL];
score[AVE_COL]/=3;//计算平均成绩
}
int main(void)
{
int stuListSize;//学生成绩单实际长度,初始情况下长度为0
char number[MAX_SIZE][10]; //学号
char name[MAX_SIZE][11]; //姓名
float score[MAX_SIZE][4]; //各科成绩,按照数组第二维下标,分别对应数学、语文、英语、平均成绩
int statistics[4][5];//分段统计结果,分数段分别是[100,90],(90,80],(80,70],(70,60],(60,0]
char subject[4][5]={"数学","语文","英语","平均"}; //科目名称
//统计成绩模块使用
char choice;//表示编号
int n,i,j;
stuListSize=0;//创建空表
do
{
system("cls");
printf("*------------------------------------------------------------*\n");
printf("|中国****大学学生成绩管理系统|\n");
printf("|请输入选项编号(0~8):|\n");
printf("|------------------------------------------------------------|\n");
printf("||\n");
printf("|1 —— 创建成绩单|\n");
printf("|2 —— 添加学生|\n");
printf("|3 —— 编辑学生|\n");
printf("|4 —— 删除学生|\n");
printf("|5 —— 查找学生|\n");
printf("|6 —— 浏览成绩单|\n");
printf("|7 —— 排序成绩单|\n");
printf("|8 —— 统计成绩|\n");
printf("|0 —— 退出|\n");
printf("|------------------------------------------------------------|\n");
printf("|开发者:软件工程系-戴鹏@2019|\n");
printf("*------------------------------------------------------------*\n");
printf("请同学们自己完成:3,5,7三个功能 。\n");
【C语言打印表头的函数 c语言打印表格】choice=getch();//接收选项
switch(choice)//实现点菜
{
case '1'://创建成绩单
if(stuListSize0) //非空表
{
printf("\n不能重新创建学生成绩单!\n");
}
else//空表
{
printf("请输入学生人数:");//输入学生人数
scanf("%d",n);
if(n0n=MAX_SIZE) //学生人数合法,[1,MAX_SIZE]
{
for(i=0;in;i) //输入n个学生
{
fflush(stdin);//清空键盘缓冲区
printf("请输入第-条记录\n",i 1);
InputLst(number[i],name[i],score[i]);
}
stuListSize=n; //设置当前表长为n;
printf("创建%d条学生记录成功!\n",stuListSize);
}
else//学生人数不合法
{
printf("学生人数范围应在[1,%d]之间,创建学生成绩单失败!\n",MAX_SIZE);
}
}
break;
case '2':
printf("您选择了\"2 —— 添加学生\"\n");
if(stuListSize==MAX_SIZE)
{
printf("学生人数范围应在[1,%d]之间,添加学生失败!\n",MAX_SIZE);
}
else if(stuListSize==0)
{
printf("成绩单为空,请先创建成绩单!\n");
}
else
{
fflush(stdin);//清空键盘缓冲区
printf("请输入第-条记录\n",stuListSize 1);
InputLst(number[stuListSize],name[stuListSize],score[stuListSize]);
printf("请输入学号:");//输入学号
gets(number[stuListSize]);
for(i=0;istuListSize;i) //学号不能重复
{
if(strcmp(number[i],number[stuListSize])==0)
{
printf("输入学号重复!请重新输入!");
break;
}
}
if(i==stuListSize)
InputLst(number[i],name[i],score[i]);
}
break;
case '3'://请完成(可以编辑每一个学生的信息)
printf("您选择了\"3 —— 编辑学生\"\n");
// 请补充以下代码;
break;
case '4': //请完成(可以根据学号删除学生)
printf("您选择了\"4 —— 删除学生\"\n");
fflush(stdin);
printf("请输入学号:");
gets(number[stuListSize]);
for(i=0;istuListSize;i)
{
if(strcmp(number[i],number[stuListSize])==0)
{
if(i==stuListSize-1)
stuListSize--;
else {
for(j=0;j10;j)
{
char temp;
temp=number[i][j];
number[i][j]=number[stuListSize-1][j];
number[stuListSize-1][j]=temp;
}
stuListSize--;
}
}
if(i==stuListSize)
printf("查找不到该学生!");
}
break;
case '5':
printf("您选择了\"5 —— 查找学生\"\n");
// 请补充以下代码;
break;
case '6'://浏览成绩单
if( 0 == stuListSize ) //表空
{
printf("无学生记录 , 请创建成绩单或添加学生!\n");
}
else//表不空
{
//输出表头
printf("%4sssssss\n",
"序号","学号","姓名","数学","语文","英语","平均");
for(i=1;i=68;i)
putchar('=');
printf("\n");
//输出表体
for(i=0;istuListSize;i) //输出stuListSize个学生成绩信息
{
printf("Mss",i 1,number[i],name[i]); //输出学号、姓名
for(j=0;j4;j)//输出数学、语文、英语、平均成绩
printf(".1f",score[i][j]);
printf("\n");
}
}
break;
case '7': //排序成绩单
printf("您选择了\"7 —— 排序成绩单\"\n");
// 请补充以下代码;
break;
case '8':
if( 0== stuListSize ) //表空
{
printf("无学生记录,请创建成绩单!\n");
break;//结束switch
}
memset(statistics,0,sizeof(statistics));//初始化statistics数组元素都为0
for(i=0;istuListSize;i)//统计
{
for(j=0;j4;j)
{
if( score[i][j]=100score[i][j]=90 ) //[100,90]
statistics[j][0];
else
if( score[i][j]90score[i][j]=80 ) //(90,80]
statistics[j][1];
else
if( score[i][j]80score[i][j]=70 ) //(80,70]
statistics[j][2];
else
if( score[i][j]70score[i][j]=60 ) //(70,60]
statistics[j][3];
else
statistics[j][4];
}
}
//显示统计结果
printf("ssssss\n",//打印表头
"科目","90分以上","80~89","70~79","60~69","60分以下");
for(i=0;i4;i) //打印四行数据(4科),每行包括:科目名称,5个分数段人次数
{
printf("s",subject[i]);
for(j=0;j5;j)
printf("d",statistics[i][j]);
printf("\n");
}
break;
case '0':
printf("您选择了\"0 —— 退出\"\n");
break;
default:
printf("非法输入\n");
break;
}
system("pause");//提示用户“按任意键继续......”
}while(choice!='0');//当选择0编号时退出系统
return 0;
}
c语言如何给二维数组打表头如果 int a[M][N] 是一个已赋值的数组,则可以用以下的语句段以矩阵形式打印这个数组:
int i,j;
for(i=0;iM;i)
{
for(j=0;jN;j)
printf("m",a[i][j]);
printf("\n");
}
C语言里fgets函数怎么用?fgets(由文件中读取一字符串)
表头文件
includestdio.h
定义函数
char * fgets(char * s,int size,FILE * stream);
函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止 , 最后会加上NULL作为字符串结束 。
返回值
gets()若成功则返回s指针 , 返回NULL则表示有错误发生 。
范例
#includestdio.h
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
执行
this is a test /*输入*/
this is a test /*输出*/
C语言打印输出函数printf问题\r只是将光标移动到行首
\n只是将光标移动到下一行
上面的都不会改变已经输出的字符,即\r不会删除字符 , \n也不会将后面的字符改到下一行,都仅仅是光标的移动而已 。
printf输出和我们在文本操作里面的回车不一样的 。
c语言课程设计之学生成绩管理系统设计的程序#includestdio.h
#includeconio.h
#include stdlib.h
#includestring.h
#define MAX 80
#define max 3
int nu=0;
struct classname
{
char name[20];
float score;
};
struct student
{
char no[20];
char std_name[20];
struct classname km[max];
float ave;
float sum;
int save;
};
struct student stu[MAX],*p;
void chushi()
{
int i,j;
for(i=0;iMAX;i)
{
for(j=0;j20;j)
{
stu[i].no[j]=NULL;
stu[i].std_name[j]=NULL;
stu[i].km[j].name[j]=NULL;
stu[i].km[j].score=0;
}
stu[i].ave=0;
stu[i].sum=0;
stu[i].save=0;
}
}
void av()/*求平均值*/
{
int i;
for(i=0;inu;i)
{
stu[i].sum=stu[i].km[1].score stu[i].km[2].score stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
}
}
void first_check()
{
FILE *p;
int i,j;
struct classname frist[max];
for(i=0;imax;i)
{
for(j=0;j20;j)
frist[i].name[j]=NULL;
frist[i].score=0;
}
if ((p=fopen("c:\\kemu.txt","r"))==NULL)
{
printf("您好,欢迎使用学生成绩管理系统\n\n因为您是第一次使用 , 请输入科目名称(三科)\n\n");
p=fopen("c:\\kemu.txt","w");
printf("输入课程1名称:");
scanf("%s",frist[0].name);
fprintf(p,"%s\n",frist[0].name);
printf("输入课程2名称:");
scanf("%s",frist[1].name);
fprintf(p,"%s\n",frist[1].name);
printf("输入课程3名称:");
scanf("%s",frist[2].name);
fprintf(p,"%s\n",frist[2].name);
}
system("cls");
fclose(p);
}
void save_nu()
{
FILE *p;
p=fopen("c:\\renshu.txt","w");
fprintf(p,"%d\n",nu);
fclose(p);
}
void Save_add(int n)
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","at");
if (p == NULL)
{
printf("文件不存在?。n");
exit(0);
}
save_nu();
for (i = 0;in;i)
if(stu[i].save==1)
{
stu[i].sum=stu[i].km[1].score stu[i].km[2].score stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}
void Save()
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","w");
if (p == NULL)
{
printf("文件不存在?。n");
exit(0);
}
save_nu();
for (i = 0;inu;i)
if(stu[i].save==1)
{
av();
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}
int read_nu()
{
FILE *p;
char ch,s[10]={'\0'};
int i=0;
p=fopen("c:\\renshu.txt","r");
if(p==NULL)
{
save_nu();
return 0;
}
ch=fgetc(p);
while(ch!='\n')
{
s[i]=ch;
ch=fgetc(p);
i;
}
nu=atoi(s);
fclose(p);
return 0;
}
int read_km()
{
FILE *p;
int i,j=0;
char s[20]={'\0'};
chushi();
p=fopen("c:\\kemu.txt","r");
if(p==NULL)
{
printf("ERROR read_km");
return 0;
}
fgets(s,20,p);
while(strlen(s)!=0)
{
for(i=0;istrlen(s);i)
if(s[i]==10)
{
s[i]='\0';
break;
}
for(i=0;i=nu;i)
strcpy(stu[i].km[j].name,s);
for(i=0;i20;i)
s[i]='\0';
j;
fgets(s,20,p);
}
}
void read()
{
FILE *p;
int i,j,n,k,z=0;
char s[50]={'\0'};
char o[10]={'\0'};
p=fopen("c:\\cheji.txt","r");
if(p==NULL)
printf("ERROR_read");
chushi();
read_km();
fgets(s,50,p);
while(strlen(s)!=0)
{
j=0;
for(i=0;i50;i)
{
if(s[i]!='\n')
{
n=0;
while(j==0)
{
if(s[i]!=' ')
{
stu[z].no[n]=s[i];
n;i;
}
else
break;
}
while(j==1)
{
if(s[i]!=' ')
{
stu[z].std_name[n]=s[i];
n;i;
}
else
break;
}
while(j==2)
{
if(s[i]!=' ')
{
o[n]=s[i];
n;i;
}
else
{
stu[z].km[0].score=atoi(o);
break;
}
}
while(j==3)
{
if(s[i]!=' ')
{
o[n]=s[i];
n;i;
}
else
{
stu[z].km[1].score=atoi(o);
break;
}
}
while(j==4)
{
if(s[i]!=' ')
{
o[n]=s[i];
n;i;
}
else
{
stu[z].km[2].score=atoi(o);
break;
}
}
while(j==5)
{
if(s[i]!=' ')
{
o[n]=s[i];
n;i;
}
else
{
stu[z].ave=atoi(o);
break;
}
}
while(j==6)
{
if(s[i]!=' ')
{
o[n]=s[i];
n;i;
}
else
{
stu[z].sum=atoi(o);
break;
}
}
for(k=0;k10;k)
o[k]='\0';
}
else
break;
j;
}
for(i=0;i50;i)
s[i]='\0';
fgets(s,50,p);
z;
}
}
void putin()
{
int n,i=0;
char ch;
read_km();
do
{
printf("\t\t\t\t录入学员信息\n输入第%d个学员的信息\n",i 1);
printf("\n输入学生编号:");
scanf("%s",stu[i].no);
printf("\n输入学员姓名:");
scanf("%s",stu[i].std_name);
printf("\n输入课程%s的分数:",stu[0].km[0].name);
scanf("%f",stu[i].km[0].score);
printf("\n输入课程%s的分数:",stu[0].km[1].name);
scanf("%f",stu[i].km[1].score);
printf("\n输入课程%s的分数:",stu[0].km[2].name);
scanf("%f",stu[i].km[2].score);
stu[i].save=1;
printf("\n\n");
i;
n=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'ch!='N');
system("cls");
if(nu==0)
{
nu=n;
Save();
}
else
{
nu=n nu;
Save_add(n);
}
}
int putout()
{
int i;char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
read();
do
{
printf("学生成绩信息:\n\n");
for(i=0;inu;i)
printf("学号:%s 姓名:%s\n%s分数:%2.1f\t%s分数:%2.1f\t%s分数:%2.1f\n平均分数:%2.1f\t总成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].ave,stu[i].sum);
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}
int sort()/*排序数据函数*/
{
struct student temp;
int i,j;
char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
for(i=1;inu;i)
{
for(j=1;j=nu-i;j)
{
if(stu[j-1].avestu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
do
{
printf("学生成绩信息:\n\n");
for(i=0;inu;i)
printf("学号:%s 姓名:%s平均成绩:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].ave);
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}
void find()/*查询函数*/
{
int j,i=0;
int c=0;
char search[10]={'\0'};
char as;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
do
{
printf("输入要查询课程名称:");
scanf("%s",search);
for(j=0;jmax;j)
if(!strcmp(stu[i].km[j].name,search))
{
c=1;
printf("\n该课程不及格学生姓名:\n");
for(i=0;inu;i)
if(stu[i].km[j].score60)
printf("%s\n",stu[i].std_name);
}
if(c==0)
printf("无此课程!");
printf("\n\t\t按任意键返回主菜单");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void tongji()
{
int j,m,z,i=0;
char s;
if(nu==0)
{
printf("学生信息为零!请录入...");
return 0;
}
chushi();
read();
for(z=0;zmax;z)
{
m=stu[i].km[z].score;j=0;
printf("%s 最高分: ",stu[i].km[z].name);
for(i=0;inu;i)
if(mstu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
j=0;i=0;m=stu[i].km[z].score;
printf("%s 最低分: ",stu[i].km[z].name);
for(i=0;inu;i)
if(mstu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
m=0;j=0;i=0;
printf("%s 平均分: ",stu[i].km[z].name);
for(i=0;inu;i)
m=m stu[i].km[z].score;
printf("%d\n",m/nu);
m=0;i=0;
printf("%s 分数低于的60人数: ",stu[i].km[z].name);
for(i=0;inu;i)
if(stu[i].km[z].score60)
m;
printf("%d\t",m);
m=0;j=0;i=0;
printf("%s 分数高于60的人数: ",stu[i].km[z].name);
for(i=0;inu;i)
if(stu[i].km[z].score60)
m;
printf("%d\n\n",m);
}
do
{
printf("\t\t按任意键返回主菜单");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}
void main()/*主函数*/
{
int as;
first_check();
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.查询不及格学生\n\t\t\t\t5.统计信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
read_nu();
scanf("%d",as);
switch(as)
{
case 1:system("cls");putin();break;
case 2:system("cls");putout();break;
case 3:system("cls");sort();break;
case 4:system("cls");find();break;
case 5:system("cls");tongji();break;
case 6:system("exit");exit(0);
default:system("cls");goto start;
}
}
while(1);
/*至此功能选择结束*/
}
C语言 打印结构体内容的函数怎么写?你好C语言打印表头的函数,你说的结构体的内容指什么C语言打印表头的函数?成员数据还是别的什么C语言打印表头的函数,是全部还是其中哪几个?一般来说如果是要打印其中的成员信息就是写一个成员函数,根据需要的格式调用printf去控制打印 。
C语言打印表头的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言打印表格、C语言打印表头的函数的信息别忘了在本站进行查找喔 。

    推荐阅读