沈阳理工大学C语言课程设计_第1页
沈阳理工大学C语言课程设计_第2页
沈阳理工大学C语言课程设计_第3页
沈阳理工大学C语言课程设计_第4页
沈阳理工大学C语言课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳理工大学课程设计专用纸No. 2课程设计任务书学 院信息科学与工程专 业通信工程学 生 姓 名李祥滢学 号1003060219设 计 题 目C语言课程设计内容及要求:加深对C语言基础知识的掌握,使用C语言编程实现以下题目的设计。题目名称: 数字的组成及删除指定位置的字符,工资统计的设计内容及要求:1、编程:用09之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,int n),其功能是:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。例如:若输入字符串为*A*BC

2、*DEF*G*,n的值为4,则删除后的字符串应是:*A*BC*DEF*G*3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(1) 输入职工数据,其中“实付工资”通过计算得到(2) 显示全部职工数据(3) 输入其部门值、显示该部门职工的数据,工资总额,平均工资 设计菜单,通过选择菜单调用以上函数。软件开发环境Windows XP,TC2.0或Visual C+ 6.0进度安排:第18周:C语言基础知识练习第18周:算法设计第19周:编写程序代码与程

3、序调试第19周:答辩、验收程序指导教师(签字):年 月 日学院院长(签字):年 月 日沈阳理工大学沈阳理工大学课程设计专用纸No. 18目 录一、题目要求1二、算法设计2三、编程实现3四、结果分析6五、参考文献9一、题目要求题目名称:数字的组成及删除指定位置的字符,工资统计的设计内容:1、编程:用09之间不同的三个数字构成一个三位数,统计有多少个这样的三位数。2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,int n),其功能是:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做。例如:若输入字符串为*A*BC*DEF*G*,

4、n的值为4,则删除后的字符串应是:*A*BC*DEF*G*3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(4) 输入职工数据,其中“实付工资”通过计算得到(5) 显示全部职工数据(6) 输入其部门值、显示该部门职工的数据,工资总额,平均工资 设计菜单,通过选择菜单调用以上函数。要求:使用C语言完成上述程序的设计、编程和调试,开发环境可采用Turbo C 2.0、 WinTC或Visual C+ 6.0等。二、算法设计编程:用09之间不同的三个数

5、字构成一个三位数,统计有多少个这样的三位数:1通过设计for循环,分别输出三位数的各位数字,并累加所有符合条件的三位数。for (i=1;i<=9;i+);for (i=1;i<=9;i+)int i,j,k,count=0;for (j=0;j<=9;j+);for(k=1;k<=9;k+);if(i!=j && j!=k && i!=k)真 假输出i,j,kCount+输出count2、规定输出的字符串中只能包含字母和*号,编写函数fun(char*a,int n),其功能是:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的

6、*号,若小于或等于n个,则什么也不做。例如:若输入字符串为*A*BC*DEF*G*,n的值为4,则删除后的字符串应是:*A*BC*DEF*G*:1 fun(char*a,int n),函数功能:是字符串前边连续的*号不多于n个;若多于n个,则删除多于的*号,若小于或等于n个,则什么也不做主函数功能:输入一个修改前的字符串,输入一个自然数n,输出修改后的字符串!开始Int m定义fun(char*s,int n)输入一个只含*和字母的字符串输入一个m值int flag=1;int i=0;i<nif(si!='*')i+flag=0;if(flag=0)int k=n;wh

