| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1182 人关注过本帖
标题:[求助]小弟有一道题目请各位帮帮忙啊!!!!
只看楼主 加入收藏
wst77535534
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-9-25
收藏
 问题点数:0 回复次数:4 
[求助]小弟有一道题目请各位帮帮忙啊!!!!

长双整数类(重载运算符)

1.题目

1.1存储结构

用有序长整数对表示长双整数(8字节有符号整数,负数用补码表示):

高4字节

低4字节

h

l

其中,高4字节为有符号长整数(long),低4字节为无符号长整数(unsigned long)。

1.2输入形式

按字符串输入十进制整数。

1.3基本操作

⑴重载单目运算符+、-和双目运算符+、-、*、/、%,分别用于长双整数的相应算术运算。

⑵重载运算符>>和<<,分别用于输入和输出长双整数。

……

2.概要设计

2.1存储结构

typedef struct{

long h;

unsigned long l;

}Long;

2.2基本操作

Long operator + (Long i)

算法:返回i。

Long operator - (Long i)

算法:①对i按位取反(i.h=~i.h,i.l=~i.l);②i加1(如果++i.l为0,则++i.h);③返回i。

……

istream &operator >> (istream &istr,Long &i)

算法:①令i=0(i.h=i.l=0);②读入1个字符c,如果c=='-',令f=1,并再读入1个字符c,否则,令f=0;③如果c是十进制数字('0'<=c&&c<='9'),重复执行i=i*10+c-'0'和读入1个字符c;④如果f则i=-i;⑤返回istr。

ostream &operator << (ostream &ostr,Long i)

算法:①如果i.h为负数,输出负号-,并改变i的符号(i=-i);②如果i.h不等于0,输出i.h;③输出i.l;④返回ostr。

……

2.3主函数

显示一个文字菜单,实现菜单中的相应功能。

3.详细设计

//长双整数类(重载运算符)

//预处理

#include<iostream.h>

#include<conio.h>

//……

//存储结构

typedef struct{

long h;

unsigned long l;

}Long;

//基本操作

//……

void main(){

int choose=0;

Long i,i1,i2;

while(1){

clrscr();

cout<<"1.输入长双整数1\n";

cout<<"2.输入长双整数2\n";

cout<<"3.长双整数相加\n";

//……

cout<<"9.结束\n\n";

cout<<"请选择:";

cin>>choose;

switch(choose){

case 1:

//cout<<"请输入长双整数1:\n"; cin>>i1;

break;

case 2:

//cout<<"请输入长双整数2:\n"; cin>>i2;

break;

case 3:

//cout<<"\n("<<i1<<")+("<<i2<<")="<<i1+i2;

break;

//……

case 9:

clrscr();

cout<<"\n\n\n\n\n\n\n\n\t\t\t\t\t再见!"; getch();

return;

}

cout<<"\n\n按任意键继续……"; getch();

}

}

4.测试结果

……

还请各大侠多多帮助哦!!!小弟不胜感激!!!!!

搜索更多相关主题的帖子: face 宋体 
2004-09-25 18:42
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
不是不想帮你,不过这样长的题目最好自己先写写,先想想。
2004-09-25 19:53
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 

不喜欢给别人做家庭作业


永不放弃!
2004-09-25 20:54
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
这样的题目并不难,我想楼主也是怕烦吧!

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-09-26 07:28
wst77535534
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-9-25
收藏
得分:0 

不是啦,我自己做了,可是做不出来啊,在输入上完不成,加和减倒是轻松,用位运算就可以实现,

不过在进位上还是有点困难,乘和除做不出来,汗啊~~~~求大家帮一下小弟啊~~~

2004-09-26 14:58
快速回复:[求助]小弟有一道题目请各位帮帮忙啊!!!!
数据加载中...
 
   



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

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