计算机科学与应用系课程设计统计工资Word文档下载推荐.docx
- 文档编号:20643408
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:10
- 大小:29.66KB
计算机科学与应用系课程设计统计工资Word文档下载推荐.docx
《计算机科学与应用系课程设计统计工资Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机科学与应用系课程设计统计工资Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
按名字查询职工工资信息模块6
3.5:
按卡号查询职工工资信息模块6
3.6:
功能选择............................................................................7
4:
调试分析7
5:
测试结果7
6:
总结9
指导教师评语:
10
工资信息管理系统
需求分析
设计要求:
(1)使用结构数组设计一个公司职员的数据结构,使用下述的结构定义:
structemployee{
intage;
charname[15];
doublesalary;
};
(2)在主函数里构造一个数组company,用来存放职工信息。
(3)设计update函数,用来对company中指定职员的信息进行更改。
要求先按照name查询到相应的职员,然后修改并保存。
(4)设计一个read函数,用来向company中录入职员信息,并显示结果。
(5)编写mean函数求平均工资。
应该能对全体职工或大于某一年龄的职工工资求和并计算平均值。
(6)编写total函数对工资求和。
应该能对全体职工或某一年龄段职工的工资求和。
选做:
(1)从文件中读数据存入数组
(2)将数组的内容保存至文件
根据题目要求,应当把职工工资信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;
在程序中需实现职工工资浏览,查询,统计等功能的操作,所以需要建立相应的模块来实现;
另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。
2.概要设计
本程序的流程图如下:
详细设计
职员工资信息结构体:
包括职工的姓名、银行卡好、工作月份、应发工资、实发工资、水费、电费、税。
职工工资信息浏览模块
具体实现如下:
voidPrintInformation()//浏览职工工资信息
{
structstafftemp;
if((fp=fopen("
wages"
"
rb"
))==NULL)
printf("
cannotopenthefile!
"
);
exit(0);
}
while(fread(&
temp,sizeof(structstaff),1,fp)==1)printf_face();
fclose(fp);
添加职工工资信息模块
voidIncrease()//添加职工工资信息
ab+"
\n请输入要==添加的工资信息:
\n"
\n姓名银行卡号月份应发工资水费电费\n"
scanf("
%s%s%d%f%f%f"
temp.Name,temp.CardNumber,&
temp.Month,&
temp.SPWages,&
temp.Water,&
temp.Electrical);
if(temp.SPWages<
=800)temp.Tax=0;
if((temp.SPWages>
800.0)&
&
(temp.SPWages<
1400.0))
temp.Tax=(temp.SPWages-800)*0.05;
if(temp.SPWages>
1400){temp.Tax=(temp.SPWages-1400)*0.1;
temp.APWages=temp.SPWages-temp.Water-temp.Electrical-temp.Tax;
fwrite(&
temp,sizeof(structstaff),1,fp);
统计职工工资总合模块
voidStatistics()//统计某职工工资总合
chartempname[10];
floatsum=0;
intmonthstart=0,monthover=0;
\n输入姓名起始月份终止月份\n:
);
%s%d%d"
tempname,&
monthstart,&
monthover);
))==NULL);
)
exit(0);
temp,sizeof(structstaff),1,fp)==1)
if(strcmp(temp.Name,tempname)==0)/判断是否是该职工/
if(temp.Month>
=monthstart&
temp.Month<
=monthover)
sum+=temp.APWages;
%d月到%d月的工资总和%f"
monthstart,monthover,sum);
fclose(fp);
3.4:
按名字查询职工工资信息模块
voidNameSearch()//按名字查询某职工工资信息
\n输入姓名:
%s"
tempname);
if(strcmp(temp.Name,tempname)==0)
printf_face();
按卡号查询职工工资信息模块
voidCardNumberSearch()//按卡号查询某职工工资信息
chartempCardNumber[10];
structstafftemp;
\n输入卡号:
tempCardNumber);
temp,sizeof(structstaff),1,fp)==1)/***读文件中资料**/
{
if(strcmp(temp.CardNumber,tempCardNumber)==0)/**判断是否是该卡号**/
{
printf_face();
}
}
3.6:
功能选择
intSearch()
Intn;
while
(1)
\n1.按照卡号查询:
\n"
\n2.按照姓名查询:
\n0.返回上级目录:
%d"
&
n);
switch(n)
case1:
CardNumberSearch();
break;
case2:
NameSearch();
case0:
return0;
}
调试分析
在调试过程中,主要遇到以下几个问题;
由于浏览和查询模块中多定义了局部变量,且与全局变量同名将全局变量屏蔽,以至于这些模块不能达到预期效果,总是只输出最近一次的数据,经过修改后将其删除,达到了所要的效果。
使程序得以执行。
到目前程序中还有一小毛病,就是计算税金是实数双精度与单精度转换存在不足。
测试结果
1.添加工资信息:
2.浏览工资信息:
3.统计工资信息:
4.查询工资信息:
0.退出系统:
1
请输入要==添加的工资信息:
姓名银行卡号月份应发工资水费电费
wanglei05507101650002535
wanglei05507101751002040
2
姓名银行卡号月份应发工资水费电费税实发工资
wanglei0550710165000.0025.0035.00360.004580.00
wanglei0550710175100.0020.0040.00370.004670.00
3
输入姓名起始月份终止月份
:
wanglei67
6月到7月的工资总和9250.0000001.添加工资信息:
4
1.按照卡号查询:
2.按照姓名查询:
0.返回上级目录:
1
输入卡号:
05507101
2
输入姓名:
wanglei
0
Pressanykeytocontinue
总结
通过学习和练习C程序的设计基础,了解了一些关于C的知识。
在设计过程中,好多处困惑、疑问,有是会很烦,甚至不想再做,但必须做好,所以耐着性子做好了。
此时感觉有一点点成就感,也学到了一些知识。
程序成绩:
报告成绩:
综合成绩:
指导教师姓名:
批改日期:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 应用 课程设计 统计 工资