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

上传人:b****6 文档编号:21347557 上传时间:2023-01-29 格式:DOCX 页数:30 大小:1,023.54KB
下载 相关 举报
C语言实训项目分析及源码详解Word下载.docx_第1页
第1页 / 共30页
C语言实训项目分析及源码详解Word下载.docx_第2页
第2页 / 共30页
C语言实训项目分析及源码详解Word下载.docx_第3页
第3页 / 共30页
C语言实训项目分析及源码详解Word下载.docx_第4页
第4页 / 共30页
C语言实训项目分析及源码详解Word下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

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

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

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

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

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

二、实习任务概述

任务一:

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

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

1.信息的录入:

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

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

2.删除操作:

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

3.显示操作:

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

4.查询与修改操作:

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

5.统计与排序操作:

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

三、实习所用软件简介

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

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

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系统开发思路(需求分析)

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

由于企业员工工资结构存在一定的规律性,工资放在时间上和操作上存在的一定的重复性,这使得企业事业单位工资管理计算机的实现成为了可能。

1.2数据结构设计

structWorker

{

charworkernum[10];

charworkername[20];

intbasicwage;

intallowance;

intBonus;

inttotalwage;

}Worker_Infor[100];

1.3系统设计与实现

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

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

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();

printf("

输入员工数量:

"

);

scanf("

%d"

&

n);

while(t)

{

printf("

#######################################################\n"

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

##\n"

);

##1.录入员工信息##\n"

##2.职工总工资进行排序##\n"

##3.文件保存到硬盘上##\n"

##4.查询员工信息##\n"

##5.修改员工信息##\n"

##6.查看所有员工信息##\n"

##7.添加员工信息##\n"

##8.删除员工信息##\n"

##9.退出程序##\n"

printf("

####\n"

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

c);

getchar();

if(c<

1||10<

c){printf("

\t输入错误,请重新输入:

\n"

continue;

}

switch(c)

{

case1:

Input_Infor();

Cal_Wages();

break;

case2:

Sort_Wage();

case3:

Save_Infor();

\t按任意键继续!

case4:

Search_Worker();

case5:

Modify_Worker();

case6:

for(i=0;

i<

n;

i++)Print_Worker(i);

case7:

Input_worker(i);

case8:

delet_worker();

case9:

t=0;

\t谢谢使用!

\t按任意键返回!

}

}

图1-3

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

voidUp_Infor()

inti;

FILE*pk;

pk=fopen("

D:

\\worker.txt"

"

at+"

for(i=0;

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;

fclose(pk);

3.------------------------------//员工信息的录入

voidInput_Infor()

charc;

if(n==0)i=0;

elsei=n-1;

printf("

\t请输入职工工资信息!

while

(1)

printf("

\t请输入第%d位职工编号:

i+1);

//gets(Worker_Infor[i].workernum);

scanf("

%s"

Worker_Infor[i].workernum);

getchar();

\t工号为%s职工的姓名:

gets(Worker_Infor[i].workername);

\t%s职工基本工资:

Worker_Infor[i].workername);

while

(1)

scanf("

Worker_Infor[i].basicwage);

if(Worker_Infor[i].basicwage>

=0)

break;

elseprintf("

\t输入错误,请重试!

\t%s职工的津贴:

Worker_Infor[i].allowance);

if(Worker_Infor[i].allowance>

\t输入错误,重新输入:

\t%s职工的奖金:

Worker_Infor[i].Bonus);

if(Worker_Infor[i].Bonus>

i++;

n=i;

\n是否继续输入:

(Y/N)或者(y/n):

scanf("

%c"

if(c=='

n'

||c=='

N'

)break;

}

图1-4

4.-----------------------------------//对员工工资排序

voidSort_Wage()

inti,j;

intWorker_temp;

Cal_Wages();

for(j=i+1;

j<

j++)

if(Worker_Infor[j].totalwage<

=Worker_Infor[i].totalwage)

{

Worker_temp=Worker_Infor[i].totalwage;

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

Worker_Infor[j].totalwage=Worker_temp;

}

图1-5

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

intSave_Infor()

if((pk=fopen("

wr+"

))==NULL)

文件打开失败!

return0;

fprintf(pk,"

文件保存成功!

return1;

图1-6

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

intSearch_Worker()

inti,m;

请选择查询方式:

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

scanf("

m);

switch(m)

case1:

i=Search_Name();

returni;

case2:

i=Search_Num();

case3:

return-1;

6.1--------------------------------//姓名查询

intSearch_Name()

charname[20];

请输入要查询的姓名:

name);

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

{printf("

returni;

if(i==n)

没有找到该员工!

//elsereturni;

图1-7

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

intSearch_Num()

charnum[20];

请输入要查询的工号:

num);

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

图1-8

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

voidModify_Worker()

请查询您要修改的员工:

i=Search_Worker();

getchar();

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

##1.员工号##\n"

##2.员工姓名##\n"

##3.员工的基本工资##\n"

##4.员工的津贴##\n"

##5.员工的奖金##\n"

##6.退出##\n"

请输入新的员工号:

scanf("

Worker_Infor[i].workernum);

请输入新的员工名:

Worker_Infor[i].workername);

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

case4:

请输入新的员工津贴:

scanf("

case5:

请输入新的员工奖金:

case6:

return;

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

Print_Worker(i);

图1-9

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

图1-10

9.-------------------//添加新的员工信息

voidInput_worker(inti){

printf("

\t请输入职工工资信息:

while

(1){

printf("

\t第%d位职工的编号:

n+1);

gets(Worker_Infor[i].workernum);

Worker_Infor[n].workernum);

gets(Worker_Infor[n].workername);

\t%s职工的基本工资:

Worker_Infor[n].workername);

while

(1){

scanf("

Worker_Infor[n].basicwage);

if(Worker_Infor[n].basicwage>

=0)break;

elseprintf("

\t输入错误请重试:

\t%s职工的津贴:

while

(1){

Worker_Infor[n].allowance);

if(Worker_Infor[n].allowance>

printf("

\t%s职工的奖金:

Worker_Infor[n].Bonus);

if(Worker_Infor[n].Bonus>

i++;

n++;

getchar();

printf("

是否想要输入下一个员工信息(Y/N):

if(c=='

图1-11

图1-12

10.----------------//删除员工信息

voidd

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

当前位置:首页 > 高等教育 > 工学

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

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