c语言课程设计报告288891.docx
- 文档编号:8201974
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:33
- 大小:126.20KB
c语言课程设计报告288891.docx
《c语言课程设计报告288891.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告288891.docx(33页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告288891
(此文档为word格式,下载后您可任意编辑修改!
)
重庆科技学院
课程设计报告
院(系):
电气与信息工程学院专业班级:
电自专09级2班
学生姓名:
贾瑞楠学号:
设计地点(单位)___计算机自主学习中心________
设计题目:
________《职工工资管理系统》
完成日期:
2010年12月24日
指导教师评语:
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
重庆科技学院
课程设计任务书
设计题目:
职工工资管理系统
学生姓名
课程名称
C语言程序设计课程设计
专业班级
电气自动化技术2009级
地点
I301
起止时间
2010年12月20日—12月24日
设计内容及要求
在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
1、设计一个能够记录公司员工工资的数据结构(比如包括:
员工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等)、文件(文件作为工资数据的保存介质)。
注:
,其中实发工资=基本工资+补贴金额+奖励金额-扣除金额
2、应用文件保存工资管理数据。
3、新增:
能将所有输入的员工工资数据保存到文件中,并可选择继续输入或退出。
4、查找:
输入员工的员工号,并在文件中查找
♦若找到,则显示该员工的工资详情
♦否则提示未找到。
♦无论查找成功否,应还可选择继续查找或退出。
5、删除:
输入员工的员工号,并在文件中查找
♦若找到,提示是否确定删除
♦若选择是,则删除文件中该员工信息
♦若选择否,则取消,
♦否则提示无此员工信息
♦无论查找成功否,应还可选择继续查找或退出。
6、修改:
输入员工的员工号,并在文件中查找
♦若找到,显示该员工的所有信息,并可进行输入。
完成后将现输入的内容覆盖原内容保存到文件中。
♦否则提示无此员工信息
♦无论查找成功否,应还可选择继续查找或退出。
7、统计:
分类汇总并输出所有员工的基本工资、补贴金额、奖励金额、扣除金额、实发工资的总金额和平均金额。
8、退出:
退出程序
进度
要求
12月20日--12月20日明确设计任务,学习相关知识;
12月21日--12月21日查阅相关资料,进行基础练习;
12月22日--12月23日根据题目要求,进行设计和实现;
12月24日--12月24日撰写课程设计报告,进行答辩。
参考资料
[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年
[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年
[3]C程序设计经典教程,[美]Deitel,H.M.,[美]Deitel,P.J.著,清华大学出版社,2006
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:
伍建全2010年12月10日
摘要
此报告简要概述了《职工工资管理系统》设计的简单过程,即如何利用c语言的文件操作能力设计开发一个小型的管理信息系统。
同时,简述了设计内容与要求、数据存储结构设计、程序设计、程序运行与测试和总结等内容,又通过部分程序的展示、部分运行结果的展示更加清楚的展示出程序设计与运行的过程。
程序设计过程中通过用结构体数组解决了数据存储问题,通过一个个的函数解决了应用中的一个个实际问题,通过函数的调用使程序简单化,通过信息用文件保存使职工信息永久化等。
本文内容简单、实用性强,有利于初学者对c语言的简单认识和学习稍复杂程序编写的思路。
关键词:
c语言结构体数组函数文件
摘要I
1设计内容与要求1
1.1设计要求1
1.2设计内容1
2数据储存结构设计3
2.1数据类型3
2.2数据储存3
3程序设计5
3.1总体设计思路5
3.2主函数模块的设计6
3.3重要函数的设计8
4程序运行与测试13
4.1程序运行结果13
4.2程序调试16
总结17
参考文献18
致谢19
附录20
1设计内容与要求
设计题目:
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
1.1设计内容
主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:
工资录入,按人名、基本工资、实发工资、个人所得税进行查询,将职工信息显示出来,排序,插入职工信息,将职工信息用文件保存,读取职工信息。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
1.2设计要求
明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
1设计一个能够记录公司员工工资的数据结构,每条记录包括:
员工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等。
2应用文件保存工资管理数据。
3新增:
能将所有输入的员工工资数据保存到文件中,并可选择继续输入或退出。
4查找:
输入员工的员工号,并在文件中查找。
若找到,则显示该员工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
5删除:
输入员工的员工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该员工信息;若选择否,则取消。
若未找到则提示无此员工信息。
无论查找成功否,应还可选择继续查找或退出。
6修改:
输入员工的员工号,并在文件中查找。
若找到,显示该员工的所有信息,并可进行输入。
完成后将现输入的内容覆盖原内容保存到文件中。
否则提示无此员工信息。
无论查找成功否,应还可选择继续查找或退出。
7统计:
分类汇总并输出所有员工的基本工资、补贴金额、奖励金额、扣除金额、实发工资的总金额和平均金额。
如:
基本工资、补贴金额、奖励金额、扣除金额、实发工资
总和1200013001400150013200
平均12001301401501320
人数:
10
8退出:
退出程序
2数据储存结构设计
2.1数据类型
本次程序主要用到了整形、字符型和浮点型数据,用整型来定义简单的变量,用字符型来定义职工的姓名、工号和部门等,用浮点型数据来定义职工的基本工资、个人所得税和实发工资等。
同时,还用到了数组类型和结构体类型,用它来放职工的基本信息,使我们在用的时候更方便、快捷,使程序整体上简单易懂。
用结构体存放数据,具体过程如下:
structworker
{
intnumber;*职工号*
charname[20];*职工姓名*
intbasicwage;*基本工资*
intsubwage;*补贴金额*
intrewwage;*奖励金额*
intdedwage;*扣除金额*
intrealwage;*实际工资*
};
2.2数据储存
文件是程序设计中一个重要的概念。
所谓“文件”一般指储存在外部介质上数据的集合。
一批数据是以文件的形式存放在外部介质上的。
操作系统是以文件为单位对数据进行管理。
在程序运行时,常常需要将一些数据输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存。
这就要用到磁盘文件。
磁盘文件可以永久性的保存。
工资管理是一个单位最基本的一项财务管理,此程序通过定义以worker.txt为文件名的文件,将程序中的职工信息存放到文件中,使数据永久性的保存起来,便于工作者的使用。
在程序中主要保存了3次,即输入信息之后的保存、删除职工信息之后的保存和修改职工信息之后的保存,使文件将最直观、最有用的信息保存起来。
那么,单位就实现了利用计算机对员工工资进行统一管理,实现了工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
具体过程如下:
fp=fopen("worker.txt","a");
for(i=1;i<=n;i++)
{
printf("**********************\n");*从键盘输入职工信息*
printf("请输入职工信息:
\n");
printf("职工号:
");
scanf("%d",&p->number);
printf("职工姓名:
");
scanf("%s",p->name);
printf("基本工资:
");
scanf("%d",&p->basicwage);
printf("补贴金额:
");
scanf("%d",&p->subwage);
printf("奖励金额:
");
scanf("%d",&p->rewwage);
printf("扣除金额:
");
scanf("%d",&p->dedwage);
fprintf(fp,"%d\n",p->number);*将职工信息录入文件*
fprintf(fp,"%s\n",p->name);
fprintf(fp,"%d\n",p->basicwage);
fprintf(fp,"%d\n",p->subwage);
fprintf(fp,"%d\n",p->rewwage);
fprintf(fp,"%d\n",p->dedwage);
p->realwage=p->basicwage+p->subwage+p->rewwage-p->dedwage;
fprintf(fp,"%d\n",p->realwage);
}
fclose(fp);
3程序设计
程序设计过程是一个既简单又繁琐的过程,我们需要对要求有一个整体的感知,梳理好自己的思路,才最有可能即快速又简单的完成任务。
3.1总体设计思路
用结构体数组储存职工信息,用主函数显示菜单,并用swich语句选择、调用函数,之后用一个个分函数完成具体功能,并将职工信息保存到文件中。
3.1.1程序功能
此系统是简单的《职工工资管理系统》,具体的管理和显示对象包括:
职工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等。
具体的功能包括:
1设计一个能够记录公司员工工资的数据结构,每条记录包括:
职工号,职工姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等。
2应用文件保存工资管理数据。
3新增:
能将所有输入的员工工资数据保存到文件中,并可选择继续输入或退出。
4查找:
输入员工的员工号,并在文件中查找。
若找到,则显示该员工的工资详情;否则提示未找到。
5删除:
输入员工的员工号,并在文件中查找。
若找到,提示是否确定删除。
若未找到则提示无此员工信息。
6修改:
输入员工的员工号,并在文件中查找。
若找到,显示该员工的所有信息,并可进行输入。
完成后将现输入的内容覆盖原内容保存到文件中。
否则提示无此员工信
7统计:
分类汇总并输出所有员工的基本工资、补贴金额、奖励金额、扣除金额、实发工资的总金额和平均金额。
3.1.2总体流程图设计
图3-1总体关系图
图3-2总体流程图
3.2主函数模块的设计
主函数的设计首先通过调用主菜单函数将主菜单输出,然后有效的输入1—6之间的任意数值,用switch语句选择下一步将要进行的函数。
输入1进行职工信息的录入或新增,2进行职工信息的查找,3进行职工信息的删除,4进行职工信息的修改,5进行对职工工资的统计,6则退出系统。
简单流程图如下:
图3-3主函数流程图
具体过程如下:
intmain()
{
structworkery[N];
inta,n,m,size,i,p,q=0;
intrealwage=0;
while
(1)
{
menu(&y[N]);
printf("选择需要操作的步骤1--6\n");
scanf("%d",&a);
system("cls");*清屏*
switch(a)
{
case1:
{};break;
case1:
{};break;
case3:
{};break;
case4:
{};break;
case5:
{};break;
case6:
return0;break;
default:
printf("******ERROR!
!
*******\n");
}
}
}
3.3重要函数的设计
3.3.1录入职工信息
职工的录入和新增是利用循环结构来完成的。
同时,再将信息保存到文件中去的时候使用了追加语句,来达到新的职工信息的录入。
具体过程如下:
case1:
{
intb;
FILE*fp;
L1:
printf("请输入职工人数:
");
scanf("%d",&n);
system("cls");*清屏*
fp=fopen("worker.txt","a");
for(i=1;i<=n;i++)
{
input(&y[i]);
foutput(fp,&y[i]);
}
fclose(fp);
system("cls");*清屏*
printf("输入完毕!
是否继续输入?
1是2否\n");
scanf("%d",&b);
system("cls");*清屏*
if(b==1)
{
system("pause");
system("cls");*清屏*
gotoL1;
}
else
{
system("cls");*清屏*
break;
}
};break;
3.3.2查找职工信息
查找职工信息通过职工号查询,输入要查询职工的职工号,利用m==y[i].number语句将输入的职工号与文件中原有的职工号比较,若相等,则输出该职工的全部信息,否则将会输出“未找到此职工信息!
是否继续查找?
1是2否”。
具体过程如下:
case2:
{
FILE*fp;
intc,r=0;
L2printf("请输入所要查询职工的职工号:
");
scanf("%d",&m);
system("cls");*清屏*
fp=fopen("worker.txt","r");
size=0;
while(0!
=finput(fp,&y[size]))
{
size++;
}
for(i=0;i { finput(fp,&y[i]); if(m==y[i].number) { output(&y[i]); q=1; break; } } fclose(fp); if(q==0) { printf("未找到此职工信息! 是否继续查找? 1是2否\n"); scanf("%d",&p); if(p==1) { system("cls");*清屏* break; } else { system("cls");*清屏* return0; } } if(q==1) { printf("查找完毕! 是否继续查找? 1是2否\n"); scanf("%d",&c); system("cls");*清屏* if(c==1) { system("pause"); system("cls");*清屏* } else { system("cls");*清屏* return0; } } };break; 3.3.3删除职工信息 删除职工信息是通过先查找,然后用后面的职工信息将其覆盖。 具体是将文件中的信息全部传递给数组,在数组中将所要删除的职工信息删除,然后将数组中的信息从新读入文件。 具体过程如下: case3: { FILE*fp; intd,f,e; structworkerz[200]; L3: printf("请输入所要删除职工职工号: "); scanf("%d",&m); system("cls");*清屏* fp=fopen("worker.txt","r"); size=0; while(0! =finput(fp,&y[size])) { size++; } for(i=0;i { finput(fp,&y[i]); if(y[i].number==m) { output(&y[i]); q=1; } } fclose(fp); if(q==0) { printf("未找到此职工信息! 是否继续查找? 1是2否\n"); scanf("%d",&p); if(p==1) { system("pause"); system("cls");*清屏* gotoL3; } else { system("cls");*清屏* break; } } if(q==1) { printf("是否确定删除? 1是2否\n"); scanf("%d",&d); system("cls");*清屏* if(d==1) { fp=fopen("worker.txt","r"); size=0; while(0! =finput(fp,&y[size])) { size++; } for(i=0;i { finput(fp,&y[i]); z[i]=y[i]; } for(i=0;i { if(z[i].number==m) { for(e=i;e z[e]=z[e+1]; } } fp=fopen("worker.txt","w"); for(i=0;i { y[i]=z[i]; foutput(fp,&y[i]); } fclose(fp); printf("已成功删除该职工信息! 是否继续查找要进行信息删除的 职工? 1是2否\n"); scanf("%d",&f); if(f==1) { system("pause"); system("cls");*清屏* gotoL3; } else { system("cls");*清屏* break; } } else break; } };break; 4程序运行与测试 程序写好之后,就开始运行、测试了。 4.1程序运行结果 4.1.1输入过程 在程序运行的一开始是职工信息的输入,主菜单已经出现在了我们的面前,输入1输入职工信息。 输入时按照提示依次需输入职工号,职工姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资 具体过程如下: 4.1.2查找过程 查找功能是通过输入职工号进行的。 当进入查找过程后,会提示输入要查找职工的职工号。 输入职工号后,会显示该职工所有信息。 查找完成后可根据提示继续活退回查找进入主菜单。 如未找到,也会给出提示语,可根据情况继续进行。 具体过程如下: 4.1.3删除过程 当程序进入删除过程后,会提示输入要输出信息的职工号。 获得职工号后,会经查找后输出职工信息,并提示是否删除。 若选“是”,则删除该员工信息,若选“否”,则退出删除系统,并可根据选择继续删除。 具体过程如下: 4.1.3修改过程 修改过程是通过输入职工号,找到要进行信息修改的职工,输入新的信息,将原信息覆盖。 根据提示可继续修改,也可退出修改返回主菜单。 具体过程如下: 4.1.4统计过程 统计过程是将所有职工的各项工资进行统计,并统计该系统中有多少职工。 此过程对公司管理人员有一定的帮助。 具体过程如下: 4.2程序调试 程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。 程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。 要正确利用编辑时提示的错误信息。 调试阶段出现了很多的问题,主要如下: 1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。 2、忘记“;”或把“;”用错误的输入法输入,造成的错误。 3、大括号混乱造成错误。 4、用文件保存职工信息时,对fprintf不熟悉,造成使用格式错误,输出内容不符合,通过仔细核对书上的格式才改掉。 5、在读取信息时,不会用fscanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。 6、在录入职工信息时,出现职工姓名和工号挨在一起,无法正常输入。 通过用getchar()吃掉回车解决掉此问题。 7、在运行时,数据不能正常存在,通过使用system(pause);是程序终止。 5总结 本次课程设计使我受益匪浅,让我更加了解到c语言的重要性,同时也对c程序产生了浓厚的兴趣。 如今,随着
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 288891