24小时热门版块排行榜    

查看: 3229  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

小小一颗鑫

[交流] 【求助】求将c语言改写为C++,求教高人啊!

#include
#include
#include
#include

#define N 3
struct  student
{
char name[10];
char no[10];
char sex;
int  age;
char bnote[100];
};
void print(bool menu)//打印基本信息
{
if (!menu)
{
  printf("学生基本信息录入 ,press 1\n");     
}
else
{
  printf("学生基本信息显示 ,press 2\n");  
  printf("学生基本信息保存 ,press 3\n");  
  printf("学生基本信息删除 ,press 4\n");
  printf("学生基本信息修改 ,press 5\n");
  printf("学生基本信息查询 ,press 6\n");  
}
  printf("退出学生信息系统 ,press 7\n");
}

bool Check(char pas[6])//密码验证
{
FILE *fp;
char ch;
char a[7]={" "};
int i = 0;
if ((fp=fopen("c:\\1.txt","r"))==NULL)
{
  printf("打开文件失败!\n");
  exit(0);
}
    ch=fgetc(fp);
while (ch!=EOF&&i<6)
{
  a = ch;
        ch=fgetc(fp);
  i++;
}
a[6] = '\0';
if (!strcmp(pas,a))
{
  return true;
}
else
{
  printf("密码错误\n");
  return false;
}
fclose(fp);
}

