c课程设计学生考勤管理系统报告

合集下载

C语言课程设计总结报告学生考勤系统设计

C语言课程设计总结报告学生考勤系统设计

C语言程序设计课程设计报告
设计题目:学生考勤系统设计
专业自动化
班级自动化071
学生朱胜佳
指导教师梁德胜
2020 年春天学期
一、整体设计
1.程序的整体设计
◎确信界面,利用户可选择操作项目(录入,修改,查询,评分)。

◎录入功能:利用结构体,要求用户输入姓名、性别、学号、日期、节次、当前出勤情形等信息,并写入文件。

◎修改功能:利用户输入学号,姓名其中一项能够修改考勤其信息。

关于修改功能的实现,是先将所有文件内容读入到内存中,然后修改考勤值,最后再从头覆盖写入文件。

◎查询模块:利用字符串比较函数,利用循环找到对应结构体数组元素,然后输出需要信息。

关于查询功能的实现,同修改,是先将所有文件内容读入到内存中,然后查找到其中某项,最后输出到屏幕。

◎评分模块:系统依照总的应道考勤数依照百分制,求出每一个学生的分数,并输出到屏幕。

2. 数据结构
学生信息用结构体记录,包括姓名(字符数组)、性别(字符型)、日期(年月日三个字符数组)、节次(整型)、出情形(整型)。

3. 函数原型声明
开始record() 函数。

C++课程设计报告-学生考勤管理系统的设计与实现

C++课程设计报告-学生考勤管理系统的设计与实现

面向对象程序设计(C++)课程设计任务书学院计算机与信息工程学院专业通信工程课程名称面向对象程序设计(C++)题目学生考勤管理系统的设计与实现完成期限自2017年6月12日至2017年6月17日共6天内容及任务一、项目目的1.巩固和加深学生对程序设计课程基本知识的理解,综合该课程中所学的理论知识,独立或联合完成一个应用课题的设计;2.根据选题需要,通过查阅手册和文献资料,培养分析和解决实际问题的能力;3.进一步提高使用C++进行软件开发的能力。

二、项目任务的主要内容和要求设计一个学生考勤管理系统。

可以实现对学生信息的添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能、保存功能、读取功能、排序功能。

实现:学生信息的录入:修改:删除和查询,按姓名或学号查询。

应用系统分析,建立该系统的功能模块框图以及界面的组织和设计,分析系统中的各个实体及它们之间的关系,根据问题描述,设计系统的类层次;完成系统的应用模块。

三、项目设计(研究)思路考勤管理系统要实现对学生考勤的信息录入,根据给定信息对学生考勤结果进行分类统计,以及结果查询。

四、具体成果形式和要求成果形式:程序和报告。

具体要求:建立一个学生考勤信息数据库,文件名为“学生考勤管理系统.txt”并从该文件写入数据。

学生考勤管理系统要实现对学生考勤的信息录入,根据给定信息对学生考勤进行分类。

进度安排起止日期工作内容2017年6月12日需求分析,按照课题要求,搜集查询相关参考资料。

2017年6月13日至2017年6月14日概要设计和详细设计阶段,根据前期的需求分析结果,定义系统实现所需要的自定义函数数据类型及个功能函数。

2017年6月15日至2017年6月17日程序的进一步完善,调试与测试撰写课程设计报告。

主要参资料考[1].谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2014[2].梁旭.C语言课程设计(第三版)[M].北京:电子工业出版社,2013[3].刁成嘉.面向对象程序设计[M].北京:机械工业出版社,2004[4].张鸿.C++语言程序设计[M].北京:中国电力出版社,2014指导教师意见(签字):年月日系(教研室)主任意见(签字):年月日面向对象程序设计(C++)课程设计说明书学院名称:计算机与信息工程学院班级名称:通信 162 学生姓名:沈杰学号: 2016211881 __ 题目:学生考勤管理系统的设计与实现指导教师姓名:王南洋起止日期:2017年6月12日至 2017年6月 17 日目录1 系统需求分析 (5)1.1 录入学生的缺课记录 (5)1.2 修改学生的缺课记录 (5)1.3 查询学生的缺课情况 (5)1.4 统计 (5)1.4.1 统计姓名及节数 (5)1.4.2 统计课程及人次 (5)1.5 小结 (5)2 总体设计 (6)3 详细设计 (7)3.1 学生缺课信息录用功能模块 (8)3.2 修改某学生缺课信息功能的模块图 (8)3.3 查询某学生缺课信息功能图 (9)3.4 统计某段时间内旷课学生姓名及旷课节数功能模块 (9)3.5 统计某段时间内有学生旷课的课程及旷课人次功能模块 (9)4 系统调试 (10)4.1系统实现 (10)4.2类的设计 (10)5 结果分析 (18)5.1 综合测试原始界面 (19)5.1.1 录入学生缺课记录 (19)5.1.2 修改学生缺课记录 (19)5.1.3 查询学生缺课情况 (20)5.1.4 统计某段时间旷课学生姓名及旷课节数 (20)6 总结 (20)1 系统需求分析考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。

c考勤管理系统课程设计

c考勤管理系统课程设计

c 考勤管理系统课程设计一、课程目标知识目标:1. 学生理解考勤管理系统的基本概念,掌握其功能模块和工作流程。

2. 学生掌握使用编程语言(如Python)设计并实现一个简单的考勤管理系统。

3. 学生了解数据库管理的基本原理,能够运用到考勤管理系统中进行数据存储和查询。

技能目标:1. 学生能够运用所学知识,独立设计并编写出具备基本功能的考勤管理系统。

2. 学生通过项目实践,提高问题分析、程序设计和调试的能力。

3. 学生学会使用数据库技术进行数据管理,提高数据处理和分析的能力。

情感态度价值观目标:1. 学生培养对计算机编程和数据库管理的兴趣,激发学习积极性。

2. 学生通过团队协作完成项目,培养沟通、协作和团队精神。

3. 学生认识到考勤管理系统在实际应用中的重要性,增强实践操作和创新能力。

课程性质:本课程为信息技术课程,以项目实践为主,结合理论教学。

学生特点:学生为初中年级,具备一定的计算机操作基础,对编程和数据库有一定了解。

教学要求:教师需引导学生运用所学知识,以项目为导向,注重实践操作和团队协作。

在教学过程中,关注学生的个体差异,提高学生的编程能力和数据处理能力。

通过课程学习,使学生能够将所学知识应用于实际问题的解决中。

二、教学内容1. 考勤管理系统的基本概念与功能模块介绍:包括考勤系统的定义、作用、常见功能模块划分及工作流程。

教材章节:第三章第二节《数据库应用系统概述》2. 编程语言基础:运用Python语言进行考勤管理系统的设计与实现,涵盖变量、条件语句、循环语句等基本语法。

教材章节:第二章《Python编程基础》3. 数据库管理:介绍数据库的基本原理,以MySQL为例,进行数据存储、查询和管理操作。

教材章节:第四章《数据库基础与应用》4. 考勤管理系统设计与实现:结合实际需求,引导学生进行系统设计,编写代码实现考勤管理功能。

教材章节:第五章《数据库应用系统设计》5. 项目实践:分组进行考勤管理系统项目实践,包括需求分析、系统设计、编码实现、测试与优化等环节。

