| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 418 人关注过本帖, 1 人收藏
标题:谁能帮我看下程序哪里出错了
取消只看楼主 加入收藏
lingyiniao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-1
收藏(1)
 问题点数:0 回复次数:1 
谁能帮我看下程序哪里出错了
这是段意在学生成绩管理系统的程序  请有心人帮忙看下错误..菜鸟十分谢谢
 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 50                /*定义符号常量,代表学生人数最大值*/
int count=0;                /*全局变量,用于记录数组的当前位置*/
struct student              /*定义结构体类型,代表学生信息*/
{
 char name[20];             /*学生姓名*/
 char number[21];          /*学生学号*/
 float math;               /*数学成绩*/
 float english;            /*英语成绩*/
};
void input(struct student *arr);    /*函数声明,输入学生信息*/
void sort(struct student *arr);     /*函数声明,按总分排序*/
void find(struct student *arr);     /*函数声明,查找某位学生信息*/
main()
{
 char selmenu;                 /*定义局部变量,用于记录用户选择的功能编号*/
 struct student stud[N];       /*定义结构体数组,用于记录学生信息*/
 do                            /*利用循环显示界面*/
 {
  system("cls");       /*清屏函数*/
  printf("\n\n");
  printf("\t\t\t\t 学生成绩管理系统 \n\n");
  printf("\t\t\t\t1.输入学生成绩\n");
  printf("\t\t\t\t2.按总分排榜\n");
  printf("\t\t\t\t3.查找学生信息\n");
  printf("\t\t\t\t4.退出\n\n");
  printf("\t\t\t请输入功能选择编号(1-4):");
  fflush(stdin);          /*清空输入缓冲区*/
  scanf("%c",&selmenu);     /*接受用户选择的功能编号*/
  switch(selmenu)             /*输入不同功能编号调用相应函数来完成功能*/
  {
  case'1':
   input(stud);            /*调用输入学生信息函数,参数为学生信息数组名*/
   break;
  case'2':
   sort(stud);             /*调用按总分排榜函数,参数是数组名*/
   break;
  case'3':
   find(stud);             /*调用按学号和姓名查找学生信息函数*/
   break;
  }
 }while(selmenu!='4');                     /*判断是否退出*/
 printf("\n\n\t\t\t----------------谢谢使用----------------\n\n");  /*输出告别词*/
}
void input(struct student *arr)       /*定义输入学生信息函数*/
{
 char ch;                        /*用于接收用户指令*/
 do                              /*利用循环,由用户控制输入学生成绩*/
 {
  system("cls");
  printf("\n输入第%d个学生的信息:\n输入学生姓名:",count+1);
  scanf("%s",arr[count].name);
  printf("\n输入学生学号:");
  scanf("%s",arr[count].number);
  printf("\n输入数学成绩:");
  scanf("%f",&arr[count].math);
  printf("\n输入英语成绩:");
  scanf("%f",&arr[count].english);
  count++;                  /*记录当前输入的学生资料的个数*/
  printf("\n是否继续输入(y/n)\n");
  fflush(stdin);            /*清空输入缓冲区*/
  ch=getchar();
 }while(ch=='y'||ch=='Y');     /*判断用户指令,是否继续输入*/
}
void sort(struct student *arr)   /*定义按总分排榜函数*/
{
 int i,j,k;                 /*定义循环变量i,j,最小数位置k*/
 struct student t;          /*定义交换临时变量*/
 if(count==0)               /*判断数组中学生成绩是否存在*/
  printf("无学生成绩,请先录入学生信息\n");
 else
 {
  for(i=0;i<count-1;i++)     /*用选择法按总分对学生成绩排序*/
  {
   k=i;
   for(j=i+1;j<count;j++)    /*k为arr[i]到arr[count-1]中最小数的位置*/
    if((arr[k].math+arr[k].english)<(arr[j].math+arr[j].english))
     k=j;
    if(k!=i)           /*如果最小数不是比较数列中第一个,对调*/
    {
     t=arr[k];
     arr[k]=arr[i];
     arr[i]=t;
    }
  }
  printf("\n总分排榜:\n\n");
  printf("\t姓名\t学号\t数学\t英语\t总分\t名次\n");
  for(j=0;j<count;j++)                   /*输出按总分排榜后的学生成绩和名次*/
   printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n",
    arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english,
    j+1);
 }
 printf("\n回车键返回主程序\n");
 fflush(stdin);
 getchar();
}
void find(struct student *arr)            /*定义查找函数*/
{
 int j;
 char name[20];               /*用于接收用户输入的学生姓名*/
 char number[21];            /*用于接收用户输入的学生学号*/
 system("cls");              /*清屏函数*/
 printf("\n请输入要查找的学生资料:\n");
 printf("\n学生姓名:");
 scanf("%s",name);
 printf("\n学生学号:");
 scanf("%s",number);
 for(j=0;j<count;j++)           /*使用字符串比较函数查找兵书出符合条件的学生成绩*/
 {
  if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
  {
   printf("\n\t姓名\t学号\t数学\t英语\t总分\n");
   printf("\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",
    arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
   break;
  }
 }
 if(j>=count)                   /*如果没找到,会从循环条件退出*/
  printf("\n未找到该学生纪录,请核对后重新查找!\n");
 fflush(stdin);                 /*清空输入缓冲区*/
 printf("\n回车键返回上一功能菜单\n");
 getchar();
}
搜索更多相关主题的帖子: 除错 
2008-07-01 13:08
lingyiniao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-1
收藏
得分:0 
没法子类   没能力做好 找高手帮忙
2008-07-01 13:32
快速回复:谁能帮我看下程序哪里出错了
数据加载中...
 
   



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

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