C任意进制转换程序计算机等级考试

文章作者 100test 发表时间 2009:07:08 02:56:36
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  以前做C培训时写的一个任意进制转换的程序,不使用库提供的转换函数,现贴出来做一下记录。
  / scale.cpp : 定义控制台应用程序的入口点。
  //
  #include "stdafx.h"
  #include <.stdio.h>.
  #include <.stdlib.h>.
  #include <.ctype.h>.
  #include <.string.h>.
  #include <.math.h>.
  #define WIDTH 10
  #define DATAWIDTH 50
  #define MAX 4294967295
  #define CONST_2 2
  #define CONST_3 3
  #define CONST_8 8
  #define CONST_9 9
  #define CONST_10 10
  #define CONST_16 16
  #define CHAR_0 0
  #define CHAR_9 9
  #define CHAR_A A
  #define CHAR_a a
  #define CHAR_Z Z
  #define CHAR_SPACE
  #define STRING_0 "0"
  #define STRING_Z "Z"
  bool Scale().
  bool GetSourceScale(int * scale_in).
  bool GetObjectScale(int * scale_out).
  double OtherToDeci(int scale_in,char inputdata[]).
  void DeciToOther(unsigned long deci,int scale_out,char outputdata[]).
  bool GetData(char data[],int CONCOUNT,int flg).
  bool GetScale(char temp[]).
  bool GetSource(int in_scale,char inputdata[]).
  void ScaleChange(int scale_in,char inputdata[],int scale_out,char outputdata[]).
  void CleanScreen().
  int _tmain(int argc, _TCHAR* argv[])
  {
  int flg = 0.
  char cs[WIDTH].
  memset(cs,0x00,sizeof(cs)).
  while(1)
  {
  printf("-----------------------------------------------------------------\n").
  printf(" Data Transform Between Two Scales \n").
  printf(" ----------------------------------------\n").
  /*进制转换主函数*/
  if(!Scale())
  {
  break.
  }
  printf("-----------------------------------------------------------------\n").
  printf("input any key and press Enter key to continue, Z for exit:").
  if(!GetData(cs,WIDTH,flg)) /*判断是否继续执行下一次转换*/
  {
  break.
  }
  system("cls"). /*清屏*/
  }
  return 0.
  }
  bool Scale()
  {
  int scale_in,scale_out.
  char inputdata[DATAWIDTH].
  char outputdata[DATAWIDTH].
  /*输入源数据进制*/
  if(!GetSourceScale(&.scale_in))
  {
  return false.
  }
  /*输入源数据*/
  if(!GetSource(scale_in,inputdata))
  {
  return false.
  }
  /*输入目标数据进制*/
  if(!GetObjectScale(&.scale_out))
  {
  return false.
  }
  /*进行进制转换*/
  ScaleChange(scale_in,inputdata,scale_out,outputdata).
  return true.
  }
  bool GetSourceScale(int * scale_in) /*输入源数据进制*/
  {
  char temparray[WIDTH].
  memset(temparray,0x00,sizeof(temparray)).
  printf("Input source data scale and press Enter key(one of 2,8,10,16. Z for exit): \n").
  if(!GetScale(temparray))
  {
  return false.
  }
  *scale_in = atoi(temparray).
  return true.
  }
  bool GetObjectScale(int * scale_out) /*输入目标数据进制*/
  {
  char temparray[WIDTH].
  memset(temparray,0x00,sizeof(temparray)).
  printf("Input object data scale and press Enter key(one of 2,8,10,16. Z for exit): \n").
  if(!GetScale(temparray))
  {
  return false.
  }

相关文章


C程序语言中数学函数计算机等级考试
C任意进制转换程序计算机等级考试
关键数据结构之帧结构:mad_herder和mad_frame计算机等级考试
用VC验证EMAIL有效性计算机等级考试
用DOS批处理来做数字图像处理计算机等级考试
内存分配管理的代码用C实现计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