c语言课程设计学生考勤系统设计

c语言课程设计学生考勤系统设计

c语言课程设计学生考勤系统设计一、课程目标知识目标:1. 学生能够掌握C语言基础语法,包括数据类型、变量定义、运算符、控制结构等。

2. 学生能够理解结构体和数组在C语言中的应用,并能运用其设计学生考勤系统。

3. 学生能够掌握文件操作在C语言中的使用,实现对考勤数据的存储和读取。

技能目标:1. 学生能够运用C语言编写程序,实现学生考勤系统的基本功能,如学生信息的添加、删除、修改和查询。

2. 学生能够利用所学知识对程序进行调试和优化,提高代码执行效率。

3. 学生能够通过课程学习,培养解决问题、分析问题和编程实现的能力。

情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高主动学习的积极性。

2. 学生能够通过课程实践,认识到编程对解决实际问题的价值,增强自信心和成就感。

3. 学生在团队协作中,学会沟通与交流,培养合作精神和集体荣誉感。

课程性质:本课程为实践性较强的课程,旨在通过设计学生考勤系统,让学生将所学C语言知识应用于实际项目中。

学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。

教学要求:注重理论与实践相结合,通过课程设计,提高学生的编程能力和解决实际问题的能力。

将目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. C语言基础语法复习:包括数据类型、变量定义、运算符、控制结构(如if 语句、循环语句等)。

相关教材章节:第一章至第三章。

2. 结构体和数组的应用:介绍结构体定义、数组的使用,结合实例讲解如何存储和管理学生信息。

相关教材章节:第四章、第七章。

3. 文件操作:讲解文件打开、读写、关闭等操作,以及如何将学生考勤数据存储到文件中。

相关教材章节:第十章。

4. 函数和模块化编程:引导学生学会将程序功能模块化,提高代码的可读性和可维护性。

相关教材章节:第六章。

5. 调试与优化:介绍常见编程错误类型,教授调试技巧,提高代码执行效率。

相关教材章节:第十二章。

考勤管理系统c语言课程设计报告

考勤管理系统c语言课程设计报告

考勤管理系统c语言课程设计报告课程设计报告:考勤管理系统一、引言随着企业规模的不断扩大,考勤管理成为企业日常管理中的重要环节。

为了提高考勤管理的效率和准确性,我们设计了一个基于C语言的考勤管理系统。

本系统能够实现员工考勤信息的录入、查询、修改和统计等功能,为企业提供了一个方便、快捷的考勤管理平台。

二、系统设计1. 系统功能设计本系统主要包括以下几个功能模块:(1)员工信息管理模块:用于添加、删除、修改和查询员工基本信息,包括姓名、部门、职位等。

(2)考勤信息管理模块:用于记录员工的考勤情况,包括上下班时间、请假记录等。

同时支持迟到、早退、旷工等异常情况的记录和处理。

(3)考勤统计模块:根据员工的考勤记录,自动计算员工的出勤率、迟到率、请假率等数据,并生成相应的统计报表。

(4)系统管理模块:用于设置系统的参数,如工作日、上班时间、节假日安排等;同时提供权限管理和日志查看功能,保证系统的安全性和稳定性。

2. 数据库设计本系统采用结构化查询语言(SQL)进行数据库设计,包括员工表、考勤表和统计表等。

其中,员工表存储员工的基本信息,如姓名、部门、职位等;考勤表存储员工的考勤记录,如上下班时间、请假记录等;统计表存储员工的出勤率、迟到率等统计数据。

通过合理的数据库设计,能够提高系统的数据处理能力和查询效率。

三、系统实现1. 员工信息管理模块实现在员工信息管理模块中,我们使用C语言中的结构体来表示员工信息,包括姓名、部门、职位等字段。

通过添加、删除、修改和查询等操作,实现对员工信息的维护和管理。

同时,为了方便用户操作,我们使用菜单驱动的方式实现交互界面,用户可以根据菜单提示进行相应的操作。

2. 考勤信息管理模块实现在考勤信息管理模块中,我们使用时间函数获取当前时间,并记录员工的上下班时间。

同时,根据员工的请假记录和异常情况处理规则,实现请假申请、异常情况处理等功能。

为了方便用户查询和管理考勤信息,我们设计了友好的界面和查询功能,用户可以根据姓名、部门等条件进行考勤记录的查询和筛选。

学生考勤系统C语言课程设计报告

学生考勤系统C语言课程设计报告

课程设计说明书学院、系:软件学院专业:软件工程学生姓名:卢青学号:1514011242 设计题目:学生考勤系统起迄日期: 2016年2月29日~2016年3月11日指导教师:富丽贞第1章设计目的本次C语言课程设计是对本学期程序设计基础课程的实际应用,也算是对所学知识的一次检验,通过本次课程设计能达到的目的如下:1.巩固和加深对C课程基本内容和理论知识的理解和掌握。

2.掌握C语言编译和程序调试的基本技能。

3.利用C语言进行基本的程序设计从而逐步了解文件的一些相关操作和掌握函数的使用技巧,包括函数类型的选择,含参数的传递方式。

4.掌握使用数组,指针,引用,文件等编译的方法,提高运用C语言解决实际问题的能力。

5.通过对学生考勤系统的设计、编写源代码,以及对C语言中各个语法和函数的使用,使得对比较复杂的结构体、链接、文件的操作更加熟悉。

6.通过课程设计,将本学期所学知识与实际应用联系和结合起来,培养自己的动手能力,以及加强各学科之间的联系,从而提高个人的团队意识,增强团队之间协调和配合第2章总体设计2.1学生考勤信息记录系统的要求通过该系统实现对学生考勤信息进行创建、录入、修改、查询、保存等操作的管理。

实验考勤信息包括学生姓名,学号,学科种类,各科的考勤信息。

主要功能:1)、能够完成对考勤的录入和修改2)、创建一个班级的信息3)、设备的查询4)、将考勤信息保存到文件中2.2流程图根据设计要求,画出如下流程图:2.3设置的主要函数void creat(void);void save(struct Student *,char []);struct Student *load(char []);void enter(void); /*录入函数*/void search_1(void); /*查询函数_1*/void search_2(void); /*查询函数_2*/void add(void);void modify(void); /*修改函数*/ void back(void); /*退出函数*/ void mune_1(); /*界面-1*/void mune_2(); /*界面-2*/mune_1();mune_2();3.1函数以及调用关系void mune_1(); /*菜单函数1*/ void mune_2() /*菜单函数2*/②nvoid search_2(void); /*查询班级信息*/void modify(void); /*修改函数*/假void save(struct Student *,char []);struct Student *load(char filename[])。

学生考勤系统c语言课程设计

学生考勤系统c语言课程设计

学生考勤系统c语言课程设计一、课程目标知识目标:1. 理解C语言在开发学生考勤系统中的应用,掌握基本的数据类型、变量、运算符和表达式;2. 学会使用C语言控制结构,如顺序、分支和循环结构,实现对考勤数据的逻辑处理;3. 掌握C语言数组、函数和文件操作,实现考勤数据的存储、读取和统计。

