程序设计训练报告.docx

上传人:b****4 文档编号:5119528 上传时间:2022-12-13 格式:DOCX 页数:20 大小:182.91KB
下载 相关 举报
程序设计训练报告.docx_第1页
第1页 / 共20页
程序设计训练报告.docx_第2页
第2页 / 共20页
程序设计训练报告.docx_第3页
第3页 / 共20页
程序设计训练报告.docx_第4页
第4页 / 共20页
程序设计训练报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

程序设计训练报告.docx

《程序设计训练报告.docx》由会员分享,可在线阅读,更多相关《程序设计训练报告.docx(20页珍藏版)》请在冰豆网上搜索。

程序设计训练报告.docx

程序设计训练报告

程序设计训练

报告

一、设计题目

二、开发平台

三、需求分析

四、信息描述

五、总体分析

(一)、定义结构体体变量

(二)、功能模块

(三)、流程图

六、运行界面设计

七、设计心得

八、附录

源程序代码

一、设计题目:

职员管理系统

二、开发平台

开发平台:

VC++6.0企业版,

使用系统,winXP以上

三、需求分析

1、该程序可用于对企业员工工资情况基本信息的保存、查询等操作,以实现对企业员工工资的管理。

2、其中更新功能包括:

添加工资信息、删除工资信息、修改工资信息、可根据需要添加一个或多个员工工资信息,也可对个别员工信息进行适当的删除或修改。

以便随时更新员工工资信息。

3、程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:

按工作证号查询和按查询。

以满足不同的需要。

四、信息描述

职工信息包括职工号、、基本工资、奖金、扣款、税款,实发工资。

五、总体方案

(一)定义结构体体变量typedefstructemployee

保存职工编号

保存职工

保存职工基本工资

{

charnum[10];//

charname[15];//

floatjbgz;//

floatkk;//

保存职工扣款

floatyfgz;//

保存职工应发工资

doublesk;//

保存职工税款

doublesfgz;//

保存职工实发工资

}ZGGZ;

(二)功能模块

菜单模块:

显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的voidmenu()函数来实现。

(1)输入模块

按照编号,,基本工资,奖金,扣款的顺序输入信息,税金和实

发工资根据输入的信息进行计算得到,这些信息被录入到文件中。

过自己定义的voidinput()函数来实现。

(2)删除模块

按照用户的意愿删除指定的信息。

通过自己定义的voiddel()

函数来实现。

(3)查询模块

实现按照工资卡号和的查询,采用基本的查找方法即可。

通过自己定义的voidsear()函数来实现。

(4)修改模块

按照用户的意愿修改已输入的信息。

通过自己定义的voidmodi

()函数来实现。

(5)插入模块

在用户指定的位置插入信息。

通过自己定义的voidinsert()函

数来实现。

(6)显示模块

在窗口处显示输入的信息。

通过自己定义的voiddisplay()

函数来实现。

(7)保存模块

保存输入的信息

(8)退出模块

(三)、流程图

(1)主函数提供输入、处理和输出部分的函数调用,各功能模

块采用菜单方式选择

 

7

退出

 

录入职工基本工资信息

删除职工基本工资信息

查询职工基本工资信息

王采单

修改职工基本工资信息

 

王采单

王采单

插入职工基本工资信息

7.

使用说明

1.初始界面

reL.t>rArecord

t'tcurd

re^urdrecord

0\CQMMQN\M5Dev9a\BiFAI>et>ugU^ie

H

©S3

2.输入模块

回S3

 

rec.orielrecordi^^iznrdrecurd

rcciujrilrecord

 

.查询模块

Leauttenter90ucImj丄匚芒£0—"?

■■'D:

\MicrD5oftVisual^1udio\C€iMlUON\M5D«v93\Ein\DetM4g\l.exe

回sa

record

recordrecord

recordi*ecaiFd.recordrecord

02

#

*1W3*5*7

请输入职工的编号;(踐虫谑回土菜单)aEinpnuee£ustem

V显小

*0退岀

不工贸=&O83.B0Q00B

藝金=500.960300卫霖lfle.ramaa宇衣工遥;&403.000000廉款:

Z7C.凶也阳U茸古T資:

^i3n,mnmn星誉继蕪查隊是按呉否则请按任意值

5•修改模块

 

回S3

」着03•賢聊倆;;编杲:

工.;按的fe号呂44^"皆止人的編姓荼新,

入e条工丄工工工插祢-职职职噩综人入入入入入人继输输K口

■'D^Micrusoftvi^u^l5Uidio\COMMQN\M5Dev?

3\Bih\[tetMjg\LjeJfe'

己蓼n岗芒髏輟躍能?

復籐

Hii'l.

.插入模块

'L\'v1icrD5O'ttVisualStudio\C匸R/WldiFW八£1)£、甘由上in\L亡nu才l.*e

 

.显示模块

>1

recordrecordrei;t>rilrecord

*leasesritsr90uelimiceCB—?

>

员二蛊号営朋

甚态工資:

^009.000009

:

1耳0.用口冈

工遥:

&3Q3.0BO800

:

Zbb.9MSU0U

T姦翊5.ffiWW»口

