C语言实训项目分析及源码详解.docx

上传人:b****3 文档编号:11272039 上传时间:2023-05-30 格式:DOCX 页数:46 大小:1.35MB
下载 相关 举报
C语言实训项目分析及源码详解.docx_第1页
第1页 / 共46页
C语言实训项目分析及源码详解.docx_第2页
第2页 / 共46页
C语言实训项目分析及源码详解.docx_第3页
第3页 / 共46页
C语言实训项目分析及源码详解.docx_第4页
第4页 / 共46页
C语言实训项目分析及源码详解.docx_第5页
第5页 / 共46页
C语言实训项目分析及源码详解.docx_第6页
第6页 / 共46页
C语言实训项目分析及源码详解.docx_第7页
第7页 / 共46页
C语言实训项目分析及源码详解.docx_第8页
第8页 / 共46页
C语言实训项目分析及源码详解.docx_第9页
第9页 / 共46页
C语言实训项目分析及源码详解.docx_第10页
第10页 / 共46页
C语言实训项目分析及源码详解.docx_第11页
第11页 / 共46页
C语言实训项目分析及源码详解.docx_第12页
第12页 / 共46页
C语言实训项目分析及源码详解.docx_第13页
第13页 / 共46页
C语言实训项目分析及源码详解.docx_第14页
第14页 / 共46页
C语言实训项目分析及源码详解.docx_第15页
第15页 / 共46页
C语言实训项目分析及源码详解.docx_第16页
第16页 / 共46页
C语言实训项目分析及源码详解.docx_第17页
第17页 / 共46页
C语言实训项目分析及源码详解.docx_第18页
第18页 / 共46页
C语言实训项目分析及源码详解.docx_第19页
第19页 / 共46页
C语言实训项目分析及源码详解.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言实训项目分析及源码详解.docx

《C语言实训项目分析及源码详解.docx》由会员分享,可在线阅读,更多相关《C语言实训项目分析及源码详解.docx(46页珍藏版)》请在冰点文库上搜索。

C语言实训项目分析及源码详解.docx

C语言实训项目分析及源码详解

防灾科技学院

实习报告书

实习题目:

语言)网络工程认识实习(C

学号:

###

姓名:

###

专业:

网络工程

系别:

###

实习时间:

2015.5-2015.6

实习地点:

北504

指导教师:

孙晓玲杜春雷

考勤成绩:

10

实习态度:

10

任务完成:

40

实习报告:

20

实习日志:

20

实习总成绩

100

指导教师评语

指导教师(签名):

2015年7月日

防灾科技学院灾害信息工程系

2015年制1/35

项目一C语言实习

一、实习目的

本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。

本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。

通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。

二、实习任务概述

任务一:

员工工资管理系统的设计与实现

本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能:

1.信息的录入:

a)首次进入系统,可以添加职工的工号、姓名、基本工资、津贴、员工奖金等数据录入操作。

b)系统再次登录,可以从文件导入信息,也可以对文件内容进行修改,保存退出。

2.删除操作:

对离职的员工信息要从系统里删除。

3.显示操作:

将结构体中职工信息输出到屏幕上。

4.查询与修改操作:

分别按职工工号和职工姓名查询,修改职工信息并保存。

5.统计与排序操作:

分别统计所有员工的总工资,实现对总工资的排序。

三、实习所用软件简介

VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(MicrosoftFoundationClass)类库。

使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。

使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用2/35

程序开发变得简单。

VisualC++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。

比如,它允许用户进行远程调试,单步执行等。

还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。

其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。

这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

四、参考文献

[1]韩莹.C语言实训教程[M].北京交通大学出版社,2013.

[2]李新良.教学测评系统的应用与研究[J].湖南人文科技学院学报,2012(6):

73-77.

[3]张高煜.C语言程序设计实训.中国水利水电出版社,2011.8.

[4]白帆.C语言开发实例详解.电子工业出版社,2012.5.

[5]王为青.C语言实战105例.北京:

人民邮电出版社,2011.

[6]明日科技编著.C语言项目案例分析.北京:

清华大学出版社,2012.

五、实习日程安排

时间方询询式

选择修改内容

实习内容

第1-2天员工信息

选题,对第一个选题进行功能需求分析、功能结构图和流程图的设计、系统架构设计数员员员员据工工工工文信工信工件资息资息

第3-5天的录入

核心算法设计,程序设计及编码,逐步完善建立数据文件,增加数据,修改数据,查询数据,删除数据,对数据?

?

序和屏幕显示数据等功能保查汇修排存询总改序选

第6-7天

代码调试、测试、撰写实习报告按按择姓工查名号询查查

六、实习内容及步骤

