随笔-9  评论-5  文章-0  trackbacks-0
  2008年10月24日
使用结构体作为返回值,可以使得函数的调用更加灵活和方便。

/************************************************************************/
/* 使用结构体作为返回值                                                                     */
/************************************************************************/
#include 
"iostream.h"
struct student
{
    
int id;
    
char name[20];
    
int age;
    
char department[20];
    
float gpa;
}
;

student init();                
//初始化,返回一个student的结构
void display(student arg);    //显示结构体

int main()
{
    display(init());    
//init()返回的是一个student结构体
    return 0;
}


void display(student arg)
{
    cout
<<"学号:"<<arg.id<<"  姓名:"<<arg.name<<"  年龄"<<arg.age<<"  专业:"<<arg.department<<"  成绩:"<<arg.gpa<<endl;
}

student init()
{
    student s1 
= {3221,"Tom",18,"Computer",86.33};    //初始化一个student的结构体
    return s1;                                        //返回一个student的结构体s1
}
posted @ 2008-10-24 12:46 longhr 阅读(3684) | 评论 (1)编辑 收藏

/************************************************************************/
/* 数组直接选择排序的简单实现,没有输入输出模块                                                                     */
/************************************************************************/
#include 
"iostream.h"

void sort(int a[],int size);
int main()
{
    
int num[]={21,12,45,34,67,30,21,3,56,98,99};

    sort(num,
sizeof(num)/sizeof(int));

    
return 0;
}

void sort(int a[],int size)
{
    
for (int i=0;i<size;i++)
    
{
        
int min=a[i],min_i=i;    //假设首元素是最小的,min_i表示是最小数字i坐标
        for (int j= i;j<size;j++)
        
{
            
if (a[j]<min)
            
{
                min
=a[j];
                min_i 
= j;
            }

        }

        
int temp = a[i];    //a[min_i]为找到的值最小的元素,要把最小的元素放在a[i]中
        a[i] = a[min_i];
        a[min_i]
= temp;
    }

}
posted @ 2008-10-24 11:20 longhr 阅读(407) | 评论 (0)编辑 收藏

/************************************************************************/
/* 简单的求数组中最大值的函数调用方法                                                                     */
/************************************************************************/
#include 
"iostream.h"
int max(int a[],int size);
int main()
{
    
int num[]={12,34,32,45,65,99,33,56,58,97};
    cout
<<max(num,sizeof(num)/sizeof(int))<<endl;
    
return 0;
}


int max(int a[],int size)
{
    
int max = 0;
    
for (int i=0;i<size;i++)
    
{
        
if(max<a[i])
            max
=a[i];
    }

    
return max;
}
posted @ 2008-10-24 10:41 longhr 阅读(2477) | 评论 (0)编辑 收藏
  2008年10月23日

Visual C++ 插件系列介绍

说到Visual C++的插件,大家可能只有想到Visual Assist吧。天真!行内开发的插件可只有这个!?下面介绍一下vc6.0的其他插件。

Visual Assist(强烈推荐)
网址:http://www.wholetomato.com/
功能:VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在WorkSpace窗口中加入一个VA View,可以更方便的查找工程中的文件、类和变量。


WndTabs(强烈推荐)
网址:http://www.wndtabs.com/
功能:WndTabs主要是在编辑窗口中显示了所有已经打开的文件,在VC中能够更方便的操作这些文件,比如修改文件属性,copy文件路径、文件名等,并且还开放源代码,你要是愿意的话,可以添加自己很兴趣的功能。

LineCounter
网址: http://www.wndtabs.com/
功能:用来统计整个工程的代码行数,包括总行数、代码行数、注释行数、空行数等,并且对多个工程一起统计时,不会把相同的文件计算多次.

Spelly
网址:http://www.wndtabs.com/
功能:一个拼写检查的插件,可以对整个文件或所选部分进行拼写检查,支持C/C++/C#, VB, Fortran 和HTML。

SourceStyler C++
网址:http://www.sourcestyler.com/
功能:此插件是针对C++的一个格式化工具,可以针对自己的编码习惯,选择一种编码风格,也可以自己定义,而且定义非常详细,有表达式、指针、模板、类、枚举等十几种,肯定能满足你的需要。

Numega BoundsChecker(强烈推荐)
功能:是针对Visual C++6.0应用程序的最为全面的错误检测工具。BoundsChecker 能自动指出静态,堆栈内存错误和资源泄漏问题。BoundsChecker 能够校验最新的 Windows APIs,包括 ActiveX, DirectX, OLE/COM, ODBC等等。能够发现与 Windows 平台兼容性。

BCGControlBar Library
功能:非常好的一套应用于vc6的界面扩展类库,轻松的作出 vc2003 的界面。并且给了各种界面例子,如vc.net、outlook、更换皮肤等等。

Comment Wizard
网址:http://www.cppblog.com/fwxjj/
功能:Visual C++插件,提供了Visual C++源代码注解标准化与自动化功能。在它的帮助下,您可快速创建标头文件信息注解,文件中模块注解, C++处理方式,以及C语言功能与历史校正功能注解,等等。

String watch Microsoft Visual Studio add-in
网址:http://www.codeguru.com/cpp/v-s/devstudio_macros/debugging/article.php/c5989
功能:调试时查看字符串的。

Tabbar插件
网址:http://www.winmsg.com/cn/tabbar.htm
功能:显示多tab的插件



转载自:http://bbs.xgcollege.com/read.php?tid-1138.html

posted @ 2008-10-23 22:37 longhr 阅读(4153) | 评论 (1)编辑 收藏


/************************************************************************/
/* 输出常用的ASCII码表                                                  */
/************************************************************************/
#include 
"iostream.h"
int main()
{
    
for (int i=32;i<=127;i++)
    
{
        cout
<<(char)i; //强制类型转换
    }

    
return 0;
}


