C语言程序设计
课程设计报告
课设题目:考勤管理系统
专业:
班级: 姓名:
成绩:
完成日期: 指导教师:
目录
1.课程设计目的 (2)
2.需求分析 (2)
2.1要求 (2)
2.2任务描述 (2)
2.3运行环境 (2)
2.4开发工具 (3)
3.总体设计 (3)
3.1系统流设计 (3)
3.2系统模块设计 (4)
4.详细设计 (5)
4.1数据结构设计 (5)
4.2模块接口设计 (6)
4.3 以下是几个主要模块的流程图: (7)
5.运行结果 (9)
5.1主菜单界面: (9)
5.2信息录入界面: (9)
5.3信息浏览界面: (10)
5.4 信息查询界面: (10)
5.5信息修改界面: (11)
6.程序调试与测试 (12)
6.1程序调试 (12)
6.2程序测试 (12)
7.问题与不足 (13)
8.建议 (13)
9.编程体会 (13)
10.程序源代码: (13)
11.参考文献 (30)
12.用户使用手册 (30)
1.课程设计目的
1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理
的模块化结构。
2)通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构
体、文件等数据结构。
3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,
培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
5)通过课程设计,加强了自己的程序分析能力。
2.需求分析
2.1要求
1)遵循软件开发过程的基本规;能灵活应用,初步具备运用C程序解决实际问题的能力。
2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、
概要设计、详细设计、编写代码、调试和测试C程序等过程。
3)学会利用数组、结构体、链表进行相关信息表示。
4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述
5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等
关系正确。
6)所设计的C程序较好的可读性和可靠性;程序书写风格规,注释清晰。
7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息
有较完善的值域分析。
8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。
9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。
10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
11)C语言课程设计报告的容反应实际设计过程,且符合格式要求,无抄袭现象。
2.2任务描述
此系统以对职工考勤为背景,提供对职工信息、上下班时间的新建、录入、编辑、查询、密码保护等功能。具体功能实现如下:
1)职工信息新建:实现职工工号以及的录入功能,并能将其以文件形式加以保存。
2)考勤信息编辑:实现对职工上下时间的记录,并对指定职工的考勤信息进行删除或修改等
功能。
3)考情信息浏览:实现对全体职工当天迟到、早退、矿工、全勤的浏览功能。
4)查询功能:实现按工号或查询职工一周的上下班时间的功能。
5)密码功能:实现对进入系统、修改和删除考勤信息的保护功能以及密码重设的功能。
6)系统以菜单方式工作,界面清晰,易于操作。
2.3运行环境
1)WindowsXP/7系统
2)VC++6.0编译环境
2.4开发工具
C语言
3.总体设计
3.1系统流设计
本系统的功能模块如图1所示,主要有以下模块:
图1系统功能模块图
3.2系统模块设计
1)系统欢迎界面:构造函数void welcome(),实现欢迎使用职工考勤管理系统的显示。
2)主菜单界面:构造函数int menu_select(),实现系统主菜单的显示。
3)职工信息新建:构造函数void createInfo(),实现职工基本信息的录入及显示。并可以
通过函数void deleteRec()和void modifyRec(),实现对职工基本信息的删除和修改。
4)职工考勤录入:构造函数void createRec(),实现由主菜单选择通过工号和两种方式职
工上下班时间的录入。
5)职工考勤修改:构造函数void modifyRec(),实现由主菜单选择通过工号和两种方式
对职工考勤以及基本信息的修改。
6)职工考勤删除:构造函数void deleteRec(),实现由主菜单选择通过工号和两种方式
对职工考勤信息的删除。
7)职工考勤查询:构造函数void searchRec(),实现对指定职工一周上下班的时间的查询。
8)职工考勤浏览:构造函数void listRec();,实现所有职工一天中上下班的出勤情况的浏
览。
9)密码重设:构造函数void resetPassword(),实现对初始密码888888的重设,并保存
在文件中
10)保存所有信息:构造函数void saveRec(),实现随时对考勤信息的保存。
4.详细设计
4.1数据结构设计
为了能实现不受限制的增加职工信息,采用链表的结构保存职工信息,在增加职工的基本信息时,创建一个职工信息的节点,将其插入到链表中,示意图如下。
为此,先声明一个类型为struct worker的结构体,其成员为职工的考勤信息。然后通过对指针、链表、文件等数据结构的操作,实现对职工考勤信息的录入,插入,存盘,查询,浏览,删除,修改等一系列操作。还声明了一个结构体TIME,用于储存职工上下班的时间。其中,结构体定义如下:
typedef struct //结构体定义
{
int hour;