设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4836|回复: 27
打印 上一主题 下一主题

[已经过期] 一道C++练习题求解

[复制链接]

Lv1.梦旅人

ACG宅

梦石
0
星屑
72
在线时间
413 小时
注册时间
2008-10-1
帖子
5595

开拓者贵宾

跳转到指定楼层
1
发表于 2011-5-29 13:05:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
要求设计一个人事管理的“人员”类,人员属性为编号、性别、出生日期、身份证号等,其中出生日期为日期类的内嵌子对象,用成员函数实现对人员信息的录入和现实,要求包括析构函数、构造函数、复制构造函数、内联成员函数、带默认形参值的成员函数、类的组合。

以下是我没写完的。。。当然,尝试着编译了下。。各种出错- -
  1. // 类习题4-10.cpp : 定义控制台应用程序的入口点。
  2. //

  3. #include "stdafx.h"
  4. #include <iostream>

  5. using namespace std;

  6. class Renyuan{
  7. public:
  8.         Renyuan(int gz_id=360203199301070001 ){           //构造函数
  9.         sf_id=gz_id;
  10.         }
  11.         Renyuan(Renyuan &R);                    //复制构造函数
  12.         void shuchu();
  13.         void ID(int bianhao);         
  14.         bool xingbie(bool nannv);
  15.         void shenfenzheng(int sfz);
  16.         ~Renyuan(){}         //析构函数
  17. private:
  18.         int id,sf_id;
  19.         bool xb;
  20. };

  21. inline shuchu;

  22. int Renyuan::Renyuan(Renyuan &R){           //复制构造函数的定义
  23.         sf_id=R.sf_id;
  24. }


  25. //成员函数对人员信息的录入与显示
  26. void Renyuan::ID(int bianhao=101101){            //带默认形参值的函数   
  27.         cout<<"输入你的公司编号"<<endl;           
  28.         cin>>id;                           //录入
  29.         cout<<"以下是你的公司编号"<<id;    //显示
  30. }
  31. void Renyuan::shenfenzheng(int sfz){
  32.         cout<<"输入你的身份编号"<<endl;
  33.         cin>>sf_id;                        //录入
  34.         cout<<"以下是你的身份编号"<<sf_id;//显示
  35. }

  36. class riqi{             //日期函数
  37. public:
  38.         void chushengriqi(int nian,yue,ri);

  39. private:
  40.         int year,mouth,day;
  41. };
复制代码
此号诞生于公元2008年10月1日。
此号消失于公元2012年10月1日。
4年的经历,4年的守望。现在只剩下66RPG的名字和当年的“梦想世界,在你手中。”这一句话。

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

2
发表于 2011-5-29 13:54:35 | 只看该作者
本帖最后由 yangff 于 2011-5-29 13:55 编辑

有病吧……这老师,这种东西要用Ruby写……另外定义这么多东西……用Define多好啊……
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

3
发表于 2011-5-29 13:59:49 | 只看该作者
刚开始研究C++,无力回答= =
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
11 小时
注册时间
2009-6-4
帖子
210
4
发表于 2011-5-29 15:10:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

ACG宅

梦石
0
星屑
72
在线时间
413 小时
注册时间
2008-10-1
帖子
5595

开拓者贵宾

5
 楼主| 发表于 2011-5-29 20:44:04 | 只看该作者
没人解答么。。。另外感谢楼上提出的错误。。。话说还把定义一个函数里面的类型以为成可以和定义变量一样直接int X,Y,Z这样呢。。。
此号诞生于公元2008年10月1日。
此号消失于公元2012年10月1日。
4年的经历,4年的守望。现在只剩下66RPG的名字和当年的“梦想世界,在你手中。”这一句话。
回复 支持 反对

使用道具 举报

乌有君
6
乌有君  发表于 2011-5-29 23:42:26
yangff 发表于 2011-5-29 13:54
有病吧……这老师,这种东西要用Ruby写……另外定义这么多东西……用Define多好啊…… ...

没关系,加个RUBY解释器进去。然后用RUBY开始写吧 囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
7
发表于 2011-5-30 03:35:18 | 只看该作者
直接给你鱼,对你有什么帮助呢?倒不如你先继续写着,不解之处,我们倒是可以帮你。

