C语言实训项目分析及源码详解Word下载.docx
- 文档编号:21347557
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:30
- 大小:1,023.54KB
C语言实训项目分析及源码详解Word下载.docx
《C语言实训项目分析及源码详解Word下载.docx》由会员分享,可在线阅读,更多相关《C语言实训项目分析及源码详解Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
本次实习通过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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 项目 分析 源码 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)