C语言课程设计

发布 2022-09-30 16:26:28 阅读 5016

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月 计算机科学与技...