c语言 输入职工工资资料,通过结构体的数组来进行操作 报告,c语言课程设计报告-职工工资管理系统...

《c语言课程设计报告-职工工资管理系统》由会员分享,可在线阅读,更多相关《c语言课程设计报告-职工工资管理系统(33页珍藏版)》请在人人文库网上搜索。

1、c 语言课程设计报告 - 职工工资管理系统课程设计报告课程设计报告题目:职工工资管理系统设 计 者:专业班级:学号:指导教师:所属院系:一 设计需求说明一、职工工资管理系统功能设计要求1. 输入记录 :将每一个职工的姓名、 ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。 ?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。2. 显示记录 :根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。3. 修改记录 :可以对数据文件的任意记录的数据进行修改并在修改前后3对记录内容进行显示。4查找记录 : 可以对数据文件的任意记录的数据进行查。

2、找并在查找前后对记录内容进行显示。5. 删除记录 :可删除数据文件中的任一记录。6恢复记录 :能恢复被删除的任一记录。7. 统计 : (A) 计算各项工资平均工资及总工资 , (B)?统计符合指定条件(如职工工资前三项之和在2000 元以上、 20001500 元、 15001000元 ) 以内的工资职工人数及占总职工人数的百分比。 (C)按字符表格形式打印全部职工工资信息表及平均工资 (?包括各项总的平均工资)。8保存数据文件功能。9打开数据文件功能。经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行。

3、结果如下表所示(记录个数至少 8 个)。4二模块设计分析系统功能模块图 :5欢迎画面主菜单保存与读取输显查删添修统退入示找除加改计出功功功功功功功程能能能能能能能序按ID修 改修 改修改基修改职按姓修 改修 改修 改工作程序分析输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em ,先输入需要输入的职工人数m,然后进入循环, 每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。同时将数据储存在ckerk_list 文件中并自动保存6至磁盘。注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保存。再次选择输入功能时原数据。

4、将被覆盖。保存:将输入的资料存入磁盘读取文件 clerk_list ,若文件不存在,打印“打开失败并退出。若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。读取:读取磁盘中的资料打开文件 clerk_list ,若文件不存在,打印“打开失败”并退出。若存在,读取文件中的数据,并返回职工人数。显示:显示职工工资资料先通过读取函数的返回值确定职工人数 m,再通过循环将员工工资资料逐个打印, 当循环次数达到 m 时退出循环。其中总工资由程序计算,总工资 =基本工资 +职务工资 +津贴 -医疗保险 -公积金删除:删除某员工的资料打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打。

5、印“查无此人”;若存在,则显示该职工资料并询问是否确定删除。若确定,则删除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项 i,从第 i 项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第 i 项的删除。添加:添加新的员工资料而不覆盖原有资料打印原有职工资料,询问要添加的职工人数并询问是否确定添加。逐个逐项输入员工信息,之后程序计算其总工资。完成后显示“添加成功” ,打印新的员工资料并自动保存。添加的方法为: 定义一个相同类型的结构体数组, 将原有项复制后增添新的项, 并保存新的数组。查找:按 ID 好查询与按姓名查找员工资料根据提示输入要查询的 ID 号或姓名,程。

6、序通过循环语句将输入的数字与以保存的结构体数组中的数据对比,若相同,则打印“已找到”及该员工的资料;当循环次数等于人数7时结束循环,若至结束循环时也没有找到相同的,则打印“查无此人”。修改:修改特定员工的特定资料打印员工信息并提示输入要修改资料的职工姓名。按提示确定要修改,确定要修改的项目,输入要修改成的结果并将该结果赋给对应项的对应成员,完成对特定职工特定项目的修改。统计通过循环对结构体数组中的每一项经行统计,计算工资总额为,将工资总额除以人数计算出平均工资。根据每名职工的资料计算基本工资、职务工资、津贴之和在1000-1500圆 1500-2000 圆 2000 圆以上的员工占总员工的百分。

7、比。三源程序代码(附各部分解释)#include#include#include#include#define N 100struct clerkint num;/ID 号char name20;/姓名int jbgz;/基本工资int zwgz;/职务工资int jt;/ 津贴int yb;/医疗保险int gjj;/公积金 /int total;/总工资8em100;void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void。

8、 search_name();void modify();void sta();void start(); /* 定义各函数 */void start() / 开始界面system(cls);/ 清屏system(color 1E); / 设置文字颜色为黄色背景色蓝色printf(nnnnnn);printf(*);printf(*欢迎使用工资管理系统*);printf(*nnnnn);printf(tttt制作 : n);printf(tttt2011年 6 月 nnnn);9printf(ttt* 按任意键进入 *n);void menu() / 菜单界面system(cls);syste。

9、m(color 1F);printf(* 菜单 *nn);printf(1输入nn);printf(2显示nn);printf(3查找nn);printf(4删除nn);printf(5添加nn);printf(6修改nn);printf(7统计nn);printf(8退出nn);printf( 说明: * 如首次使用尚未输入数据请先输入数据n* 输入的数据将自动保存 n* 再次选择输入功能时原数据将被覆盖nn);void input()/* 录入函数 */10int i,m;system(cls);printf( 职工人数 (1-100):n);scanf(%d,&m);for (i=0;i。

10、=1&t8|c=1000)a+;if(emi.total1500&emi.total2000)c+;printf(nn工资总额为: %dn,sum);printf( 平均工资为: %dn,sum/m);printf(n基本工资、职务工资、津贴之和n);printf( 在 1000-1500 圆的员工占总员工的百分之 %dn,a*100/m); printf( 在 1500-2000 圆的员工占总员工的百分之 %dn,b*100/m); printf( 在 2000 圆以上的员工占总员工的百分之 %dn,c*100/m);printf(nn按任意键继续 );getch();menu();void。

11、 main()/ 主函数int n,button;char a;start();getch();menu();doprintf( 功能选择 (1-8):n);scanf(%d,&n);26if(n=1&n=7)button=1;break;elsebutton=0;printf( 您输入有误 ,请重新选择 !);while(button=0);while(button=1)switch(n)case 1: input();break;case 2: display();break;case 3: search();break;case 4:del();break;case 5: add();b。

12、reak;case 6:modify();break;case 7:sta();break;case 8:exit(0);break;default :break;getchar();printf(n);27printf( 按任意键继续 n);getch();system(cls);/* 清屏 */menu(); /* 调用菜单函数 */printf( 功能选择 (1-8):n);scanf(%d,&n);printf(n);运行结果及截图欢迎画面菜单28输入功能显示功能29统计功能删除功能30添加功能修改功能31心得体会通过这两周的 c 语言课程设计, 我加深了对 c 语言程序设计的理解, 使自己的操作更加熟练,发现了自己的不足,为自己今后的继续学习指明了方向。在这次课程设计中,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握结构体数组的使用, 文件函数的使用, 掌握了子程序的定义及调用。 并在调试过程中不断发现与改正错误,完善算法,改进用户体验等等。调试索然繁琐而艰苦,但极大的促进了我编程能力的提高。由于自己目前能力有限, 该程序还有诸多不足, 感谢指正。 感谢老师的悉心教导与细致的帮助。虽然 c 语言的课程与课程设计都已结束,但通过这次课程设计我也发现了差距,并将在未来努力学习,积极实践,使自己能真正的掌握运用c 语言。参考文献3233。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值