Chinaunix首页 | 论坛 | 博客
  • 博客访问: 169369
  • 博文数量: 28
  • 博客积分: 2604
  • 博客等级: 少校
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-13 12:59
文章分类

全部博文(28)

文章存档

2013年(3)

2009年(3)

2008年(8)

2007年(14)

我的朋友

分类: C/C++

2008-02-27 22:26:20

1、程序由函数组成,函数只完成自己特定的功能即可
   把函数声明写在头文件里(想使用函数时,可直接导入头文件,调用函数),把函数实现写在".cc"文件中
   把多个".cc"文件编译成可执行文件 ->分别编译成".o"文件,再连接到一起
  
2、值传递
   函数中的参数传递是值传递,形参只是实参的一份拷贝数据,在函数中改变形参的值,对实参无影响
  
3、作业分析:显示层(与用户的交互)
             操作数据(完成业务逻辑) biz层
             数据(id , password , balance )                       
  
  
Bank实现代码 
================================================================
            biz.cc
================================================================
//operation
/* p : Password of account .
 * b : balance of account .
 * return : id of account .
 */
long create( int p , double b );
void save( double sum ) ;
/*
 * return : 0 success , otherwise -1 returned .
 */
int withdraw( int p , double sum ) ;
double query( int p ) ;
long generateId();
================================================================
            biz.cc
================================================================
static long id ;
static int passwd ;
static double balance ;
#include
using namespace std;
long generateId(){
 static int id = 1 ;
 return id++ ;
}
long create( int p , double b ){
 id = generateId();
 passwd = p ;
 balance = b ;
 return id ;
}
void save( double sum ){
 balance += sum ;
}
int withdraw( int p , double sum ){
 if( p != passwd ){
  cout<<"invalid password ." << endl;
  return -1 ;
 }
 if( balance < (sum + 10) ){
  cout<<"no enough money ." << endl;
  return -1 ;
 }
 balance -= sum ;
 return 0 ;
}
double query( int p ){
 if( p != passwd ){
  cout<<"invalid password " << endl;
  return -1 ;
 }else{
  return balance ;
 }
}
 
================================================================
            menu.h
================================================================
int showMenu();
void createMenu();
void saveMenu();
void withdrawMenu();
void queryMenu();
================================================================
            menu.cc
================================================================
#include "biz.h"
#include
using namespace std;
int showMenu(){
 cout<<"create ------> 1 " << endl;
 cout<<"save   ------> 2 " << endl;
 cout<<"withdraw ----> 3 " << endl;
 cout<<"query -------> 4 " << endl;
 cout<<"exit --------> 0 " << endl;
 cout<<"enter your choice >";
 int c ;
 cin>>c ;
 if( !cin ){
  return -1 ;
 }else{
  return c ;
 }
}
void createMenu(){
 int passwd ; 
 double balance ;
 cout<<"\tenter password >";
 cin>>passwd ;
 cout<<"\tenter balance >";
 cin>>balance ;
 long id = create( passwd , balance );
 cout<<"======================"< cout<<"create account ok , id = " << id < cout<<"======================"<}
void saveMenu(){
 double sum ;
 cout<<"\tenter sum >";
 cin>>sum ;
 
 save( sum ) ;
 cout<<"======================"< cout<<"save money ok "< cout<<"======================"<}
void withdrawMenu(){
 int passwd ;
 double sum ;
 cout<<"\tenter password >";
 cin>>passwd ;
 cout<<"\tenter sum >";
 cin>>sum ;
 int ret = withdraw( passwd , sum ) ;
 if( ret == 0 ){
  cout<<"========================"<  cout<<"withdraw successful . "<  cout<<"========================"< } 
}
void queryMenu(){
 int passwd ;
 cout<<"\tenter password >";
 cin>>passwd ;
 double ret = query( passwd ) ;
 if( ret != -1 ){
    cout<<"============================"<    cout<<"BLANCE : $ " << ret << endl;
    cout<<"============================"< }else{
    cout<<"============================"<    cout<<"invalid password "<    cout<<"============================"< }
}
================================================================
            main.cc
================================================================
#include
#include "menu.h"
using namespace std;
int main(){
 int c = 0 ;
 do{
  c = showMenu();
  if( c == -1 ) { break ; }
  switch( c ){
    case 1 :
   createMenu();
   break;
    case 2 :
   saveMenu();
   break;
    case 3 :
   withdrawMenu();
   break;
    case 4 :
   queryMenu();
   break;
    case 0 :
   cout<<"===================="<   cout<<"Good Bye "<   cout<<"===================="<   break;
    default :
   cout<<"===================="<   cout<<"invalid option, try again.";
   cout<   cout<<"===================="<   break;
  } 
 }while( c != 0 );
 return 0 ;
}
================================================================

            
4、数组
   (1)声明数组    <元素类型> 数组名[元素个数]   int intArray[100]; -->intArray 是个集合,有100个元素,每个元素都是int类型的
   (2)初始化数组 
   (3)使用        通过数组的下标来访问数组中的元素,下标从0开始  intArray[0]=100; -->intArray数组中的第一个元素赋值为100
  
   数组声明时,元素个数必须是常量表达式
   数组声明带有初始化,则可直接为数组赋值
   在数组声明时,必须指明数组长度,若在声明时候初始化,数组长度可省
   int a1[2]={100,200}; 长度2
   int a2[] = {5,6,7}; 长度3
  
   对于数组中的元素个数,比声明时的多,则会报错,这样的越界访问,对整个程序来说会有很严重的后果!!!
                         比声明少,系统会把余下的没有定义数据的元素初始化为0
                     
   不初始化的数组,其中的元素数据为随机数
  
   下标工作的原理:
           表示编号,还表示当前元素相对于数组起始位置的偏移量
           计算机通过偏移量找到元素在内存中的位置
          
5、数组的排序
   选择排序:找出最小的放在第一个位置
             数组元素有n个,需要找n-1次,需要比较n-i次(i为开始元素的位置)
            
6、多维数组
    二维数组;一个数组中的每个元素是个数组
            声明: int iA[5][10];  -->“5”代表数组有5行,“10”代表数组有10列
                   声明时,第一维可以省略!
            确定一个元素需要2个下标
           
7、结构
   用户自己定义的一组数据类型
   声明结构时,编译器不会分配空间,在声明一个结构的变量的时候才会为其分配空间
   结构中的成员是多个简单类型组成的
   用 “结构名.成员名”来操作其中的成员变量
   strcpy(p.name,"huxz");为char数组赋值
   结构类型的变量间也可以相互赋值
  
   结构的大小就是所有成员的大小之和(每个成员的大小必须是int类型的整倍数,当不够时,会自动补齐)
   Unix上还要求,结构的大小是结构的最大的成员的整倍数
   size(of)  计算结构大小  
阅读(1872) | 评论(0) | 转发(0) |
0

上一篇: C++笔记(二)

下一篇:C++笔记(四)

给主人留下些什么吧!~~