| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:C++代码运行输入的时候遇到问题
取消只看楼主 加入收藏
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
结帖率:83.33%
收藏
已结贴  问题点数:0 回复次数:1 
C++代码运行输入的时候遇到问题
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
#include<iomanip.h>
class student
{
private:
     int number;  //学号
     char name[20]; //姓名
     char workUnit[20];//工作单位
     double Score1,Score2,Score3,allscore,average;//课程分数
     
  
public:
     
     student(){}
     student(int nu,char n[20],char w[20],double score1,double score2,double score3,double as,double av)  
{
  strcpy(name,n);
  strcpy(workUnit,w);
     number=nu;
     Score1=score1,Score2=score2,Score3=score3,allscore=as;average=av;
}
 friend void main();
 
};

void main()
{

    double allscore;
    double average;

    cout<<"               欢迎使用学生认知实习信息管理系统"<<endl;
 
    cout<<"      ********************************************"<<endl;
    cout<<"            ****   学生认知实习信息管理系统   ****"<<endl;
    cout<<"      ********************************************"<<endl;
 
   cout<<"                    0、输入数据         "<<endl;
   cout<<"                    1、增加数据         "<<endl;
   cout<<"                    2、修改数据         "<<endl;
   cout<<"                    3、删除学生的信息   "<<endl;
   cout<<"                    4、按姓名查询       "<<endl;
   cout<<"                    5、按学号查询       "<<endl;
   cout<<"                    6、输出所有学生实习成绩 "<<endl;
   cout<<"                    7、保存文件         "<<endl;
   cout<<"                    8、退出系统         "<<endl;

   cout<<"      ============================================="<<endl;
   cout<<"                 选择0-8数字进行操作"<<endl;
   
  
char p;char w;
   student s[50];        //指针对象,最多存50个学生数据
   ofstream *file[50];   //负责对文件插入操作
   int i=0;
   int j=0;
   int flag=0;
do                     //flag判断输入是否有效
 {
   cin>>p;
if((p>='0'&&p<='9'))
   flag=1;
else
   cout<<"  指令错误!请重新输入:"<<endl;
 }while(flag==0);
do{
    switch(p)                 //接收功能选项
    {
     case '0':  //输入数据
     {
      char c;
      int number;
      char name[20];char workUnit[20];double Score1,Score2,Score3,allscore,average;
   
    do{
     cout<<"   学号   ";
     cin>>number;
     cout<<endl<<"   姓名:";
     cin>>name;
     cout<<endl<<"     实习单位 :";   
     cin>>workUnit;
     cout<<endl<<"   实习单位评分:";
     cin>>Score1;
     cout<<endl<<"   指导教师评分:";
     cin>>Score2;
     cout<<endl<<"   实习答辩成绩:";
     cin>>Score3;
     cout<<endl;
     {allscore=Score1+Score2+Score3;}
  cout<<"  总成绩:"<<allscore<<endl;
  {average=(Score2*0.5+Score3*0.5);}
  cout<<"  平均成绩:"<<average<<endl;
 
     //file[j]=new ofstream("D:\student.dat",ios::ate);
     *file[j]<<"  学号  "<<number<<"   姓名 "<<name<<" 实习单位 "<<workUnit<<" 实习单位评分 "<<Score1
     <<" 指导教师评分 "<<Score2<<" 实习答辩成绩 "<<Score3<<"总成绩"<<allscore<<"平均成绩"<<endl;
     j++;
     s[i]= student(number,name, workUnit,Score1,Score2,Score3,allscore,average);
     i++;
     cout<<"  数据输入成功,想继续输入吗(y/n):";
     cin>>c;
     cout<<endl;
do
  {
if(c!='y'&&c!='n')
  {
     cout<<"  指令错误!请重新输入!"<<endl<<"     ";
     cin>>c;
  }
else
     flag=1;
  }while(flag==0);
    }while(c=='y');
break;
   }
  
  
     
     
     
     case '1':         //增加数据
   {int number;
    char name[20];
    char workUnit[20];double Score1,Score2,Score3;
char c;
 
    do
    {cout<<"   请输入你要争加的学生的学号   ";
     cin>>number;
     cout<<"  请输入您要增加的学生的姓名:";
     cin>>name;
     cout<<endl<<"     实习单位 :";   
     cin>>workUnit;
     cout<<endl<<"   实习单位评分:";
     cin>>Score1;
     cout<<endl<<"   指导教师评分:";
     cin>>Score2;
     cout<<endl<<"   实习答辩成绩:";
     cin>>Score3;
     cout<<endl;
     {allscore=Score1+Score2+Score3;}
  cout<<"  总成绩:"<<allscore<<endl;
  {average=(Score2*0.5+Score3*0.5);}
  cout<<"  平均成绩:"<<average<<endl;
 
     // file[j]=new ofstream("D:\student.dat",ios::ate);
     *file[j]<<"  学号  "<<number<<"   姓名 "<<name<<" 实习单位 "<<workUnit<<" 实习单位评分 "<<Score1
     <<" 指导教师评分 "<<Score2<<" 实习答辩成绩 "<<Score3<<"总成绩"<<allscore<<"平均成绩"<<endl;
     j++;
     s[i]= student(number,name, workUnit,Score1,Score2,Score3,allscore,average);
     i++;
     cout<<"  数据输入成功,想继续数入吗(y/n):";
     cin>>c;
     cout<<endl;
     if(c!='y'&&c!='n')
     {
      cout<<"  指令错误!请重新输入!"<<endl<<"     ";
      cin>>c;
     }
    }while(c=='y');
    break;
   }
   
  
  
  
  
  
     
     
     case '2':                    //修改数据
         {
     char name[20];char w[20];double score1,score2,score3,as,av;flag=0;
     char c;
     if(i==0)
    {
  cout<<"系统中找不到这个学生";
    }
    do
    {
     cout<<"  请输入您要修改的学生的姓名:";
     cin>>name;
     cout<<endl;
  for(int h=0;h<i;h++)         //h纪录要修改学生的位置
  {
      if(strcmp(name,s[h].name)==0)

{
      flag=1;
      cout<<"   新的实习单位:";
      cin>>w;
      cout<<endl<<"   实习单位评分:";
      cin>>score1;
      cout<<endl<<"   指导教师评分:";
      cin>>score2;
      cout<<endl<<"   实习答辩成绩:";
      cin>>score3;
   {as=score1+score2+score3;}
   cout<<endl<<"  总成绩:"<<as;
   {av=(score2*0.5+score3*0.5);}
      cout<<endl<<"  平均成绩:"<<av;
      cout<<endl;
      s[h].Score1=score1;
      s[h].Score2=score2;
      s[h].Score3=score3;
      cout<<"  数据修改成功!"<<endl;
   }
  }
  
  
  if(flag==0)
     {
      cout<<"  您要修改的学生本来就不存在!请检查重新输入!"<<endl;
     }
     cout<<"  想继续修改吗(y/n):";
     cin>>c;
     cout<<endl;
     if(c!='y'&&c!='n')
     {
      cout<<"  指令错误!请重新输入!"<<endl<<"     ";
      cin>>c;
     }
    }while(c=='y');
    break;
   }




case '3':       //删除学生信息
    {
 
 cout<<" 请输入你要删除的姓名 :";
 char m[20];
 cin>>m;
 for(int a=0;a<i;a++)
 {   
  if(strcmp(s[a].name,m)==0)
  {
  int w;
  w=a;
  for(w;w<i;w++)
  {
  
   s[w]=s[w+1];
    i=i-1;}
  cout<<"  删除成功!"<<endl;
  
  }
  }
  break;}



case '4':         //学生信息查询
   {
    char n[20];int j=0;char c;
    if(i==0)
    {
     cout<<"  管理系统中没有输入数据!"<<endl;break;
    }   
    do{
     int flag=0;
     cout<<"  请输入你要查询的学生姓名:";
     cin>>n;
  cout<<endl;
     for(int j=0;j<i;j++)
     {
      if(strcmp(n,(s[j]).name)==0)
      {
       flag=1;
       cout<<"  您要查询的学生是:"<<(s[j]).name<<endl;

cout<<"学号:"<<(s[j]).number<<"   "<<(s[j]).name<<"的信息是: "<<" 实习单位 "<<(s[j]).workUnit<<" 实习单位评分: "<<
(s[j]).Score1<<" 指导教师评分:"<<(s[j]).Score2<<" 实习答辩成绩:"<<(s[j]).Score3<<"  总成绩"<<(s[j]).allscore<<"   
平均成绩"<<(s[j]).average<<endl;
      }
     }
     if(flag==0)
      cout<<"  对不起!您要查询的学生不存在!"<<endl;
     cout<<"  您想继续查询吗?(y/n):";
     cin>>c;
     cout<<endl;
     if(c!='y'&&c!='n')
     {
      cout<<"  指令错误!请重新输入!"<<endl;
      cin>>c;
     }
    }
    while(c=='y');
    break;
   }









case '5':           //按学号查询
   {
    int n,j=0;char c;
    if(i==0){
   
     cout<<"  管理系统中没有输入数据!"<<endl;break;
    }   
    do{
     int flag=0;
     cout<<"  请输入你要查询的学生的学号:";
     cin>>n;
  cout<<endl;
     for(int j=0;j<i;j++)
     {

if(s[j].number==n)
      {
       flag=1;
       cout<<"  您要查询的学生是:"<<(s[j]).name<<endl;
      cout<<"学号:"<<(s[j]).number<<"   "<<(s[j]).name<<"的信息是: "<<" 实习单位 "<<(s[j]).workUnit<<" 实习单位评分:  
"<<(s[j]).Score1<<" 指导教师评分:"<<(s[j]).Score2<<" 实习答辩成绩:"<<(s[j]).Score3<<"  总成绩"<<(s[j]).allscore<<"  
 平均成绩"<<(s[j]).average<<endl;
      }
     }
     if(flag==0)
      cout<<"  对不起!您要查询的学生不存在!"<<endl;
     cout<<"  您想继续查询吗?(y/n):";
     cin>>c;
     cout<<endl;
     if(c!='y'&&c!='n')
     {
      cout<<"  指令错误!请重新输入!"<<endl;
      cin>>c;
     }
    }
    while(c=='y');
    break;
   }






case '6':           //信息输出
   {
    cout<<"  本系统所有学生数据如下:"<<endl;
    if(i==0)
     cout<<"  管理系统中没有输入数据!"<<endl;
     cout<<"姓名  实习单位 实习单位评分 指导老师评分 实习答辩成绩  总成绩 平均成绩  "<<endl;
     for(int k=0;k<i;k++)
    {
      cout<<s[k].number<<setw(7)<<s[k].name<<setw(7)<<s[k].workUnit<<setw(4)
    <<(s[k]).Score1<<setw(5)<<(s[k]).Score2<<setw(5)
    <<(s[k]).Score3<<setw(4)<<s[k].allscore<<setw(10)<<(s[k]).average<<setw(7)<<endl;
   
    }
    break;
   }


case'7':{
 cout<<"  保存成功!"<<endl;break;
  }
   



case'8'://退出
   {exit(0); cout<<"Bye bye!(欢迎你的再次使用!)"<<endl;}
}




cout<<"  您想继续进行其他操作吗?(y/n):";
int flag=0;
do
{
    cin>>w;
    cout<<endl;
 if(w!='y'&&w!='n')
     cout<<"  指令错误!请重新输入!"<<endl;
    else
     flag=1;
}while(flag==0);
if(w=='y')
   cout<<"  请输入操作代码:0 输入数据"<<endl;
   cout<<"                 1 增加数据"<<endl;
   cout<<"                 2 修改数据"<<endl;
   cout<<"                 3 删除学生的信息"<<endl;
   cout<<"                 4 按姓名查询"<<endl;
   cout<<"                 5 输出所有学生成绩"<<endl;
   cout<<"                 6 保存文件"<<endl;
   cout<<"                 7 退出系统"<<endl;
   cin>>p;
  }while(w=='y');

  
}




[ 本帖最后由 爱海松涛 于 2011-6-29 14:04 编辑 ]
搜索更多相关主题的帖子: include average private 单位 double 
2011-06-29 10:03
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
收藏
得分:0 
回复 2楼 hellovfp
运行的时候总是只能输入一个用户的信息就遇到问题,结束程序。改不出来什么问题,问各位打下指点一下。。。
2011-06-29 14:03
快速回复:C++代码运行输入的时候遇到问题
数据加载中...
 
   



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

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