《C语言程序设计与数据结构》实训报告
课题名称:
专 业:
班 级:
学 号:
姓 名:
指导教师:
20XX年 1 月 6 日
一、课程设计题目
《员工工资管理系统》
二、 实训项目介绍
(1) 显示菜单:用户登录成功,系统显示界面,显示系统功能的提示信息。
(2) 职工信息输入:用户输入要添加的职工工号,姓名,年龄,性别,基本工资,岗位工资,总工资信息等。当职工工号为0时输入结束。输入数据时,须验证数据的输入格式正确,保证职工号的唯一性。
(3) 职工信息输出:将结构体中的职工信息输出到屏幕上。
(4) 职工信息查询:1按职工号查询;2按职工姓名查询。查到则显示他全部信息,否则输出“not found”。
(5) 职工信息修改:修改职工信息并保存(工号不能修改)。
(6) 工资排序:对结构体数组中的所有职工按基本工资降序排序,用选择法实现;对结构体数组中的所有职工按岗位工资降序排序,用冒泡法实现;对结构体数组中的所有职工总工资降序排序,用插入法实现。
(7) 工资统计:分别统计总工资
(8) 导出函数:把结构体数组中的职工信息保存到磁盘文件
(9) 导入函数:从外部文件中导入信息到结构体数组里
(10) 退出:结束程序运行
三、实训目的
(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
(2)掌握C语言的基本概念和基础知识。
(3)通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。
(4)熟练掌握各种常用类的定义,继承,文件的应用,为更好的理解面向对象打下更好的基础。
(5)通过实训,培养自己编写、调试、分析大型应用程序的能力。
(6)掌握面向对象的基本原理,提高学生综合程序设计的能力。
(7)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。
(8) 培养自己良好的学习兴趣,独立的编程风格。
(9) 通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。
四、课程设计报告内容
3.1功能要求
该系统运行在DOS环境下,人机界面为命令行文本界面。完成的任务是对若干人的通信录信息进行管理,且数据保存到文件中。
实现的主要功能是:
= 登陆: 判断用户输入的密码正确性,并限制用户只能有三次机会输入,若超过则关闭计算机。
= 添加:增加一个或几个人的通信录信息。
= 删除:删除已输入的通信录信息。
= 查询:根据输入的姓名查找通信录信息。
= 修改:根据输入的姓名修改通信录信息。
= 显示:输出所有通信录信息。
3.2 设计环境
所使用的语言采用标准C,开发工具可选用在DOS环境下的Win-TC。
3.3 数据结构
本系统是对员工的个人工资信息进行管理,记录的信息采用C的结构体数据类型描述,定义如下:
struct ren /*定义个人资料结构体类型*/
{ int num; /*编号*/
char name[10]; /*姓名*/
char tel[12]; /*电话号码*/
char email[20]; /*email地址*/
char qq[12]; /*QQ*/
char address[50]; /*住址*/
};
五、结论
员工工资管理系统的编写,看似杂乱无头绪,实际上却并不如此。它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。
算法的设计:
(1) 自顶向下
现有全局,在进行整体设计,然后再进行下层的设计,逐步实现精细化。采用这种方法能够做到胸有全局,能全盘考虑,不至于顾此失彼,头重脚轻。
(2) 逐步细化
一步步地将上层的任务分解成较小的、易于实现的任务,知道可以很简单实现为止。
编写源程序:
(1) 不求速度,但求质量!一步一个脚印,编写程序时候宁可速度慢些也要尽量保证质量,做到尽量不出错。
(2) 精力集中,全神贯注!写程序时候最忌讳三心二意,这样才能思路清晰保证质量。
(3) 保持一个良好的编程心态,不要被长长的代码吓到,更不要厌烦,既然同样都是写,为什么不仲满激情的去写那?
程序的编译与运行:
(1) 查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。才能在最快的时间找出错误
(2) 用心去查找,也许你会发现错误并不是很难找
(3) 程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方,积极的改进,完善。
六、结束语
在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写员工工资管理系统使我更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。我想这对我以后的人生有着很大的帮助。其次通过编写员工工资管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。在张文轩老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心,和对编程的兴趣有了很大增长,使我获益匪浅。
七、附录:(源程序清单)
#include "stdio.h"
struct worker
{
int num;
char name[10];
int age;
int wages;
}aa[5];
main()
{
int button;
system("graftabl 936");
clrscr();
printf("******职工工资管理系统******\n");
printf("请输入5位职工的信息:\n");
input();
while(1)
{
clrscr();
printf("******职工工资管理系统******\n");
printf("1-职工工资统计功能\n");
printf("2-职工工资分析功能\n");
printf("3-职工工资查询功能\n");
printf("4-职工信息查询功能\n");
printf("0退出\n");
printf("******职工工资管理系统******\n");
scanf("%d",&button);
if(button==1)
{
printf("\n调用职工工资统计功能\n");
tongji();
}
else if(button==2)
{
printf("\n调用职工工资分析功能\n");
fenxi();
}
else if(button==3)
{
printf("\n调用职工工资查询系统\n");
search();
}
else if(button==4)
{
printf("\n调用职工工资修改功能\n");
xiugai();
}
else if(button==0)
{
exit();
}
else
{
printf("您的输入有误,请重新输入:");
}
printf("\n按空格键返回主菜单:\n");
getch();
}
}
/*职工工资统计模块*/
tongji()
{
int i,j;
float aver=0,sum;
for(i=0;i<5;i++)
{
sum=sum+aa[i].wages;/*总工资*/
}
printf("所有员工工资总和为:%f\n",sum);
aver=sum/5;
printf("所有员工的平均工资为:%f\n",aver);
}
/*职工工资分析模块*/
fenxi()
{
/*最高工资*/
float max;
int i,j;
max=aa[0].wages;
for(i=1,i=0;i<5;i++)
{
if(max
{
j=i;
max=aa[i].wages;
}
}
printf("工资最高的职工是:\n");
printf("员工号:%d\n",aa[j].num);
printf("姓名:%s\n",aa[j].num);
printf("年龄:%d\n",aa[j].age);
printf("工资:%d\n",aa[j].wages);
}
/*职工工资查询模块*/
search()
{
/*给定工号,显示某位职工的信息*/
long x;
int i;
printf("请输入需要修改的员工的员工号:");
scanf("%ld",&x);
for(i=0;i<5;i++)
{
if(aa[i].num==x)
{
printf("工资最高的职工是:\n");
printf("员工号:%d\n",aa[i].num);
printf("姓名:%s\n",aa[i].name);
printf("年龄:%d\n",aa[i].age);
printf("工资:%d\n",aa[i].wages);
}
}
}
/*职工工资修改模块*/
xiugai()
{
/*职工工资信息修改*/
long x;
int i;
printf("请输入工号,修改某位职工的信息:");
scanf("%ld",&x);
for(i=0;i<5;i++)
{
if(aa[i].num==x)
{
printf("请输入第%d号员工号的新姓名:",i+1);
scanf("%s",&aa[i].name);
printf("请输入第%d号员工号的新年龄:",i+1);
scanf("%d",&aa[i].age);
printf("请输入第%d号员工号的新工资:",i+1);
scanf("%d",&aa[i].wages);
printf("姓名:%s\n",aa[i].name);
printf("年龄:%d\n",aa[i].age);
printf("工资:%d\n",aa[i].wages);
}
}
}
input()
{
int i,j;
int aver=0,sum=0;
for(i=1;i<5;i++)
{
aa[i-1].num=i;
printf("请输入第%d号员工的姓名:",i);
scanf("%s",&aa[i-1].name);
printf("请输入第%d号员工的年龄:",i);
scanf("%s",&aa[i-1].age);
printf("请输入第%d号员工的工资:",i);
scanf("%s",&aa[i-1].wages);
}
printf("输入信息结束,按空格键返回主菜单。");
getch();
}
计算机科学与技术系C语言实验报告实验名称:指针及其应用日期:得分:指导老师:专业:班次:姓名:学号:实验目的(1)掌握变量的指针及…
C语言程序设计与数据结构实训报告课题名称通讯录管理系统专业软件技术开发方向班级软件G083学号姓名徐阳指导教师黄爽20xx年12月…
暨南大学本科实验报告专用纸课程名称高级语言程序设计成绩评定实验项目名称结构体和共用体指导教师张晓刚实验项目编号8060151108…
高级语言程序设计学生实验报告专业计算机科学与技术学号姓名1实验一C程序的运行环境和使用方法1实验目的1了解所用的计算机系统的基本操…
寒假实习报告总结语-“千里之行,始于足下”,这近半个月短暂而又充实的实习,我认为对我走向社会起到了一个桥梁的作用,过渡的作用,是人…
20xx年x月x日—11月x日,我有幸参加了云南省中学综合实践活动骨干教师培训。这几天,通过听(听讲座、学校综合实践活动课程实施的…
实习报告结语感受.txt如果我能够看到自己的影子,我想它一定很忧伤,因为我把快乐都留在了前面。容易伤害别人和自己的人,总是对距离的…
寒假实习报告总结语千里之行始于足下这近半个月短暂而又充实的实习我认为对我走向社会起到了一个桥梁的作用过渡的作用是人生的一段重要的经…
C语言程序设计与数据结构实训报告课题名称专业班级学号姓名指导教师20xx年12月25日目录1课程设计目的12课程设计题目13课程设…