| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 819 人关注过本帖
标题:寻c语言高手
只看楼主 加入收藏
zzb5406093
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
寻c语言高手
本人有一个学生管理系统的程序,在win-tc上能运行但还是有两个警告
警告 noname.c 170: 不能到达的代码在 paixu 函数中
警告 noname.c 97: 两者都返回和返回的值使用在 count 函数中
想了n天都想不出为什么,还望哪位大侠帮帮忙。。。本人急用啊....
在此先行谢过了
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
int cunt;
typedef struct node
{
int num;     /*学号*/
char name[10];    /*姓名*/
int chinese;      /*语文成绩*/
int math;
int english;
int total;
float ave;      /*平均分*/
int mingci;    /*名次*/
struct node*next;
}node;

menu()
{
  system("cls");
  textcolor(10);

  gotoxy(10,2);
  cprintf("                     学生管理系统                    \n");
  gotoxy(10,3);
  cprintf("#####################################################\n");
  gotoxy(10,4);
  cprintf("#   1输入学生信息               2统计学生人数       #\n");
  gotoxy(10,5);
  cprintf("#   3列出学生信息               4查找学生信息       #\n");
  gotoxy(10,6);
  cprintf("#   5学生成绩排名               6按条件输出         #\n");
  gotoxy(10,7);
  cprintf("#   7删除学生                   0结束退出           #\n");
  gotoxy(10,8);
  cprintf("#####################################################\n");
  }

void plus(node* p)
{

node *r,*s;
r=p;
while(r->next!=NULL)r=r->next;

  while(1)
  {s=(node*)malloc(sizeof(node));
   printf("输入学生学号(输入0返回菜单):");
   scanf("%d",&s->num);
   if(s->num==0)  break;
   printf("输入学生姓名:");
   scanf("%s",s->name);
   printf("输入学生语文成绩:");
   scanf("%d",&s->chinese);
   printf("输入学生数学成绩:");
   scanf("%d",&s->math);
   printf("输入学生英语成绩:");
   scanf("%d",&s->english);
   s->total=s->chinese+s->math+s->english;
   s->ave=s->total/3;
   s->next=NULL;
   r->next=s;
   r=r->next;
}
}

 int count(node* p)
{

  node *r;
  float i=0,j=0,k=0,m;
  cunt=0;
  r=p;
  if(r->next==NULL)
  { system("cls");
    printf("\n=====>没有学生计入!\n");
    return;
  }

 while(r->next!=NULL)
 {

   cunt=cunt+1;
   r=r->next;
  }
  for(m=0;m<cunt;m++,p=p->next)
  {
   i=i+p->next->chinese;
   j=j+p->next->math;
   k=k+p->next->english;
   }
 printf("班级语文平均成绩:%.2f\n",i/cunt);
 printf("班级数学平均成绩:%.2f\n",j/cunt);
 printf("班级英语平均成绩:%.2f\n",k/cunt);
 printf("学生有%d人\n",cunt);
return(cunt);}

  void dip(node* p)
{
 node *z;
 z=p;
   if(p->next!=NULL)
   {
  printf("-------------------------------学生成绩--------------------------\n");
  printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
 while(z->next)
 {
  printf("|---------------------------------------------------------------|\n");
  printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",z->next->name,z->next->num,z->next->chinese,z->next->math,z->next->english,z->next->total,z->next->ave);
  z=z->next;
  }
  printf("|---------------------------------------------------------------|\n");
 }
 else
 printf("无学生记录");
 }
 void search(node* p)
{
 node*s;
 int a;
 s=p;
 printf("输入你想要查找的学生的学号\n");
 scanf("%d",&a);
 do {
     s=s->next;
     if(a!=s->num)printf("无此学号\n");
      else{
       printf("-------------------------------学生成绩-------------------------\n");
       printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
       printf("|---------------------------------------------------------------|\n");
       printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",s->name,s->num,s->chinese,s->math,s->english,s->total,s->ave);
       printf("|---------------------------------------------------------------|\n");
      break;
     }
    }while(s->next!=NULL);

}

node * paixu(node*p)

{
 node*k,*z,*q,*h,*m;
 int min,i;
  count(p);
  clrscr();
  h=(node*)malloc(sizeof(node));
 k=h;
 for(i=0;i<cunt;i++)
 {
  int min=p->next->total;
  z=p;
  m=p;
  q=z->next;
  while(z->next!=NULL)
  {
  z=z->next;

    if(min>z->total)
      {
       min=z->total;
       q=z;
       }
  }
  h->next=q;
  h=h->next;
  while(m->next!=q)
  m=m->next;
  m->next=m->next->next;
  }dip(k);return(k);printf("%d",cunt);
}

