c程序课程设计实例
发布网友
发布时间:2022-04-27 06:07
我来回答
共5个回答
热心网友
时间:2022-06-27 09:42
第一题:
#include <iostream>
using namespace std;
void main()
{ int i, j, k, count=0;
for( i=1; i<=9; i++)
for( j=0; j<=9; j++)
if ( i==j )
continue;
else
for( k=0; k<=9; k++)
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=0;i<n;i++)//比较前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;
}
}
好了 我都运行过的
热心网友
时间:2022-06-27 09:42
你这个程序,我以前编过,是可以运行的,呵呵。不过你给的积分太少喽,多给点啦……
热心网友
时间:2022-06-27 09:43
客户需求不明确,无法下手!
热心网友
时间:2022-06-27 09:44
哪个分数段是不及格的啊?
热心网友
时间:2022-06-27 09:44
回答这个问题,需要时间哦,能不能等啊