首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

C++应用实例一

2008-12-04 
打印1到n^2的自然数构成的魔方阵;DLL中如何应用函数指针与主程序交互

    1.打印1到n^2的自然数构成的魔方阵

    #include"stdio.h"
  void main(void)
  {
  int a[15][15]={0};
  int i,j,k,n,p=1;
  while(p==1) //参数p的设置,考试.大提示确定n输入范围
  {
  printf("请输入一个奇数n(1到15之内):");
  scanf("%d",&n);
  if((n>0) && (n<=15) && (n%2!=0)) //魔方阵的阶数应为奇数
  p=0;
  }
  /////////////建立魔方阵
  j=n/2;
  a[0][j]=1; //把“1”放在第一行中间一列上
  i=0;
  j=n/2;
  for(k=2;k<=n*n;k++)
  {
  i=i-1;
  j=j+1;
  if(i<0)
  i=n-1;
  if(j>(n-1))
  j=0;
  a[i][j]=k;
  if(k%n==0) //当这时插入的数是n的整数倍时,下一个起点设为他本列的下一行
  {
  a[++i][j]=++k;
  }
  }
  printf("魔方阵:\n");
  for (i=0;i<n;i++)
  {
  for(j=0;j<n;j++)
  {
  printf("%4d",a[i][j]);
  }
  printf("\n");
  }
  printf("\n");
  }

    2.DLL中如何应用函数指针与主程序交互

    虽然在DLL中定义指向主程序的函数指针,看似程序逻辑有些混乱,但工程实际应用中有时却得这么干,因此简单总结一下,函数指针在开发中的应用。
  第一步: 创建一般的动态库工程Win32s1
  第二步: 在动态库.h文件中,自定义函数指针类型,声明导出函数
  注:导出函数应用到外部主程序的相关计算与结果
  typedef float (*outFun)(int, int, int); //函数指针类型
  // typedef + 类型标识 + (指针变量名称) + (参数列表)
  SBUI_API void getProfit(outFun fun); //声明导出函数
  注:导出函数的返回类型与函数指针应用无关
  第三步: 在动态库的.cpp文件中,实现一个由外部函数执行 + 动态库函数执行的一个动作
  void getProfit(outFun fun)
  {
  int nGrossIncome = 90000; //总收入
  int nLabourCosts = 1000; //人工成本
  int nMaterialCosts = 2000; //材料成本
  double nNetProfit = fun(
  nGrossIncome,
  nLabourCosts,
  nMaterialCosts)/*求得税前利润*/
  * (1 - 0.18);
  char chNetProfit[512] = "\0";
  sprintf(chNetProfit, "当期纯利润为 %f", nNetProfit); // #include <stdio.h>
  MessageBox(NULL, chNetProfit, "收益计算", MB_OK|MB_ICONINFORMATION);
  }
  第四步: 在主程序中实现成本计算函数 setProfit,并调用DLL函数
  float setProfit(int _nGrossIncome, int _nLabourCosts, int _nMaterialCosts)
  {
  int nSellingCosts = 5000;
  return float(_nGrossIncome - nSellingCosts - _nLabourCosts - _nMaterialCosts);
  }
  #include "dll1.h"
  #pragma comment(lib,"Win32s1.lib")
  void CTestDlg::OnButton1()
  {
  getProfit(setProfit);
  }

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行