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

    C程序的设计实现环节考核规定.docx

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

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

    C程序的设计实现环节考核规定.docx

    C+程序设计实现环节考核规定2.1 实践环节考核大纲一、考核类型上机考核二、目的要求C+语言程序设计是计算机科学与应用专业、信息管理专业(本科)的必修课,是培养学生实践动手能力的一门重要的专业课程,是为满足计算机应用领域与计算机应用人才的需要而设计的。C+语言是一种面向对象的编程语言,它集抽象性、封装性、继承性和多态性等面向对象特征于一体,可以帮助人们开发出具有较高数据抽象程度,能够充分体现信息隐蔽、软件重用、易修改、易扩充等特征的大型软件。C+语言程序设计的实验采用 Microsoft Visual C+6.0。通过上机实践,加深对课程的理解,更好地掌握程序设计的基本方法,增强实践动手能力。三、考核环境硬件:586 以上的 PC 系列机,主频大于 166MHz,内存大于 256MB,硬盘空间大于500MB。软件:中文 Windows2000/NT/XP 操作系统,Microsoft Visual C+6.0。四、考核方法考生抽取试题后,在 45 分钟内,完成试卷中所要求的全部内容,并作必要的记录。考试结束后,考生上交试卷。上机考核成绩由现场老师初评,经考点负责人审核签名,报主考院校核定。成绩分合格、不合格两类。五、考核内容l掌握 MicrosoftVisualC+6.0 集成开发环境的使用,新建工程,编辑含有类C+源文件,存取文件,编译文件,调试程序和运行程序。l模板。包括:函数模板、类模板,练习编制函数模板和类模板。l熟悉面向对象编程思想和多文件编程规范。l掌握公有继承的赋值兼容性规则、构造函数、复制构造函数和析构函数的设计方法。l练习各类运算符的重载。l熟悉使用文件的基本方法。l熟悉继承和包含以及虚函数的多态性。六、参考书目1.刘振安主编,C+程序设计,机械工业出版社 2008 年2.雪万鹏译,C+程序设计教程,机械工业出版社 2005 年3.钱能,C+程序设计教程,清华大学出版社 2006 年2.2 C+程序设计上机考核指导C+语言程序设计是一门实践性很强的课程,必须通过反复上机练习,深入领悟面向对象程序设计的基本思想。通过实验教学加深理解和巩固课堂和教材所学的内容,提高实践动手能力。实验一 Microsoft Visual C+6.0 集成开发环境的使用一、实验目的与要求了解并初步掌握 Microsoft Visual C+6.0 集成开发环境的使用。二、实验内容(1)创建项目(Project)1、 启动 VC6.02、 从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。单击【工程】标签,从项目列表中单击 Win32 Console Application 选项;在【工程】文本框中输入项目的名字,如“hello”,系统将自动为用户的项目分配一个默认的目录。3、 如果是 Visual C+6.0,系统将显示一个询问项目类型的程序向导,选择an empty project(空项目)选项,单击【完成】按钮,显示新建项目信息;单击【确定】按钮结束。(2)添加程序代码1、 从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。2、 在【新建】对话框中打开【文件】选项卡,单击 C+Source File 选择,建立源文件;选择“添加工程”复选框。在右边的“文件”文本框中为文件指定一个名字,如“hello”。3、 编辑源文件。在【工作区】窗口中单击 FileVIEW 标签,选择并打开该窗口中 SourceFiles 下的文件,如 hello.app,在打开的【文件】窗口中输入源文件。4、 在项目文件中增加文件。若在已有的项目文件中增加一个新文件,如 C+源文件“*.cpp”或头文件“*.h”需要执行以下操作。打开相应的项目文件,选择【新建】|【文件】命令,选择 C+编辑栏 Source 选择,可增加 C+源文件;或选择 C/C+Head File 选项增加 C/C+头文件。在【文件】文本框输入文件名,单击【确定】按钮。(3)编译源文件先激活相应的源文件窗口,选择【编译】|【编译】命令或按 Ctrl+F7 键来编译源文件,形成目标文件(生成.obj 文件),若该项目中有多个源文件,可依次激活并编译。(4)连接目标文件,形成可执行文件选择【编译】|【连接】命令或快捷键 F7 连接程序,并形成可执行文件。此命令也可直接将项目中的所有源文件进行编译并连接形成可执行文件,使编译和连接的过程结合在一起。(5)运行程序选择【编译】|【执行】命令或使用快捷键 Ctrl+F5 运行该程序,将显示一个类似于 DOS 的窗口,在窗口中第一行输出程序计算结果,第二行输出“Pressany key to continue”,提示用户按任意键回到开发环境。三、程序练习定义一个关于日期的类,然后声明对象,判断该日期是否为闰年并输出。本题练习的是定义类和使用类的方法#include<iostream>using namespace std;class TDatepublic:void SetDate(int y,int m,int d);int isLeapYear();void Print();private:int year,month,day;void TDate:SetDate(int y,int m,int d)year=y;month=m;day=d;int TDate:isLeapYear()return (year%4=0 && year%100!=0)|(year%400=0);void TDate:Print()cout<<year<<"."<<month<<"."<<day<<endl;void main()TDate date1,date2;date1.SetDate(2004,5,4);date2.SetDate(2005,4,9);int leap=date1.isLeapYear();date1.Print();if(leap=1)cout<<"是闰年!"<<endl;elsecout<<"不是闰年!"<<endl;date2.Print();leap=date2.isLeapYear();if(leap=1)cout<<"是闰年!"<<endl;elsecout<<"不是闰年!"<<endl;四、实验要求按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验二 类和对象的使用一、实验目的和要求(1)熟悉类的定义格式和类中成员的访问权限。(2)掌握对象的定义以及对象的初始化和赋值的操作。(3)掌握构造函数和析构函数的使用。二、实验内容1 编写一个程序,定义类 CPeople 包含个人信息名称、年龄、薪水。并在类中定义构造函数、析构函数。题目分析:注意构造函数、析构函数的定义规则。源程序代码:#include<iostream>#include<string>using namespace std;/类 Cpeople 的定义class CPeopleintm_nAge;float m_fSalary;char* m_pstrName;public:CPeople();/缺省构造函数CPeople(int age,float salary,char *name); /带参数的构造函数CPeople(const CPeople&);/拷贝构造函数CPeople();/析构函数char *GetName();float GetSalary();void SetSalary(float);int GetAge();void SetAge(int age);CPeople:CPeople()m_nAge=20;m_fSalary=3000.00f;m_pstrName=new char20;strcpy(m_pstrName,"无名氏");CPeople:CPeople(int age,float salary,char *name)m_nAge=age;m_fSalary=salary;m_pstrName=new char20;strcpy(m_pstrName,name);CPeople:CPeople(const CPeople&AnotherPeople)m_nAge=AnotherPeople.m_nAge;m_fSalary=AnotherPeople.m_fSalary;m_pstrName=new char20;strcpy(m_pstrName,AnotherPeople.m_pstrName);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;char *CPeople:GetName()return m_pstrName;int CPeople:GetAge()return m_nAge;void CPeople:SetAge(int age)if(age<=0)cout<<"设置的年龄不合法"<<endl;elsem_nAge=age;float CPeople:GetSalary()return m_fSalary;void CPeople:SetSalary(float num)if(num<0)cout<<"设置的薪水数目不合法"<<endl;elsem_fSalary=num;void main()CPeople ZhangSan(65,2000.00f,"张  三");cout<<"以下为个人信息:n 姓名,年龄,薪水"<<endl;cout<<"-n"cout<<ZhangSan.GetName()<<""cout<<ZhangSan.GetAge()<<""cout<<ZhangSan.GetSalary()<<endl<<endl;CPeople A;A.SetAge(34);A.SetSalary(4000.00f);cout<<A.GetName()<<""cout<<A.GetAge()<<""cout<<A.GetSalary()<<endl<<endl;CPeople B(ZhangSan);cout<<B.GetName()<<""cout<<B.GetAge()<<""cout<<B.GetSalary()<<endl<<endl;三、实验和要求按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验三 继承与派生一、实验目的和要求(1)掌握派生类的定义方法和派生类构造函数的定义方法。(2)掌握不同继承方法的情况下,基类成员函数在派生类中的访问权限。(3)了解派生类的构造函数和析构函数的执行顺序。了解多重继承的定义方法,多重继承的构造函数和析构函数的使用。二、实验内容在类 CPeople 的基础上,派生出学生类 CStudent,并实现对学生成绩的统计和输出。源程序代码:#include<iostream>#include<string>#define MAXNUM 10using namespace std;class CPeopleintm_nAge;public:char* m_pstrName;CPeople(int age,char *name);CPeople();int GetAge();void SetAge(int age);void CopyPeople(CPeople *pAnother);CPeople:CPeople(int age,char *name)m_nAge=age;m_pstrName=new char20;strcpy(m_pstrName,name);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;int CPeople:GetAge()return m_nAge;void CPeople:SetAge(int age)m_nAge=age;void CPeople:CopyPeople(CPeople *pAnother)m_nAge=pAnother->m_nAge;strcpy(m_pstrName,pAnother->m_pstrName);class CStudent:public CPeoplefloat m_ArrayScoreMAXNUM;/用来存放成绩的数组protected:int m_stuNo;/学号int m_courseNum;/课程数目float m_aScore;/平均成绩public:CStudent(intage,intNo,intNum,char*pName="noname"):CPeople(age,pName)m_stuNo=No;m_courseNum=Num;m_aScore=0.0f;/初始化成绩数组cout<<"请输入学生"<<m_pstrName<<m_courseNum<<"门课的成绩:"<<endl;for(int i=0;i<m_courseNum;+i)cin>>m_ArrayScorei;void CaculateAverageScore()float SUM=0.0f;for(int i;i<m_courseNum;+i)SUM+=m_ArrayScorei;m_aScore=SUM/m_courseNum;float GetM_aScore()return m_aScore;friend ostream &operator <<(ostream &out,const CStudent &s);ostream &operator <<(ostream &out,const CStudent &s)out<<"学生姓名"<<s.m_pstrName<<",学号:"<<s.m_stuNo<<",成绩列表:"<<endl;for(int i=0;i<s.m_courseNum;+i)out<<s.m_ArrayScorei<<endl;out<<"平均成绩="<<s.m_aScore<<endl<<endl;return out;void main()CStudent stu1(16,29,3,"张三");stu1.CaculateAverageScore();cout<<stu1;注意:VC+6.0 不支持插入操作符和提取操作符作为友元运算符重载,故改造如下:#include<iostream>#include<string>#define MAXNUM 10using namespace std;class CPeopleintm_nAge;public:char* m_pstrName;CPeople(int age,char *name);CPeople();int GetAge();void SetAge(int age);void CopyPeople(CPeople *pAnother);CPeople:CPeople(int age,char *name)m_nAge=age;m_pstrName=new char20;strcpy(m_pstrName,name);CPeople:CPeople()if(m_pstrName!=NULL) delete m_pstrName;int CPeople:GetAge()return m_nAge;void CPeople:SetAge(int age)m_nAge=age;void CPeople:CopyPeople(CPeople *pAnother)m_nAge=pAnother->m_nAge;strcpy(m_pstrName,pAnother->m_pstrName);class CStudent:public CPeoplefloat m_ArrayScoreMAXNUM;/用来存放成绩的数组protected:int m_stuNo;/学号int m_courseNum;/课程数目float m_aScore;/平均成绩public:CStudent(int age,int No,int Num,char* pName="no name"):CPeople(age,pName)m_stuNo=No;m_courseNum=Num;m_aScore=0.0f;/初始化成绩数组cout<<"请输入学生"<<m_pstrName<<m_courseNum<<"门课的成绩:"<<endl;for(int i=0;i<m_courseNum;i+)cin>>m_ArrayScorei;void CaculateAverageScore()float SUM=0.0f;for(int i=0;i<m_courseNum;i+)SUM+=m_ArrayScorei;m_aScore=SUM/m_courseNum;float GetM_aScore()return m_aScore;ostream &operator <<(ostream &out);ostream & CStudent:operator<<(ostream &out)out<<"学生姓名"<<m_pstrName<<",学号:"<<m_stuNo<<",成绩列表:"<<endl;for(int i=0;i<m_courseNum;i+)out<<m_ArrayScorei<<endl;out<<"平均成绩="<<m_aScore<<endl<<endl;return out;void main()CStudent stu1(16,29,3,"张三");stu1.CaculateAverageScore();stu1<<cout;三、实验和要求按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验四 模板的使用一、实验目的和要求了解函数模板、类模板的概念,练习编制函数模板和类模板。二、实验内容编写一个程序,使用类模板对数组进行排序、查找和求元素和的程序。要求:设计一个类模板 template <class T> class Array,用于对 T 类型的数组进行排序、查找和求元素和,然后由此产生模板类 Array<int>和 Array<double>。源程序代码:#include<iostream>#include<iomanip>using namespace std;template <class T>class ArrayT *set;int n;public:Array(T *data,int i)set=data;n=i;Array();void sort();/排序int seek(T key);/查找指定的元素T SUM();/求和void disp();/显示所有的元素;template <class T>void Array<T>:sort()int i,j;T temp;for(i=1;i<n;i+)for(j=n-1;j>=i;j-)if(setj-1>setj)temp=setj-1;setj-1=setj;setj=temp;template <class T>int Array<T>:seek(T key)int i;for(i=0;i<n;i+)if(seti=key) return i;return -1;template <class T>T Array<T>:SUM()T s=o;int i;for(i=0;i<n;i+)s+=seti;return s;template <class T>void Array<T>:disp()int i;for(i=0;i<n;i+)cout<<seti<<" "cout<<endl;void main()int a=6,3,8,1,9,4,7,5,2;double b=2.3,6.1,1.5,8.4,6.7,3.8;Array<int>arr1(a,9);Array<double>arr2(b,6);cout<<"arr1"<<endl;cout<<"原序列"arr1.disp();cout<<"8 在 arr1 中的位置:"<<arr1.seek(8)<<endl;arr1.sort();cout<<"排序后:"arr1.disp();cout<<"arr2"<<endl;cout<<"原序列"arr2.disp();cout<<"8.4 在 arr2 中的位置:"<<arr2.seek(8.4)<<endl;arr2.sort();cout<<"排序后:"arr2.disp();三、实验和要求按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验五 使用向量一、实验目的和要求练习使用向量解决实际问题。二、实验内容利用向量编写程序;出圈游戏。假设有人为 n 的一个小组,他们顺时针方向围坐一圈。一开始任选一个正整数作为报数的上限值 m,从第一个人开始按顺时针方向自 star 开始顺序报数,报到 m 时停止报数并出列。如此下去,直到所有人全部出列为止。要求按他们出列的顺序输出他们的名字。源程序代码:#include<iostream>#include<string>#include<vector>using namespace std;void fun(vector<string> &rc,unsigned &rm,unsigned &ri)vector<string>:iterator p=rc.begin();unsigned j=1;/报数while(j<=rm)ri+;if(ri>=rc.size()/到终点,返回到第一个位置计数ri=0;j+;cout<<rcri<<","rc.erase(p+ri);/删除出圈人的记录if(ri>=rc.size() ri=0;/到终点,返回到第一个位置计数void main()unsigned length=0,m,star,i;cout<<"请输入人数:"cin>>length;vector<string> c(length);cout<<"请输入报数上限值m (m<=20)"cin>>m;while(m>20)cout<<"报数上限值太大,请重新输入:"cin>>m;cout<<"从第几个人的位置开始报数(不能大于"<<c.size()<<"):"cin>>star;while(star>c.size()cout<<"开始位置大于人数,重新输入:"cin>>star;cout<<"准备输入名字"<<endl;for(i=0;i<c.size();i+)cout<<"第"<<i+1<<"个人的名字:"cin>>ci;i=star-1;/计数位置初始值while(c.size()>1)fun(c,m,i);cout<<ci<<endl;三、实验和要求按要求编写实验程序,将实验程序调试运行,假设参加游戏的人数为 5 人,间隔数选10,从第三个人的位置开始报数,5 个人的名字依次为:李红、王强、李四、王五,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验六 多态性和虚函数一、实验目的和要求熟悉继承和包含以及虚函数的多态性。二、实验内容建立工程文件、类在头文件(employee.h)中声明、类在源文件(empfun.cpp)实现、在源文件(sy10_4.cpp)中编写主程序。程序实现的基本功能:小公司人员管理信息。某小公司主要有 3 类人员:经理、兼职技术人员、兼职销售员。这些人员分别具有以下属性。经理:姓名、编号、固定工资、当月薪水、计算月薪、显示信息;兼职技术人员:姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息;兼职销售员  :姓名、编号、销售额、销售额提成、当月薪水、计算月薪、显示信息;要求:人员编号基数为 1000,每输入一个人员信息编码加 1;月薪计算办法是经理固定月薪 8000 元;兼职技术人员按 100 元、小时领取月薪;兼职销售员按当月销售额的 4%提成。根据题目要求,设计一个基数 emplyee,然后派生出 technician(兼职技术人员)类、manager(经理)类和 salesman(兼职销售员)类。源程序代码:/employee.h 头文件#include<iostream>#include<string>using namespace std;class employee/定义职员类protected:char *name;/定义姓名int EmpNo;/个人编号double SUMPay;/月薪总额static int employeeNo;/本公司职员编号目前最大值public:employee();employee();virtual void pay()=0;/计算月薪函数,解决:虚函数void displayStatus();/显示人员信息;class technician:public employee/兼职技术人员类(公有派生)protected:float hourlyRate;/每小时酬金int workHours;/当月工作时数public:technician();void pay();/计算月薪void displayStatus();/显示人员信息;class salesman:public employee/兼职销售员类(公有派生)protected:double CommRate;/提成百分比double sales;/当月销售额public:salesman();void pay();/计算月薪void displayStatus();/显示人员信息;class manager: virtual public employee/经理类(公有派生)protected:float monthlyPay;/固定月薪public:manager();void pay();/计算月薪void displayStatus();/显示人员信息;/empfun.cpp#include<iostream>#include<string>using namespace std;#include "employee.h"int employee:employeeNo=1000;/员工编号基数employee:employee()char str20;cout<<"n 输入雇员姓名"cin>>str;name=new charstrlen(str)+1; /动态申请strcpy(name,str);EmpNo=employeeNo+;/新员工编号自动生成SUMPay=0.0;/月薪总额初始 0employee:employee()delete name;/释放空间void employee:displayStatus()cout<<name<<":"<<"编号"<<EmpNo<<",本月工资"<<SUMPay<<endl;technician:technician()hourlyRate=100;/每小时酬金 100 元void technician:pay()cout<<"输入本月工作时数:"cin>>workHours;SUMPay=hourlyRate*workHours;void technician:displayStatus()cout<<"兼职技术人员:"employee:displayStatus();salesman:salesman()CommRate=0.04;/提成比例void salesman:pay()cout<<"输入本月销售额:"cin>>sales;SUMPay=sales*CommRate;/月薪=销售提成void salesman:displayStatus()cout<<"销售员:"employee:displayStatus();manager:manager()monthlyPay=8000;void manager:pay()SUMPay=monthlyPay;/月薪总额=固定月薪void manager:displayStatus()cout<<"经理:"employee:displayStatus();/sy10_4.cpp#include<iostream>#include<string>using namespace std;#include "employee.h"void main()/经理manager m1;m1.pay();m1.displayStatus();/兼职技术人员technician t1;t1.pay();t1.displayStatus();/兼职销售员salesman s1;s1.pay();s1.displayStatus();cout<<"n 使基类指针指向子类对象"<<endl;employee *ptr4=&m1,&t1,&s1;for(int i=0;i<3;i+)ptri->displayStatus();三、实验和要求按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。实验七 缺少一、实验目的和要求实验八 文件读写一、实验目的和要求熟悉使用文件的基本方法。熟悉标准流对象 cin 和 cout 的使用方法,掌握系统提供的输入操作和输出操作函数。二、实验内容简单通讯录:编写一个简单的通讯录程序,在文件 myNote 中记录朋友的姓名、年龄和电话号码,允许用户向其中添加信息,根据姓名查询或显示所有信息。源程序代码:#include<iostream>#include<string>#include "iomanip"#include "fstream"using namespace std;class MyFriendprivate:unsigned int age;string name;string telephoneNo;public:void getdata()cin>>name>>age>>telephoneNo;void disp()cout<<left<<setw(12)<<name<<setw(8)<<age<<setw(12)<<telephoneNo<<endl;string getname()return name;void outDate()ifstream input("myNote.dat");MyFriend myfriend;cout<<"输入数据:"<<endl;cout<<left<<setw(12

    注意事项

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

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




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

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

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

    收起
    展开