void GetInfo(struct student *arr,int n)//学生基本信息录入
{

for (int i = 0;i {
  printf("输入学生的基本信息:name   no    sex  age   bnote\n");
  scanf("%s %s %c %d %s",arr.name,arr.no,&arr.sex,&arr.age,arr.bnote);
}
}
void Display(struct student* arr,int n)//学生基本信息显示
{
printf("学生信息: Name     NO    Sex   age  Note\n");
for (int i = 0;i {
  printf("%15s%15s%15c%15d%15s\n",arr.name,arr.no,arr.sex,arr.age,arr.bnote);
}
}

void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
FILE * fp;
    fp= fopen("c:\\student.txt","w+");
if (fp == NULL)
{
  printf("文件不存在!\n");
  exit(0);
}

    fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}

void Modfiy(struct student* arr,int n)//学生基本信息修改
{
char number[10];
bool flag=false;
char pass[6];
printf("请输入密码:\n");
scanf("%s",pass);
if (Check(pass))
{
  printf("修改学生信息:\n");
  printf("请输入学号:\n");
  scanf("%s",number);
  for (int i =0;i   {
   if (!strcmp(number,arr.no))
   {
    printf("infor:   name   no   sex  age note\n");
    printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no,
     arr.sex,arr.age,arr.bnote);
    printf("please input information:\n");
    scanf("%s%s%c%d%s",arr.name,arr.no,&arr.sex,&arr.age,arr.bnote);
    Save(arr,n);
    flag = true;
   }
  }
  if (flag == false)
  {
   printf("该学生不存在!:\n");
  }
}

}

void Delete(struct student* arr,int n)//学生基本信息删除
{
char number[10];
bool flag=false;
printf("Delete information:\n");
printf("please input the no:\n");
scanf("%s",number);
for (int i =0;i {
  if (!strcmp(number,arr.no))
  {
   strcpy(arr.name," ");
   strcpy(arr.no," ");
   strcpy(arr.bnote," ");

   arr.sex = ' ';
   arr.age = 0;
   Save(arr,n);
   flag = true;
  }
}
if (flag == true)
{
  printf("该学生不存在!:\n");
}
}

void Search(struct student* arr,int n)//学生基本信息查询
{
int temp,i;
bool flag=false;
   printf("---------------通过学号查询,press 1-------------\n");  
   printf("---------------通过姓名查询,press 2-----------\n");  
   printf("---------------通过性别查询,press 3------------\n");  
   printf("---------------通过年龄查询,press 4------------\n");  
   printf("---------------退出,press 5      ------------\n");  
   scanf("%d",&temp);
   switch (temp)
   {
   case 1://按照学号查询
    {
     char num[10];
     printf("请输入学号:\n");
     scanf("%s",num);
     for ( i =0;i      {
      if (!strcmp(num,arr.no))
      {
       printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no,
       arr.sex,arr.age,arr.bnote);
       flag = true;
      }
     }
     if (!flag)
     {
            printf("该学生不存在.\n");
     }
    }
    break;
   case 2://按照名字查询
    {
     char num[10];
     printf("please input name:\n");
     scanf("%s",num);
     for ( i =0;i      {
      if (!strcmp(num,arr.name))
      {
       printf("%12s%12s%12c%12d%12s",arr.name,arr.no,
        arr.sex,arr.age,arr.bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n");
     }
    }
    break;
   case 3://按照性别查询
    {
     char ch;
     printf("请输入性别:\n");
     //scanf("%c",&ch);
     ch = getch();
     for ( i =0;i      {
      if (ch == arr.sex)
      {
       printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no,
        arr.sex,arr.age,arr.bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("t该学生不存在.\n");
     }
    }
    break;
   case 4://按照年龄查询
    {
     char num_age;
     printf("请输入年龄:\n");
     scanf("%d",&num_age);
     for ( i =0;i      {
      if (num_age == arr.age)
      {
       printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no,
        arr.sex,arr.age,arr.bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n");
     }
    }
    break;
   default:
    break;
   }
}

void main()
{
struct student arr[N];
char ps[6];
bool flag =false;
printf("请输入密码:\n");
    scanf("%s",ps);
    flag = Check(ps);
if (flag)
{
  int select;
  print(false);
  scanf("%d",&select);
while (0
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


余泽成(金币+1):讲的透彻! 2010-09-23 18:38:25
改成真正的C++程序不是那么简单的,你要重新设计你的程序架构,而不是简单的使用cin,cout,<<,>>这些东西,这样的话充其量只是一个披着C++皮的C程序而已。

改成C++程序,你要要考虑把原来的哪些变量和函数封装成类,还要考虑这样封装是否合理,封装以后类与类之间的调用关系,以及是否方便扩展等。

记住C++和C的本质区别不在于语法,而是编程思想。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
5楼2010-09-23 11:59:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

lillian67890

至尊木虫 (文坛精英)


余泽成(金币+1):谢谢参与应助! 2010-09-23 18:36:03
C++兼容C,你的程序可以直接运行,不用改。
2楼2010-09-23 11:01:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小小一颗鑫

不是啊,写了这个,我想学C++啊!大哥能帮忙写写不。和同学在约定今天的做出来的啊。
3楼2010-09-23 11:04:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stephenliu89

银虫 (小有名气)


余泽成(金币+1):谢谢参与应助! 2010-09-23 18:36:59
加上 #include
  #include
using namespace std;
scanf函数改为输入流cin >>
printf函数改为输出流cout <<
读入文件改为 ifstream fin ("XX.txt";
fin >>
输入文件改为 ofstream fout ("XXX.txt";
fout <<
这样就是C++的写法啦,哈哈哈
Email:stephenliu1989@163.com
4楼2010-09-23 11:48:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 268求调剂 +3 好运连绵不绝 2026-03-02 3/150 2026-03-02 19:05 by zhukairuo
[考研] 高分子化学与物理调剂 +6 好好好1233 2026-02-28 15/750 2026-03-02 18:47 by caszguilin
[考研] 一志愿东北大学化学314分求调剂 +3 lr1212.. 2026-03-02 3/150 2026-03-02 17:36 by yeahyou
[考研] 一志愿华中科技大学,化学专业344分,求调剂 +3 邢xing1 2026-03-02 3/150 2026-03-02 17:32 by houyaoxu
[考研] 一志愿东北大学材料专硕328,求调剂 +3 shs1083 2026-03-02 3/150 2026-03-02 17:27 by houyaoxu
[考研] 303求调剂 +5 今夏不夏 2026-03-01 5/250 2026-03-02 15:01 by 向上的胖东
[考研] 江苏省农科院招调剂1名 +4 Qwertyuop 2026-03-01 4/200 2026-03-02 14:27 by 升格阿达
[考研] 材料学硕318求调剂 +9 February_Feb 2026-03-01 9/450 2026-03-02 13:31 by njzyff
[考研] 292求调剂 +7 yhk_819 2026-02-28 7/350 2026-03-02 12:43 by 无际的草原
[基金申请] 成果系统访问量大,请15分钟后再尝试。由此给您造成的不便,敬请谅解。 +5 xhuama 2026-03-02 5/250 2026-03-02 12:34 by stidwellNK
[考研] 材料类求调剂 +11 wana_kiko 2026-02-28 14/700 2026-03-02 08:46 by 聪明的大松鼠
[考研] 0856求调剂285 +10 吕仔龙 2026-02-28 10/500 2026-03-01 21:37 by 公瑾逍遥
[考研] 299求调剂 +3 Y墨明棋妙Y 2026-02-28 5/250 2026-03-01 21:01 by tangxiaotian
[考研] 291分工科求调剂 +9 science饿饿 2026-03-01 10/500 2026-03-01 18:55 by 18137688336
[考研] 0856材料求调剂 +4 麻辣鱿鱼 2026-02-28 4/200 2026-03-01 16:51 by caszguilin
[考研] 285求调剂 +8 满头大汗的学生 2026-02-28 8/400 2026-03-01 16:47 by caszguilin
[考研] 调剂 +3 简木ChuFront 2026-02-28 3/150 2026-03-01 11:46 by 王伟要上岸啊
[硕博家园] 2025届双非化工硕士毕业,申博 +3 更多的是 2026-02-27 4/200 2026-03-01 10:04 by ztg729
[论文投稿] 求助coordination chemistry reviews 的写作模板 10+3 ljplijiapeng 2026-02-27 4/200 2026-03-01 09:07 by babero
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
信息提示
请填处理意见