24小时热门版块排行榜    

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

小小一颗鑫

不是啊,写了这个,我想学C++啊!大哥能帮忙写写不。和同学在约定今天的做出来的啊。
3楼2010-09-23 11:04:23
已阅   回复此楼   关注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的回帖

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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600 英一数二272求调剂 5+4 vida_a 2026-03-01 12/600 2026-03-02 16:19 by @飒飒飒飒
[考研] 求调剂 +9 yunziaaaaa 2026-03-01 10/500 2026-03-02 15:18 by 半截的诗0927
[考研] 化工270求调剂 +8 什么名字qwq 2026-03-02 8/400 2026-03-02 13:03 by houyaoxu
[考研] 295求调剂 +8 19171856320 2026-02-28 8/400 2026-03-02 11:19 by yuchj
[考研] 281求调剂 +5 2026计算机_诚心 2026-03-01 8/400 2026-03-02 11:05 by 汪!?!
[考研] 284求调剂 +10 天下熯 2026-02-28 11/550 2026-03-02 11:03 by 无际的草原
[考研] 0856材料与化工,270求调剂 +8 YXCT 2026-03-01 9/450 2026-03-02 11:01 by 无际的草原
[考研] 材料调剂 +6 爱擦汗的可乐冰 2026-02-28 7/350 2026-03-02 10:42 by Jy?
[考研] 0854复试调剂 276 +4 wmm9 2026-03-01 6/300 2026-03-02 09:28 by 热情沙漠
[考研] 322求调剂 +3 熊境喆 2026-03-01 3/150 2026-03-02 08:44 by houyaoxu
[考研] 0857调剂 +4 一ll半 2026-02-28 5/250 2026-03-02 02:33 by 908055542
[硕博家园] 博士自荐 +7 科研狗111 2026-02-26 11/550 2026-03-01 22:24 by 哲平L
[考研] 0856材料求调剂 +11 hyf hyf hyf 2026-02-28 12/600 2026-03-01 18:57 by 18137688336
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +4 虫虫虫虫虫7 2026-03-01 7/350 2026-03-01 16:52 by caszguilin
[考研] 课题组接收材料类调剂研究生 +3 gaoxiaoniuma 2026-02-28 4/200 2026-03-01 14:30 by jjj三跨
[考研] 寻找调剂 +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
[硕博家园] 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
[考研] 304求调剂 +3 52hz~~ 2026-02-28 5/250 2026-03-01 00:00 by 52hz~~
信息提示
请填处理意见