任务1员工工资管理系统(C语言模块)

1.1系统开发思路(需求分析)

随着计算机技术的发展,企业管理越来越趋于自动化,而工资管理是企业管理的重要的组成部分,它与企业的财务管理、人才管理有着密切的联系。

由于企业员工工资结构存在一定的规律性,工资放在时间上和操作上存在的一定3/35

的重复性,这使得企业事业单位工资管理计算机的实现成为了可能。

1.2数据结构设计

structWorker

{

charworkernum[10];

charworkername[20];

intbasicwage;

intallowance;

intBonus;

inttotalwage;

}Worker_Infor[100];

1.3系统设计与实现

1.3.1系统功能结构图及流程图

职工管理系统

.

图1-1员工工资管理系统参考模块图/435

开始

主操作界面录N

入主操作界面职继续?

1

选择工信Y

息2

选择3

选择4

选择5

选择6

选择选择7选择89选择

职工总工资排序

录入数据文件保存

按姓名查找

查询员工信息

按工号查找

退出,回到主页面

修改员工信息

修改

选择查询方式

选择修改选项

删除

查看所有员工信息

添加新的员工信息

删除员工信息

输入要删除的员工姓名

退出程序

35/5

.

员工工资管理系统流程图1-2图

1.3.2主要函数设计

voidInput_Infor()函数功能:

员工信息的录入

voidPrint_Worker(inti)函数功能:

员工工资的显示

voiddelet_worker()函数功能:

删除员工信息

intSearch_Name()函数功能:

姓名查询

函数功能:

工号查询intSearch_Num()

函数功能:

查询主函数,调用姓名/工号查intSearch_Worker()

voidModify_Worker()函数功能:

修改员工信息

voidCal_Wages()函数功能:

计算总工资

voidSort_Wage()函数功能:

对员工工资排序

intSave_Infor()函数功能:

文件写操作

voidUp_Infor()函数功能:

读文件

voidInput_worker(inti)函数功能:

添加新的员工信息

voidmain()函数功能:

主函数选择进入界面

1.3.3系统功能设计与实现

下面分别对该模块中的具体功能进行详细描述,主要功能实现的代码相应功能实现的界面截图。

1.---------------------------------------//主函数

voidmain()

{

intc,t=1,i;

Up_Infor();

牰湩晴尨输入员工数量:

);

scanf(%d,&n);

while(t)