7、ile(sk!='0')if(sk='*'123k+YNYNNYNYint j=0;1while(sk!='0')sn+j=sk;K+;J+;sn+j='0'调用fun(char*s,int n)输出修改后的字符串结束23YN3、3、工资统计程序设计设计结构体数组,结构中包含职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资有公式计算得到:实付工资=应付工资-保险-税金设计各个函数,分别实现以下功能:(7) 输入职工数据,其中“实付工资”通过计算得到(8) 显示全部职工数据(9) 输入其部门值、显示该部门职

8、工的数据,工资总额,平均工资 设计菜单,通过选择菜单调用以上函数。1、每个函数的功能:(1)void input();录入:输入职工数据,其中"实付工资"通过计算得到 (2)void del();)删除:删除指定的职工信息(输入姓名,若找到则删除该信息(3)void mod();修改:允许对已经录入的数据重新进行编辑、修改 (4)void show_all();显示:显示全体职工数据; (5)void show_name();查询:a. 输入职工姓名,显示该职工的全部数据b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。 (6)void show_dep();退

9、出程序 开始定义结构体变量employee定义变量m_num;定义变量 m_name;定义变量 m_dep;定义变量 m_salary;定义变量 m_insurance;定义变量 m_tax;定义main(int argc, char argv)定义录入函数void input();定义删除函数; void del();定义修改函数; void del();定义显示函数show_all();定义查询函数; show_name();定义整型变量choose;Choose=1?Choose=2?Choose=3?1234YYYNNN定义删除函数; show_name();Choose=4?Choo

10、se=5?Choose=6?2413调用删除函数; void del();调用显示函数show_all(););调用录入函数void input();调用修改函数; void del();调用退出函数; show_dep();调用查询函数; show_name(;输入职工数据,其中"实付工资"通过计算得到删除指定的职工信息允许对已经录入的数据重新进行编辑、修改;显示全体职工数据查询: a. 输入职工姓名,显示该职工的全部数据;退出升序YYYNNN结束三、编程实现程序的具体C语言代码如下:第1题: #include<stdio.h>void main()int i

11、,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 <stdio.h>int fun(char*s,int n) int flag=1; for(int i=0;i<n;i+)/比较前n个

12、字符是否为* if(si!='*') flag=0; break; if(flag=0) return 0; else int k=n; while(sk!='0')/移动到非*字符 if(sk='*') k+; else break; int j=0; while(sk!='0')/向前复制 sn+j=sk; k+; j+; sn+j='0' return 1;void main() static char str15; int m; printf("请输入一个只含*和字母的字符串:"); s

13、canf("%s",str); printf("请输入n值:"); scanf("%d",&m); fun(str,m); printf("%s",str);第3题:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<cassert.h>/*编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金 */struct employee

14、 Sting m_num;/编号 Sting m_name;/姓名 Sting m_dep;/部门 double m_salary;/应付工资 double m_insurance;/保险 double m_tax;/税金;/*(1)录入:输入职工数据,其中"实付工资"通过计算得到; (2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息) (3) 修改:允许对已经录入的数据重新进行编辑、修改; (4) 显示:显示全体职工数据; (5)查询: a. 输入职工姓名,显示该职工的全部数据; b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。 (6) 退出程序。

15、*/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();printf("请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"); int choose=0; scanf("%d",&choose); assert(!cin.f

16、ail(); while (choose!=6) if (choose=1) input(); if (choose=2) del(); if (choose=3) mod(); if (choose=4) int choice=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.

17、查询 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(); return 0;void print(const employee &e)printf("编号:"

18、);printf("%sn",e.m_num);printf("姓名:");printf("%sn",e.m_name);printf("部门:");printf("%sn",e.m_dep);printf("保险:");printf("%fn",e.m_insurance);printf("税金:");printf("%fn",e.m_tax);printf("应付工资:");printf(&q

19、uot;%fn",e.m_salary);printf("实付工资:");printf("%fn",e.m_salary-e.m_insurance-e.m_tax);void input() string num,name,dep; double salary,ins,tax; printf("请输入员工编号:"); scanf("%s",&num); printf("请输入员工姓名:"); scanf("%s",&name); printf(&q

20、uot;请输入员工部门:"); scanf("%s",&dep); printf("请输入员工保险"); scanf("%f",&ins); assert(!cin.fail(); printf("请输入员工税金"); scanf("%f",&tax); assert(!cin.fail(); printf("请输入员工应付工资:"); scanf("%f",&salary); assert(!cin.fail()

21、; 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); printf("员工录入操作完毕.");void del() if (emps.size()=0) printf("没有员工记录."); return; char name; bool isfind=false; printf("请输入要删除的员工姓名

22、:"); scanf("%s",&name); list<employee>:iterator iter; 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(&quo

23、t;没有找到姓名为"); printf("%s",name) printf("的员工."); return; void mod() if (emps.size()=0) printf("员工记录为空."); return; bool isfind=false; string name;printf("请输入要修改的员工姓名:"); scanf("%s",&name); list<employee>:iterator iter; for (iter=emps.begi

24、n();iter!=emps.end();iter+) if (iter->m_name=name) isfind=true; printf("姓名为"); printf("%s",name); printf("的员工记录已找到.n"); break; if (isfind) string num,name,dep; double tax,ins,salary; print(*iter); printf("请输入新的员工编号:n"); scanf("%s",&num); print

25、f("请输入新的员工姓名: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(); prin

26、tf("请输入新的员工工资: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("

27、%s",name); printf("的员工记录.n"); void show_all() if (emps.size()=0) printf("员工记录为空.n"); return; printf("显示全体员工数据:n"); printf("-"n");list<employee>:iterator iter; for(iter=emps.begin();iter!=emps.end();iter+) printf("n"); print(*iter); pr

28、intf("n"); printf("-"n"); void show_name() if (emps.size()=0) printf("员工记录为空."n"); return; bool isfind=false; string name; printf("请输入要查询的员工姓名:"n"); scanf("%s",&name); list<employee>:iterator iter; for(iter=emps.begin();iter!

29、=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; void show_dep() if (emps.size()=0) printf("没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论