几个方向和建议:
1、声明放入头文件,定义放到源文件中,不要混搭(哪怕是一个空的析构函数实现)。分离接口和实现,这是 C++ 的惯例;
2、Date(日期)类和 Personnel(人员)类各自一个头文件和源文件;
3、形参默认值放在声明接口处而不是实现处——实现细节对用户来说不重要;
4、对象属性一概设为私有,开放 getter 和 setting,将这些声明为内联(inline)函数;
5、复制构造函数需要复制对象所有成员;
6、设计 Date 类构造函数,接受年、月、日参数,而不是用别的成员函数;如果有别的日期初始化途径,可以重载;
7、给两个类都提供一个输出函数,以格式化的字符串形式输出类实例;
7、用英语命名而不是拼音

另外对沙发杨飞凤提出的第一个观点表示强烈赞同;P

点评

那我双引号一下?我个人是比较反感 C++,所以才对飞凤老弟的“观点”有共鸣啊~  发表于 2011-5-30 07:23
XD那也算观点的吗。  发表于 2011-5-30 06:59
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2227
在线时间
1102 小时
注册时间
2006-1-10
帖子
800
8
发表于 2011-5-30 08:47:04 | 只看该作者
愁死了,这么简单的实现为嘛要搞得这么麻烦。。。面对这种需求,还讲究个什么代码安全性,用不着get set,统统public,属性方法全用拼音,一行注释没有,要还以颜色啊。
不是说JAVA语法沿袭自C++吗,但这么一看真是没什么可比性,虽然代码上一样那么臃肿。。。只接触过JAVA的咱表示逻辑上看不懂。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
9
发表于 2011-5-30 10:07:02 | 只看该作者
非常白菜 发表于 2011-5-30 08:47
愁死了,这么简单的实现为嘛要搞得这么麻烦。。。面对这种需求,还讲究个什么代码安全性,用不着get set, ...

自下而上的软件设计都是从“简单的实现”开始组建的,跟着工业标准走自有道理。现在的需求固然简单,难保将来需求不会更变,到时候使用 getter/setter 维护统一接口的(开发)效率就体现出来了。“搞得这么麻烦”通常并不是为了自己,是为了集体。

一行注释没有

确定?我倒是看到了不少注释,虽然大部分都没什么意义。比如一看函数签名就知道是复制构造、析构函数的声明和定义后面完全不需要注释。理想的代码是一行注释也不需要。如果认为一段代码需要注释才能让读者理解,那就应该反思如何重写代码使得注释不被需要。实在无法进一步让代码更加清晰时,再使用注释。

不是说JAVA语法沿袭自C++吗,但这么一看真是没什么可比性,虽然代码上一样那么臃肿

“沿袭”这个字眼未免太过强烈,我会用“衍生”或“深受……影响”。Java 和 C++ 都是 C 风格语法家族的成员(但两个晚学却在很多层面违背了其祖所发扬的极简主义),都是静态类型语言,都是命令式语言,都是基于类的面向对象语言。大半相同的关键字,一如既往的弯括号代码块,基本一致的运算符,这些都可比呀。

点评

注释是给老师看的。。。。全是题目要求使用到的函数和功能之类的说明,方便老师检查的时候看。。。  发表于 2011-5-30 10:33
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

ACG宅

梦石
0
星屑
72
在线时间
413 小时
注册时间
2008-10-1
帖子
5595

开拓者贵宾

10
 楼主| 发表于 2011-5-30 10:16:34 | 只看该作者
先感谢苏姐的建议。之所以没有按照规则来写,拼音啊什么的,首先是因为这是个实践课的作业,时间不多,所以这么将就着写。第二是如果写的规范了,什么都分开定义了,老师检查的时候又该吵吵这么麻烦干什么了。。。平时自己写的话肯定是要按照规范来的,养成一个好的习惯也是必须的。
此号诞生于公元2008年10月1日。
此号消失于公元2012年10月1日。
4年的经历,4年的守望。现在只剩下66RPG的名字和当年的“梦想世界,在你手中。”这一句话。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 05:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表