员工管理加加动态数组加无限内存人员管理系统.docx
- 文档编号:12566561
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:46
- 大小:188.60KB
员工管理加加动态数组加无限内存人员管理系统.docx
《员工管理加加动态数组加无限内存人员管理系统.docx》由会员分享,可在线阅读,更多相关《员工管理加加动态数组加无限内存人员管理系统.docx(46页珍藏版)》请在冰点文库上搜索。
员工管理加加动态数组加无限内存人员管理系统
(员工管理)加加动态数组加无限内存人员管理系统
“信息和计算科学”专业
《C++语言程序设计》课程设计
学号-
指导教师
设计日期2016•春19周〜20周
(壹)、设计菜单选择程序。
菜单是应用程序的界面,通过控制语句改变程序执行的顺序,设计菜单
是程序设计的基础。
本设计分俩步:
第壹步:
设计壹个菜单程序。
1.菜单内容:
程序运行后,给出3个菜单项的内容和输入提示,如
下:
1)利用克莱姆法则求解线性方程组
2)统计壹篇英文文章的单词数
3)退出程序
第二步:
为上述菜单项配上相应的功能。
1.流程图:
•.
(开始丿
2.程序优缺点:
f
选择运算
优点:
采用了动态开辟二维数组,传递不知道大小的二维数组,
程序规范,可读性强。
缺点:
采用递归算法,增加了程序的时间复杂度
3.代码段:
#include
#include
#include
#include
usingnamespacestd;
double**open_up(introw,intline);
doublePrice(introw,intline,double*a);
voidHead();
voidCramer();
voidStatis_Words();
intmain()
{
charch;//选择变量
while
(1)
{
Head();
ch=cin.get();
cout< switch(ch) { case'1': system("cls");Cramer();break; case'2': system("cls");Statis_Words();break; case'3': system("cls");cout<<"退出程序"< system("cls");cout<<"\t\t输入有误"< } cin.get(); } return0; } voidHead() { cout<<"\t\t菜单选择程序"< cout<<"\t\t"< cout<<"\t\t"< cout<<"\t\t1.克莱姆法则解线性方程组"< cout<<"\t\t2.统计英语文章单词数"< cout<<"\t\t3.结束"< cout<<"\t\t"< cout<<"\t\t"< voidCramer() { intm=0,n=0,i=0,k=0,j=0,h=0; doubleQuit=0.0,l=0.0; double**a=open_up(15,15);// 动态开辟二维数组 double**e=open_up(15,15);// 动态开辟二维数组 double**T=open_up(15,15);// 动态开辟二维数组 double**W=open_up(15,15);// 动态开辟二维数组 doubleP[15]={0.0},d[15]={0.0}; cout<<"\t\t克莱姆法则计算矩阵的值"< cout<<"输入所求线性方程组的系数矩阵"; cout<<"输入行数m和列数 n"< cin>>m>>n; cout<<"输入矩阵"< for(i=0;i { for(j=0;j { cin>>a[i][j]; cout< Quit=Price(n,n,(double*)a); cout<<"系数矩阵的值为: "< for(i=0;i { cin>>d[i]; } for(i=0;i { for(j=0;j { e[i][j]=a[i][j]; } } for(j=0;j { for(i=0;i { a[i][j]=d[i]; for(i=0;i P[j]=Price(n,n,(double*)a)/Quit;//强制类型转换 } cout<<"x["< for(h=0;h { a[h][j]=e[h][j]; } } } voidStatis_Words() { charch='\0'; intcount=0,word=0; cout<<"输入壹片英语文章以零结尾\n"< while((ch=cin.get())! ='0') 判断是否为 { if((ch>=0&&ch<=64)||(ch>=91&&ch<=96)||(ch>122&&ch<127))// { word=0; else if(0==word) { word=1; count++; } } } cout<<"文章壹共有"< } doublePrice(introw,intline,double*a)//求矩阵行列式的递归函数 { inti=0,j=0,c=0,p=0,q=0; doublesum=0; double**ele=open_up(row,line); //动态开辟二维数组 if(row==1) { return*a; } for(i=0;i for(c=0;c {if(c { p=0; } else { p=1; } for(j=0;j { j+1)); ele[c][j]=*(a+row*(c+p)+( }} if(i%2==0) {q=1; } elseq=-1; sum+=*(a+i*row+0)*q*Price(row-1,row-1,(double*)ele); } returnsum; } double**open_up(introw,intline)//动态开辟二维数组 { double**ele=newdouble*[row]; for(inti=0;i { ele[i]=newdouble[line]; } returnele; } 4.程序运行截图: (二)、有理数的四则运算。 有理数就是俩个整数的比率,通常表示为,分母不能为0。 本设计要求设计壹个Rational(有理数)类,实现有理数的四则运算,该类型的对象使用起来要像使用基本类型的对象壹样自然。 具体要求如下: 1.抽象Ration类,包含俩个数据成员(分子、分母),比如有理数能够 用对象表示为 要将表示为,或者将表示为 重载相应的运算符(输入、输出、加、减、乘、除)。 比如,要计算,希望像普 通加法壹样操作,和相加得,算数表达式为。 又如,想使用如下形式直接输入分子分母 cin«r; //输入cout»r; //输出 则需要重载这俩个流运算符 1.流程图: 创建分数 对象 执行除法 执行加法 2.程序优缺点: 优点: 采用了友元函数实现运算符重载,使用windows命名规 则程序规范,可读性强,使用外部接口让程序更安全。 缺点: 部分函数为类的友元函数,破坏了类的完整性。 3.代码段: #include #include usingnamespacestd; intgcd(inta,intb); classRation { public: Ration(inta=0,intb=0): numer(a),denom(b) { } voiddecide(); voidtrans(); voidinput(); friendRationoperator-(Rationc1,Rationc2); friendRationoperator+(Rationc1,Rationc2); friendRationoperator*(Rationc1,Rationc2); friendintgcd(inta,intb); friendistream&operator>>(istream&in,Ration&c); friendostream&operator<<(ostream&out,Ration&c); private: intnumer; intdenom; }; voidRation: : trans()//转变为小数 { decide(); doublec=(double)numer/(double)denom; cout<<"小数形式为"< } voidRation: : decide()//判别是否能够写成分数 { if(0==denom) { cout<<"分母不能为零"; exit(0); } } c1.decide(); c2.decide(); Rationc3; if(c1.denom==c2.denom) { c3.denom=c2.denom; c3.numer=c1.numer+c2.numer; } else { c3.denom=c1.denom*c2.denom/gcd(c1.denom,c2.denom); c3.numer=c1.numer*c3.denom/c1.denom+c2.numer*c3.denom/c2.denom;} returnc3; } Rationoperator-(Rationc1,Rationc2) { c1.decide(); c2.decide(); Rationc3; if(c1.denom==c2.denom) c3.denom=c2.denom; c3.numer=c1.numer-c2.numer; } else { c3.denom=c1.denom*c2.denom/gcd(c1.denom,c2.denom); c3.numer=c1.numer*c3.denom/c1.denom-c2.numer*c3.denom/c2.denom;} returnc3; } Rationoperator*(Rationc1,Rationc2) { c1.decide(); c2.decide(); Rationc3; c3.denom=c1.denom*c2.denom; c3.numer=c1.numer*c2.numer; returnc3; } c1.decide(); c2.decide(); Rationc3; c3.numer=c1.numer*c2.denom; c3.denom=c1.denom*c2.numer; returnc3; } istream&operator>>(istream&in,Ration&c) { //c.decide(); cout<<"输入分子分母\n"; in>>c.numer; cin.get(); in>>c.denom; returnin; } ostream&operator<<(ostream&out,Ration&c) { //c.decide(); if(c.numer! =0) { intGCD=gcd(c.numer,c.denom); if(GCD<=1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 动态 数组 无限 内存 人员 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)