#include <iostream>
using namespace std
void main()
{ int i, j, k, count=0
for( i=1i<=9i++)
for( j=0j<=9j++)
if ( i==j )
continue
else
for( k=0k<=9k++)
if ( k!=i&&k!=j)
{count++
cout<<i<<j<<k<<ends
}
cout<<endl
cout<<"所有这样的三位数个数有:"<<count<<" 个"<<endl
}
第二题
#include <iostream>
using namespace std
int fun(char*s,int n)
{
int flag=1
for(int i=0i<ni++)//比较前n个字符是否为*
if(s[i]!='*')
{
flag=0
break
}
if(flag==0)
return 0
else
{
int k=n
while(s[k]!='\0')//移动到非*字符
{
if(s[k]=='*')
k++
else
break
}
int j=0
while(s[k]!='\0')//向前复制
{
s[n+j]=s[k]
k++
j++
}
s[n+j]='\0'
}
return 1
}
void main()
{
static char str[15]
int m
cout<<"请输入一个只含*和字母的字符串:"<<endl
cin>>str
cout<<"请输入n值:"<<endl
cin>>m
fun(str,m)
cout<<str<<endl
}
第三题
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std
/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num//编号
string m_name//姓名
string m_dep//部门
double m_salary//应付工资
double m_insurance//保险
double m_tax//税金
}
/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到;
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/
list<employee>emps
int main(int argc, char argv[])
{
void print(const employee &e)
void input()
void del()
void mod()
void show_all()
void show_name()
void show_dep()
cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl
int choose=0
cin>>choose
assert(!cin.fail())
while (choose!=6)
{
if (choose==1) input()
if (choose==2) del()
if (choose==3) mod()
if (choose==4)
{
int choice=0
cout<<"请选择 *** 作 1.按姓名查询 2.按部门查询 3.退出:"<<endl
cin>>choice
if (choice==1) show_name()
if (choice==2) show_dep()
if (choice==3)
{
cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl
cin>>choose
assert(!cin.fail())
continue
}
}
if (choose==5) show_all()
cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"
cin>>choose
assert(!cin.fail())
}
return 0
}
void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl
cout<<"姓名:"<<e.m_name<<endl
cout<<"部门:"<<e.m_dep<<endl
cout<<"保险:"<<e.m_insurance<<endl
cout<<"税金:"<<e.m_tax<<endl
cout<<"应付工资:"<<e.m_salary<<endl
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl
}
void input()
{
string num,name,dep
double salary,ins,tax
cout<<"请输入员工编号:"<<endl
cin>>num
cout<<"请输入员工姓名:"<<endl
cin>>name
cout<<"请输入员工部门:"<<endl
cin>>dep
cout<<"请输入员工保险:"<<endl
cin>>ins
assert(!cin.fail())
cout<<"请输入员工税金:"<<endl
cin>>tax
assert(!cin.fail())
cout<<"请输入员工应付工资:"<<endl
cin>>salary
assert(!cin.fail())
employee temp
temp.m_dep=dep
temp.m_insurance=ins
temp.m_name=name
temp.m_num=num
temp.m_salary=salary
temp.m_tax=tax
emps.push_back(temp)
cout<<"员工录入 *** 作完毕."<<endl
}
void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录."<<endl
return
}
string name
bool isfind=false
cout<<"请输入要删除的员工姓名:"<<endl
cin>>name
list<employee>::iterator iter
for (iter=emps.begin()iter!=emps.end()iter++)
{
if (iter->m_name==name)
{
isfind=true
emps.erase(iter)
cout<<"姓名为"<<name<<"的员工记录已删除."<<endl
return
}
}
if (!isfind)
{
cout<<"没有找到姓名为"<<name<<"的员工."<<endl
return
}
}
void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl
return
}
bool isfind=false
string name
cout<<"请输入要修改的员工姓名:"<<endl
cin>>name
list<employee>::iterator iter
for (iter=emps.begin()iter!=emps.end()iter++)
{
if (iter->m_name==name)
{
isfind=true
cout<<"姓名为"<<name<<"的员工记录已找到."<<endl
break
}
}
if (isfind)
{
string num,name,dep
double tax,ins,salary
print(*iter)
cout<<endl
cout<<"请输入新的员工编号:"<<endl
cin>>num
cout<<"请输入新的员工姓名:"<<endl
cin>>name
cout<<"请输入新的员工部门:"<<endl
cin>>dep
cout<<"请输入新的员工保险:"<<endl
cin>>ins
assert(!cin.fail())
cout<<"请输入新的员工税金:"<<endl
cin>>tax
assert(!cin.fail())
cout<<"请输入新的员工工资:"<<endl
cin>>salary
assert(!cin.fail())
iter->m_dep=dep
iter->m_insurance=ins
iter->m_name=name
iter->m_num=num
iter->m_salary=salary
iter->m_tax=tax
cout<<"1 员工记录被成功修改."<<endl
}
else
{
cout<<"没有找到姓名为"<<name<<"的员工记录."<<endl
}
}
void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl
return
}
cout<<"显示全体员工数据:"<<endl
cout<<"--------------------"<<endl
list<employee>::iterator iter
for(iter=emps.begin()iter!=emps.end()iter++)
{
cout<<endl
print(*iter)
cout<<endl
}
cout<<"--------------------"<<endl
}
void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl
return
}
bool isfind=false
string name
cout<<"请输入要查询的员工姓名:"<<endl
cin>>name
list<employee>::iterator iter
for(iter=emps.begin()iter!=emps.end()iter++)
{
if (iter->m_name==name)
{
isfind=true
cout<<"姓名为"<<name<<"的员工记录已找到."<<endl
print(*iter)
break
}
}
if (!isfind)
{
cout<<"没有找到姓名为"<<name<<"的员工."<<endl
return
}
}
void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空."<<endl
return
}
double isfind=0.00
double total_salary=0.00
string dep
cout<<"请输入要查询的部门名称:"<<endl
cin>>dep
cout<<"部门["<<dep<<"]的员工信息:"<<endl
cout<<"--------------------"<<endl
list<employee>::iterator iter
for(iter=emps.begin()iter!=emps.end()iter++)
{
if (iter->m_dep==dep)
{
isfind++
total_salary+=iter->m_salary
print(*iter)
cout<<endl
continue
}
}
cout<<"--------------------"<<endl
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门."<<endl
}
else
{
cout<<"部门["<<dep<<"]工资统计:"<<endl
cout<<"工资总额:"<<total_salary<<endl
cout<<"平均工资:"<<total_salary/isfind<<endl
}
}
好了 我都运行过的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)