技能目标:1. 能够运用C语言编写程序,设计并实现一个简单的学生考勤系统;2. 培养学生分析问题、解决问题的能力,使其能够根据需求进行程序设计和调试;3. 学会使用C语言相关开发工具,如编译器和调试器,提高实际操作能力。

情感态度价值观目标:1. 培养学生对C语言编程的兴趣和热情,激发其主动学习和探究的精神;2. 增强学生的团队合作意识,使其在课程设计和实践过程中相互协作、共同进步;3. 通过课程学习,让学生认识到编程在现实生活中的应用价值,提高其创新意识和实践能力。

课程性质:本课程为实践性较强的课程设计,旨在让学生将所学的C语言知识运用到实际项目中,提高编程能力和解决实际问题的能力。

学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础,但实际项目经验不足。

教学要求:结合学生特点,注重实践操作,引导学生主动思考,培养其编程能力和团队协作能力。

在教学过程中,关注学生个体差异,因材施教,确保每位学生能够达到课程目标。

通过课程设计,使学生在实践中巩固所学知识,提高综合运用能力。

二、教学内容1. C语言基本知识回顾:数据类型、变量、常量、运算符和表达式;2. 控制结构:顺序结构、分支结构(if-else、switch-case)、循环结构(for、while、do-while);3. 函数:函数的定义、声明、调用,以及递归函数;4. 数组:一维数组、二维数组,数组的使用和操作;5. 文件操作:文件打开、关闭、读写,以及文件定位;6. 学生考勤系统功能模块设计:用户登录、学生信息管理、考勤记录、考勤统计等;7. 项目实践:根据需求分析,引导学生运用所学的C语言知识进行学生考勤系统的设计和实现;8. 编程规范和调试技巧:培养学生良好的编程习惯,提高代码质量。

学生考勤管理系统c课程设计

学生考勤管理系统c课程设计

学生考勤管理系统c 课程设计一、课程目标知识目标:1. 让学生掌握数据库的基本操作,包括数据的增删改查。

2. 理解并应用面向对象编程思想,设计学生考勤管理系统的功能模块。

