hubei university of automotive technology
课程设计报告。
课设题目: 考勤管理系统。
专业自动化。
班级t1123-5
姓名薛志波。
成绩良。完成日期: 2024年6月28日-2024年6月30日
指导教师史旅华孙剑萍。
1.课程设计目的。
1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2) 通过课程设计,进一步掌握c语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。
3) 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4) 通过课程设计,培养c语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
5) 通过课程设计,加强了自己的程序分析能力。
2.需求分析。
1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用c程序解决实际问题的能力。
2) 运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写**、调试和测试c程序等过程。
3) 学会利用数组、结构体、链表进行相关信息表示。
4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述。
5) 各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。
6) 所设计的c程序较好的可读性和可靠性;程序书写风格规范,注释清晰。
7) 界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。
8) 程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。
9) 学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。
10) 掌握编写、调试和测试c语言程序的基本技巧,充分理解结构化程序设计的基本方法。
11) c语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。
假定公司有职工10人,职工有职工号、姓名、以周为记录时长的考勤情况(迟到次数、早退次数、旷工天数)三项记录,一周上班五天,每天上午上班时间为8:00,下班时间为11:30、下午2:
00上班,5:30下班。
试设计一考勤管理系统,使之能提供以下功能:
1) 系统以菜单方式工作(用键盘输入1~5之间的数来选择功能,其中6为退出)
2) 职工上班、下班录入功能(职工号、姓名任意给一个即可,上班时间(自动获取系统时间)、下班时间(自动获取系统时间))
3) 职工出勤情况整体浏览功能(职工号、姓名、(迟到、早退、旷工)、无前项则显示全勤)
4) 查询功能,按职工号、姓名、迟到、早退、旷工、全勤查询(至少一种查询方式)
5) 职工考勤信息的删除(给定密码后可按职工号、姓名、考勤情况任一项进行删除)
6) 考勤信息的修改(给定密码后可按职工号、姓名、考勤情况任一项进行删除)
7) 所有数据符合实际应用要求。
1) windowsxp/7系统。
2) vc++6.0编译环境。
c语言。3.总体设计。
本系统的功能模块如图1所示,主要有以下模块:
图1系统功能模块图。
1) 主菜单界面:构造函数void menu(),实现系统主菜单的显示。
2) 删除职工资料:构造函数void del(link l),实现职工资料的删除。并且要密码输入的要求(可以修改密码)。
3) 职工资料录入:构造函数void qur1(link l)和void qur2(link l)。分别对应上班时间和下班时间的录入。
4) 查询职工资料:构造函数void find(link l),实现对需要修改资料的学生的查询,并提供姓名和工号两种查询方式。
5) 修改职工资料:构造函数void modify(link l),实现职工对工号和姓名的修改。
6) 保存职工资料:构造函数void s**e(link l),实现资料修改,删除等功能之后的保存。
7) 整体浏览:构造函数void disp(link l),实现对全部职工的全部信息的浏览。
4.详细设计。
根据具体的题目来写这部分,不要照抄)
根据系统要求,系统中需要保存的数据信息,其结构如下:
根据系统要求,系统中需要保存的类别信息,其结构如下:
根据具体的题目来写这部分,不要照抄)
为了能实现不受限制的增加职工信息,采用链表的结构保存职工信息,在增加职工的基本信息时,创建一个职工信息的节点,将其插入到链表中,示意图如下。
为此,先声明一个类型为struct wrker的结构体,其成员为学生的简历信息。然后通过对指针、链表、文件等数据结构的操作,实现对学生简历信息的录入,插入,存盘,查询,浏览,删除,修改等一系列操作。其中,结构体定义如下:
ststruct worker
char num[13];/工号 */
char name[20];/姓名*/
int late;
int early;
int nowork;
typedef struct node
struct worker data;
struct node *next;
node,*link; /结构体指针*/4.2模块接口设计。
1) 所有函数模块声明如下:
void menu ()显示菜单*/
node* search/*定位链表中符合要求的接点,并返回该指针*/
void qur1(link l) /职工上班录入功能 */
void qur2(link l) /职工下班录入功能 */
void find(link l) /查询职工的信息 */
void del(link l)/*删除职工信息 */
void modify(link l) /修改职工板块 */
void disp(link l) /浏览全体职工的信息 */
void s**e(link l) /职工信息的保存 */
int main()/主函数 */
2) 并定义一个全局变量:
typedef struct *link;
3) 主要模块的实现。
系统以主函数void main()为入口,首先通过textcolor(black)以及textbackgroud(white)将文本颜色置为黑色,背景颜色置为白色。
然后调用void mai ()函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。
1) 主菜单函数:
图2 主函数流程图。
2) 全体信息浏览函数:
3) 信息查询函数:
5.运行结果。
图5主菜单界面。
输入功能选择,系统自动进入相应功能界面。
图6 信息录入界面。
图7 全部信息浏览。
5.3信息查询界面。
图8按工号查询。
图9 按姓名查询。
从键盘中输入选择,可以修改学号和姓名。
图10 修改信息。
从键盘中输入选择。
图11 文件保存。
1)上班录入界面。
2)下班录入界面。
6.程序调试与测试。
主菜单功能调试。
删除功能调试:
录入功能调试:
查询功能调试:
修改功能调试:
1) 各模块测试用例数据的确定。随机确定的。
2) 测试结果。正常。
3) 测试**现的问题的原因和分析。出现读取错误的现象。原因是因为疏忽忘了在前面加地址符。
7.问题与不足。
1)在编写**时,总是犯一些低级的错误,例如大小写字母的切换,分号和大括号的遗漏等。
2)需求中的返回主菜单,仍需要改进,应在每个子菜单输出打印后都能返回主菜单。
3)界面的设计不是很灵活,有些东西略显多余。
8.建议。课程设计的过程第一个综合学习的过程,需要运用很多以前学过甚至是没学过的知识点和相关函数。
因此同学们必须查大量的资料或者是问同学们、老师们,此阶段用的时间较长。在老师验收程序时,希望老师能考虑到这一点。
9.编程体会。
此次的课程设计让我真正的体会到了c语言的魅力。此过程是一个漫长的过程,需要我们认真耐心的对待,只有这样,我们的程序才会达到预期的完美效果。
这个可设差不多做了两个星期左右,这几天每天都呆在机房中。刚开始对题目根本没有什么头绪,在接下来的两三天每天看以前学过的知识,特别是指针、链表、文件三大块,因为这三块是c语言中最核心的知识。复习过后,脑中开始大体上有了一个初步的框架,之后的每天都在不断地编写,不断地运行,不断地修改,就这样过了一个星期左右,整个程序基本上完成了,剩下的就是将不完善的地方在进行完善。
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...