美化一些的版本,这样看起来输出更好看一些

#include "iostream.h"
#include 
"iomanip.h"//为了使用setw()
int main()
{
    
char temp;
    
for (int i=32;i<=127;i++)
    
{
        temp 
= i;
        cout
<<setw(2)<<temp; //setw(n) 设域宽为n个字符
        if (i%16==15)
        
{
            cout
<<endl;
        }

    }

    
return 0;
}
输出的结果如下
   ! " # $ % & ' ( ) * + , - . /
 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
 @ A B C D E F G H I J K L M N O
 P Q R S T U V W X Y Z [ \ ] ^ _
 ` a b c d e f g h i j k l m n o
 p q r s t u v w x y z { | } ~ 
Press any key to continue

posted @ 2008-10-23 21:11 longhr 阅读(720) | 评论 (0)编辑 收藏
一直对于递归的使用不太了解,这样写出一个最简单的算法,这样就可以知道怎么具体使用了。把公式套进去就可以了。


#include "iostream.h"
/************************************************************************/
/* 使用递归最简单的程序,实现f(n)=2*f(n)+3                              */
/************************************************************************/
int f(int i);
int main()
{
    
for (int i=1;i<=8;i++)
    
{
        cout
<<"f"<<"("<<i<<")"<<"="<<f(i)<<endl;
    }

    
return 0;
    
}


int f(int i)
{
    
if (i ==1)
    
{
        
return 1;
    }

    
else
    
{
        
return 2*f(i-1)+3;
    }

}
posted @ 2008-10-23 20:57 longhr 阅读(596) | 评论 (0)编辑 收藏
能被4整除是闰年,但是特殊情况是整百年要被400整除才行  


#include "iostream.h"

int main()
{
    
int year;
    cin
>>year;
    
if (year%4 ==0 && year%100!=0 || year%400 ==0)
    
{
        cout
<<"是闰年(leapyear)";
    }

    
else
    
{
        cout
<<"不是闰年";
    }

    
return 0;
}
posted @ 2008-10-23 17:21 longhr 阅读(1335) | 评论 (3)编辑 收藏
类似这样的三角形


*******
******
*****
****
***
**
*
#include "iostream.h"
int main()
{
    
for (int i=7;i>0;i--)
    
{
        
int p=i;
        
while (p--)
        
{
            cout
<<"*";
        }

        cout
<<"\n";
    }

    
return 0;
}

输出这样的三角形类似
*
**
***
****
*****
#include "iostream.h"
int main()
{
    
for (int i=1;i<=5;i++)
    
{
        
int p=i;
        
while (p--)
        
{
            cout
<<"*";
        }

        cout
<<"\n";
    }

    
return 0;
}
类似这样的等腰三角形
    *
    **
   ***
   ****
  *****
  ******
 *******
 ********
*********
**********
#include "iostream.h"
int main()
{
    
int sum = 10;
    
for (int i=1;i<=sum;i++)
    
{
        
int p=(sum -i)/2;
        
while (p--)
        
{
            cout
<<" ";
        }

        p
=i;
        
while (p--)
        
{
            cout
<<"*";
        }

        cout
<<"\n";
    }

    
return 0;
}

         *
        * *
       * * *
      * * * *
     * * * * *
    * * * * * *
   * * * * * * *
  * * * * * * * *
 * * * * * * * * *
* * * * * * * * * *

#include "iostream.h"
int main()
{
    
int sum = 10;
    
for (int i=sum;i>=0;i--)
    
{
        
int p=i;
        
while (p--)
        
{
            cout
<<" ";
        }

        p
=sum -i;
        
while (p--)
            
{
                cout
<<"";
            }

        cout
<<"\n";
    }

    
return 0;
}

posted @ 2008-10-23 16:37 longhr 阅读(1488) | 评论 (0)编辑 收藏
采用指针的方法
#include <stdio.h>
#include 
"iostream"
#include 
<string.h>
int main()
{
    
char *src = "hello";
    
int len= strlen(src);
    
char *dest = (char *)malloc(len+1);
    
char *d= dest;
    
char *= &src[len-1];
    len 
= 1;
    
while (len--)
    
{
        
*d++=*s--;
    }

    
*= 0;    //否则会乱码
    printf("%s\n",dest);
    free(dest);
    
return 0;
}

采用数组的方法
#include <stdio.h>
#include 
"iostream"
#include 
<string.h>
int main()
{
    
char src[] = "hello";
    
int len = strlen(src);
    
char temp;
    
for (int i=0;i<len/2;i++)
    
{
        temp 
= src[i];
        src[i] 
= src[len-i-1];
        src[len
-i-1= temp;
    }

    printf(
"%s\n",src);
    
return 0;
}

参考的代码
int main(){
char* src = "hello,world";
int len = strlen(src);
char* dest = (char*)malloc(len+1);//要为\0分配一个空间
char* d = dest;
char* s = &src[len-1];//指向最后一个字符
while( len-- != 0 )
*d++=*s--;
*= 0;//尾部要加\0
printf("%s\n",dest);
free(dest);
// 使用完,应当释放空间,以免造成内存汇泄露
return 0;
}


#include 
<stdio.h>
#include 
<string.h>
main()
{
char str[]="hello,world";
int len=strlen(str);
char t;
for(int i=0; i<len/2; i++)
{
t
=str[i]; 
str[i]
=str[len-i-1]; str[len-i-1]=t;
}

printf(
"%s",str);
return 0;
}

posted @ 2008-10-23 16:05 longhr 阅读(4097) | 评论 (0)编辑 收藏
仅列出标题