24小时热门版块排行榜    

查看: 3230  |  回复: 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的回帖

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的回帖

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的回帖

stephenliu89

银虫 (小有名气)

引用回帖:
Originally posted by magic7004 at 2010-09-23 11:59:55:
改成真正的C++程序不是那么简单的,你要重新设计你的程序架构,而不是简单的使用cin,cout,<<,>>这些东西,这样的话充其量只是一个披着C++皮的C程序而已。

改成C++程序,你要要考虑把原来的哪些 ...

正确,哈哈
Email:stephenliu1989@163.com
6楼2010-09-23 12:03:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


余泽成(金币+1):辛苦了!中秋愉快! 2010-09-23 18:38:58
简单点,楼主做2个类吧
一个是student类,这个类保存每个student的信息,负责显示和修改信息。
另一个是manager类,这个类维护一个student的数组或者链表,负责存盘和读文件,以及和用户交互。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
7楼2010-09-23 12:12:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小小一颗鑫 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +5 虫虫虫虫虫7 2026-03-01 9/450 2026-03-02 21:33 by sunny81
[考研] 0856调剂 +9 刘梦微 2026-02-28 9/450 2026-03-02 21:01 by 利好利好.
[考研] 298求调剂 +10 人间唯你是清欢 2026-02-28 13/650 2026-03-02 20:33 by hypershenger
[考研] 0856材料调剂 +5 沿岸有贝壳OUC 2026-03-02 5/250 2026-03-02 20:31 by hypershenger
[考研] 0805总分292,求调剂 +10 幻想之殇 2026-03-01 10/500 2026-03-02 19:51 by zhukairuo
[考研] 275求调剂 +7 明远求学 2026-03-01 7/350 2026-03-02 19:22 by zhukairuo
[考研] 290求调剂 +6 ErMiao1020 2026-03-02 6/300 2026-03-02 18:14 by lature00
[考研] 299求调剂 +4 kkcoco25 2026-03-02 4/200 2026-03-02 18:04 by barlinike
[考研] 265分求调剂不调专业和学校有行学上就 +6 礼堂丁真258 2026-02-28 9/450 2026-03-02 12:04 by 52hz~~
[考研] 材料学硕318求调剂 +14 February_Feb 2026-03-01 16/800 2026-03-02 11:17 by yuchj
[考研] 调剂 +3 13853210211 2026-03-02 4/200 2026-03-02 10:16 by 13853210211
[基金申请] 成果系统访问量大,请一小时后再尝试。---NSFC啥时候好哦,已经两天这样了 +4 NSFC2026我来了 2026-02-28 4/200 2026-03-01 22:37 by 铁门栓
[硕博家园] 博士自荐 +7 科研狗111 2026-02-26 11/550 2026-03-01 22:24 by 哲平L
[考研] 291分工科求调剂 +9 science饿饿 2026-03-01 10/500 2026-03-01 18:55 by 18137688336
[考研] 328求调剂 +3 aaadim 2026-03-01 5/250 2026-03-01 17:29 by njzyff
[考研] 290求调剂 +9 材料专硕调剂; 2026-02-28 11/550 2026-03-01 17:21 by sunny81
[考研] 寻找调剂 +4 LYidhsjabdj 2026-02-28 4/200 2026-03-01 10:56 by sunny81
[考研] 311求调剂 +9 南迦720 2026-02-28 10/500 2026-03-01 10:55 by sunny81
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
[硕博家园] 【博士招生】太原理工大学2026化工博士 +4 N1ce_try 2026-02-24 8/400 2026-02-26 08:40 by N1ce_try
信息提示
请填处理意见