




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+语言程序设计课程设计设计菜单选择程序报告1一、 实习题目:设计菜单选择程序二、 设计思想:1、实现循环和功能选择:编写一个菜单函数 menu(),用 whlie 循环控制菜单的重复选择,用 switch 语 句对应用户的选择,并且实现相应的功能。 2、设计各个选择的功能:对于选择1,运用克莱姆法则求解线性方程组,用了多个循环和 if 判断语句, 其中两个函数调用,其主要功能是求解行列式的数值; 选择二,统计一篇英语文章的单词数,使用了函数getchar( ) 和gets(str),用于输入英文文章。三、 程序代码:#include#includeusing namespace std;#define N 10000void menu();/菜单选项函数void equation();/求线性方程组void english();/统计英文文章的单词数/主函数的执行/int main() int a,t=1; while(t)menu();couta;coutendl; switch(a)case 1: equation(); break; case 2: english(); break; case 3: t=0; break; /菜单选项函数/void menu() coutnttt-菜单选择-endl; coutttt1.利用克莱姆法则求解线性方程组endl; coutttt2.统计一篇英文文章的单词数endl; coutttt3.退出程序endl; coutttt-endl;/利用克莱姆法则求解线性方程组/static int aNN ,bN;int diN,cN; double xN;int term(int n,int k)int p,q,t=1;for (p=1; pn; p+) for(q=0; qkp) t=-t; for(p=0;pn; p+)t*=apkp; return(t); int det(int n) int j0,j1,j2,j3,j4,j5,d=0,kN; for(j0=0;j0n;j0+)if(a0j0=0) continue;k0=j0;for(j1=0;j1n;j1+)if(j1=j0) continue;if(a1j1=0) continue; k1=j1; if(n=2) d+=term(n,k); for(j2=0;j2n;j2+) if(j2=j0) continue; if(j2=j1) continue; if(a2j2=0) continue; k2=j2; if(n=3) d+=term(n,k); for(j3=0;j3n;j3+)if(j3=j0) continue; if(j3=j1) continue; if(j3=j2) continue; if(a3j3=0) continue; k3=j3; if(n=4)d+=term(n,k);for(j4=0; j4n; j4+) if(j4=j0) continue;if(j4=j1) continue; if(j4=j2) continue; if(j4=j3) continue;if(a4j4=0) continue; k4=j4; if(n=5)d+=term(n,k);for(j5=0;j5n;j5+)if(j5=j0) continue;if(j5=j1) continue;if(j5=j2) continue; if(j5=j3) continue; if(j5=j4) continue; if(a5j5=0) continue; k5=j5; return (d); void equation()int i,j,n,d; char ch;A:cout请输入线性方程组的未知数个数(nn; cout请输入线性方程组的增广矩阵(即未知数的系数与常数项组合成的矩阵,为n*(n+1)阶矩阵):endl; for (i=0;in;i+) /增广矩阵的输入for(j=0;jaij;cinbi;d=det(n);for (j=0;jn;j+)for (i=0;in;i+)ci=aij; aij=bi;dij=det(n);for(i=0;in;i+)aij=ci;cout最后求得线性方程组的解为:endl;for (i=0;in;i+)xi=(dii)/d;coutx(i+1)=xiendl;B:cout您是否要继续(Y/N)?ch; if(ch=y|ch=Y)goto A; else if(ch=n|ch=N) goto C; elsegoto B;C:system(pause);/统计英文文章的单词数/void english() char strN,c; int i,word=0,num=0; coutn请输入需要统计单词数的英文文章:0&c90&c122&c255)word=0; /*用空格区分新单词的产生*/ else if(word=0) word=1;/*新单词产生*/ num+; cout这篇文章共有 num 个单词.endl;四、 测试用例及测试结果1. 解线性方程组:2. 统计英文文章的单词数:五、 程序不足及升级方向这个程序只能解未知数的个数n=6时的恰定方程组,实用性受到限制,还需要以后再完善。六、 参考文献1 姚全珠. C+面向对象程序设计M. 北京:电子工业出版社,2010.2 郑莉.C+语言程序设计M.北京:清华大学出版社,2007.职工信息表设计报告2一、 实习题目:职工信息表设计二、 设计思想:1、类的结构:这里把worker作为基类,由它派生类list 和simplelist。2、多态性 :将 worker 的 display()成员函数设计为虚函数,printer()函数使用基类 worker 对象的引用作为参数,即可实现多态性。 3、设计主函数:要求编写最多输入 10000 个职工的信息表,并且可以随时停止。运用循环,增强程序的灵活性。三、 程序代码:#include#include #define MAX 10000 using namespace std; class worker /信息表基类 public: string num; string name; char sex; /性别用 F(女)和 M(男)表示。 int age; virtual void display() ; class list:public worker /完整信息表类 public: virtual void display(); ; class simplelist:public worker /信息简表类public:virtual void display(); ; int nemu(); /菜单选择函数void add(list a, int &n); /增加职工记录 float creat(list y,simplelist x,int &n); /生成信息简表 float printer(worker *p, int &n); /显示完整信息简表/主函数的执行/int main() simplelist cMAX;/定义简表数组 list dMAX;/定义信息表数组 int lastnum=0,t=1; bool exit=false;do switch(nemu() case 1: /1.增加职工记录 add(d,lastnum); break;case 2: /2.显示原始记录 printer(d,lastnum); coutendl返回主菜单!endl; break; case 3: /3.显示简表记录 creat(d,c,lastnum);printer(c,lastnum); coutendl返回主菜单!endl;break; case 4: /4.结束程序运行exit=true; break;while(exit=false); coutn程序结束 !nendl; return 0; / 菜单选择函数 /int nemu() int cn=5;docoutttt-endl;coutttt-endl; coutttt 1.增加职工信息 n; coutttt 2.显示完整信息 n; coutttt 3.显示信息简表 n; coutttt 4.结束程序运行 n; coutttt-endl;coutttt-endl; coutcn;while(cn4);return cn;/显示职工信息的完整记录/void list:display () cout编号:numendl; cout姓名:nameendl; cout性别:sexendl; cout年龄:ageendl; /显示信息简表/void simplelist:display () cout姓名:nameendl; cout年龄:ageendl; /1.增加职工信息/void add(list a, int &n) cout您选择的是:1.增加职工记录nendl; cout注意:当编号为0时,返回主菜单:nendl; for(n=0;nMAX;n+) /判断编号是否重复 coutan.num; if(an.num=0)break; /结束输入 for(int k=0;kn;k+) /判断姓名是否重复 if(an.num=ak.num) cout输入编号重复!endl; ; for(k=0;kn;k+) if(=) cout输入姓名重复!endl;coutan.sex; if(an.sex!=f&an.sex!=m) cout性别输入错误; coutan.sex; coutan.age; /2.生成信息简表/float creat(list y,simplelist x,int &n) if(nMAX) for (int i=0;i=n;i+) =; xi.age =yi.age;return 1; else return 0; /3.信息输出函数/float printer(worker *p, int &n) for(int i=0;in;i+) cout*display(); cout*(istream &in,Rational &r); friend ostream & operator(ostream &out,Rational &r); 输入输出就是按格式构造输出,输入流需要保证正确的格式,要保证分母不等于零。三、 程序代码:#include using namespace std;class Rational /有理数类public: int x; int y; Rational(int x1=0,int y1=1)x=x1;y=y1; Rational operator+(Rational r); /重载加法运算符 Rational operator-(Rational r); /重载减法运算符 Rational operator*(Rational r); /重载乘法运算符 Rational operator/(Rational r); /重载除法运算符 friend istream & operator(istream &in,Rational &r); /重载输入运算符 friend ostream & operator(ostream &out,Rational &r); /重载输出运算符;/主函数的执行/int main()char ch;Rational A,B,C; A:cout请输入A的值A;cout请输入B的值B;coutendl;cout-nendl;C=A+B;cout两数之和为 A+B = Cendl;C=A-B;cout两数之差为 A-B = Cendl; C=A*B;cout两数之积为 A*B = Cendl; C=A/B;cout两数之商为 A/B = Cendl;cout-endl; B:cout您是否要继续(Y/N)?ch; cout(istream &in,Rational &r) inr.xr.y; if(r.y=0) cout分母不能为0n; return in;ostream & operator(ostream &out,Rational &r)int i; float m,n;if(r.xr.y) /当x1;i-) if(r.x%i=0&r.y%i=0) m=r.x/i; n=r.y/i; r.x=m; r.y=n;else /当x=y,且x,y有公约数时,进行约分for(i=r.y;i1;i-)if(r.x%i=0&r.y%i=0) m=r.x/i; n=r.y/i; r.x=m; r.y=n;outr.x/r.yendl; /以分数的形式输出计算结果return out;Rational Rational:operator+(Rational r) return Rational(x*r.y+y*r.x,y*r.y);Rational Rational:operator-(Rational r) return Rational(x*r.y-y*r.x,y*r.y)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络类的营销策划方案
- 资金需求来电咨询方案
- 造价咨询方案编制依据
- 武汉学生食堂营销方案
- 高净值夫妻离婚财产分割及子女监护权协议范本
- 二手房买卖定金合同包含税费承担及过户流程指导
- 空气能热水设备销售安装及售后服务保障合同
- 房地产销售精英离职后客户资源保护及竞业禁止协议
- 离婚协议子女监护权确立与珠宝资产分割执行书
- 离婚协议中违约金条款对子女抚养权的影响
- 2024年法考主观题刑法真题(回忆版)解析与复习重点
- 招生表彰活动方案
- 学校党组织家访活动方案
- 数字媒体技术专业教学标准(高等职业教育专科)2025修订
- 妊娠合并心脏病疾病查房
- 消防安全评价管理制度
- 2025至2030年中国二手车金融行业市场行情监测及发展前景研判报告
- 2023年5月7日全国事业单位联考A类《职业能力倾向测验》试题真题答案解析
- 正念心理治疗
- 2025成人高考民法真题及答案
- 京东校招测评题库及答案
评论
0/150
提交评论