| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 284 人关注过本帖
标题:求助,,,,,,,,,,,,
只看楼主 加入收藏
x867467586y
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助,,,,,,,,,,,,
各位大侠,我想编一个学生资料管理系统,结构体(包括姓名,学号,年龄,性别,电话,地址),进入界面:
*****************欢迎进入***********************
1:显示全部
2:查找
3:增加
4:删除
5: 修改
6:退出系统
*****************欢迎进入************************
请输入选项(1-6):
望各位高手大显身手
2010-05-15 22:36
yjj634041926
Rank: 2
等 级:论坛游民
帖 子:36
专家分:76
注 册:2010-4-15
收藏
得分:20 
#include<iostream.h>
#include<fstream.h>
#include<string>
struct corse
{
char course[10];
int score;
};
class Stu
{
    int Class;
    int id;
char name[10];
    corse  p[10];
public:
void getdate(int a,int b,char c[10],char d[10][10],int e[10])
{  int i; Class=a; id=b; strcpy(name,c);
   for(i=0;i<10;i++)
   { strcpy(p[i].course,d[i]);
   p[i].score=e[i];}
}
void sortdate();
void output_failor(char a[10]);
void output_first5(char a[10]);
void output_average(char a[10]);
void output_gradelist_ofoneclass(char a[10],int c);
void output()
{int k;
cout<<Class<<'\t'<<id<<'\t'<<name<<'\t';
      for(k=0;k<10;k++)
            {   if(p[k].score==0)continue;
    cout<<p[k].course;
   cout<<"-"<<p[k].score<<'\t';
   }
   cout<<endl;
}
    void  copy(Stu obj)
{  int i;
  Class=obj.Class;
  id=obj.id;
  strcpy(name,obj.name);
  for(i=0;i<10;i++)
  {strcpy(p[i].course,obj.p[i].course);
            p[i].score=obj.p[i].score;
  }

}
}stu[50];
void Stu::output_failor(char a[10])
{ int j(0) ,i;
  for(i=0;i<50;i++)
     for(j=0;j<10;j++)
  {
   if ((strcmp(stu[i].p[j].course,a)==0)&&(stu[i].p[j].score<60))
          stu[i].output();
  }

}
void Stu::output_first5(char a[10])
{
int i=0, j=0 ,k,l,r(0);
    for(i=0;i<49;i++)
     for(j=0;j<10;j++)
          for(k=i+1;k<50;k++)
          for(l=0;l<10;l++)
    {  if ((strcmp(stu[i].p[j].course,stu[k].p[l].course)==0)&&(strcmp(stu[i].p[j].course,a)==0)&&(stu[i].p[j].score<stu[k].p[l].score))
     {
      Stu m=stu[i];
         stu[i].copy(stu[k]);
         stu[k].copy(m);
      
    }
    }
   for(i=0;i<50;i++)
     {
                  for(j=0;j<10;j++)
    if(strcmp(stu[i].p[j].course,a)==0)
   {
     cout<<stu[i].Class<<'\t'<<stu[i].id<<'\t'<<stu[i].name<<'\t'<<stu[i].p[j].course<<'\t'<<stu[i].p[j].score<<'\n';
   
   }
                   if(r>4) break;
}
}
  

void Stu::output_gradelist_ofoneclass(char a[10],int c)
{
int i=0, j=0 ,k,l;static r(0);

    for(i=0;i<49;i++)
     for(j=0;j<10;j++)
          for(k=i+1;k<50;k++)
           for(l=0;l<10;l++)
     {  if (strcmp(stu[i].p[j].course,stu[k].p[l].course)==0&&strcmp(stu[i].p[j].course,a)==0)
       if((stu[i].Class==stu[k].Class==c)&&(stu[i].id>stu[k].id))
      {
       Stu m=stu[i];
       stu[i].copy(stu[k]);
       stu[k].copy(m);
       }
     
     }
     
    for(i=0;i<50;i++)
     for(j=0;j<10;j++)
   if((strcmp(stu[i].p[j].course,a)==0)&&(stu[i].Class==c))
    stu[i].output();
  
}