3. 掌握使用至少一种编程语言(如Java、C#等)实现学生考勤管理系统的基本功能。

技能目标:1. 培养学生运用所学知识解决实际问题的能力,通过设计学生考勤管理系统,提高编程实践能力。

2. 提高学生的团队协作能力,学会在项目中进行有效沟通与分工合作。

情感态度价值观目标:1. 培养学生对待编程学习的积极态度,激发对信息技术的兴趣和热情。

2. 增强学生的责任感,认识到考勤管理的重要性,培养良好的团队精神和职业道德。

课程性质分析:本课程为信息技术或计算机科学相关专业的实践课程,结合实际应用场景,培养学生编程实践能力和解决实际问题的能力。

学生特点分析:学生处于高年级阶段,已经具备一定的编程基础和数据库知识,能够理解和运用面向对象编程思想,具备一定的自主学习能力。

教学要求:1. 结合学生特点,以项目驱动的方式进行教学,注重理论与实践相结合。

2. 教师应引导学生主动参与课程,鼓励学生提问和发表见解,培养学生的创新思维。

3. 教学过程中要关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。

二、教学内容1. 数据库基础知识回顾:数据表的设计与创建,数据类型的定义,关键字的设置。

2. 面向对象编程:类与对象的概念,封装、继承、多态性的应用,设计模式的基本了解。

3. 编程语言的选择与应用:根据学生已有知识,选择适合的编程语言(如Java、C#等),讲解其在系统开发中的应用。

4. 学生考勤管理系统功能模块设计:需求分析,系统设计,模块划分,功能描述。

- 用户模块:用户注册、登录、权限管理。

- 考勤模块:考勤记录的添加、查询、修改和删除。

- 报表模块:考勤统计报表的生成与导出。

5. 编程实践:指导学生进行系统开发,实现各功能模块,进行单元测试和集成测试。

C语言考勤管理系统课程设计

C语言考勤管理系统课程设计

C语言考勤管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在考勤管理系统中的应用,掌握基本的数据类型、运算符、控制结构等语法知识。

2. 学生能运用结构体、文件操作等C语言特性,实现员工信息的增删改查功能。

3. 学生了解并掌握模块化编程思想,将系统分解为多个功能模块,提高代码的可读性和可维护性。

技能目标:1. 学生能够独立设计并编写C语言程序,实现考勤管理系统的基本功能。

2. 学生能够运用调试工具(如Turbo C)查找并修复程序中的错误,提高程序的稳定性和可靠性。

3. 学生掌握基本的算法和数据结构,能够对程序进行优化,提高系统性能。

情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣和热情,提高信息素养。

2. 学生能够意识到编程在实际应用中的重要性,增强解决问题的信心和责任感。

3. 学生在团队协作中,培养沟通与协作能力,尊重他人的观点,共同完成项目任务。

课程性质:本课程为实践性课程,以项目为导向,结合C语言编程知识,培养学生实际编程能力。

学生特点:学生为初中生,具备一定的计算机操作基础,对编程有一定兴趣,但缺乏实际编程经验。

教学要求:教师需结合学生特点,以实际项目为载体,引导学生掌握C语言编程知识,培养实际编程能力。

通过项目实践,使学生能够将所学知识应用于实际问题的解决,提高学生的综合素养。

在教学过程中,注重培养学生的团队协作能力和创新精神,使学生在完成项目任务的同时,实现知识、技能和情感态度价值观的全面提升。

二、教学内容1. C语言基础知识回顾:数据类型、变量、常量、运算符、表达式等,对应教材第一章。

2. 控制结构:顺序结构、选择结构、循环结构,对应教材第二章。

3. 函数:函数定义、调用、传参、返回值,对应教材第三章。

4. 结构体和文件操作:结构体的定义和使用、文件读写操作,对应教材第四章和第六章。

5. 模块化编程:模块划分、模块间通信、主函数设计,结合教材第三章和第五章。

c语言课程设计学生考勤系统

c语言课程设计学生考勤系统

c语言课程设计学生考勤系统一、教学目标本课程旨在通过C语言编程实现一个学生考勤系统,让学生掌握C语言的基本语法、数据结构、函数、文件操作等知识,培养学生具备良好的编程习惯和问题解决能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和编程技巧。

–熟悉结构体、数组、链表等数据结构的基本使用。

–理解函数的定义、声明和调用。

–学会文件操作,包括文件的打开、读写、关闭等。

2.技能目标:–能够运用C语言实现一个简单的学生考勤系统,包括学生的增删改查、考勤记录的保存和展示等功能。

–培养学生独立分析问题、解决问题的能力。

–培养学生的编程思维和良好的编程习惯。

3.情感态度价值观目标:–激发学生对计算机编程的兴趣,提高学生主动学习的积极性。

–培养学生团队合作、自主探究的精神。

–使学生认识到C语言在实际应用中的重要性,提高学生对计算机科学的认知。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、文件操作等。

具体安排如下:1.C语言基本语法:介绍变量、常量、运算符、表达式等基本概念,以及条件语句、循环语句等控制结构。

2.数据结构:学习结构体、数组、链表等数据结构的基本使用,为后续学生考勤系统的实现打下基础。

3.函数:讲解函数的定义、声明和调用,使学生能够熟练使用函数编写代码,提高代码的可读性和可维护性。

4.文件操作:学习文件的基本操作,包括文件的打开、读写、关闭等,以便学生能够实现对学生考勤数据的保存和加载。

5.学生考勤系统实现:通过实际项目练习,让学生掌握所学知识,实现一个具有增删改查等功能的学生考勤系统。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据结构、函数等理论知识,使学生能够系统地掌握所学内容。

2.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的重要性,提高学生的学习兴趣。

3.实验法:让学生动手实践,实现学生考勤系统,培养学生的编程能力和问题解决能力。

c学生考勤管理系统课程设计

c学生考勤管理系统课程设计

c 学生考勤管理系统课程设计一、课程目标知识目标:1. 让学生理解考勤管理系统的基本概念和原理;2. 掌握运用编程语言(如Python)设计并实现一个简易的考勤管理系统;3. 学会使用数据库(如MySQL)存储和管理学生考勤数据;4. 了解考勤管理系统在实际应用场景中的作用和价值。

技能目标:1. 培养学生运用编程语言解决实际问题的能力;2. 提高学生使用数据库进行数据管理的技能;3. 培养学生团队协作、沟通表达的能力;4. 培养学生独立思考、分析问题和解决问题的能力。

情感态度价值观目标:1. 培养学生对待学习的认真态度,养成良好的出勤习惯;2. 增强学生对信息技术在日常生活和学习中应用的兴趣;3. 培养学生的创新意识,激发学生探索未知领域的热情;4. 培养学生遵守纪律、尊重他人的品质,提高社会责任感。

课程性质:本课程为信息技术课程,旨在通过实际项目案例,让学生掌握编程和数据库知识,提高解决实际问题的能力。

学生特点:六年级学生具有一定的信息技术基础,对新知识接受能力强,喜欢动手实践,但注意力集中时间较短。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,引导他们主动参与课堂讨论和实践活动,提高课程效果。

将课程目标分解为具体的学习成果,以便在教学设计和评估中关注学生的全面发展。

二、教学内容1. 考勤管理系统概述- 了解考勤管理系统的基本概念、功能与应用场景;- 分析现有考勤管理系统的优缺点。

2. 编程语言基础- 学习Python编程语言的基本语法;- 掌握变量、数据类型、运算符、流程控制等编程知识。

3. 数据库基础- 了解数据库的基本概念、类型及用途;- 学习MySQL数据库的基本操作,包括创建数据库、表、插入、查询等。

4. 考勤管理系统设计- 分析考勤管理系统的需求,明确系统功能;- 学习系统设计方法,制定详细设计文档。

5. 编程实现考勤管理系统- 根据设计文档,运用Python编程语言编写考勤管理系统;- 学习使用MySQL数据库存储和管理考勤数据。

c语言课程设计学生考勤系统

c语言课程设计学生考勤系统

c语言课程设计学生考勤系统一、课程目标知识目标:1. 让学生掌握C语言基础,包括数据类型、运算符、控制结构等。

2. 使学生了解文件操作、字符串处理等C语言高级应用。

3. 帮助学生掌握结构体和指针的使用,以便实现复杂的数据结构。

技能目标:1. 培养学生运用C语言进行程序设计的能力,特别是解决实际问题的能力。

2. 提高学生分析问题、设计算法、编写程序、调试程序的综合技能。

3. 培养学生团队协作和沟通能力,通过项目合作完成考勤系统的设计。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,提高学习积极性。

2. 培养学生严谨、认真的学习态度,养成良好的编程习惯。

3. 增强学生的创新意识,鼓励他们勇于尝试,克服困难,解决问题。

课程性质分析:本课程为C语言课程设计,旨在让学生通过实际项目实践,巩固所学知识,提高编程能力。

学生需具备一定的C语言基础,了解程序设计的基本方法。

学生特点分析:本课程面向高中或大一学生,他们具有较强的学习能力和好奇心,但实践经验不足。

部分学生对编程兴趣浓厚,动手能力强,但也有部分学生对编程感到恐惧。

教学要求:1. 结合学生特点,注重实践操作,让学生在动手过程中掌握知识。

2. 针对不同学生的学习需求,提供个性化指导,提高教学效果。

3. 重视团队协作,鼓励学生相互学习,共同进步。

1. 掌握C语言基础知识,能运用所学编写程序。

2. 学会分析实际问题,设计合理的程序结构和算法。

3. 提高团队协作能力,养成良好的编程习惯和沟通技巧。

4. 增强解决实际问题的信心和兴趣,为后续学习打下坚实基础。

二、教学内容1. C语言基础知识回顾:数据类型、变量、运算符、控制结构(选择、循环)。

参考教材章节:第一章至第四章。

2. 函数与模块化编程:函数定义、调用、参数传递;模块化设计理念。

参考教材章节:第五章。

3. 结构体与指针:结构体定义、初始化、使用;指针的概念、操作。

参考教材章节:第六章、第七章。

4. 文件操作:文件打开、关闭、读写;文本文件与二进制文件的区分与操作。

c学生考勤管理系统课程设计

c学生考勤管理系统课程设计

c 学生考勤管理系统课程设计一、教学目标本课程旨在让学生了解和掌握学生考勤管理系统的基本原理和实现方法。

通过本课程的学习,学生将能够:1.理解学生考勤管理系统的需求和功能;2.掌握学生考勤管理系统的基本设计和实现方法;3.学会使用学生考勤管理系统进行日常考勤管理。

二、教学内容本课程的教学内容主要包括以下几个部分:1.学生考勤管理系统的需求分析;2.学生考勤管理系统的设计原理;3.学生考勤管理系统的实现方法;4.学生考勤管理系统的使用和维护。

三、教学方法为了更好地实现教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解学生考勤管理系统的相关理论知识,使学生掌握基本概念和原理;2.案例分析法:通过分析实际案例,使学生了解学生考勤管理系统的应用场景和实现方法;3.实验法:通过上机实验,使学生学会使用学生考勤管理系统进行日常考勤管理。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:为学生提供学生考勤管理系统的基本理论知识;2.多媒体资料:为学生提供直观的演示和讲解,增强学习的趣味性和实用性;3.实验设备:为学生提供上机操作的机会,巩固所学知识。

通过以上教学设计,我们期望学生能够掌握学生考勤管理系统的基本原理和实现方法,提高学生的实际操作能力,为今后的学习和工作打下坚实的基础。

五、教学评估为了全面、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解能力;2.作业:布置与课程内容相关的作业,评估学生的知识掌握和应用能力;3.考试:定期进行考试,全面测试学生的知识水平和应用能力。

六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生系统地掌握知识;2.教学时间:安排合理的课堂时间,保证教学内容的充分讲解和实践;3.教学地点:选择适宜的教室进行教学,提供良好的学习环境。

c课课程设计学生考勤系统

c课课程设计学生考勤系统

c 课课程设计学生考勤系统一、教学目标本课程旨在让学生掌握学生考勤系统的核心知识,包括系统的设计、实现和应用。

在知识目标方面,学生需要理解并掌握Java编程语言、数据库设计、软件工程等基本知识。

在技能目标方面,学生需要具备使用Java编程语言进行系统开发的能力,能够独立完成数据库的设计和操作,掌握软件工程的基本方法。

在情感态度价值观目标方面,学生需要培养团队合作意识,增强对软件工程实践的认知,提升解决实际问题的能力。

二、教学内容本课程的教学内容主要包括四个部分:Java编程基础、数据库设计、软件工程方法、学生考勤系统设计与实现。

其中,Java编程基础重点讲解Java语言的基本语法、面向对象编程思想;数据库设计主要介绍关系型数据库的基本概念、设计方法;软件工程方法重点讲解软件开发的生命周期、设计模式;学生考勤系统设计与实现则是将前面所学知识综合运用,设计并实现一个功能完善的学生考勤系统。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

包括讲授法、讨论法、案例分析法、实验法等。

在讲授基本知识时,以讲授法为主,辅以案例分析法,让学生在理论联系实际的过程中加深对知识的理解;在实践环节,采用实验法,让学生亲自动手操作,增强实践能力;在整个教学过程中,鼓励学生积极参与讨论,培养团队合作精神。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:教材《Java编程基础》、《数据库原理与应用》、《软件工程导论》;参考书《Java核心技术》、《MySQL权威指南》、《软件工程实践》;多媒体资料:Java编程实例、数据库操作视频、软件工程案例分析;实验设备:计算机、服务器、数据库管理系统。

通过丰富多样的教学资源,为学生提供全面、立体的学习体验。

五、教学评估本课程的评估方式将包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。

平时表现主要评估学生在课堂上的参与度、讨论活跃度等;作业则主要评估学生的编程实践能力,如学生考勤系统的功能实现;考试则是对学生整个学期学习成果的全面检验,包括理论知识和技术应用两个方面。

C语言课程设计——学生考勤管理系统

C语言课程设计——学生考勤管理系统

C语言课程设计——学生考勤管理系统C语言课程设计——学生考勤管理系统题目要求:学生考勤管理系统设计(1)问题描述考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。

采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。

系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。

(2)功能要求录入学生的缺课记录;修改某个学生的缺课记录;查询某个学生的缺课情况;统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;系统以菜单方式工作。

保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

设计文档:目录一、需求分析…(1)总体分析…(2)细化分析…(3)操作分析…二、主调函数定义及文件结构划分…(1)主调函数定义…(2)文件结构划分…三、菜单指令编码…四、事件流效果图…五、存储结构设计…(1)存储结构分析…(2)存储结构确定…六、算法效率分析…七、开发记录与总结…一、需求分析(1)总体分析:本系统为一个基于CMD命令窗口的学生考勤管理系统,要求能够记录、删除、修改、查询学生的考勤信息(考勤信息包括学生学号、姓名、所缺课名、缺课节次、缺课类型、缺课时间),并且能够统计学生的历史考勤信息以及每堂课的到课情况,能够通过本系统便利的实现对学生考勤情况的把控,要求操作界面友好,便捷,有一定的容错率;系统大体流程如下:(2)细化分析:本系统可分为功能性和非功能性两部分;功能性部分:功能性部分可分为两个模块,即编辑模块和统计模块;·编辑模块:编辑模块需要实现增、删、改三个功能;首先对于增功能,总体考虑到两种插入方式:第一种方式,通过一份名单,在名单并未通过排序的情况下进行插入,这种方式在有同一人多次缺课的情况下无疑会造成名字、学号的大量重复输入,但不要求用户对名单进行处理;第二种方式,在对一份名单通过名字排序之后进行插入,用户只需输入一次名字和学号,之后每一次对于同一个学生的缺课信息只需要输入主体信息即可,这种方式省去了用户大量的操作冗余,提高了用户体验,因此推荐采用第二种插入方式,当然这种方式要求用户对名单进行一个统筹;对于删、改功能,考虑到三种编辑方式:第一种方式,让用户输入需要编辑的缺勤信息记录,然后对其进行删除或修改;这种方式同样存在用户操作上的冗余;第二种方式,每次进行编辑之前先将缺勤信息列表展示出来,让用户选择一条记录,然后进行删除或修改,这种方式省去了用户操作上的冗余,本系统采用该种方式;第三种方式,在用户进行修改删除之前让用户输入一个时间段和对象进行筛选,然后再结合第二种方式进行修改删除,这种方式既省去了大部分操作上的冗余,也在相当程度上避免了将筛选工作交给用户的情况(当然,当数据量非常庞大时仍然无法避免,因此建议在后续版本中增加定期清除记录的功能),建议采取第三种方式来实现修改、删除功能;·统计模块:统计模块需要实现两个功能,查询和排序;我将查询功能分到了统计模块,第一是因为查询功能并不需要对历史文件进行编辑;第二是因为查询功能实际上只是统计功能的一个缩减而已(省去排序);对于查询功能,在本系统的设计中是使用最为频繁的功能,按照本系统的设计思路,无论是用户直接进行查询,还是需要进行修改、删除、统计都需要对记录进行查询;因此如何加快查询速度就成了一个很重要的问题;查询功能的实现方式考虑到三种方式:第一种方式,将所有学生的缺课记录全部存储在一个文件,这样会造成一些问题。

学生考勤管理系统c课程设计

学生考勤管理系统c课程设计

学生考勤管理系统c课程设计一、课程目标知识目标:1. 理解并掌握C语言编程基础,包括数据类型、运算符、控制结构等;2. 学习使用C语言进行文件操作,实现数据的存储与读取;3. 掌握面向过程编程思想,能够运用结构体、函数等实现模块化编程;4. 了解学生考勤管理系统的需求分析、功能设计及实现方法。

技能目标:1. 能够运用C语言编写简单的学生考勤管理系统程序,实现学生信息的录入、查询、修改和删除功能;2. 培养学生的编程实践能力,提高解决问题的能力,学会运用编程语言实现实际应用;3. 学会使用调试工具,能够自主分析并解决程序中出现的错误。

情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人合作共同解决问题;2. 增强学生的自主学习能力,培养勇于尝试、敢于挑战的精神;3. 激发学生对编程的兴趣,提高对计算机科学的认识,培养创新精神和实践能力。

课程性质:本课程为实践性较强的课程,要求学生在理解理论知识的基础上,动手实践,完成一个具有实际意义的学生考勤管理系统。

学生特点:学生已具备一定的C语言基础,了解基本编程概念,但实际编程能力有待提高。

教学要求:注重理论与实践相结合,引导学生主动思考、动手实践,鼓励学生提问和分享,培养其解决问题的能力和团队协作精神。

通过课程学习,使学生在掌握C语言编程技能的同时,实现情感态度价值观的提升。

二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制结构(条件语句、循环语句);2. 文件操作:文件打开、关闭、读写等基本操作;3. 结构体与链表:结构体的定义和使用,链表的创建、插入、删除等操作;4. 函数:函数的定义、调用、参数传递,模块化编程;5. 学生考勤管理系统功能模块设计:- 学生信息管理:学生信息的录入、查询、修改和删除;- 考勤管理:考勤记录的录入、查询、统计;- 系统管理:用户登录、权限设置、数据备份与恢复;6. 系统集成与测试:各功能模块的集成,系统测试与调试。

C语言考勤管理系统课程设计

C语言考勤管理系统课程设计

C语言考勤管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,能够运用C语言设计一个简单的考勤管理系统。

通过本课程的学习,学生将能够理解C语言的基本数据类型、控制结构、函数等概念,并能够运用这些概念解决实际问题。

具体来说,知识目标包括:1.掌握C语言的基本数据类型和变量。

2.理解C语言的控制结构,如if语句、循环等。

3.学习C语言的函数定义和调用。

技能目标包括:1.能够编写简单的C语言程序。

2.能够运用C语言设计一个考勤管理系统,实现员工的签到、签退和请假等功能。

情感态度价值观目标包括:1.培养学生的编程兴趣,提高学生的自主学习能力。

2.培养学生的团队协作能力,使学生在团队合作中能够有效沟通和协作。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、控制结构、函数等。

具体安排如下:1.第一章:C语言概述。

介绍C语言的历史和发展,了解C语言的特点和用途。

2.第二章:基本数据类型和变量。

学习整型、浮点型、字符型等基本数据类型,以及变量的声明和赋值。

3.第三章:控制结构。

学习if语句、for循环、while循环等控制结构的使用。

4.第四章:函数。

学习函数的定义、声明和调用,了解函数的参数传递和返回值。

5.第五章:数组和字符串。

学习一维数组、二维数组的使用,了解字符串的基本操作。

6.第六章:指针。

学习指针的概念和用法,了解指针与数组、指针与函数的关系。

7.第七章:结构体和文件。

学习结构体的定义和使用,了解文件的基本操作。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体使用哪种教学方法,将根据教学内容和学生的实际情况灵活选择。

1.讲授法:在课堂上,教师将系统地讲解C语言的基本概念和语法,帮助学生建立扎实的理论基础。

2.讨论法:教师将学生进行小组讨论,让学生在讨论中解决问题,提高学生的思维能力和解决问题的能力。

学生考勤系统课程设计c

学生考勤系统课程设计c

学生考勤系统课程设计c一、教学目标本课程旨在让学生了解并掌握学生考勤系统的相关知识,包括系统的功能、架构和运作方式。

知识目标要求学生能够描述考勤系统的核心组成部分,理解其工作原理和应用场景。

技能目标则要求学生能够运用考勤系统的相关知识,进行系统的搭建、配置和维护。

情感态度价值观目标则是培养学生对信息技术在教育管理中的重要性的认识,提高他们对信息技术的兴趣和应用能力。

二、教学内容本课程的教学内容将围绕学生考勤系统的功能、架构和运作方式展开。

首先,将介绍考勤系统的功能,包括学生的出勤、请假、迟到等信息的管理和统计。

其次,将讲解考勤系统的架构,包括前端界面、后端数据库和中间件等。

然后,将详细阐述考勤系统的运作方式,包括数据采集、处理和展示等。

最后,将结合实际案例,让学生了解考勤系统在实际应用中的优势和不足。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学。

首先,将采用讲授法,系统地向学生介绍考勤系统的相关知识。

其次,将采用讨论法,让学生分组讨论考勤系统的应用场景和优缺点。

然后,将采用案例分析法,让学生分析实际案例中的考勤系统运作。

最后,将采用实验法,让学生动手搭建和操作考勤系统,增强他们的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,将准备多种教学资源。

教材方面,将使用《信息技术应用》一书,作为学生学习的基础资料。

参考书方面,将推荐《教育信息化》等书籍,供学生深入研究。

多媒体资料方面,将制作考勤系统的操作视频和PPT,以便学生更好地理解和掌握。

实验设备方面,将准备计算机和网络设备,让学生能够进行实际的操作和实验。

五、教学评估本课程的评估方式将包括平时表现、作业和考试三部分。

平时表现将占课程总评的30%,主要评估学生的课堂参与度、提问和回答问题的积极性等。

作业将占课程总评的30%, 主要评估学生的学习情况和理解能力。

考试将占课程总评的40%, 主要评估学生对考勤系统知识的掌握程度。

学生考勤管理系统c课程设计

学生考勤管理系统c课程设计

学生考勤管理系统c 课程设计一、教学目标本课程旨在通过学习,使学生掌握学生考勤管理系统的核心知识,培养学生运用C语言进行程序设计的能力,提高学生解决实际问题的综合素质。

知识目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识;了解学生考勤管理系统的基本原理和架构。

技能目标:培养学生能够使用C语言进行程序设计,能够独立完成学生考勤管理系统的开发和调试;培养学生运用所学知识解决实际问题的能力。

情感态度价值观目标:培养学生对计算机科学的热爱和好奇心,提高学生自主学习和探索的精神,培养学生团队协作和沟通的能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,以及学生考勤管理系统的基本原理和架构。

具体包括:C语言概述、数据类型与运算符、控制结构、函数、数组和字符串、指针、结构体和文件等基本知识;学生考勤管理系统的需求分析、系统设计、编码实现和测试等环节。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,使学生掌握学生考勤管理系统的基本原理和架构。

2.案例分析法:通过分析学生考勤管理系统的实际案例,使学生了解学生考勤管理系统的实际应用,提高学生解决实际问题的能力。

3.实验法:通过让学生动手编写代码,使学生加深对C语言的理解,培养学生的实际编程能力。

四、教学资源为了支持教学内容的实施和教学方法的运用,我们将准备以下教学资源:1.教材:为学生提供权威、系统的学习资料,帮助学生掌握C语言的基本知识和学生考勤管理系统的设计原理。

2.参考书:为学生提供丰富的学习资源,拓展学生的知识视野。

3.多媒体资料:通过视频、动画等形式,为学生提供生动、形象的学习资料,提高学生的学习兴趣。

4.实验设备:为学生提供实践操作的平台,培养学生的实际编程能力。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与技术学院程序设计基础课程设计报告题目名称:学生考勤管理系统学生姓名:郭晨晨学号: 2专业班级: 13级计科(3)班指导教师:郭理2013年6月6日目录目录..............................................1. 课程设计题目与要求.....................................1.1 课题目的和要求....................................1.3 课题意义..........................................2 总体设计................................................2.1功能模块设计 ..........................................2.2系统设计方案 ......................................3 详细设计................................................3.1 数据结构设计.....................................3.2 主模块设计.......................................3.2.1建立学生缺课记录子模块.......................3.2.2修改学生缺课记录子模块.......................3.2.3修改学生缺课记录子模块.......................3.2.4查看单科旷课记录子模块.......................3.2.5查看学生旷课记录子模块.......................3.2.6载入学生旷课记录子模块.......................3.2.7储存学生旷课记录子模快.......................4. 运行结果...............................................4.1运行 ..............................................5. 课程设计总结...........................................结束语....................................................参考文献..................................................附录:源代码..............................................1. 课程设计题目与要求1.1 课题目的和要求设计目的:要求实现---“学生考勤管理程序”记录学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。

1.2 设计要求:1.录入学生的缺课记录;2.修改某个学生的缺课记录;3.查询某个学生的缺课情况;4.统计某段时间内,某门课旷课学生姓名及旷课次数,按旷课次数由多到少排序;5.统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;6.系统以菜单方式工作。

1.3 课题意义程序实践是本科生重要教学环节之一。

通过程序实践,强化学生的计算机应用技能,使学生验证、巩固和充实所学的理论知识,加深对相关内容的理解,拓宽知识面,培养学生的创新精神和实践能力学生考勤管理程序可以大大减缓学生考勤人员的工作量, 方便了平时上课学生的出勤率的管理。

2 总体设计2.1功能模块设计根据分析整个系统主要划分为7个功能模块,分别执行要求中的功能。

数据管理中可以对学生的基本信息、课程的基本信息、学生缺课的查询、添加、删除和修改。

查询管理通过根据学生姓名,课程姓名时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。

功能模块图如图1所示:图1功能模块图2.2系统设计方案这个程序是过程性语言设计的。

运用多种条件语句,主体采用的是链表指针。

系统的设计采用了数组语句、选择语句和循环语句,在需要处理大量同类数据时,这样就使程序书写更加简洁。

程序使用了布尔函数。

选择语句多采用if多分支选择结构与switch语句。

首先计算switch表达式,然后在caes子句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。

循环语句采用了for语句等、do-while语句,for语句用于已知循环次数的循环结构,括号中的三个量分别用来表示循环变量初值、循环终值和循环增量。

do-while语句先循环后判断, Break语句在switch语句中,保证多分支情况的正确执行,在循环语句中,强制终止本层循环。

保存和读取函数是典型的函数功能,一个程序是由若干个函数组成的,保存和读取函数是和其他函数互相调用的。

3 详细设计3.1 数据结构设计struct xueke{char xueke_name[50];int people_num;};这是定义了一个xueke结构体,用来存放一个学科名及其相应的旷课人数;struct student{ char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};这是定义了一个student的结构体,用来存放一个学生的考勤记录,其中有,字符数组name[50],lesson_name[50],分别存放学生名字,缺课课程名字;int型变量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数 long型变量time,记录时间。

3.2 主模块设计要建立的学生人数,学生基本信息(包括缺课时间、学生姓名、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数)可用creat()函数如图1.图1根据要修改的学生姓名以及科目名称找到相应的信息,再选择要修改的项目进行单项修改图2 图2根据人名可以查出该学生的所有缺课记录如图3图3根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数如图4图4根据要查询的学科名称及时间段查出在改时间段内该门课上旷课的人数如图5图5可以载入实现储存在当前文件夹中txt文件中所储存的数据如图6图6进入系统界面,顺序的完成各项操作,进行数据的输入,信息的保存调用相应的函数打开相应的地址,查询各项信息。

如图7图74. 运行结果4.1运行开始菜单图1 开始菜单主菜单图2 主菜单建立学生缺课记录图2建立学生缺课记录储存学生旷课记录图3储存学生旷课记录5. 课程设计总结课程设计顺利完成,题目所要求的功能基本实现,可以对学生的缺课信息进行添加,修改,删除以及查询的显示。

不过这个程序还不够完善,例如不能往当前文件夹中的txt文件中添加记录。

结束语整个系统的设计过程对于我来说是个学习、探索的过程,通过借鉴别人,学习设计程序,在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是因为前期的学习不认真,对系统的需求分析的要求认识不清楚,使得在后边的工作中不得不经常反复请教别人去修改。

使我体会到设置中每一步的重要性。

所以在分析一个问题时,我们需要站在一个有远见的高度。

通过此次设计,我对C++语言编程有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。

虽然时间紧迫但我学会了不少,感到自身知识的贫乏,希望在日后积极学习并尝试努力中能做出完善的系统。

参考文献谭浩强.C++语言程序设计.清华大学出版社求是科技.Visual C++ 6.0信息系统开发.人民邮电出版社附录:源代码#include<cstdio> //cstdio是将stdio.h的内容用C++头文件的形式表示出来#include<iostream>要用到动态的分配内存。

#include<cstring> //当调用库函数,客户程序提供的是string类型参数,而库函数内部实现用的是c-串,因此需要将string对象,转化为char*对象,而c_str()提供了这样一种方法,它返回一个客户程序可读不可改的指向字符数组的指针。

#include<iomanip> //I/O流控制头文件#define NULL 0#define guding 10#define LEN sizeof(struct student)using namespace std;int student_num;FILE *fp1;struct xueke{char xueke_name[50];int people_num;};struct student{ char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};void chaxun(struct student *head){ int i;char chaxun_name[50];cout<<"请输入要查询的人名:";cin>>chaxun_name;struct student *p;if(head==NULL)cout<<"联系人为空";p=head;for(i=0;i<student_num;i++){if(strcmp(chaxun_name,p->name)==0){cout<<"缺课时间:"<<p->time<<" 学生姓名:"<<p->name<<" 课程名称:"<<p->lesson_name<<" 节次:"<<p->lesson_time<<endl<<"迟到次数:"<<p->chidao_num<<" 早退次数:"<<p->zaotui_num<<" 请假次数:"<<p->qingjia_num<<" 旷课次数:"<<p->kuangke_num<<endl;}p=p->next; }}struct student *xiugai(struct student *head){char xiugai_name[50];char xiugai_xueke_name[50];int k;cout<<"请输入要修改的学生姓名与学科名称【格式:学生姓名(空格)学科名称】:";cin>>xiugai_name>>xiugai_xueke_name;struct student *p1,*p2;p2=(struct student *)malloc(LEN);p1=head;if(head==NULL){cout<<"没有学生信息\n";return head; }while((strcmp(xiugai_name,p1->name)!=0||strcmp(xiugai_xueke_name,p1->less on_name)!=0)&&(p1->next!=NULL))p1=p1->next;if(strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name )==0){ cout<<"==================================== 修改信息=================================\n";cout<<" 1-修改缺课时间\n";cout<<" 2-修改学生姓名\n";cout<<" 3-修改课程名称\n";cout<<" 4-修改第几节缺课\n";cout<<" 5-修改迟到次数\n";cout<<" 6-修改早退次数\n";cout<<" 7-修改请假次数\n";cout<<" 8-修改旷课次数\n\n";cout<<"================================================================== ==============\n";cin>>k;switch(k){case 1:cout<<"请输入新的缺课时间:";cin>>p1->time;break;case 2:cout<<"请输入新的学生姓名:";cin>>p1->name;break;case 3:cout<<"请输入新的课程名称:";cin>>p1->lesson_name;break;case 4:cout<<"请输入新的缺课节次:";cin>>p1->lesson_time;break;case 5:cout<<"请输入新的迟到次数:";cin>>p1->chidao_num;break;case 6:cout<<"请输入新的早退次数:";cin>>p1->zaotui_num;break;case 7:cout<<"请输入新的请假次数:";cin>>p1->qingjia_num;break;case 8:cout<<"请输入新的旷课次数:";cin>>p1->kuangke_num;break; }}return head;}struct student *creat(){int i,b;struct student *head,*p1,*p2;cout<<"请输入要建立资料的学生人数:";cin>>b;head=p2=NULL;p1=(struct student *)malloc(LEN);cout<<"【输入格式:缺课时间(空格)学生姓名(空格)课程名称(空格)第几节(空格)迟到次数(空格)早退次数(空格)请假次数(空格)旷课次数】\n";cout<<"请输入第1名学生信息:";cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num;head=p1;p2=p1;student_num+=1;for(i=1;i<b;i++){p1=(struct student*)malloc(LEN);cout<<"请输入第"<<i+1<<"名学生信息:";cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num;p2->next=p1;p2=p1;student_num+=1;}p2->next=NULL;return head;}void print(struct student *head){struct student *p;p=head;if(p==NULL)cout<<"没有学生信息\n";while(p!=NULL){ cout<<"缺课时间:"<<p->time<<" 学生姓名:"<<setw(10)<<p->name<<"课程名称:"<<p->lesson_name<<" 节次:"<<p->lesson_time<<endl <<"迟到次数:"<<p->chidao_num<<" 早退次数:"<<p->zaotui_num<<" 请假次数:"<<p->qingjia_num<<" 旷课次数:"<<p->kuangke_num<<endl;p=p->next;}}struct student *tongji_lesson(struct student *head){ struct student *p1,*p2,*p3;char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);if(head==NULL){cout<<"没有学生信息";return(head); }p1=head;p2=p1->next;while(xunhuan_num<student_num){while(p2!=NULL){if(p2->kuangke_num>p1->kuangke_num){p3->chidao_num=p2->chidao_num;p3->kuangke_num=p2->kuangke_num;p3->qingjia_num=p2->qingjia_num;p3->zaotui_num=p2->zaotui_num;p3->lesson_time=p2->lesson_time;p3->time=p2->time;strcpy(p3->lesson_name,p2->lesson_name);strcpy(p3->name,p2->name);p2->chidao_num=p1->chidao_num;p2->kuangke_num=p1->kuangke_num;p2->qingjia_num=p1->qingjia_num;p2->zaotui_num=p1->zaotui_num;p2->lesson_time=p1->lesson_time;p2->time=p1->time;strcpy(p2->lesson_name,p1->lesson_name);strcpy(p2->name,p1->name);p1->chidao_num=p3->chidao_num;p1->kuangke_num=p3->kuangke_num;p1->qingjia_num=p3->qingjia_num;p1->zaotui_num=p3->zaotui_num;p1->lesson_time=p3->lesson_time;p1->time=p3->time;strcpy(p1->lesson_name,p3->lesson_name);strcpy(p1->name,p3->name);}p1=p2;p2=p2->next;}p1=head;p2=p1->next;xunhuan_num++;}cout<<"请输入要查看的学科名称:";cin>>lesson;cout<<"请输入要查看的时间范围【输入格式:时间(空格)时间】";cin>>look_time1>>look_time2;p1=head;while(p1!=NULL){if(strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=lo ok_time2)cout<<"学生姓名:"<<p1->name<<" 旷课次数:"<<p1->kuangke_num<<endl;p1=p1->next; }return head;}struct student *tongji_student(struct student *head){ struct xueke a[10];int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;if(head==NULL){cout<<"没有学生信息\n";return head;}cout<<"请输入一共的学科数:";cin>>n;for(i=0;i<n;i++){cout<<"请输入第"<<i+1<<"个学科名称:";cin>>a[i].xueke_name;a[i].people_num=0;}cout<<"请输入要查看的时间范围由小到大【输入格式:时间(空格)时间】";cin>>look_time1>>look_time2;p1=head;for(i=0;i<n;i++){while(p1!=NULL&&look_time1<=p1->time&&p1->time<=look_time2) {if(a[i].xueke_name==p1->lesson_name)a[i].people_num+=p1->kuangke_num;p1=p1->next;}p1=head;}for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++){if(a[i].people_num<a[i+1].people_num){ zhongjian=a[i+1].people_num;a[i+1].people_num=a[i].people_num;a[i].people_num=zhongjian;strcpy(zhongjian_name,a[i+1].xueke_name);strcpy(a[i+1].xueke_name,a[i].xueke_name);strcpy(a[i].xueke_name,zhongjian_name);}elseif(a[i].people_num==a[i+1].people_num&&strcmp(a[i].xueke_name,a[i+1].xueke_n ame)>0){ zhongjian=a[i+1].people_num;a[i+1].people_num=a[i].people_num;a[i].people_num=zhongjian;strcpy(zhongjian_name,a[i+1].xueke_name);strcpy(a[i+1].xueke_name,a[i].xueke_name);strcpy(a[i].xueke_name,zhongjian_name);}}for(i=0;i<n;i++){cout<<"学科名称:"<<a[i].xueke_name<<" 旷课次数:"<<a[i].people_num<<endl;return head;}return head;}struct student *zairu(){struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao[100];int i=0,n=0;if((fp1=fopen("xueshengziliao.txt","rb+"))==NULL){ printf("cannot open file\n");return(head); }while(!feof(fp1)){if(fread(&student_ziliao[i],LEN,1,fp1)!=1){if(feof(fp1)){fclose(fp1);break; }printf("file read error\n");}i++;}n=i;student_num=n;p1=p2=(struct student *)malloc(LEN);head=p1;for(i=0;i<n;i++){p1->chidao_num=student_ziliao[i].chidao_num;p1->kuangke_num=student_ziliao[i].kuangke_num;strcpy(p1->lesson_name,student_ziliao[i].lesson_name);p1->lesson_time=student_ziliao[i].lesson_time;strcpy(p1->name,student_ziliao[i].name);p1->qingjia_num=student_ziliao[i].qingjia_num;p1->time=student_ziliao[i].time;p1->zaotui_num=student_ziliao[i].zaotui_num;p2->next=p1;p2=p1;p1=(struct student*)malloc(LEN); }p2->next=NULL;return(head);}void chucun(struct student *head){ struct student *p1;p1=head;fp1=fopen("xueshengziliao.txt","wb+");while(p1!=NULL){fwrite(p1,LEN,1,fp1);p1=p1->next; }fclose(fp1);cout<<" 储存成功\n";}void main(){struct student *head;int a,b,c;zhuye: cout<<"$$$$$$$$$$$$$$$$$$$$$$ 欢迎使用学生考勤管理系统 V1.0.0 $$$$$$$$$$$$$$$$$$\n";cout<<" 1_进入管理\n\n\n";cout<<" 2_查看系统相关信息\n\n\n";cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$\n\n\n\n\n";cin>>a;if(a==1){do{cout<<"********************************************************************************\n";cout<<" 1_建立学生缺课记录\n";cout<<" 2_修改学生缺课记录\n";cout<<" 3_查询学生缺课记录\n";cout<<" 4_查看单科旷课记录\n";cout<<" 5_查看学生旷课记录\n";cout<<" 6_载入学生旷课记录\n";cout<<" 7_储存学生旷课记录\n";cout<<" 8_退出考勤管理程序\n";cout<<"********************************************************************* ***********\n";cin>>b;switch(b){case 1:head=creat();print(head);break;case 2:head=xiugai(head);print(head);break;case 3:chaxun(head);break;case 4:head=tongji_lesson(head);break;case 5:head=tongji_student(head);break;case 6:head=zairu();print(head);break;case 7:chucun(head);break;}}while(b!=8);}else{cout<<"******************************欢迎使用本系统**************************************\n";cout<<"******************************返回主页请按1*************************************\n";cin>>c;if(c==1)goto zhuye;} }。

相关文档
最新文档