欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C程序设计上机实验.pptx

    • 资源ID:77751228       资源大小:143.78KB        全文页数:22页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C程序设计上机实验.pptx

    华北电力大学计算机系一、实验目的 通过用C编写一个学生考试成绩信息系统,强化面向对象程序设计思想,使学生能够将C程序设计中的面向对象、重载、模板、文件等各种概念,灵活的运用到实际的程序设计中去。第1页/共22页华北电力大学计算机系二、实验要求 1)录入课程和选课学生的信息;2)录入成绩3)学生信息和成绩的修改;4)统计学生成绩;5)成绩排序;按成绩排序6)统计成绩分布功能:即各成绩段学生的数量:“优”:90100;“良”:8090;“中”:7080;“及格”:6070;“不及格”60。并输出统计分布结果;7)查找:能够查找指定学生的各门成绩和平均分及其名次;第2页/共22页华北电力大学计算机系三、实验原理实验使用面向对象的设计思想,在学生成绩考试系统中,主要涉及的是学生和课程,对于所有的学生,都具有共性,因此可以抽象为一个学生类,同理可以得到课程类。第3页/共22页华北电力大学计算机系1类的设计:实验首先设计两个类:学生类和课程类,并根据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。(1)学生类(a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。(b)操作:学生信息的输入、输入函数,学生成绩的设置和获取函数。(2)课程类(a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、学生成绩表。(b)操作:包括课程信息的录入、录入选课学生信息、录入选课学生的成绩,(若成绩为-1表示缺考),成绩分析、成绩排序、显示课程及选课学生信息等。第4页/共22页华北电力大学计算机系2.类模板和函数模板的设计:(1)数组类模板的设计:对于某一门课,选课的学生很多,可定义一个数组模板,并将数组模板实例化为学生对象数组。(2)无论对什么数据类型的排序,使用的排序算法都是一样的,因此需要定义一个函数模板,用学生类实例化,实现学生的成绩排序,排序算法可选用插入排序、冒泡排序或者选择排序等。第5页/共22页华北电力大学计算机系3运算符重载的设计(1)学生的信息和成绩以及选课信息要求写入文件并在需要时从文件中读出,需要重载插入、提取运算符“”。(2)学生成绩排序要对学生对象进行比较、赋值等操作,而类实际上是一种复杂数据类型,因此上述这些操作要通过运算符重载(=、)来实现。第6页/共22页华北电力大学计算机系四、实验所需仪器、设备、材料(试剂)本实验基于window平台,使用VC+为开发工具。五、实验预习要求、实验条件、方法及步骤 1理解C面向对象编程的基本概念,包括类和对象、模板、运算符重载等。2根据实验要求,画出相应的类图。3按照类图,编程并实现。第7页/共22页华北电力大学计算机系实验二公司计薪系统第8页/共22页华北电力大学计算机系一、实验目的 类的封装、派生和继承、多态性是C面向对象程序设计三大特征,本实验通过编写一个简单的公司计薪系统,使学生能够将上述三大特征灵活的运用到实际的编程当中去,提高程序的复用性。第9页/共22页华北电力大学计算机系二、实验要求 1问题描述 某公司,员工的薪水每月发一次,每月1日,上报上月个人工作信息。这些信息由会计将信息输入计薪系统。对于该系统要求如下:(1)公司主要分为三种员工:经理、时薪人员、销售人员。(2)对于任何一位员工,计薪系统都能够:(a)计算工资(b)打印该员工的工资单(c)员工也可以查询自己的工资。(3)三种员工的薪金计算方式不同(a)经理:固定月薪(b)时薪人员:时薪每月工时(c)销售人员:时薪每月工时佣金销售额(4)总经理拥有特殊权利,可以更改某人时薪和佣金。第10页/共22页华北电力大学计算机系2.研究计薪系统的问题域,根据研究对象的共性抽取出类,并抽象出各个类之间的派生关系,并画出类图。3.确定哪些类为基类,哪些为派生类,并分别确定基类和派生类的成员属性和操作。第11页/共22页华北电力大学计算机系三、实验原理1类和派生的使用在公司计薪系统中,主要涉及的是三类雇员,对于所有的雇员,都具有共性普通员工的基本信息,包括个人信息,薪金等。只是计算方法和相应的操作不同,如下图所示。雇员Employee经理Manager时薪人员Wage销售人员Sales图 计薪系统的类继承关系第12页/共22页华北电力大学计算机系class Employeeprivate:char m_name30;public:Employee();Employee(const char*nm);Employee:Employee()m_name0=0;Employee:Employee(const char*nm)strcpy(m_name,nm);第13页/共22页华北电力大学计算机系class Manager:public Employeeprivate:float m_salary;public:Manager(const char*nm);void setSalary();float computePay();Manager:Manager(const char*nm):Employee(nm)m_salary=15000.0;void Manager:setSalary(float salary)m_salary=salary;float Manager:computePay()return m_salary;第14页/共22页华北电力大学计算机系class Wage:public Employeeprivate:float m_wage;float m_hours;public:Wage(const char*nm);void setWage(float wg);void setHours(float hrs);float computePay();Wage:Wage(const char*nm):Employee(nm)m_wage=250.0;m_hours=40.0;void Wage:setWage(float wg)m_wage=wg;void Wage:setHours(float hrs)m_hours=hrs;float Wage:computePay()return m_wage*m_hours;第15页/共22页华北电力大学计算机系class Sales:public Wageprivate:float m_comm;float m_sales;public:Sales(const char*nm);void setCommission(float comm);void setSales(float sale);float computePay();Sales:Sales(const char*nm):Wage(nm)m_comm=m_sale=0.0;void Sales:setCommission(float comm)m_comm=comm;void Sales:setSales(float sale)m_sales=sale;float Sales:computePay()Wage:computePay()+m_comm*m_sales;第16页/共22页华北电力大学计算机系考察Sales类具有的成员char m_name30;float m_wage;float m_hours;float m_comm;float m_sales;void setWage(float wg);void setHours(float hrs);void setCommission(float comm);void setSales(float sale);void computePay();第17页/共22页华北电力大学计算机系2多态的使用我们会想以一个通用指针表示所有可能的职员类型Employee *pEmployee;Wage aWager(“陈大”);Sales aSales(“陈二”);Manager aManager(“陈三”);pEmployee=&aWager;.可以把职员指针指向任何一种职员。好处:程序设计的巨大弹性。譬如:设计一个职员链表职员指针数组,各个元素都是职员,我们会想以一个循环处理所有职员的computePay。第18页/共22页华北电力大学计算机系虚拟函数与一般化可以体会,上述的while循环其实就是把操作一般化。一般化之所以重要,在于它可以把现在的、未来的情况统统纳入考虑。将来即使有另一种名曰“顾问”的成员,上述计薪循环仍然能够正常。我们需要的是什么呢?依旧以Employee指针代表每一种职员,而又能够在实际指向不同种类之职员调用到不同版本之computePay的能力第19页/共22页华北电力大学计算机系修改:利用多态性,将computePay函数提到基类Employee中,并在前面加上virtual使之成为虚拟函数,然后Employee的派生类中根据各个具体的雇员类型重新定义computePay函数。这样,定义一个Employee类型的指针代表每一种雇员,通过动态联编,能够在程序运行时,根据实际指向不同种类之雇员对象调用到不同版本的computePay。第20页/共22页华北电力大学计算机系四、实验所需仪器、设备、材料(试剂)本实验基于window 平台,使用VC+为开发工具。五、实验预习要求、实验条件、方法及步骤 1理解C面向对象编程的基本概念,包括类和对象、派生和继承、多态、虚函数等。2根据实验要求,画出相应的类图。3按照类图,编程并实现。第21页/共22页华北电力大学计算机系感谢您的观看!第22页/共22页

    注意事项

    本文(C程序设计上机实验.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开