node* output(node*p)
{
int i,j,k,l,flag=0;
node*s,*z,*h,*t;
count(p);
clrscr();
s=p->next;
printf("您想查找1语文 2数学 3英语 4总分 的学生成绩");
scanf("%d",&i);
printf("您想查找几分到几分的学生成绩");
scanf("%d%d",&j,&k);
switch(i)
{
case 1: if(p->next==NULL)printf("无学生记录\n");
         else {l=0;while(l<cunt)
         {
         l++;

            if(j<=s->math&&s->math<=k)
            {
            if(flag==0)
              {
               printf("-------------------------------学生成绩--------------------------\n");
               printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
              }
              printf("----------------------------------------------------------------\n");
         printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",s->name,s->num,s->chinese,s->math,s->english,s->total,s->ave);
         s=s->next;flag=1;}

}
if(flag==1)printf("----------------------------------------------------------------\n");else printf("无此范围成绩的学生");
return(s); }
break;

case 2:
       if(p->next==NULL)printf("无学生记录\n");
         else {l=0;while(l<cunt)
         {
         l++;

            if(j<=s->math&&s->math<=k)
            {
            if(flag==0)
              {
               printf("-------------------------------学生成绩--------------------------\n");
               printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
              }
              printf("----------------------------------------------------------------\n");
         printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",s->name,s->num,s->chinese,s->math,s->english,s->total,s->ave);
         s=s->next;flag=1;}

}
if(flag==1)printf("----------------------------------------------------------------\n");else printf("无此范围成绩的学生");
return(s); }
break;

case 3:
       if(p->next==NULL)printf("无学生记录\n");
         else {l=0;while(l<cunt)
         {
         l++;

            if(j<=s->math&&s->math<=k)
            {
            if(flag==0)
              {
               printf("-------------------------------学生成绩--------------------------\n");
               printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
              }
              printf("----------------------------------------------------------------\n");
         printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",s->name,s->num,s->chinese,s->math,s->english,s->total,s->ave);
         s=s->next;flag=1;}

}
if(flag==1)printf("----------------------------------------------------------------\n");else printf("无此范围成绩的学生");
return(s); }
break;
case 4:
       if(p->next==NULL)printf("无学生记录\n");
         else {l=0;while(l<cunt)
         {
         l++;

            if(j<=s->math&&s->math<=k)
            {
            if(flag==0)
              {
               printf("-------------------------------学生成绩--------------------------\n");
               printf("|  姓名  |  学号  |  语文  |  数学  |  英语  |  总分  |  平均分 |\n");
              }
              printf("----------------------------------------------------------------\n");
         printf("|%8s|%8d|%8d|%8d|%8d|%8d|   %.2f |\n",s->name,s->num,s->chinese,s->math,s->english,s->total,s->ave);
         s=s->next;flag=1;}

}
if(flag==1)printf("----------------------------------------------------------------\n");else printf("无此范围成绩的学生");
return(s); }
break;
}
}
node*jian(node*p)
 {
  int i,j;
  node*a;
  a=p;

  printf("输入你想删除的学生学号:");
  scanf("%d",&j);
  if(p->next==NULL)
  {
  printf("链表为空");;
exit(0);
  }
  while(a->next->num==j)
  a=a->next;
  if(a->next==NULL)
  printf("没有找到此学号的学生。\n");
    else
    {
        a->next=a->next->next;
    }
    printf("删除成功");return(p);
}
void main()
{
   int z;
   node*p;
   system("graftabl 936>!");
   clrscr();
   p=(node*)malloc(sizeof(node));
   p->next=NULL;
   while(1)
   {
   clrscr();
   menu();
   printf("\n输入你想选的选项号:");
   scanf("%d",&z);
   if(z==0)
  { printf("谢谢使用");getch();break;
   }
   else
   switch(z)
   {case 1:plus(p);break;
    case 2:count(p);getch();break;
    case 3:dip(p);getch();break;
    case 4:search(p);getch();break;
    case 5:paixu(p);getch();break;
    case 6:output(p);getch();break;
    case 7:jian(p);getch();break;
    default:printf("输入错误,请重新输入");getch();break;

}
}
}
搜索更多相关主题的帖子: 管理系统 english c语言 天都 姓名 
2011-03-17 13:18
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:3 
我不是专家

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-03-17 13:24
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
收藏
得分:3 
1 return(k);printf("%d",cunt);  先打印再return
2011-03-17 13:31
变幻小子
Rank: 6Rank: 6
来 自:广东陆丰
等 级:侠之大者
帖 子:188
专家分:473
注 册:2011-3-4
收藏
得分:3 
小鸟路过接分

明天的梦
2011-03-17 14:08
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:3 
你这个猪头  算什么
2011-03-17 16:26
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:3 
非高手路过。。。
2011-03-17 16:42
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
我就是高手
2011-03-17 18:17
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:3 
void count(node* p)
{

  node *r;
  float i=0,j=0,k=0,m;
  cunt=0;
  r=p;
  if(r->next==NULL)
  { system("cls");
    printf("\n=====>没有学生计入!\n");
    return;
  }

小代码,大智慧
2011-03-17 19:14
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:3 
非高手
路过呵呵
2011-03-17 22:49
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:3 
学习。。
2011-03-17 23:35
快速回复:寻c语言高手
数据加载中...
 
   



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

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