8•保存模块

特7•保存record*tJ15x1*色CQiMi

jJkJ—kJkJjJfa.hJIBrfUJ■BJkJEJkJBJNILi.kJHkaU—2kJWkJLJ.乜2程2也

Lcaacenteryouc}»icc(07〉

号宕歩款一编姓董扣一-Cn-jtn-CnL^J-工工工工工_职职职职职一入入入入入一一雷诘簷一

(溯返回工菜单〕

」賛:

5U0B

:

;(按。

返回主菜单)

Empo^eeSystem

di

*1

*3

*5

*7

record,recurdrecordrecord

i*eco>drecordrecordrecoi'd

leaseenter90Uchoice(0—?

>

Errbpu^eeS^Lem

加询人存

M*3*5*7

recnrdlrecordrecordlpecord

Tuturdrecordi*ecoi*d

KMMMMMKMMMMM'KMMMXMMWMM:

MMMMMMMWX^rKMMSCKMXMM

Leaseenteryouchoicetld—Z>

 

 

9.退出模块

Enipo^eeS^teni

«2剁陰i-ctord*4修识record斑良示record«0土record

IOsg

■?

Bye

recordrecordrecordrccordl

P?

le^aseenteryouchoice:

(0—7〉

Ihankyouforyouruse

 

 

八、设计心得

通过这几天的努力,职工工资管理系统的设计已基本完成。

在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。

职工工资管理系统是一个很实用并且使用广泛的操作系统。

此系

统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间,查找出所需的职工工资资料,提高工作效率。

该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。

每一条记录包括一个职工的工号、、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工

信息保存在文件中,并从文件中读取出来

总的来说,通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。

这会对以后的学习有所帮助。

九、附录

源程序代码:

#inelude#includevstring.h>

typedefstructemployee

}ZGGZ;

voidmenu()

n*****************************************、v

printf("

*1

添加

record

*2

删除

record'n");

printf("

*3

查询

record

*4

修改

record\n");

printf("

*5

插入

record

*6

显示

record\n");

printf("

*7

保存

record

*0

退出

record'n");

printf("

*****************************************、n");

printf("Pleaseenteryouchoice(0-7)\n");}

intinput(ZGGZa[],intk)

{

intj,x;

charstr[10];j=x=O;while

(1)

{

printf("请输入职工的编号:

(按0返回主菜单)");

seanf("%s",str);

strcpy(a[k].num,str);

for(j=0;jvk;j++)

{

if(strcmp(a[j].num,str)==0)

{

printf(”已经有工号为%s的员工信息!

请重新输入员

工号。

\n”,str);

printf("请输入职工的编号:

");

scanf("%s",str);

strcpy(a[k].num,str);

}

}if(strcmp(a[k].num,"0")==0)

break;

printf("请输入职工的:

");

scanf("%s",a[k].name);

printf(”请输入职工的基本工资:

");

scanf("%f",&a[k].jbgz);

seanf("%f",&a[k].jj);

printf("请输入职工的扣款:

");

seanf("%f",&a[k].kk);

a[k].yfgz二a[k].jbgz+a[k].jj-a[k].kk;

a[k].sk=a[k].yfgz*(0.05);

a[k].sfgz=a[k].yfgz*(0.95);

k++;

}

returnk;

}

intdel(ZGGZa[],inty)

{

inti=0;

intx=0;

charstr[15];

printf("请输入你要删除的编号或:

");

scanf("%s",str);

printf("删除成功\n");

for(i=0;i

if(!

strcmp(str,a[i].num)||!

strcmp(str,a[i].name))

while(ivy)

strcpy(a[i].num,a[i+1].num);

strcpy(a[i].name,a[i+1].name);

a[i].jbgz=a[i+1].jbgz;

a[i]jj=a[i+1].jj;

a[i].kk=a[i+1].kk;

a[i].sfgz=a[i+1].sfgz;

a[i].sk=a[i+1].sk;

a[i].yfgz=a[i+1].yfgz;

i++;

}

x++;

}

if(x==O)

{

\n");

printf("输入的编号或不存在,请重新输入:

}

returny-x;

}

voidsear(ZGGZa[],inty)

inti;

intx=0;

charstr[15];

printf(”请输入你要查找的编号或:

");

scanf("%s",str);

for(i=0;i

if(!

strcmp(str,a[i].num)||!

strcmp(str,a[i].name))

{

printf(”

员工编号为%s\n",a[i].num);

printf(”

员工为%s\n",a[i].name);

printf(”

基本工资:

%f\n",a[i].jbgz);

printf(”

奖金:

%f\n",a[i].jj);

printf(”

扣款:

%f\n",a[i].kk);

printf(”

应发工资:

%f\n",a[i].yfgz);

printf(”

税款:

%f\n",a[i].sk);

printf(”

实发工资:

%f\n",a[i].sfgz);

x++;

}if(x==0)

{

return;

}

}

voidmod(ZGGZa[],inty)

{

inti;

intx=0;

charstr[15];

printf("请输入你要修改的编号:

");

scanf("%s",str);

for(i=0;i

if(!

strcmp(str,a[i].num)||!

strcmp(str,a[i].name))

{

printf("请输入修改后职工的:

");

scanf("%s",a[i].name);

printf(”请输入修改后职工的基本工资:

");

scanf("%f",&a[i].jbgz);

printf("请输入修改后职工的奖金:

");

scanf("%f",&a[i].jj);

seanf("%f",&a[i].kk);

a[i].yfgz=a[i].jbgz+a[i].jj-a[i].kk;

a[i].sk二a[i].yfgz*(0.05);

a[i].sfgz=a[i].yfgz*(0.95);

x++;

}if(x==0)

{

printf("未找到要修改的编号\n");

}

}

intinsert(ZGGZa[],inty)

{

inti;

intx=0;

charstr[15];

printf("请输入你要插入的编号:

");

scanf("%s",str);

for(i=0;i

if(strcmp(str,a[i].num)==0)

{

x=i;

for(i=y;i>x+1;i--)

{

a[i].jbgz=a[i-1].jbgz;

a[i]jj=a[i-1].jj;

a[i].kk二a[i-1].kk;

a[i].sfgz=a[i-1].sfgz;

a[i].sk=a[i-1].sk;

a[i].yfgz=a[i-1].yfgz;

strcpy(a[i].name,a[i-1].name);

strcpy(a[i].num,a[i-1].num);

}

}

x++;

printf("请输入职工的编号:

");

scanf("%s",a[x].num);

printf("请输入职工的:

");

scanf("%s",a[x].name);

scanf("%f",&a[x].jbgz);

seanf("%f",&a[x].jj);

printf(”请输入职工的扣款:

");

seanf("%f",&a[x].kk);

a[x].yfgz二a[x].jbgz+a[x].jj-a[x].kk;

a[x].sk=a[x].yfgz*(0.05);

a[x].sfgz=a[x].yfgz*(0.95);

returny+1;

}

voidsave(ZGGZa[],intn)

{

FILE*fp;

inti;

if((fp=fopen("sj.txt","wb"))==NULL)

{

printf("cannotopenfile\n");

return;

}

for(i=0;i

if(fwrite(&a[i],sizeof(structemployee),1,fp)!

=1)felose(fp);

-<烟><.

ev)①ZX

+土-(ZBS.曰5.UV%-SS・・)匕U一」d5S.曰5.UV%-S・・)匕£」d-(ZBA.曰5.UV%-SS・・)匕u一」d仝亠曰5.UV%-S・・)匕£」d◎曰5.UV%・・)匕£」d-(Z6qr曰5.UV%-烟H<«・・)匕£」d-OTUJeu.曰5.5S%FH吧・・)匕£」d-Enu.曰5.5S%氷申專Hns・・)匕£」d厂5=)匕£」d

op

c」n05」

F.USKUU①①」es①-匚=)44£」d

(OKU)七

o上茎一

(u茎二」ez00z)Ae_ds一ppo>

 

voidmain()

{

intselete,c=0;

inti=0;

intz=0;

charq,p,x,s;

ZGGZb[100];

FILE*fp;

if((fp=fopen("sj.txt","rb"))二二NULL)

printf("NotFound!

\n");

else

{

do

{

fread(&b[i],sizeof(structemployee),1,fp);i++;

}while(!

feof(fp));

fclose(fp);

c=i-1;

}

while

(1)

menu();

seanf("%d",&selete);

if(selete==O)

{

printf("Thankyouforyouruse(A_A)Bye\n");

break;

}

switeh(selete)

{

ease1:

e=input(b,c);break;

ease2:

{

display(b,e);

do

{

e=del(b,e);

printf(”是否继续删除,是按y,否则请按任意值\n");

getchar();

seanf("%c",&p);

}while(p=='Y'||p=='y');

break;

case3:

{

do

{

sear(b,c);

printf(”是否继续查找,是按y,否则请按任意值\n");

getchar();

scanf("%c",&x);

}while(x=='Y'||x=='y');

break;

}

case4:

{

display(b,c);

do

{

mod(b,c);

printf(”是否继续修改,是按y,否则请按任意值\n");

getchar();

scanf("%c",&q);

}while(q=='Y'||q=='y');

break;

}

case5:

{

do

{

c=insert(b,c);

printf(”是否继续插入,是按y,否则请按任意值\n");

getchar();

scanf("%c",&s);

}while(s=='Y'||s=='y');

break;

}

case6:

display(b,c);break;

case7:

save(b,c);break;

default:

printf("Pleasetryagain\n");

}

}

}

.参考资料.

Effipoi/eeS^stern

且ker■er尸ek尸rizr民

*1

*a

*5进丿;record**6i*ecan

*7保佇rtcurd*0record

*—N』21“47*"士《JJH士7jji_ifcj“—I■Jfcj』—I—Aji_»im7廿

PLehaa日enter90uchoice(0—

请嶽入职工追编号’(濒惫回主茉单)01请前入职工的姓名:

三翠殄请轨人舉丄的星禾工頸5000储羸入职工曲交玉逊

请输入职工的扣款=10«

请输入职工的編号.f却返回主荣单)

半:

3.删除模块

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

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1