{

printf

(#######################################################\n);

6/35

printf(##欢迎进入职工工资管理系统:

##\n);printf(##1.录入员工信息##\n);

printf(##2.职工总工资进行排序##\n);

printf(##3.文件保存到硬盘上##\n);

printf(##4.查询员工信息##\n);

printf(##5.修改员工信息##\n);

printf(##6.查看所有员工信息##\n);

printf(##7.添加员工信息##\n);

printf(##8.删除员工信息##\n);

printf(##9.退出程序##\n);

printf(####\n);

printf(##请选择对应的编号(1—7)##\n);

printf(#######################################################\n);

scanf(%d,&c);

getchar();

if(c<1||10

\n);continue;}

switch(c)

{

case1:

Input_Infor();Cal_Wages();break;

case2:

Sort_Wage();break;

case3:

Save_Infor();printf(\按任意键继续!

\n);getchar();break;

case4:

Search_Worker();break;

case5:

Modify_Worker();break;

case6:

for(i=0;i

case7:

Input_worker(i);break;

case8:

delet_worker();break;

case9:

t=0;printf(\谢谢使用!

\n);printf(\按任意键

返回!

);break;

}

35/7

}

}

图1-3

2.----------------------------------------//读文件

voidUp_Infor()

{

inti;

FILE*pk;

pk=fopen(D:

\\worker.txt,at+);

for(i=0;i<100;i++)

{

fscanf(pk,%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[i

].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

if(strcmp(Worker_Infor[i].workernum,stop)==0)break;

35/8

}

fclose(pk);

}

3.------------------------------//员工信息的录入voidInput_Infor()

{

charc;

inti;

if(n==0)i=0;

elsei=n-1;

\n);请输入职工工资信息!

printf(\while

(1)

{

:

i+1);位职工编号请输入第%dprintf(\//gets(Worker_Infor[i].workernum);

scanf(%s,Worker_Infor[i].workernum);

getchar();

姓工的号为%s职printf

(\工:

Worker_Infor[i].workernum);

名gets(Worker_Infor[i].workername);

工工基本printf

(\%s职:

Worker_Infor[i].workername);

while

(1)

{

scanf(%d,&Worker_Infor[i].basicwage);

if(Worker_Infor[i].basicwage>=0)

break;

!

);

elseprintf(\输入错误,请重试}

9/35

printf(\%s职工的津贴:

Worker_Infor[i].workername);

while

(1)

{

scanf(%d,&Worker_Infor[i].allowance);

if(Worker_Infor[i].allowance>=0)

break;

elseprintf(\输入错误,重新输入:

);

}

Worker_Infor[i].workername);printf(\%s职工的奖金:

while

(1)

{

scanf(%d,&Worker_Infor[i].Bonus);

if(Worker_Infor[i].Bonus>=0)

break;

elseprintf(\输入错误,重新输入:

);

}

i++;

n=i;

getchar();

(y/n):

);或者(Y/N)printf(\

是否继续输入:

scanf(%c,&c);

if(c=='n'||c=='N')break;

}

}

10/35

1-4

对员工工资排序4.-----------------------------------//voidSort_Wage()

{

inti,j;

intWorker_temp;

Cal_Wages();

for(i=0;i

{

for(j=i+1;j

(Worker_Infor[j].totalwage<=if

Worker_Infor[i].totalwage)

{

Worker_temp=Worker_Infor[i].totalwage;

/1135

Worker_Infor[i].totalwage=Worker_Infor[j].totalwage;

Worker_Infor[j].totalwage=Worker_temp;

}

}

for(i=0;i

printf

(%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

}

图1-5

5.---------------//文件写操作,文件保存到硬盘上

intSave_Infor()

{

12/35

inti;

FILE*pk;

Cal_Wages();

if((pk=fopen(D:

\\worker.txt,wr+))==NULL)

{

牰湩晴?

文件打开失败!

);

return0;

}

for(i=0;i

{

fprintf(pk,%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[

i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

}

fclose(pk);

牰湩晴?

文件保存成功!

);

return1;

}

13/35

图1-6

6.-----------------//查询员工信息

intSearch_Worker()

{

inti,m;

printf尨请选择查询方式:

\n1.按姓名查找\n2.按员工工号查找\n3.退出\n);

scanf(%d,&m);

switch(m)

{

case1:

i=Search_Name();returni;break;

case2:

i=Search_Num();returni;break;

case3:

return-1;

}

}

6.1--------------------------------//姓名查询intSearch_Name()

{

inti;

charname[20];

:

);牰湩晴?

请输入要查询的姓名scanf(%s,name);

for(i=0;i

{

if(strcmp(name,Worker_Infor[i].workername)==0)

{printf

(%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

returni;break;}

35/14

}

if(i==n)

{

牰湩晴?

没有找到该员工!

\n);return-1;

}

//elsereturni;

}

图1-7

6.2---------------------------//按工号查询

intSearch_Num()

{

inti;

charnum[20];

牰湩晴?

请输入要查询的工号:

);

scanf(%s,num);

for(i=0;i

{

if(strcmp(num,Worker_Infor[i].workernum)==0)

35/15

{printf

(%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

returni;break;}

}

if(i==n)

{

!

\n);return-1;牰湩晴?

没有找到该员工}

//elsereturni;

}

图1-8

7.--------------------------//修改员工信息

voidModify_Worker()

16/35

{

inti,m;

牰湩晴?

请查询您要修改的员工:

\n);

i=Search_Worker();

getchar();

printf

(#######################################################\n);

printf(##请选择您要修改的内容:

##\n);

printf(##1.员工号##\n);

printf(##2.员工姓名##\n);

printf(##3.员工的基本工资##\n);

printf(##4.员工的津贴##\n);

printf(##5.员工的奖金##\n);

printf(##6.退出##\n);

printf

(#######################################################\n);

scanf(%d,&m);

switch(m)

{

case1:

printf尨请输入新的员工号:

);scanf

(%s,&Worker_Infor[i].workernum);break;

case2:

printf尨请输入新的员工名:

);scanf

(%s,&Worker_Infor[i].workername);break;

case3:

printf尨请输入新的员工基本工资:

);scanf

(%d,&Worker_Infor[i].basicwage);break;

case4:

printf尨请输入新的员工津贴:

);scanf(%d,&Worker_Infor[i].allowance);break;

case5:

printf尨请输入新的员工奖金:

);scanf

(%d,&Worker_Infor[i].Bonus);break;

case6:

return;

35/17

}

牰湩晴?

修改后的员工的基本信息为:

\n);

Print_Worker(i);

}

图1-9

8.---------------//查看所有员工信息voidPrint_Worker(inti)

{

printf

(%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n,Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);

}18/35

1-10

图添加新的员工信息9.-------------------//voidInput_worker(inti){

charc;

:

\n);请输入职工工资信息printf(\while

(1){

:

n+1);%d位职工的编号prin

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2