| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:我是小白,请各位大神看看这个程序哪里有错误,改了很久都不对
取消只看楼主 加入收藏
叶不珏
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
我是小白,请各位大神看看这个程序哪里有错误,改了很久都不对
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXN 100 //一个班最多的人数
#define MAXM 10 //最多课程门数

 void input();
void search();
void sort();
void save();
void load();
void print();
main()
{

 //欢迎首界面
 char a,b;
 char subject[MAXM][12]; //保存所有课程名称
char number[MAXN][10]; //保存全班学号
char name[MAXN][20]; //保存全班姓名
float score[MAXN][MAXM]; //保存全班所有课程成绩
float sum[MAXN]; //保存全班总成绩
int n,m; //n,m保存全班实际人数和课程数
 do
 {
  scanf("%c",&a);
  if(a!=10)  //a为课程
  {
   printf("                    您输入有误,请重新输入,谢谢!!!\n");
   scanf("%c",&b);
  }
  b=a;
 }
 while(b!=10);
 system("cls");
                                                  //功能选择界面
 int select;
   while(1)  
   {
    system("cls");
    printf("           ***********欢迎进入XX X学院学生管理系统***********\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("                      9.学生成绩报表打印\n");
    printf("                      0.退出系统\n");
    printf("\n");
    printf("\n");
    printf("\n                   请输入您的选择编号,回车键确定:\n");
    printf("        ------------------------------------------------------------------\n");
    scanf("%d",&select);
    switch(select)
    {  
     case 1:input();break;
     case 2:search();break;

     case 6:sort();break;
     case 7:save();break;
     case 8:load();break;
     case 9:print();break;  
     case 0:printf("                     谢谢您的使用。\n");

}
   }
}  

//输入成绩模块
void input()  
{
system("cls");
int i,j,n,m;
char subject[j];
char number[i];
char name[i];
char sum[i];

printf("           ***********新建学生成绩信息***********\n");
printf("\n");
printf("\n");  
printf("\n           请输入全班人数:");
scanf("%d",&n);  //n为学生人数
printf("\n           请输入课程门数:");
scanf("%d",&m);  //m为课程门数
printf("\n           请输入%d门课程名称\n",m);
for(j=0;j<m;j++)  
{  
printf("\n           第%d门课程名称:",j+1);
scanf("%s",subject[j]);
}  
printf("\n           第%d个学生数据\n",n);
for(i=0;i<n;i++)
{  
printf("\n           请输入第%d个人的数据\n",i+1);
printf("\n           学号:");
scanf("%s",number[i]);
printf("\n           姓名:");
scanf("%s",name[i]);  
printf("\n           %d门课程的成绩:\n",m);  
sum[i]=0;

//边输入边统计总成绩
char score[i][j];

for(j=0;j<m;j++)
{  
printf("           %s成绩:",subject[j]);
scanf("            %f成绩",&score[i][j]);
sum[i]=sum[i]+score[i][j];
}
}
}  

//查询成绩模块
void search()
{
long char students[index].number;//147行
char students[index].name;
system("cls");
int j;
int search1();
int search2();
int select,index;
printf("\n              ***********查询学生成绩信息***********\n");
while(1)
{  
printf("\n                         1.按学号查询\n");
printf("                         2.按姓名查询\n");
printf("                         0.返回\n");  
printf("\n                         请输入您的选择编号:");
printf("\n              ---------------------------------------\n");
scanf("%d",&select);  
switch(select)
{  
case 1:index=search1(); break;
case 2:index=search2();break;
case 0:return;
}  
if(index!=-1)
{  
printf("\n               学号    :%s\n",students[index].number); //怎么定义
printf("\n               姓名    :%s\n",students[index].name);





 
for(j=0;j<m;j++)
{  
printf("\n              %s成绩    :",subject[j]);
printf("%.2f\n",score[index][j]);
}  
printf("\n               总成绩  :%.2f\n",sum[index]);
printf("\n               平均成绩:%.2f\n",sum[index]/m);
printf("\n               您还可以继续查询其他学生成绩信息:\n");  
}  
else printf("\n              没有这个同学。\n");
}
}

//按学号查询模块
 int search1()
{
system("cls");
int i;  
char s_number[10];  
printf("               请输入要查询的学号:\n");
scanf("%s",s_number);
printf("               该同学的信息如下:\n");
for(i=0;i<n;i++)  
if(strcmp(number[i],s_number)==0)
break;
if(i<n)
return i;
else return -1;
}  

//按姓名查询模块
int search2()
{
system("cls");
int i;  
char s_name[10];  
printf("                   请输入要查询的姓名:");
scanf("%s",s_name);
for(i=0;i<n;i++)  
if(strcmp(name[i],s_name)==0)
break;
if(i<n)  
return i;
else return -1;
}  

//排名模块
void sort()
{
system("cls");
void sort1();
void sort2();
void sort3();
int select;
while(1)
{
printf("           ***********学生成绩排名信息***********\n");
printf("\n                      1.按学号排名\n");
printf("                      2.按姓名排名\n");
printf("                      3.按总成绩排名\n");
printf("                      0.返回\n");  
printf("\n                    请输入您的选择编号:\n");
printf("           --------------------------------------\n");
scanf("%d",&select);
switch(select)
{  
case 1:sort1();break;
case 2:sort2();break;
case 3:sort();break;  
case 0:return;
}
}
}  

//按学号排名模块
void sort1()
{
system("cls");
int i,j,k;  
char x_number[10];
char x_name[20];
float x;  
for(i=0;i<n-1;i++)
{
k=i;  
for(j=i+1;j<n;j++)  
if(strcmp(number[i],number[k])<0)
k=j;
if (k!=i)
{  
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(x_name,name[i]);  
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{  
x=score[i][j];
score[i][j]=score[k][j];
score[k][j]=x;
}  
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}  
printf("排序完毕.\n");
}  

//按姓名排名模块
void sort2()  
{
system("cls");
int i,j,k;  
char x_number[10];
char x_name[20];
float x;  
for(i=0;i<n-1;i++)
{
k=i;  
for(j=i+1;j<n;j++)  
if(strcmp(name[j],name[k])<0)
k=j;
if(k!=i)
{  
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{  
x=score[i][j];
score[i][j]=score[k][j];
score[k][j]=x;
}  
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}  
printf("排序完毕.\n");
}

//按总成绩排名模块  
void sort3()
{
system("cls");
int i,j,k;  
char x_number[10];
char x_name[20];
float x;  
for(i=0;i<n-1;i++)
{
k=i;  
for(j=i+1;j<n;j++)
if(sum[j]<sum[k])
k=j;
if(k!=i)
{  
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(x_name,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{  
x=score[i][j];  
score[i][j]=score[k][j];
score[k][j]=x;
}  
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}  
printf("排序完毕.\n");
}

//保存成绩模块  
void save()
{
system("cls");
FILE *fp;
char filename[20];
int i,j;  
printf("                 请输入文件名: ");
scanf("%s",filename);  
if((fp=fopen(filename, "w"))==NULL)
{  
printf("                 打开文件失败.\n");
return;
}  
fprintf(fp, "%d %d",n,m);
for(j=0;j<m;j++)  
fprintf(fp, "%s",subject[j]);
for(i=0;i<n;i++)
{  
fprintf(fp, "%s %s",number[i],name[i]);
for(j=0;j<m;j++)  
fprintf(fp, "%5.1f",score[i][j]);
}
fclose(fp);  
printf("                 保存完毕.\n");
}  

// 提取成绩模块
void load( )  
{  
system("cls");
FILE * fp;
char filename[20];
int i,j;  
printf ("                请输入文件名:");
scanf("%s",filename);  
if ((fp=fopen(filename,"r"))==NULL)
{  
printf("                 文件不存在.\n");
return;
}  
fscanf(fp,"%d%d",&n,&m);
for(j=0;j<m;j++)  
fscanf(fp,"%s",subject[j]);
for(i=0;i<n;i++)
{  
fscanf(fp,"%s%s",number[i],name[i]);
sum[i]=0;
for(j=0;j<m;j++)
{  
fscanf(fp,"%f",&score[i][j]);
sum[i]=sum[i]+score[i][j];
}
}
fclose(fp);  
printf("                 提取完毕.\n");
}

//打印成绩报表模块
void print()
{
system("cls");
void print1();
void print2();
int select;
printf("           ***********打印学生成绩信息***********\n");
printf("\n");
printf("\n");
printf("                      1.屏幕显示报表\n");  
printf("                      2.打印机打印报表\n");
printf("                      0.返回\n");  
printf("\n                    请输入您的选择编号:");
printf("\n          --------------------------------------\n");
scanf("%d",&select);
switch(select)
{
case 1:print1();break;
case 2:print2();break;
case 0:return;  
}  
}

// 屏幕显示报表模块
void print1()  
{
system("cls");
int i,j;  
printf("                            成绩总表\n");
printf("                            学号姓名:");
for (j=0;j<m;j++)
printf("%10s",subject[j]);
printf("                            总成绩平均成绩\n");
for (i=0;i<n;i++)
{  
printf("%8s %8s",number[i],name[i]);  
for (j=0;j<m;j++)  
printf("%6.1f",score[i][j]);  
printf("%6.1f %6.2f\n",sum[i],sum[i]/m);
}  
printf("                            显示完毕.\n");
}

// 打印机打印报表模块  
void print2( )  
{
system("cls");  
FILE * fp;
int i,j;  
printf("                        请准备好打印机,按任意键继续…\n");
scanf("% * c");  
if ((fp=fopen("prn","w"))==NULL)
{  
printf("                        打印机没有准备好.\n");
return;
}  
fprintf(fp,"                    成绩总表\n");
fprintf(fp,"                    学号姓名\n");
for (j=0;j<m;j++ )  
fprintf(fp,"%10s",subject[j]);
fprintf(fp,"                    总成绩平均成绩\n");  
for(i=0;i<n;i++)
{  
fprintf(fp,"%6.1f",score[i][j]);  
fprintf(fp,"%8s %8s",number[i],name[i]);

for (j=0;j<m;j++)  
fprintf(fp,"%6.1f %6.2f\n",sum[i],sum[i]/m);
}
fclose(fp);  
printf("                        打印完毕.\n");
}
搜索更多相关主题的帖子: number search include 总成绩 
2016-12-12 22:41
快速回复:我是小白,请各位大神看看这个程序哪里有错误,改了很久都不对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018717 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved