实验一C“加”“加”开发环境与程序设计步骤_2


    实验 C++开发环境程序设计步骤
    目求
    1.  学Visual C++60集成环境掌握源程序编辑方法
    2.  掌握Visual C++60集成开发环境中编译调试运行程序方法
    3.  通运行简单C++程序初步解C++源程序特点
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕C++程序设计步骤
    C++程序设计分成5步骤:
    1.  分析问题根实际问题分析需求确定解决方法
    2.  编辑源程序编写C++源程序利编辑器源程序输入计算机中某文件中C++源文件扩展名cpp〞
    3.  编译程序编译源程序检查语法错误生成目标代码文件目标代码文件扩展名obj〞
    4.  连接程序目标程序库函数进行连接生成执行文件执行文件扩展名exe〞
    5.  运行程序执行执行文件分析运行结果假设算法错误进步进行修改编译调试
    编译连接运行程序程中出现式样错误断修改源程序重复程直获正确结果止 
    〔二〕Visual C++60机操作方法
    Visual C++60系统包含许独立组件编辑器编译器调试器种样开发Windows环境C++程序设计工具中重名Developer Studio集成开发环境〔IDE〕Developer StudioVisual C++工具结合起集成窗口话框菜单工具栏快捷键宏组成谐系统通该集成环境程序员观察控制整开发进程
    Visual C++60调试C++程序步骤:
    1                     启动Visual C++60系统
    启动Visual C++60系统种方法常见通鼠标单击开始〞菜单选择程序〞选择Microsoft Visual Studio 60选择Microsoft Visual C++ 60启动Visual C++60果已桌面建立Microsoft Visual C++ 60图标鼠标双击该图标启动Visual C++60Visual C++60启动成功产生图11示Visual C++集成环境

    图11 典型Developer Studio窗口
    图11显示典型Developer Studio窗口分局部:窗口顶部菜单工具栏中包括File〔文件〕〞Edit〔编辑〕〞View〔视图〕〞Insert〔插入〕〞Project〔工程〕〞Build〔编译连接运行〕〞Tools〔工具〕〞Windows〔窗口〕〞Help〔帮助〕〞等菜单分应拉子菜单左面子窗口工作区窗口工作区右面编辑子窗口面输出子窗口
    种话框外Developer Studio显示两种类型窗口文档窗口停窗口文档窗口般带边框子窗口中含源代码文图形文档Window子菜单中列出屏幕铺方式层叠方式显示文档窗口命令Developer Studio窗口包括工具栏菜单栏停式窗口
    开发环境两停窗口――Workspace〔工作区〕窗口Output〔输出〕窗口外Debugger〔调试器〕停窗口调试程中显示
    停窗口固定Developer Studio户区顶端底端侧面者浮动屏幕方停窗口浮动着固定着总出现文档窗口面样保证焦点窗口移时浮动工具栏直见意味着文档窗口偶尔会起消失似例果正文编辑器中编辑源代码时翻开占整Developer Studio户区停窗口源代码文档会消失隐藏新窗口解决方法关覆盖窗口拖挡眼方
    值注意述种部件包括子窗口菜单栏工具栏位置成变根喜重新安排
    2                     创立工程文件
    通常工程形式控制理C++程序文件C++工程中存放特定程序全部信息包含源程序文件库文件建立程序编译器工具清单C++工程工程文件形式存储磁盘

    图12 新建工程话框

    图13 新建工程导话框
    生成工程操作步骤:
    〔1〕选择集成环境中File〞菜单中New〞命令产生New〞话框图12示
    〔2〕选择话框中Projects〞标签便生成新工程产生新工程时系统动生成工程工作区新工程参加该工程工作区中
    〔3〕工程类型清单中选择Win32 Console Application〞工程表示生成Windows 32位控制台应程序工程
    〔4〕Location〞文框中输入存放工程文件文件夹路径C\DOCUMENTS AND SETTINGS\YU YONG YAN\桌面\新建文件夹〞
    〔5〕Project Name〞文框中输入工程名例:Exe1_1
    〔6〕检查Platforms〞文件框中否已显示Win 32表示开发32位应程序
    〔7〕单击New〞话框中OK〞钮产生话框导图13示
    选An empty project〞Finish〞钮显示验证话框直接OK〞钮时产生工程文件系统动加文件扩展名dsw〞
    3                     创立C++源程序文件参加工程文件
    〔1〕选择File〞菜单中New〞命令产生New〞话框图14示

    图14 新建文件话框
    〔2〕选择话框中Files〞标签
    〔3〕文件类型清单中选择C++ Source File〞工程表示生成C++源程序
    〔4〕File〞文框中输入C++源程序文件名系统动加文件扩展名cpp〞例:Exe1_1_1cpp
    〔5〕假设Add to project〞复选框没选中单击该复选框选中表示系统指定源程序文件参加前工程文件中
    〔6〕单击OK〞钮时建立新C++源程序文件已参加前工程文件中产生图15示窗口
    该窗口三子窗口左边子窗口工程工作区窗口右边子窗口源程序编辑窗口输入编辑源程序边窗口信息输出窗口显示出错信息调试程序信息
    4                     输入编辑源程序
    源程序编辑窗口输入例11中源程序代码图15示
    5                     保存源程序文件
    选择File〞菜单中Save〞命令源程序保存相应文件中
    6                     编译连接

    图15 Visual C++60工作窗口
    选择Build〞菜单中Compile〞Build〞命令源程序编译编译连接产生执行文件系统动加文件扩展名exe〞例:Exe1_1_1exe
    编译连接期间假设出现错误信息输出窗口出错误警告信息改正错误重新编译编译连接源程序直没错误止
    7                     运行
    选择Build〞菜单中Execute〞命令VC++集成环境控制运行程序启动程序控制台窗口运行Windows中运行DOS程序窗口类似见图

    图16 运行结果
    注意:单击工具栏中〞钮(BuildExecute)者快捷键Ctrl+F5直接编译运行源程序
    8                     翻开已存工程文件
    两种方法翻开已存工程文件:
    〔1〕选择File〞菜单中Open workspace〞命令然弹出话框中选择翻开工程文件
    〔2〕选择File〞菜单中Recent workspaces〞命令然选择相应工程文件
    特提醒:调试应程序时Visual C++集成环境次翻开工程文件程序调试完成开始输入程序时必须先关闭前工程文件然新源程序建立新工程文件否出现预测错误
    关闭前工程文件方法:选择File〞菜单中Close workspace〞命令
    9                     退出Visual C++集成环境
    选择File〞菜单中Exit〞命令退出集成环境
    〔三〕验证分析程序
    1.设计C++程序输出信息:
    ***************
    Hello
    ***************
    解:
    # include
    void main()
    {
    cout<< ***************<<'\n'
    cout<< Hello<<'\n'
    cout<< ***************<<'\n'
    }
    运行结果:
    ***************
    Hello
    ***************
    2.设计程序键盘输入圆半径求周长面积
    解:
    # include
    void main()
    {
    float sr
    cout<<请输入圆半径< cin>>r
    s314159*r*r
    cout<< 圆面积 <}
    运行结果:请输入圆半径:5
    圆面积:785397
    〔四〕完成实验工程
    1         设计程序键盘输入写字母转换成写字母输出
    2         输入球半径求外表积体积
    四课作业
    撰写实验报告
     五实验机时
    2标准学时
    实验二 数类型表达式输入输出
    目求
    1.掌握C++语言数类型熟悉定义整型字符型实型变量赋值方法解类型数输出时格式转换符
    2.学会C++关算术运算符包含运算符表达式特加〔++〕减〔——〕运算符
    3.  进步熟悉C++程序编辑编译连接运行程
    4.  掌握数输入输出方法
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证分析程序
    1.编写程序完成变量x变量y值交换调试程序观察运行结果
    交换变量x变量y值时变量z进行交换
    完整参考程序:
    #include
    void main()
    {
    int xyz A
    cout< cin>>x>>y
    cout<<输入x< zx
    xy
    yz
    cout<<输出x<}
    思考:
    l         键盘分格式输入两组数观察程序运行结果:
    53〔回车〕
    5 3〔回车〕
    l         程序中xyz命名autobreakcase观察否出错?分析原
    l         程序A行x改写X观察否出错?分析原
    l         修改程序条件运算符输出两数中较数
    2.编程序输入xyz值计算值
    表达式值定整数程序中变量类型应采实型
    参考程序:
    #include
    void main()
    {
    float xyzef w A
    cout<cin>>x>>y>>z
    e (x+1)*(y1) B
    fx+y C
    wef D
    cout<}
    思考:
    l         输入x=54y=31z=27观察程序运行结果
    l         程序中A行改int xyzefw 〞输入x=54y=31z=27观察程序运行结果
    l         程序中A行改float xyzw〞 BCD行改w(x+1)*(y1)x+y〞观察程序运行结果
    3.编写程序键盘输入三位正整数倒序输出例:输入861输出168
    输入三位数整数变量类型整型进行处理采求余数方法计算位数然逆序输出参考程序:
    #include
    void main()
    {
    int nijk
    cout<<输入三位正整数n
    cin>>n
    in10 i存放位数
    n(ni)10 掉位数
    jn10 j存放十位数
    n(nj)10 掉十位数
    kn k存放百位数
    ni*100+j*10+k
    cout<<逆转数<}
    思考:
    l         修改程序先取百位数取十位数取位数
    4.例测试数类型间数转换分析程序运行结果
    #include
    void main()
    {
    int a32b
    double c27d
    char e'D'f
    ba+c A
    da+c
    fa+e
    cout< cout< cout< cout<}
    思考:
    l         修改程序A行b输出值四舍五入
    l         修改程序B行整型值输出f
    l         分析C行数值类型
    〔二〕完成实验工程
    1         输入二整数ab实现二数交换〔第三变量〕
    2         键盘输入三角形三边长输出三角形周长面积〔处假设构成三角形〕
    3         编写程序输入两整数输出商余数
    四课作业
    1         键盘输入三位整数nabc左右abc表示位数字现求次输出右左位数字输出三位数mcba例:输入123输出321〔采实验中已方法〕
    2         撰写实验报告
     五实验机时
    2标准学时
    实验三 选择结构程序设计
    目求
    1         掌握Visual C++60集成环境中单步执行
    2         熟悉if switch语句格式执行程方法典型案例
    3         学会选择结构解决般实际问题编写简单应程序
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证分析程序
    1.键盘输入三数判断否构成三角形
    分析:
    判断b+c>a否成立假设成立定构成三角形假设成立构成三角形判断bc参考程序:
    #include
    void main()
    {
    double abct
    cout<<请输入a值< cin>>a
    cout<<请输入b值< cin>>b
    cout<<请输入c值< cin>>c
    tbc
    if(t<0)
    tt
    if(b+c>a)
    {
    if(tcout<<构成三角形< else
    cout<<构成三角形< }
    else
    cout<<构成三角形<}
    思考:
    l         程序改非嵌套if语句实现
    l         程序中增加语句构成三角形情况进步判断三角形类型〔直角钝角锐角三角形〕
    提示:三角形类型长边角决定假定三角形长边c角θ两边ab计算公式:


    c2a2+b2 时直角三角形
    c2>a2+b2 时钝角三角形
    c22.某商店五·〞长假期间购物折规:
    假设位顾客次购物
    ①     满1000元九折
    ②     满2000元八折
    ③     满3000元七折
    ④     满4000元六折
    ⑤     5000元五折
    编写程序输入购物款输出实收款
    解:例ifelse if语句进行重判断参考程序:
    #include
    void main()
    {
    double mp
    cout<<输入购物款:
    cin>>m
    if(m<1000) pm
    else if (m<2000)p09*m
    else if(m<3000) p08*m
    else if(m<4000) p07*m
    else if(m<5000) p06*m
    else p05*m
    cout<<实收款:<}
     
    3.分段函数:

     编程序输入x输出y值
    解:程序:
    #include
    void main()
    {
    float xy
    cout<cin>>x
    if (x>0)
    if (x>10)
    yx*x*x
    else
    yx*x5
    else
    yx+1
    cout<}
    运行结果:
    Input x: 3
    y2
    〔二〕完成实验工程
    1.设计程序判断键盘输入整数正负性奇偶性
    2.编写程序实现函数功:

    3.奖金税率:〔a代表奖金r代表税率〕
    a<500(元) r0
    500≤a<1000 r3
    1000≤a<2000 r5
    2000≤a<5000 r8
    a≥5000 r12
    输入奖金数求税率应交税款实奖金数
    3.输入某年年份月份计算该月天数
    提示
    (1)年中月(1月3月5月7月8月10月12月)月天数31天
    (2)年中月(4月6月9月11月)月天数30天
    (3)2月判断该年年闰年年2月28天闰年2月29天
    某年符合面两条件闰年:
    ①年份400整
    ②年份4整100整
    4.输入面直角坐标系中点坐标值〔xy〕判断该点象限中条坐标轴
    四课作业
    1         设计计算器实现简单四运算
    2         撰写实验报告
     五实验机时
    2标准学时
    实验四 循环结构程序设计
    目求
    1.掌握循环结构whiledo-whilefor等语句格式执行程方法典型案例
    2.学循环结构嵌套
    3.掌握分支循环综合程序编写方法
    4.学熟悉breakcontinue区
    5.学会常数值图形编程方法
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证实验程序
    1.计算:S1+2+3+4+…+n

     


     

    i≤n
     

    sumsum+i
    i++
     

    开始
     

    输入n
     

    sum0
    i1
     

    输出sum
     

    结束
     

    图41 求累加流程图
     

    解:
    程序流程图图41示程序:
    #include
    void main()
    {
    int insum
    cout< cin>>n
    sum0
    i1
    while (i {
    sumsum+i
    i++
    }
    cout<}
    运行结果:
    Input an integer:5
    sum15 
    2.裴波契数列前数112358……规律:
    F11 (n1)
    F21 (n2)
    FnFn1+Fn2 (n≥3)
    编写程序求数列前面40数
    分析:设两变量f1f2初值f11数列第1项f21数列第2项循环结构求数列前40项次处理两项循环20次进入循环首先输出f1f2然令f1f1+f2求第3项令f2f2+f1注意时f1已第3项求第4项进入次循环时首先输出第34项然述方法求第56项类推求前40项
    解:
    #include
    #include
    void main()
    {
    long int f1f2
    int i
    f11f21
    for (i1i<20i++)
    {
    cout< if (i20)
    cout< f1f1+f2
    f2f2+f1
    }
    }
    例中if〞语句作行中输出4数
    运行结果:
    1 1 2 3
    5 8 13 21
    34 55 89 144
    233 377 610 987
    1597 2584 4181 6765
    10946 17711 28657 46368
    75025 121393 196418 317811
    514229 832040 1346269 2178309
    3524578 5702887 9227465 14930352
    24157817 39088169 63245986 102334155
    3.求出100~200间素数输出时行印五素数
    分析:判断数a否素数需整2~〔取整〕果整a素数
    解:
    #include
    #include
    #include
    void main(void)
    {
    int akin
    n0
    for (a100a<200a++)
    {
    ksqrt(a)
    for (i2i if (ai0)
    break
    if (i>k) 假设i>ki素数
    {
    cout< nn+1 素数统计数
    if (n50)
    cout< }
    }
    cout<}
    程序运行输出:
    101 103 107 109 113
    127 131 137 139 149
    151 157 163 167 173
    179 181 191 193 197
    199
    4.编写程序公式计算e似值直项定精度
    分析:累加求问题仔细分析项发现第二项开始项值前项序号n:

    解:
    #include
    void main()
    {
    double e 10x 10yz
    int n1
    cout<< input 精度:
    cin>>z
    y1x
    while(y>z)
    {
    x*n
    y1x
    e+y
    ++n
    }
    cout<}
    思考:
    l         程序中while结构改写do-while观察程序运行结果
    l         增加continue〞break〞语句程序输入数001时显示精度求太低请重新输入〞提示
    5.兔子第3月起月生兔子兔子第3月起月生兔子假设兔子死编程序计算月兔子少?〔求20月〕
    分析:第3月开始月兔子数月兔子数月兔子数样出该序列规律:第3项开始该项值前两项
    兔子数目规律:
    1123581321……
    解:
    #include
    void main( )
    {
    int f1f2f3
    int i
    f1f21
    for(i3i<20i++)
    { A
    f3f1+f2
    cout< f1f2
    f2f3
    }
    }
    思考:
    l         程序A行中改写for(i20i>3i)〞观察程序运行结果
    l         画出例流程图
    6.编写程序印图42示蝶形图形
    分析:图形称结构3~3整数标识行号i行字符B〞数表示6*|i|+1行字符B〞前空格数着|i|增减少空格数0
    解:
    BBBBBBBBBBBBBBBBBBBBB
    BBBBBBBBBBBBBBB
    BBBBBBBBB
    BBB
    BBBBBBBBB
    BBBBBBBBBBBBBBB
    BBBBBBBBBBBBBBBBBBBBB
    图42 蝶形

    # include
    void main()
    {
    int ijkd
    for(i3i<3i++)
    {
    cout< di
    if (i<0) di
    for (j1j<103*dj++)
    cout<<
    for (k1k<6*d+3k++)
    cout< }
    cout<}
    思考:
    l         程序中for(j1j<103*dj++)〞for(j1j<303*dj++)〞改写观察程序运行结果
    l         程序中for(i3i<3i++)〞for(i10i<10i++)〞改写观察程序运行结果
    l         程序中for (k1k<6*d+3k++)〞for (k1k<10*d+3k++)〞改写观察程序运行结果
    7.dowhile结构修改while结构分观察输出结果
    #include
    void main()
    {
    int a0 A
    do
    {
    a++
    cout< } while(a>1)

    }
    思考:
    l             条件while(a>1)改while(a)分观察输出结果
    l             A语句改a10while(a>1)改while(a)计算循环执行次数
    8.键盘输入意整数〔999结束标志〕计算中正数
    分析:采转语句breakcontinue实现break循环体中退出层循环continue结束次循环
    解:
    #include
    void main()
    {
    int xs0
    while(1)
    {
    cin>>x
    if (x999) break A
    if (x<0) continue B
    ss+x
    }
    cout<}
    思考:
    l         交换A行B行位置观察程序运行结果
    l         修改程序输入意整数〔999结束标志〕〞直包含20正数时〞计算正数
    〔二〕完成实验工程
    1.编程序印图43示数字金字塔:

    图43 数字金字塔
    2.输入行字符分统计出中英文字母空格数字字符字符单词数
    3.设数列前四项0025项分前四项编程求数列前20项
    4.求π似值公式:

    中n123…设计程序求出n1000时π似值
    5.求出1~599中3整少位数字5整数1551513均满足条件整数
    四课作业
    1         设100元钱买100支笔中钢笔支3元圆珠笔支2元铅笔支05元问钢笔圆珠笔铅笔买少支〔种笔少买1支〕?
    2         撰写实验报告
     五实验机时
    2标准学时
    实验五 数组
    目求
    1         掌握维数组二维数组字符数组定义初始化赋值数组元素引方法
    2         掌握求值均值排序方法序数组查找增加删编程方法
    3         初步掌握字符串处理函数方法字符串复制连接测长等程序编写方法
    4         掌握数组典型应
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证实验程序
    1.应维数组10数进行泡排序序输出
    分析:n数泡排序方法第数面数逐进行拟发现者进行交换完成数放第位置第二数面数逐进行拟发现者进行交换完成次数放第二位置循环直第n1数第n数进行拟发现者进行交换
    解:
    #include
    void main()
    {
    int a[10] A
    int ijt
    cout<<输入数:< for(i0i<10i++) B
    {
    cout< cin>>a[i]
    }
    for(i0i<8i++)
    {
    for(ji+1j<9j++)
    {
    if(a[i]{
    ta[i]
    a[i]a[j]
    a[j]t
    }
    }
    }
    cout<<排序结果:< for(i0i<9i++) cout<}
    思考:
    l         A行改程序段:
    int n
    cin>>n
    int a[n]〞
    观察运行结果?分析原
    l         B行改for(i1i<10i++)〞观察现象
    2.应二维数组印图51示杨辉三角形
    分析:杨辉三角形出行数存规律:行数数行序相行第数数均1中间数行列数前列数
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    图51 杨辉三角形

    解:
    #include
    void main()
    {
    int y[5][5]
    int ijn5
    for(i0i{
    y[i][i]1
    y[i][0]1
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    图52 杨辉三角形

    }
    for(i2i{
    for(j1j y[i][j]y[i1][j1]+y[i1][j]
    }
    cout<<杨辉三角形< for(i0i{
    cout<<
    for(j0j cout< }
    }
    思考:
    l         添加语句输出图52示杨辉三角形
    3.键盘输入两字符串连接成字符串
    分析:建立两变量ij先i指字符数组str1第元素然移动i指str1末尾指str1元素\0’j指字符数组str2第元素然str2中元素分赋str1中相应位置元素直str2结束止j指str2元素\0’str1末尾添加结束标志\0’
    程序:
    解:
    #include
    void main(void)
    {
    char str1[40]str2[20] 定义字符数组str1str2
    int ij
    cout<<输入二字符串:
    cingetline(str120) 输入字符串1str1中
    cingetline(str220) 输入字符串2str2中
    i0 i指str1第元素
    while (str1[i]'\0') 判断str1否结束
    i++ str1没结束i指元素
    j0 j指str2第元素
    while (str2[j]'\0') 判断str2否结束
    {
    str1[i]str2[j] str2没结束str2[j]赋str1[i]
    i++ i指str1元素
    j++ j指str2 元素
    }
    str1[i]'\0' str1末尾添加结束标志\0’
    cout<}
    4.编程序输入字符串删空格输出
    分析:逐读取字符假设空格面字符字符串结束标志前移位该位置开始重复述操作直字符串结束
    解:
    #include
    void main()
    {
    char str[]This is a book A
    int i0j
    while(str[i]NULL)
    {
    if(str[i]' ')
    { B
    ji
    while(str[j]NULL)
    {
    str[j]str[j+1]
    j++
    }
    }
    i++
    }
    cout<}
    思考:
    l         程序中A行〞'〞改写观察现象
    l         程序中B行'〞〞改写观察现象
    l         程序中C行改写:
    for(j1str[j]NULLj++cout<cout<观察输出结果
    l         编程序输入字符串中出现字符空格外序输出〔字符输出次〕
    〔二〕完成实验工程
    1.编程实现十进制整数M转换D进制数
    2.int a[20]数组编程值偶数元素移数组前端值奇数元素移数组端〔求元素拟移动次数量少〕
    3.求中n≥20
    4.某班10学生进行数学〞语文〞英语〞C++语言〞等科目考试编写程序:
    〔1〕       考试成绩输入二维数组
    〔2〕       求门课均成绩门课格学生数门课高分低分
    〔3〕       求学生均成绩总分格门数
    〔4〕       学生均成绩排序输出
    5.设计程序印杨辉三角形〔方法〕
    6.编写程序实现strstr1+str2操作处运算符+〞表示二字符串str1str2连接成字符串str键盘二字符串输入字符数组str1str2中连接字符串存放字符数组str中输出连接字符串str
    四课作业
    1       设ABCm行n列矩阵设计矩阵加法程序完成CA+B操作mndefine定义常量值户定义
    2       已次序排序数组现输入数求折半查找法找出该数数组中位置
    3       撰写实验报告
     五实验机时
    4标准学时
    实验六 函数调
    目求
    1.解函数定义方法理解函数调
    2.初步掌握函数递嵌套调
    3.解函数调实参形参传递参数默认值设置
    4.学解重载函数联函数根概念
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证实验程序
    1.编写函数递方法求1+2+3+4+…+n值函数中进行输入输出
    解:
    #include
    int fun(int n)
    {
    int z
    if(n<0)
    z0
    else
    zn+fun(n1)
    return(z)
    }
    void main(void)
    {
    int xsum
    cout<<请输入X值< cin>>x
    sumfun(x)
    cout<<求结果:<}
    运行结果:
    请输入X值
    10
    求结果:55
    2.编写程序输入mn(n>m)求值
    分析:

    根公式定义函数计算阶通函数调求出值
    解:
    阶函数定义:
    double fact(int k)
    {
    int p1
    if((k0)||(k1))
    return p
    else
    {
    for(int i1ipp*i
    return p
    }
    }
    完整参考程序:
    #include
    double fact(int)
    void main()
    {
    int mn
    double c
    cout<l1 cout< cin>>n
    cout< cin>>m
    if (n cout< goto l1
    }
    c fact(n)( fact(m)* fact(nm))
    cout<}
    double fact(int k)
    {
    int p1
    if((k0)||(k1))
    return p
    else
    {
    for(int i1i return p
    }
    }
    思考:
    l         分输入n013m012测试程序
    l         试静态存储变量设计阶函数
    3.编写程序求两然数mn公约数公倍数
    分析:
    公约数时整mn正整数欧里德算法〔称辗转相法〕求解应欧里德算法计算两数公约数方法:求两数〔mn〕相余数r(rmn m>n)余数零时m取n值n取r值求两数相余数反复进行直余数零数n公约数
    公倍数m×n/公约数
    解:
    #include
    int fun1(int cint d)
    {
    int r
    rcd
    while(r0)
    {
    cd
    dr
    rcd
    }
    return d
    }
    void main()
    {
    int mned
    cout< cin>>m>>n
    efun1(mn)
    dm*ne
    cout<< 公约数:< cout<< 公倍数:<}
    思考:
    l         输入两数m36n24观察程序运行结果
    l         递调方法实现程序编写参考程序:
    # include
    int fun1(int cint d)
    {
    int r
    rcd
    if(r0)
    {
    cd
    dr
    fun1(cd)
    }
    return d
    }
    void main()
    {
    int mned
    cout<cin>>m>>n
    efun1(mn)
    dm*ne
    cout<< 公约数:<cout<< 公倍数:<}
    l         编写计算三数公约数程序
    4.分输入整数半径实数半径函数重载计算圆面积
    分析:参数圆半径类型参数实现重载
    解:程序
    #include
    #define PI 314
    int area(int)
    float area(float)
    void main()
    {
    int r1
    cout<<输入整型半径r:
    cin>>r1
    cout< float r2
    cout<<输入实型半径r:
    cin>>r2
    cout<}
    int area(int x)
    {
    return PI*x*x
    }
    float area(float x)
    {
    return PI*x*x
    }
    思考:
    l         编写重载函数实现两整型数三整型数两实型数三实型数等求值
    5.联函数计算长方形面积
    分析:C++编译器调遇联函数方会函数体中代码换函数
    解:
    完整联函数参考程序:
    #include
    float s(float xfloat y)
    void main()
    {
    float ab
    cout< cin>>a>>b
    cout<}
    inline float s(float xfloat y)
    {
    return x*y
    }
    思考:
    l         程序中联函数进行代码换机运行观察结果
    〔二〕完成实验工程
    1.编写函数求:

    2.函数调方法印九九表法
    3.函数递方法计算xn阶勒德项式值已调语句p(nx)〞编写poly函数递公式:

    4.

    x初始值314159/4牛顿法求解方程似解求精确牛顿法:

    5.5学生4门课成绩求函数分调函数实现:
    (1) 〔1〕         找出门课成绩高学生序号
    (2) 〔2〕         找出课程格学生序号门课全部成绩
    (3) 〔3〕         求门课程均分数输出
    (4) 〔4〕         学生总分排序
    6.设计函数Fri〔int Mint n〕功M围成圈编号1—M第1号开始报数报n倍数离开直数直剩1求编号
    四课作业
    1         定义子函数:
    sum(int xint y)

    return x+y

    编写程序调语句sum()sum(4)sum(57)分带默认参数值函数sum进行调sum函数声明:sum(int x1int y2)
    2         撰写实验报告
     五实验机时
    2标准学时
    实验七 指针引
    目求
    1         掌握指针指针变量指针常量根概念
    2         掌握指针数组指针函数关系应
    3         初步掌握引概念简单应
    二实验设备分组
    1         Windows2000操作系统
    2         Visual C++60语言环境
    3         台PC机
    三容步骤
    〔〕验证实验程序
    1.指针变量加减加n减n运算假设数组a首址1000
    解:
    # include
    void main( )
    {
    int a[5]{01234}
    int *p
    p&a[0] p指a[0]p1000
    p++ p指元素a[1]p1004
    cout<< *p<<'\t' 输出a[1]容1
    pp+3 p指3元素a[4]p1016
    cout<< *p<<'\t' 输出a[4]容4
    p―― p指元素a[3]p1012
    cout<< *p<<'\t' 输出a[3]容3
    pp―3 p指3元素a[0]p1000
    cout<< *p<<'\t' 输出a[0]容0
    }
    运行结果:
    1 4 3 0
    2.指出程序错误
    #include
    void exchange(intint)
    void main()
    {
    int ab
    cin>>a>>b
    cout< exchange(ab)
    cout<}
    void exchange(int xint y)
    {
    int t
    tx
    xy
    yt
    }
    分析:例目子函数中交换两变量值函数中函数数传值调方式实参数值传递形参实参形参存中占址单元改变形参值改变实参值想通改变形参值改变实参值应指针调引调引调取代指针调势

    图71 通指针实现数交换
    解:
    指针调:
    #include
    void exchange(int*int*)
    void main()
    {
    int ab*p1&a*p2&b
    cin>>a>>b
    cout< exchange(p1p2)
    cout<}
    void exchange(int *xint *y)
    {
    int t
    t*x
    *x*y
    *yt
    }
    引调:
    #include
    void exchange(int&int&)
    void main()
    {
    int ab
    cin>>a>>b
    cout< exchange(ab)
    cout<}
    void exchange(int &xint &y)
    {
    int t
    txxyyt
    }
    3.指针变量输出二维数组元素值
    解:
    # include
    void main( )
    {
    int a[3][3]{{123}{456}{789}}
    int *p&a[0][0] 二维数组首址赋指针变量p
    for (int i0i<9i++)
    {
    cout<<*p<<'\t' 输出二维数组中第i元素值
    p++ 指针变量p加1指元素
    }
    }
    运行结果:
    1 2 3 4 5 6 7 8 9
    4.指针数组作函数参数四种方法求整型数组值
    解:
    #include
    int max1( int a[ ]int n) 形参数组名
    {
    int imaxa[0]
    for (i1i if (a[i]>max)
    maxa[i]
    return max
    }
    int max2( int *pint n) 形参指针
    {
    int imax*(p+0)
    for (i1i if (*(p+i)>max)
    max*(p+i)
    return max
    }
    int max3( int a[ ]int n) 形参数组名
    {
    int imax*(a+0)
    for (i1i if (*(a+i)>max)
    max*(a+i)
    return max
    }
    int max4(int *pint n) 形参指针
    {
    int imaxp[0]
    for (i1iif (p[i]>max)
    maxp[i]
    return max
    }
    void main( void)
    {
    int b[ ]{132546}*pi
    cout< cout< pib
    cout< pib
    cout<}
    运行结果:
    max16
    max26
    max36
    max46
     5.变量数组元素址赋指针指针加减整数两指针指数组元素时进行减运算结果间数组元素数
    解:
    #include
    void main()
    {
    int ia[10]
    int *p1*p2
    p1a A
    p2p1+5
    for (i0i<9i++)
    {
    a[i]i*i
    cout< }
    cout< cout< cout< cout<<*p2*p1<<*p2*p1<}
    思考:
    l         程序中A行改p1&a[0]〞观察程序运行结果
    l         程序中B行改cout<<*a<<*a<l         程序中C行改cout<6.函数指针分调两函数sum1sum2分求该数偶数奇数
    分析:函数指针通指针赋值分调函数
    解:
    #include
    int sum1(int)
    int sum2(int)
    void main()
    {
    int a
    int (*f)(int) A
    cout< cin>>a
    if(a20)
    {
    fsum1
    cout<<(*f)(a)< }
    else
    {
    fsum2
    cout<<(*f)(a)< }
    }
    int sum1(int m)
    {
    int s10
    for(int i2i s1s1+i
    return s1
    }
    int sum2(int n)
    {
    int s20
    for(int i1i s2s2+i
    return s2
    }
    思考:
    l         A行改int (*f)(int)〞观察现象
    l         分输出两函数函数名观察址值
     
    7.输入两字符串第二字符串拼接第字符串尾部然输出拼接字符串
    解:
    # include
    # include
    char *stringcat(char * p1char *p2)
    {
    char *pp1 目标串首址赋指针变量p
    while(*p1++) 指针p1移s1串尾
    p1――
    while (*p1++*p2++) 源串s2中字符次复制目标串s1中
    return p 返回指目标串首址指针p
    }
    void main(void)
    {
    char s1[200]s2[100]
    cout<<输入第字符串:
    cingetline( s1100)
    cout<<输入第二字符串:
    cingetline( s2100)
    cout<<拼接字符串:
    cout<}
    运行结果:
    输入第字符串:ABCD
    输入第二字符串:EFGH
    拼接字符串:ABCDEFGH
    8.定义函数实现字符串拷贝
    分析:字符串允许进行赋值运算头文件stringh中定义strcpy()库函数例求编制定义函数实现strcpy()库函数功
    解:
    #include
    char *mycopy(char*const char*)
    void main()
    {
    char s1[]I am a student
    char s2[20]
    mycopy(s2s1)
    cout< cout<}
    char *mycopy(char *toconst char *from)
    {
    char *tempto
    for(*to++*from++)
    return temp
    }
    l         定义函数改程序段:
    char *mycopy(char *toconst char *from)
    {
    char *tempto
    for(int i0*(from+i)'\0'i++)
    *(to+i)*(from+i)
    *(to+i)'\0'
    return temp
    }
    观察现象
    l         定义函数声明改:char *mycopy(const char*const char*)〞
    定义函数相应改:
    char *mycopy(const char *toconst char *from)
    {
    char *tempto
    for(*to++*from++)
    return temp
    }
    观察现象
    l         定义函数中否语句*from'a'〞
    9.编程判定字符字符串中出现次数果该字符出现返回0
    分析:逐读取字符串中字符字符字符串中字符相时计数器count值加1继续查找直字符串尾
    解:完整参考程序:
    #include
    char_count(char *schar letter)
    {
    int count0
    while(*s)
    if(*s++letter)
    count++
    return (count)
    }
    void main()
    {
    char str[100]c
    cout< cin>>str
    cout<< input a letter
    cin>>c
    cout<}
    思考:
    l         修改程序输出字符出现次数允许字符重复输出
    10.指针实现字符串拷贝
    解:
    # include
    # include
    void main( )
    {
    char *p1I am a student
    char s1[30]s2[30]
    strcpy( s1p1) 命令拷贝字符串
    char *p2s2 数组s2首址赋p2
    for (*p2++*p1++) 指针拷贝字符串
    cout<cout<}
    运行结果:
    s1 I am a student
    s2 I am a student
    11.newdelete创立动态堆栈
    分析:newdelete运算符数组结构体进行动态存分配释放
    解:
    #include
    struct Stack
    {
    int stacksize
    long *buffer
    long *sp
    } p
    void ini(int size)
    {
    pstacksizesize
    psppbuffernew long[size]
    }
    void del()
    {
    delete pbuffer
    }
    void push(long data)
    {
    if(psp>pbuffer+pstacksize)
    cerr<else
    {
    *psp++data
    cout<}
    }
    long pop()
    {
    if(psp{
    cerr<return 0
    }
    return *psp
    }
    void main()
    {
    ini(5) A
    push(1234)
    push(5678)
    push(1357)
    push(2468)
    cout<cout<cout<cout<cout<cout<del()
    }
    思考:
    l         程序中A行分改ini(2)〞ini(8)〞观察程序运行结果
    12.指指针指针输出计算机课程名
    分析:指指针指针变量二级指针指变量指针指指针指针二维数组字符数组处理程
    解:
    #include
    char *name[]{Visual BasicVisual C++DelphiPower BuildVisual Foxpro}
    void main()
    {
    char **p name
    for(int i0i<5i++)
    cout<<*(p+i)<}
    思考:
    l         A行修改cout<<**(p+i)<l         面定义:
    int a[3]{123}
    int *b[3]{&a[0]&a[1]&a[2]}
    int **pb
    修改程序输出a数组元素b数组元素
    〔二〕完成实验工程
    1.面程序中调findmax()函数该函数寻找数组中元素该元素标通参数返回返回址值编程实现findmax()函数
    # include < iostreamh >
    int * findmax(int * array int size int * index)
    void main ( )
    {
    int a[10] {33915467823785631968}
    int * maxaddr
    int idx
    maxaddr findmax(a sizeof(a)sizeof( * a) &idx)
    cout<}
    2.读程序
    〔1〕       改写传递引参数
    〔2〕       findmax()函数改写成非递函数〔重新考虑参数数〕
    # include < iostreamh>
    const size 10
    void findmax(int* a int n int i int * pk)
    void main ( )
    {
    int a[size]
    int n 0
    cout << 请输入 << size << 数:
    for(int i0 i< size i++)
    cin >> a[i]
    findmax(a size0 &n)
    cout <<值 << a[n] << endl
    <<标 << n << endl
    }
    void findmax(int * a int n int i int * pk)
    {
    if(i {
    if(a[i] >a[*pk])
    *pk i
    findmax(ani+1&(*pk))
    }
    }
    3.编制程序输入行字符加密解密加密时字符次反复加4962873中数字果范围超ASCII码032(空格)~122('z')进行模运算解密加密序相反编制加密解密函数印程结果
      例加密:the result Of 3 and 2 is not 8
      密文:xqkzlvyuzwm#7>gpl'sryvvwA
    4.编制程序调传递引参数 实现两字符串变量交换例开始:
       char* aphello
       char* bphow are you
      交换结果apbp指容分:
       ap: how are you
       bp: hello
    5.指针变量编写字符串处理函数:
    〔1〕字符串拼接函数Strcat
    〔2〕字符串拟函数Strcmp
    〔3〕取字符串长度函数Strlen
    6.指针数组作函数参数面四种情况数组float a[10]进行降序排序:
    〔1〕函数实参数组名形参数组
    〔2〕函数实参数组名形参指针变量
    〔3〕函数实参指针变量形参数组
    〔4〕函数实参指针变量形参指针变量
    四课作业
    撰写实验报告
     五实验机时
    4标准学时
    实验八 结构体链表
    目求
    1         掌握结构体类型结构体变量根概念
    2         掌握结构体指针结构体数组应
    3         掌握链表根概念
    4         掌握链表根操作应包括建立链表遍历链表插入结点删结点查找结点等
    二实验设备分组
    1.  Windows2000操作系统
    2.  Visual C++60语言环境
    3.  台PC机
    三容步骤
    〔〕验证实验程序
    1.三种方式定义职工学生日期等结构体变量
    解:
    # include
    # include
    struct employee 定义职工结构体数类型
    {
    int no 职工编号
    char name[8] 职工姓名
    char addr[40] 家庭址
    }
    struct student 定义学生结构体数类型
    {
    int no 学号
    float engphymathave 英语数学物理成绩均成绩
    } stu1stu2 定义结构体时定义结构体变量stu1stu2
    void main ()
    {
    employee emp1emp2 定义employ 类型结构体变量emp1emp2
    struct
    {
    int yearmonthday
    } date1date2 直接定义日期结构体类型变量
    emp1no100 赋职工号
    strcpy ( emp1name zhang sa) 赋职工姓名
    strcpy( emp1addr Nanging) 赋家庭址
    emp2emp1 职工emp1信息赋emp2
    cout<<<< addr<< emp2addr<stu1no101 输入学号成绩
    stu1eng90 输入成绩
    stu1phy95
    stu1math100
    cout<<<date1year1999 输入入学日期
    date1month09
    date1day01
    cout<<<}
    2.编写程序完成名职工姓名出生年月奖惩根工资初始化键盘输入奖金金额输出应职工姓名工龄奖惩领取金额等信息
    分析:姓名出生年月奖惩根工资数类型组成机整体结构体进行处理中出生年月结构体定义
    解:
    完整参考程序:
    #include
    struct Date
    {
    int year
    int month
    } A
    struct Person
    {
    char name[20]
    Date birth
    char award[20]
    float money
    float salary
    }p{南苯{196610}五劳动奖章8960}
    void main()
    {
    float num
    cout< cout<<根工资:< cin>>num
    psalary p money+num
    cout<< pname <<年龄<<2003 p birthyear
    cout<<应领<< psalary<<元<}
    思考:
    l         删A行〞号运行程序观察结果分析原
    l         修改程序结构体变量定义放main()函数运行程序观察结果分析原
    l         修改程序结构体类型定义保存头文件Personh采#include命令实现程序功
    l         修改程序输出三名职工姓名工龄奖惩领取金额等信息
    3.设链表结点数结构:
    struct node
    {
    char name[8]
    int score
    node *next
    }
    编写程序实现链表根操作
    〔1〕建立序链表
    〔2〕输出链表结点数
    〔3〕删整链表
    〔4〕删链表中某结点数
    〔5〕结点插入链表指定位置
    〔6〕建立序链表
    解:
    建立链表:
    node * Create(void )
    {
    int score 定义输入学生成绩时变量score
    node *head*pn*pt 定义链表头指针新结点指针尾指针headpnpt
    head0 链表头指针赋0表示链表空
    cout<<产生链表请输入学生成绩姓名1结束:< cin>>score 输入学生成绩
    while (score 1) 成绩1时结束输入
    {
    pn new node 动态分配新结点存空间结点址赋pn
    pn>scorescore 学生成绩输入新结点
    cin>>pn>name 学生姓名输入新结点
    if (head0) 假设链表空
    {
    headpn 新结点址pn赋头指针head尾指针pt
    ptpn 新结点参加链首
    }
    else 否链表非空
    {
    pt>nextpn 新结点址pn赋链尾next指针尾指针pt
    ptpn 新结点参加链尾
    }
    cin >>score 输入学生成绩
    }
    pt>next0 链尾指针变量赋0
    return (head) 返回链表头指针
    }
    输出链表:
    void Print(const node *head)
    {
    const node *p
    phead
    cout<<〞输出链表中结点值〞< while (p0 )
    {
    cout<

    name<<’\t’<

    score< pp>next
    }
    }
    删链表:
    void Delchain(node * head)
    {
    node * p
    phead 链表头指针赋p
    while (head) 链表非空时删结点
    {
    headp>next 链表结点指针赋head
    delete p 删链表第结点
    phead 头指针赋p
    }

    删链表指定值结点:
    node * Delete( node *head char name[])
    {
    node *pc*pa*headtemp
    headtemppcpahead
    if (headNULL) 链表空情况
    {
    cout << 链表空结点删\t
    return NULL
    }
    if (strcmp(pc>namename)0) 第结点删结点情况
    {
    headpc>next 第二结点址赋head
    首结点链表中离出
    delete pc 删首结点
    cout<<删结点\n
    }
    else 第结点删结点
    {
    while (strcmp(pc>namename)) 查找删结点
    {
    papc 前结点址pc赋pa
    pcpc>next pc指结点
    }
    if (pcNULL) 假设pc空表示链表中删结点
    cout << 链表中没删结点\n
    else
    {
    pa>nextpc>next 结点址赋结点
    删结点链表离出
    delete pc 删指定结点
    cout<<删结点\n
    }
    headheadtemp
    }
    return head 返回链表头指针
    }
    插入结点:
    node * Insert(node * head node *pn)
    {
    node *pc*pa 定义指插入点前指针pcpa
    pcpahead
    if (head0) 假设链表空新结点插入链表首
    {
    headpn
    pn>next0
    return head
    }
    if (pn>score>head>score) 假设新结点成绩≥首结点成绩新结点插链首
    {
    pn>nexthead
    headpn
    return head
    }
    while (pc>next0 && pn>scorescore) 假设链表非空成绩查找插入点
    {
    papc pcpa移插入点前结点处
    pcpc>next
    }
    if (pn>score < pc>score) 新结点插入链尾
    {
    pc>nextpn
    pn>next0
    }
    else 新结点插入链表中间
    {
    pn>nextpc
    pa>nextpn
    }
    return head 返回链表头指针
    }
    建立条序链表:
    node *Create_sort( void)
    {
    node *pn*head0 定义指新结点指针变量pn链表头指针head
    int score 定义输入学生成绩时变量score
    char name[8] 定义输入学生姓名时变量name[8]
    cout<<产生条序链表请输入数1结束\n
    cin>>score 输入学生成绩
    while (score 1) 成绩等1循环
    {
    pnnew node 动态分配node类型结点空间址赋pn
    cin>>name 输入学生姓名
    strcpy(pn>namename) 学生姓名成绩拷贝结点namescore字段中
    pn>scorescore
    headInsert(headpn) 调结点插入函数新结点成绩降序插入链表
    cin>>score 输入学生成绩
    }
    return head 返回链表头指针
    }
    程序:
    # include
    # include
    void main(void) 函数
    {
    node * head
    char name[8]
    headCreate() 产生序链表
    Print(head) 输出序链表
    cout<<输入删结点学生姓名\n
    cin >>name 输入删结点学生姓名
    headDelete(headname) 删指定姓名结点
    Print(head) 输出显示删链表
    Delchain(head) 删整链表
    headCreate_sort() 产生序链表
    Print (head) 输出显示序链表
    Delchain(head) 删整链表
    }
    运行结果:
    产生序链表请输入学生成绩姓名1结束:
    90 Zhang
    80 Li
    70 Wang
    1
    输出链表中结点值:
    Zhang 90
    Li 80
    Wang 70
    输入删结点学生姓名
    Li
    删结点
    输出链表中结点值:
    Zhang 90
    Wang 70
    产生条序链表请输入数1结束
    90 Zhang
    80 Li
    85 Wang
    95 Zhou
    1
    输出链表中结点值:
    Zhou 95
    Zhang 90
    Wang 85
    Li 80
    〔二〕完成实验工程
    1.定义学生成绩结构体类型包含学号〞姓名〞性〞年龄〞班级〞英语〞数学〞物理〞总分〞名次〞等信息编写6函数分:
    〔1〕       结构体数组输入全班10名学生述信息
    〔2〕       计算学生总分均分
    〔3〕       计算门课程均分
    〔4〕       查找成绩格学生信息
    〔5〕       学生成绩总分降序排序
    〔6〕       输出全班学生学号总分名次
    2.利题结构类型创立包含10结点序链表编写5函数分实现述功:
    〔1〕       显示链表
    〔2〕       添加结点
    〔3〕       删结点
    〔4〕       计算位学生总分
    〔5〕       英语成绩排序
     四课作业
    撰写实验报告
    五实验机时
    2标准学时
    实验九 类象
    目求
    1         掌握类象根概念理解类中成员访问权限正确理解类结构体异
    2         学象说明方法掌握构造函数析构函数工作原理
    3         解IO流类层次结构掌握C++标准输入输出流法够操算子格式化输入输出
    4         解掌握文件流法
    二实验设备分组
    1         Windows2000操作系统
    2         Visual C++60语言环境
    3         台PC机
    三容步骤
    〔〕验证实验程序
    1.定义描述学生通讯录类数成员包括:姓名学校 号码 成员函数包括:输出数成员值分设置获取数成员值
    解:
    姓名学校 号码数长度变动态数结构 长度固定定义字符数组存放 数成员均定义私成员函数输出成员数四成员函数分设置姓名单位 号码 四成员函数分获取姓名单位 号码 函数完成简单测试工作
    完整参考程序:
    #include
    #include
    class COMMU
    {
    char *pName 姓名数成员私
    char *pSchool 单位
    char *pNum 号码
    char Box[10]
    public
    void Print(void) 输出数成员
    {
    cout<<姓名< cout<<单位< cout<< 号码< cout<< < }
    void Init(char *char *char *char *)
    void FreeSpace(void) 释放数成员占空间
    void SetName(char *name)
    {
    if(pName )
    delete [ ] pName 释放存储空间
    pName new char[strlen(name)+1] 申请存储空间
    strcpy(pNamename)
    }
    void SetScool(char *unit) 置学校名称
    {
    if( pSchool )
    delete [] pSchool
    pSchool new char[strlen(unit)+1]
    strcpy(pSchoolunit)
    }
    void SetNum(char *num) 置 号码
    {
    if( pNum )
    delete [ ] pNum
    pNum new char[strlen(num)+1]
    strcpy(pNumnum)
    }
    void SetBox(char *mailnum) 置
    {
    strcpy(Boxmailnum)
    }
    char *GetName(void) 取姓名
    {
    return pName
    }
    char *GetScool(void ) 取学校
    {
    return pSchool
    }
    char *GetNum(void) 取 号码
    {
    return pNum
    }
    char *GetBox(void) 取
    {
    return Box
    }
    }
     
    void COMMUInit(char *namechar *unitchar *numchar *b)
    { 完成初始化
    pName new char [strlen(name)+1]
    strcpy(pNamename)
    pSchool new char [strlen(unit)+1]
    strcpy(pSchoolunit)
    pNum new char [strlen(num)+1]
    strcpy(pNumnum)
    strcpy(Boxb)
    }
    void COMMUFreeSpace()
    {
    if(pName) delete [] pName
    if(pSchool) delete [] pSchool
    if(pNum) delete [] pNum
    }
    void main()
    {
    COMMU c1c2
    c1Init(元河海学02585595638210024)
    c2Init(王海南京理工学02585432455210015)
    c1Print()
    c2Print()
    c1SetName(王国安)
    cout< c1SetScool(南京理工学)
    cout< c1SetNum(02588755635)
    cout< c1SetBox(210090)
    cout< c1Print()
    c1FreeSpace()
    c2FreeSpace()
    }
    思考:
    l                    数测试程序正确性:
    名字改李明明〞输出
    学校改北京理工学〞输出
    改010—55667878〞输出
    改150035〞输出
    l                    成员函数权限改私观察现象
    l                    类改结构体重新执行程序输出成员数
    l                    增加数成员:邮件址 号码 号码分住宅 办公
    2.设计理图书简单程序描述书信息包括:书号书名出版社作者等提供根功包括:连续新书存入文件bookdat〞中新书信息参加文件尾部根输入书名进行查找文件bookdat〞中书名书显示出
    解:
    描述书信息定义Book类包含必成员函数参加新书总参加文件尾部增补方式翻开输出文件文件中查找书时总文件开始位置查找读方式翻开文件循环语句实现连续新书参加文件文件中查找指定书名Book类实例进行文件输入输出文件类型应该二进制文件
    简化参考程序:
    #include
    #include
    #include
    class Book
    {
    long int num 书号
    char bookname[40] 书名
    char publicname[40] 出版社
    char name[20] 作者
    public
    Book(){ num0 bookname[0] 0publicname[0] 0 name[0] 0}
    char * Getbookname(void) { return bookname }
    long Getnum(void ) { return num}
    void Setdata(long char *char *char *)
    void Show(void )
    Book(long char *char *char *)
    }
    void BookSetdata(long nu char *bnchar *pchar *n)
    {
    num nu strcpy(booknamebn)
    strcpy(publicnamep) strcpy(namen)
    }
    void BookShow(void )
    {
    cout<<书号< cout<<出版社<}
    BookBook(long nu char * bpchar *pchar *n)
    {
    Setdata(nu bp p n)
    }
    void main(void)
    {
    Book b1b2
    long nu
    char bn[40] 书名
    char pn[40] 出版社
    char na[20] 作者
    ifstream file1
    ofstream file3
    char flag 'y'
    while( flag'y' ||flag'Y') flag控制循环
    {
    cout<<\t\t 1 书名查找书\n
    cout<<\t\t 2 参加新书\n
    cout<<\t\t 3 退出\n输入选择:
    int f
    cin>>f
    switch(f)
    {
    case 1
    cout<<输入查找书名: cin>>bn
    file1open(bookdatiosin | iosbinary)读方式翻开文件
    while(file1eof())
    {
    int n
    file1read((char *)&b1sizeof(Book))
    nfile1gcount()
    if(nsizeof(Book))
    {
    if(strcmp(b1Getbookname()bn)0) 显示书信息
    b1Show()
    }
    }
    file1close()
    break
    case 2
    cout<<输入书号: cin>>nu
    cout<<输入书名: cin>>bn
    cout<<输入出版社: cin>>pn
    cout<<输入 cin>>na
    b1Setdata(nubnpnna)
    file3open(bookdatiosapp|iosbinary)增补方式翻开文件
    file3write((char*)&b1sizeof(b1))
    file3close()
    break
    default flag 'n'
    }
    }
    }
    思考:修改程序增加
    l                    出版社作者文件中查找书名
    l                    输出出版社出版书名
    l                    列表格式输出文件中书名等功
    〔二〕完成实验工程
    1.定义时间类Time提供设置时分秒组成时间编出应程序定义时间象设置时间输出该象提供时间
    2.编写图形圆类Circle包括两属性:圆心O〔定义Point〔点〕类实现〕半径R成员函数包括:圆心位置获取函数GetO半径获取函数GetR半径位置设置函数SetR圆位置移动函数MoveTo圆信息印函数Display等
    3.印张ASCII表保存文件时输出显示器
    4.设计简单学生信息理程序信息包括:学号姓名性年龄班级等根功包括:信息存入文件文件中读出添加删修改学生信息根学号姓名文件中查找学生信息
     四课作业
    1       设计类实现简化栈表理动态产生栈表输出栈表中数简化栈表处理假定栈表中数均实数求实现二栈表象间拷贝
    2       撰写实验报告
    五实验机时
    4标准学时
    实验报告格式
    书实验容涉五局部目求〞实验设备分组〞容步骤〞课练〞实验机时〞中容步骤〞中设立二模块:验证分析程序〞完成实验工程〞模块验证实验程序〞模块中针该次实验具体求实验目列典型例题出详细解法时提问题帮助学理解掌握容完成实验工程〞模块求学读懂验证例题独立完成题目求写出代码调试通课练〞局部题目留作学行练作理课作业课堂提问
    实验课程成果实验报告严格格式书写容详实实验数采集准确合理实验结果分析时全面
    实验报告格式〔实验例〕:
     
    实验 C++开发环境程序设计步骤
    目求:
    二实验设备:PC机Visual C++60
    三实验容:
    〔〕实验准备:次实验涉知识介绍〔循环程序概念等〕操作步骤〔实验中机步骤等〕
    〔二〕实验工程:完成实验工程〞局部容求题题关题目分析方案代码出测试数运行结果异常现象进行分析总结
    四实验结:
    次实验必须结实验心体会等求容充实空洞否次实验零分计
     



    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 32 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    C语言程序设计实验报告

    C语言程序设计实验报告  实验名称 计算出1000以内10个最大素数之和   实验目的   1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语...

    10年前   
    965    0

    C语言程序设计实验教案

     《高级语言程序设计》 实验指导书 实验一 顺序结构程序设计 一、实验目的及要求 1. 掌握C语言中使用最多的一种语句—...

    5年前   
    1476    0

    “一减一加”让党员保持本色

    面对党旗宣过誓,入了党成为共产党员,就意味着主动放弃一部分普通公民享有的权利和自由,就必须多尽一份义务。这“一减一加”之间,方显党员本色。

    5年前   
    1103    0

    一“减”一“加”提升执法质量

    县城管局结合实际工作需要,找准突破口,群策群力、合力攻坚,创建“一减一加”城市管理工作新模式,全力提升执法质量。

    5年前   
    954    0

    2020年CAD在多线上添加节点的方法步骤图

    2020年CAD在多线上添加节点的方法步骤图   CAD在多线上添加节点的方法  1.选择你要添加节点的多线。      2.输入PE,按回车键,我们会看到以下几个选项。      3.输入E...

    4年前   
    1207    0

    一减一加,党员本色方显

    “一减一加”,方显党员本色 中国共产党是中国工人阶级的先锋队,是中国人民和中华民族的先锋队,是中国特色社会主义事业的领导核心……中国共产党章程写得清清楚楚,党是先锋队,党员是先锋战士。“先锋...

    9年前   
    6919    0

    乘加 乘减

    乘加 乘减课题乘加乘减课型新授课设计说明1.本节课的教学内容是使学生根据前后口诀间的关系进行乘法的正确计算,但如果教学目标仅仅停留在会“正确计算”这一层次,可以说不用老师多讲,学生一听就会,变...

    4年前   
    1274    0

    乘加 乘减

    乘加 乘减 乘加 乘减(通用14篇) 乘加 乘减 篇1   今日这节课主要借助生物组养的金鱼和小伴侣一起争论“乘加乘减”。正如我所预料的,在经过独立思索、同桌争论之后,小伴侣们很顺当地沟通...

    1年前   
    382    0

    文明单位“五加一”标准

    文明单位“五加一”标准 根据中央文明办2013年度文明单位标准要求,各单位需按照“五加一”标准进行准备工作,“五加一”的标准即:一堂一队一牌一桌一传播加一套创建资料,具体内容如下: “一堂...

    10年前   
    9697    0

    面向对象程序设计(C++)实验报告

    面向对象程序设计(C++)实验报告姓名:学院:数学与计算机学院 班级:10级计算机大类班 学号:实验5 单继承一、实验目的1.掌握派生的类别与方式; ...

    3年前   
    1109    0

    铜陵学院C语言程序设计实验报告

    《C语言程序设计》 实验报告第二学期班 级 学 号姓 名指导教师实验一 Visual C++ 6.0编程环境与C语言程序的调试过程一、实验学时2 学时。二、...

    1年前   
    268    0

    C语言实验报告《逻辑结构程序设计》

    C语言实验报告《逻辑结构程序设计》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:_____...

    12年前   
    747    0

    考点:阿伏加德罗常数与阿伏加德罗定律

    了解物质的量(n)及其单位摩尔(mol)、摩尔质量(M)、气体摩尔体积(Vm)、物质的量浓度(c)、阿伏加德罗常数(NA)的含义。 理解质量守恒定律。 能根据微粒(原子、分子、离子等)的...

    4年前   
    1168    0

    实验一C程序运行环境及简单程序的运行

    成绩Guangxi University of Science and Technology?C语言程序设计?实验报告院 〔系〕: 计算机学院 专 ...

    2年前   
    476    0

    第四单元 加和减

    第四单元 加和减 一、教学内容:第39~48页 二、教材分析: 本单元是在学生已经熟练地口算20以内加、减法以及正确笔算三位数加、减三位数的基础上,教学口算和在100以内的两位数加两位数...

    5年前   
    1004    0

    天冷请加衣说课稿

    今天我说课的题目是中班健康领域的天冷请加衣活动。下面我对本活动进行分析。

    3年前   
    895    0

    第15545章化学加药系统

    第15545章化学加药系统   第一节 总则 1.1         说明 A.    本章节规范化学加药系统之要求,内容包含: 1. 水管系统之清洗 2. 化学剂添加设备 3....

    13年前   
    14525    0

    儿童辅食添加

    辅食添加 怎样预防佝偻病     小儿满月后开始晒太阳,开始5~10分钟,逐渐增加到1~2小时,冬天坚持户外活动,夏天阳光太强可在树荫下、屋檐下。 自半月起每日补充维生素D400IU,3...

    5年前   
    1073    0

    xx年加弹车间见习总结

     xx年加弹车间见习总结撰写人:___________日 期:___________xx年加弹车间见习总结在加弹车间的见习就要结束啦,淡淡的喜悦和哀愁,喜因即将面临一个新的挑战,我信心十足,...

    3年前   
    512    0

    关于建设加气站的请示

    山东省绿色交通运输企业联盟关于建设加气站的请示  山东省建设厅: 为认真落实国家节能减排政策,大力发展绿色交通运输,促进全省社会经济可持续发展,全面建设环境友好型社会,山东省绿色交通运输企...

    11年前   
    12331    0

    文档贡献者

    郭***林

    贡献于2021-12-16

    下载需要 32 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档