沈阳理工大学C语言课程设计DOC.docx

上传人:b****6 文档编号:13342953 上传时间:2023-06-13 格式:DOCX 页数:39 大小:343.72KB
下载 相关 举报
沈阳理工大学C语言课程设计DOC.docx_第1页
第1页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第2页
第2页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第3页
第3页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第4页
第4页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第5页
第5页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第6页
第6页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第7页
第7页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第8页
第8页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第9页
第9页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第10页
第10页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第11页
第11页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第12页
第12页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第13页
第13页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第14页
第14页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第15页
第15页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第16页
第16页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第17页
第17页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第18页
第18页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第19页
第19页 / 共39页
沈阳理工大学C语言课程设计DOC.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

沈阳理工大学C语言课程设计DOC.docx

《沈阳理工大学C语言课程设计DOC.docx》由会员分享,可在线阅读,更多相关《沈阳理工大学C语言课程设计DOC.docx(39页珍藏版)》请在冰点文库上搜索。

沈阳理工大学C语言课程设计DOC.docx

沈阳理工大学C语言课程设计DOC

课程设计任务书

学院

信息科学与工程

专业

通信工程

学生姓名

李祥滢

学号

1003060219

设计题目

C语言课程设计

内容及要求:

加深对C语言基础知识的掌握,使用C语言编程实现以下题目的设计。

题目名称:

数字的组成及删除指定位置的字符,工资统计的设计

内容及要求:

1、编程:

用0—9之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。

2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,intn),其功能是:

是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。

例如:

若输入字符串为******A*BC*DEF*G***,n的值为4,则删除后的字符串应是:

****A*BC*DEF*G***

3、工资统计程序设计

设计结构体数组,结构中包含职工数据为:

编号、姓名、部门、应付工资、保险、税金、实付工资。

其中实付工资有公式计算得到:

实付工资=应付工资-保险-税金

设计各个函数,分别实现以下功能:

(1)输入职工数据,其中“实付工资”通过计算得到

(2)显示全部职工数据

(3)输入其部门值、显示该部门职工的数据,工资总额,平均工资

设计菜单,通过选择菜单调用以上函数。

软件开发环境

WindowsXP,TC2.0或VisualC++6.0

进度安排:

第18周:

C语言基础知识练习

第18周:

算法设计

第19周:

编写程序代码与程序调试

第19周:

答辩、验收程序

指导教师(签字):

年月日

学院院长(签字):

年月日

目录

一、题目要求1

二、算法设计2

三、编程实现3

四、结果分析6

五、参考文献9

 

一、题目要求

题目名称:

数字的组成及删除指定位置的字符,工资统计的设计

内容:

1、编程:

用0—9之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。

2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,intn),其功能是:

是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。

例如:

若输入字符串为******A*BC*DEF*G***,n的值为4,则删除后的字符串应是:

****A*BC*DEF*G***

3、工资统计程序设计

设计结构体数组,结构中包含职工数据为:

编号、姓名、部门、应付工资、保险、税金、实付工资。

其中实付工资有公式计算得到:

实付工资=应付工资-保险-税金

设计各个函数,分别实现以下功能:

(4)输入职工数据,其中“实付工资”通过计算得到

(5)显示全部职工数据

(6)输入其部门值、显示该部门职工的数据,工资总额,平均工资

设计菜单,通过选择菜单调用以上函数。

要求:

使用C语言完成上述程序的设计、编程和调试,开发环境可采用TurboC2.0、WinTC或VisualC++6.0等。

 

二、算法设计

编程:

用0—9之间不同的三个数字构成一个三位数,统计有多少个这样的三位数:

1通过设计for循环,分别输出三位数的各位数字,并累加所有符合条件的三位数。

2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,intn),其功能是:

是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。

例如:

若输入字符串为******A*BC*DEF*G***,n的值为4,则删除后的字符串应是:

****A*BC*DEF*G***:

1fun(char*a,intn),函数功能:

是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做

主函数功能:

输入一个修改前的字符串,输入一个自然数n,输出修改后的字符串!

 

3、3、工资统计程序设计

设计结构体数组,结构中包含职工数据为:

编号、姓名、部门、应付工资、保险、税金、实付工资。

其中实付工资有公式计算得到:

实付工资=应付工资-保险-税金

设计各个函数,分别实现以下功能:

(7)输入职工数据,其中“实付工资”通过计算得到

(8)显示全部职工数据

(9)输入其部门值、显示该部门职工的数据,工资总额,平均工资

设计菜单,通过选择菜单调用以上函数。

1、每个函数的功能:

(1)voidinput();录入:

输入职工数据,其中"实付工资"通过计算得到

(2)voiddel();)删除:

删除指定的职工信息(输入姓名,若找到则删除该信息

(3)voidmod();修改:

允许对已经录入的数据重新进行编辑、修改

(4)voidshow_all();显示:

显示全体职工数据;

(5)voidshow_name();查询:

a.输入职工姓名,显示该职工的全部数据b.输入某部门值,显示该部门职工的数据、工资总额、平均工资。

(6)voidshow_dep();退出程序

三、编程实现

程序的具体C语言代码如下:

第1题:

}#include

voidmain()

{

inti,j,k,count=0;

for(i=1;i<=9;i++)

{

for(j=0;j<=9;j++)

{

for(k=1;k<=9;k++)

{

if(i!

=j&&j!

=k&&i!

=k)

{

printf("%3d%d%d",i,j,k);

count++;

}

}

}

}

printf("种数构成方法:

");

printf("%d",count);

}

 

第2题:

#include

intfun(char*s,intn)

{

intflag=1;

for(inti=0;i

if(s[i]!

='*')

{

flag=0;

break;

}

if(flag==0)

return0;

else

{

intk=n;

while(s[k]!

='\0')//移动到非*字符

{

if(s[k]=='*')

k++;

else

break;

}

intj=0;

while(s[k]!

='\0')//向前复制

{

s[n+j]=s[k];

k++;

j++;

}

s[n+j]='\0';

}

return1;

}

voidmain()

{

staticcharstr[15];

intm;

printf("请输入一个只含*和字母的字符串:

");

scanf("%s",str);

printf("请输入n值:

");

scanf("%d",&m);

fun(str,m);

printf("%s",str);

}

第3题:

#include

#include

#include

#include

/*

编号、姓名、部门、应付工资、保险、税金、实付工资。

其中实付工资由公式计算得到:

实付工资=应付工资-保险-税金

*/

structemployee

{

Stingm_num;//编号

Stingm_name;//姓名

Stingm_dep;//部门

doublem_salary;//应付工资

doublem_insurance;//保险

doublem_tax;//税金

};

/*

(1)录入:

输入职工数据,其中"实付工资"通过计算得到;

(2)删除:

删除指定的职工信息(输入姓名,若找到则删除该信息)

(3)修改:

允许对已经录入的数据重新进行编辑、修改;

(4)显示:

显示全体职工数据;

(5)查询:

a.输入职工姓名,显示该职工的全部数据;

b.输入某部门值,显示该部门职工的数据、工资总额、平均工资。

(6)退出程序。

*/

listemployeeemps;

intmain(intargc,charargv[])

{

voidprint(constemployee&e);

voidinput();

voiddel();

voidmod();

voidshow_all();

voidshow_name();

voidshow_dep();

printf("请选择操作:

1.录入2.删除3.修改4.查询5.显示所有员工6.退出:

");

intchoose=0;

scanf("%d",&choose);

assert(!

cin.fail());

while(choose!

=6)

{

if(choose==1)input();

if(choose==2)del();

if(choose==3)mod();

if(choose==4)

{

intchoice=0;

printf("请选择操作1.按姓名查询2.按部门查询3.退出:

");

scanf("%d",choice);

if(choice==1)show_name();

if(choice==2)show_dep();

if(choice==3)

{

printf("请选择操作:

1.录入2.删除3.修改4.查询5.显示所有员工6.退出:

");

scanf("%d",&choose);

assert(!

cin.fail());

continue;

}

}

if(choose==5)show_all();

printf("请选择操作:

1.录入2.删除3.修改4.查询5.显示所有员工6.退出:

");

scanf("%d",&choose);

assert(!

cin.fail());

}

return0;

}

voidprint(constemployee&e)

{

printf("编号:

");

printf("%s\n",e.m_num);

printf("姓名:

");

printf("%s\n",e.m_name);

printf("部门:

");

printf("%s\n",e.m_dep);

printf("保险:

");

printf("%f\n",e.m_insurance);

printf("税金:

");

printf("%f\n",e.m_tax);

printf("应付工资:

");

printf("%f\n",e.m_salary);

printf("实付工资:

");

printf("%f\n",e.m_salary-e.m_insurance-e.m_tax);

voidinput()

{

stringnum,name,dep;

doublesalary,ins,tax;

printf("请输入员工编号:

");

scanf("%s",&num);

printf("请输入员工姓名:

");

scanf("%s",&name);

printf("请输入员工部门:

");

scanf("%s",&dep);

printf("请输入员工保险");

scanf("%f",&ins);

assert(!

cin.fail());

printf("请输入员工税金");

scanf("%f",&tax);

assert(!

cin.fail());

printf("请输入员工应付工资:

");

scanf("%f",&salary);

assert(!

cin.fail());

employeetemp;

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);

printf("员工录入操作完毕.");

}

voiddel()

{

if(emps.size()==0)

{

printf("没有员工记录.");

return;

}

charname;

boolisfind=false;

printf("请输入要删除的员工姓名:

");

scanf("%s",&name);

list:

:

iteratoriter;

for(iter=emps.begin();iter!

=emps.end();iter++)

{

if(iter->m_name==name)

{

isfind=true;

emps.erase(iter);

printf("姓名为");

printf("%s",name);

printf("的员工记录已删除");

return;

}

}

if(!

isfind)

{

printf("没有找到姓名为");

printf("%s",name)printf("的员工.");

return;

}

}

voidmod()

{

if(emps.size()==0)

{

printf("员工记录为空.");

return;

}

boolisfind=false;

stringname;

 

printf("请输入要修改的员工姓名:

");

scanf("%s",&name);

list:

:

iteratoriter;

for(iter=emps.begin();iter!

=emps.end();iter++)

{

if(iter->m_name==name)

{

isfind=true;

printf("姓名为");

printf("%s",name);

printf("的员工记录已找到.\n");

break;

}

}

if(isfind)

{

stringnum,name,dep;

doubletax,ins,salary;

print(*iter);

 

printf("请输入新的员工编号:

\n");

scanf("%s",&num);

printf("请输入新的员工姓名:

\n");

scanf("%s",&name);

printf("请输入新的员工部门:

\n");

scanf("%s",&dep);

printf("请输入新的员工保险:

:

\n");

scanf("%f",&ins);

assert(!

cin.fail());

printf("请输入新的员工税金:

\n");

scanf("%f",&tax);

assert(!

cin.fail());

printf("请输入新的员工工资:

\n");

scanf("%f",&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;

printf("1员工记录被成功修改.\n");

}

else

{

printf("没有找到姓名为");

printf("%s",name);

printf("的员工记录.\n");

}

voidshow_all()

{

if(emps.size()==0)

{

printf("员工记录为空.\n");

return;

}

printf("显示全体员工数据:

\n");

printf("--------------------"\n");

list:

:

iteratoriter;

for(iter=emps.begin();iter!

=emps.end();iter++)

{

printf("\n");

print(*iter);

printf("\n");

}

printf("--------------------"\n");

}

voidshow_name()

{

if(emps.size()==0)

{

printf("员工记录为空."\n");

return;

}

boolisfind=false;

stringname;

printf("请输入要查询的员工姓名:

"\n");

scanf("%s",&name);

list:

:

iteratoriter;

for(iter=emps.begin();iter!

=emps.end();iter++)

{

if(iter->m_name==name)

{

isfind=true;

printf("姓名为");

printf("%s",name);

printf("的员工记录已找到.\n");

print(*iter);

break;

}

}

if(!

isfind)

{

printf("没有找到姓名为");

printf("%s",name);

printf("的员工.\n");

return;

}

}

voidshow_dep()

{

if(emps.size()==0)

{

printf("没有找到姓名为\n")return;

}

doubleisfind=0.00;

doubletotal_salary=0.00;

stringdep;

printf("请输入要查询的部门名称:

\n");

scanf("%s",&dep);//cin>>dep;

printf("部门["<

\n");

printf("--------------------\n");

list:

:

iteratoriter;

for(iter=emps.begin();iter!

=emps.end();iter++)

{

if(iter->m_dep==dep)

{

isfind++;

total_salary+=iter->m_salary;

print(*iter);

printf("\n");

continue;

}

}

printf("--------------------\n");if(isfind==0)

{

printf("没有找到名称为["<

}

else

{

printf("部门["<

\n");

printf("工资总额:

");

printf("%f\n",total_salary);

printf("平均工资:

");

printf("%f\n",total_salary/isfind);

}

}

 

四、结果分析

第1题:

程序运行结果如图1:

(可写包括对本题本程序的一些看法或总结)

图1程序运行结果1

第2题:

程序运行结果如图2:

图2程序运行结果2

第3题:

程序运行结果如图3:

图3程序运行结果3

五、参考文献

[1]马秀丽,刘志妩,李筠.C语言程序设计.北京:

清华大学出版社,2008

[2]谭浩强.C程序设计(第2版).北京:

清华大学出版社,2004

[3]袁志祥、秦锋主编数据结构(c语言版)例题详解与课程设计指导》第二版;中国科学技术大学出版社出版

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2