void Stu:: output_average(char a[10])
{
int k,i=0, j=0 , g,b,c[5]={1,2,3,4,5}, r[5]={0,0,0,0,0},sum[5]={0,0,0,0,0};
    double m[5];
    for (k=0;k<5;k++)
      for(i=0;i<50;i++)
     for(j=0;j<10;j++)
         
    {  if ((strcmp(stu[i].p[j].course,a)==0 )&&( stu[i].Class==c[k]))
     { sum[k]+=stu[i].p[j].score;
      r[k]++;
     }
   }

for(g=0;g<4;g++)
   for(b=g+1;b<5;b++)
   {
    if(sum[g]<sum[b])
          { i=sum[g]; j=c[g];c[g]=c[b];c[b]=j;k=r[g];r[g]=r[b];r[b]=k;
   sum[g]=sum[b];
   sum[b]=i;
    }
    if(sum[g]!=0) m[g]=(double)sum[g]/r[g];
    else m[g]=0;
   }
   if (sum[4]=0) m[4]=0;
   else m[4]=(double)sum[4]/r[4];
  for(g=0;g<4;g++)
   for(b=g+1;b<5;b++)

{
       if(m[g]<m[b]){j=m[g];m[g]=m[b];m[b]=j;k=c[g];c[g]=c[b];c[b]=k;}
}
     for(g=0;g<5;g++)     if(m[g]!=0)

     cout<<c[g]<<"班的平均分为:"<<m[g]<<endl;
}
void main()
{   
   char a[10],b[10],c[10],d[10],e[10],mark,h[10][10];
   int j,f,l[10]={0,0,0,0,0,0,0,0,0,0},g,x,z;static int y=0;



  cout<<"     教 学 管 理 系      "<<endl;

  cout<<" 1.添加学生信息;                "<<endl;
  cout<<" 2.查询某门课程的不及格名单;    "<<endl;
  cout<<" 3.查询某门课程的全年级的前五名;"<<endl;
  cout<<" 4.查询每个班某门课程的平均成绩;"<<endl;
  cout<<" 5.查询某班某门课程的成绩单.    "<<endl;

   
loop: cout<<" 请输入您的选择(0-4):";cout<<endl;
   
   cin>>x;
switch(x)
  {
    case 1:   cout<<"请输入学生信息: (输入-1时结束输入)"<<endl;
  
     cout<<"班级\t学号\t姓名\t选修课1\t成绩1\t选修课2\t成绩2\t..."<<endl;
     
     for(y;y<50;y++)
  {
     cin>>f;
    if(f==-1)goto loop;
     cin>>g;
                   cin>>e;
     for(j=0;j<10;j++)
   {
  
   cin>>h[j];
   cin>>l[j];
   mark=cin.get();
   if(mark=='\n') break;

   }

   stu[y].getdate(f,g,e,h,l);

  }goto loop;break;
      case 2:
     cout<<"输入您想要哪门课程的不及格名单:"<<endl;
  cin>>a;
  cout<<"班级\t学号\t姓名\t选修课\t成绩\t"<<endl;
        stu[0].output_failor(a);goto loop;break;

    case 3:
      cout<<"请输入您想要哪门课程的全年级的前五名"<<endl;
   cin>>b;
         stu[0].output_first5(b);
     goto loop;break;
    case 4:cout<<"输入您想要哪门课程的每班平均成绩:"<<endl;
    cin>>c;
          stu[0].output_average(c);
     goto loop;
           break;
    case 5: cout<<"输入您想要哪门课程、哪个班级的成绩单:";
   cin>>d>>z;
         stu[0].output_gradelist_ofoneclass(d,z);
         goto loop;break;
   default:cout<<"输入错误,请重新输入."<<endl;
   goto loop;
     
  }

}
你看看吧
2010-05-15 22:47
yjj634041926
Rank: 2
等 级:论坛游民
帖 子:36
专家分:76
注 册:2010-4-15
收藏
得分:0 
我要去睡觉了 就给你发个相似的给你做一个参考。。。
我明天还要出去。。
我回来了在帮你仔细看看。。。。
我建了一个C语言讨论群。。。。有意的加(群号:110451552)
2010-05-15 22:54
快速回复:求助,,,,,,,,,,,,
数据加载中...
 
   



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

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