学生考勤管理系统设计文档格式.docx

上传人:聆听****声音 文档编号:937121 上传时间:2023-04-29 格式:DOCX 页数:45 大小:346.28KB
下载 相关 举报
学生考勤管理系统设计文档格式.docx_第1页
第1页 / 共45页
学生考勤管理系统设计文档格式.docx_第2页
第2页 / 共45页
学生考勤管理系统设计文档格式.docx_第3页
第3页 / 共45页
学生考勤管理系统设计文档格式.docx_第4页
第4页 / 共45页
学生考勤管理系统设计文档格式.docx_第5页
第5页 / 共45页
学生考勤管理系统设计文档格式.docx_第6页
第6页 / 共45页
学生考勤管理系统设计文档格式.docx_第7页
第7页 / 共45页
学生考勤管理系统设计文档格式.docx_第8页
第8页 / 共45页
学生考勤管理系统设计文档格式.docx_第9页
第9页 / 共45页
学生考勤管理系统设计文档格式.docx_第10页
第10页 / 共45页
学生考勤管理系统设计文档格式.docx_第11页
第11页 / 共45页
学生考勤管理系统设计文档格式.docx_第12页
第12页 / 共45页
学生考勤管理系统设计文档格式.docx_第13页
第13页 / 共45页
学生考勤管理系统设计文档格式.docx_第14页
第14页 / 共45页
学生考勤管理系统设计文档格式.docx_第15页
第15页 / 共45页
学生考勤管理系统设计文档格式.docx_第16页
第16页 / 共45页
学生考勤管理系统设计文档格式.docx_第17页
第17页 / 共45页
学生考勤管理系统设计文档格式.docx_第18页
第18页 / 共45页
学生考勤管理系统设计文档格式.docx_第19页
第19页 / 共45页
学生考勤管理系统设计文档格式.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生考勤管理系统设计文档格式.docx

《学生考勤管理系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《学生考勤管理系统设计文档格式.docx(45页珍藏版)》请在冰点文库上搜索。

学生考勤管理系统设计文档格式.docx

3.1.1类设计 8

3.1.2类之间的关系 9

3.1.3函数设计 10

3.2结构设计 11

3.2.1系统流程图(如图3-2) 11

3.2.2界面设计 12

第四章 系统实现 13

4.1类实现 13

4.2函数实现 14

4.3主函数实现 39

第五章 系统测试 40

5.1模块测试 40

5.2课程设计过程中遇到的问题 43

总 结 44

致 谢 44

参考文献 44

第一章 绪论

1.1课程设计的目的

此次课程设计的目的是以《c++程序设计基础》为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。

要求学生达到熟练掌握c++语言的基本知识和技能。

1.2课程设计的背景和意义

1.2.1课程设计的背景

1.理论研究基础

《c++面向对象程序设计》是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。

2.技术层面的支持

本系统运用到:

类与对象在c++中的实现、静态数据成员、运算符重载、有缘函数继承与派生的基本知识、单继承和多继承、虚基类的作用与使用、虚函数的定义和使用、纯虚函数和抽象类的定义和使用、输入输出流的概念、输入输出流操作、文件的创建、打开、读写、关闭等操作。

1.2.2课程设计的意义

本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。

1.3课程设计环境

硬件平台:

CPU:

15。

2.67GHz。

RAM:

512MB以上。

软件平台:

操作系统:

Windowsxp/Windows7

编辑环境:

Visualc++6.0

第二章 需求分析

2.1、问题描述

学生信息包括:

学号、姓名、性别、年龄、班级等信息。

考勤信息包括:

缺课日期、第几节课、课程名称、学生姓名、缺课类型

(迟到、早退、请假和旷课)。

2.2、功能要求

(1)添加功能:

程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。

添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:

可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

还可以按课程名、学生姓名对缺课记录进行查询。

(3)显示功能:

可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。

(4)编辑功能:

可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:

主要实现对已添加的学生记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!

”并返回操作。

(6)统计功能:

能根据多种参数进行统计。

能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。

需要排序。

(7)保存功能:

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

(8)读取功能:

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

2.3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

第三章 系统设计

3.1数据设计

3.1.1类设计

学生类:

数据成员:

Number-学号,Name1-姓名,Sex-性别,Class-班级成员函数:

voidSetstu()-输入学生信息

voidDisplaystu()-输出学生信息

voidInquiryS1(Student*)-以学号的形式查询学生信息voidInquiryS2(Student*)-以姓名的形式查询学生信息voidShuchuS(Student*)-显示所有信息

voidFileS(Student*)-保存学生信息voidDuquS(Student*)-读取学生信息voidShuruS()-间接输出学生信息

缺课日期类:

year-年,month-月,day-日

成员函数:

voidSetDa()-输入日期,voidDisplayDa()-输出日期

缺课类型类:

AT-缺课类型

voidSetAT()-输入缺课类型,voidDisplayAT()-输出缺课类型

考勤管理类:

intNumClass-第几节课,CName-课程名称成员函数:

voidSetAM(Student*-输入考勤信息

voidDisplayAM()-输出考勤信息

voidInquiryAM(Att_Man*)-查询学生考勤信息voidShuchuAM(Att_Man*)-显示学生考勤信息

voidTongjiAM1(Att_Man*)-以课程名统计学生考勤信息voidTongjiAM2(Att_Man*)-以姓名统计学生考勤信息voidFileAM(Att_Man*)-保存学生考勤信息

voidDuquAM(Att_Man*)-读取学生考勤信息期

3.1.2类之间的关系

基类:

Date-缺课日期类 Student-学生信息类 AFCT-缺课类型类三个基类。

派生类:

Att_Man-考勤管理类 Guanli管理信息类

包含上述3个基类的信息

管理信息类:

包括类3个基类和一个考勤管理类定义成这种关系,便于考勤信息的管理。

一个Att_Man派生

AFCT:

SetAT()

DisplayAT();

Student:

Setstu()Displaystu()FileS() DuquS()

Date:

SetDa()DisplayDa()

(如图3-1)

Guanli:

voidInquiryS1(Student*)voidInquiryS2(Student*)voidShuchuS(Student*)voidInquiryAM(Att_Man*)voidShuchuAM(Att_Man*)voidTongjiAM1(Att_Man*)voidTongjiAM2(Att_Man*)voidMain();

voidDuquAM(Att_Man*)

voidFileAM(Att_Man*)

voidDisplayAM()

Att_Man

voidSetAM(Student*)

Att_Man(){}

Public

19

图3-1

3.1.3函数设计

voidSetstu()-输入学生信息voidDisplaystu()-输出学生信息

voidFileS(Student*)-保存学生信息voidDuquS(Student*)-读取学生信息voidShuruS()-间接输出学生信息voidSetDa()-输入日期

voidDisplayDa()-输出日期voidSetAT()-输入缺课类型voidDisplayAT()-输出缺课类型

voidSetAM(Student*-输入考勤信息voidDisplayAM()-输出考勤信息

*************************************************

3.2结构设计

3.2.1系统流程图(如图3-2)

开始

添加

查看

显示

统计学生信息

统计学生考勤信息

保存学生考勤信息

保存学生信息

删除查询信息

修改查询信息

显示查询信息

读取学生信息

读取学生考勤信息

添加考勤信息

添加学生信息

读取

保存

统计

结束

显示学生考勤信息

显示学生信息

如图3-2

3.2.2界面设计

程序主菜单 (如图3-2)

图3-2主界面

子菜单 (如图3-3)

图3-3子菜单

第四章 系统实现

4.1类实现

1.学生类的实现classStudent

{

public:

Student(){}

Student(intNu,stringNa,charSe,intAg,stringCl)

Number=Nu;

Name1=Na;

Sex=Se;

Age=Ag;

Class=Cl;

}

staticintT;

staticintW;

intNumber;

//学号

stringName1;

//名字charSex;

//性别

intAge;

//年龄stringClass;

//班级

voidSetstu();

//输入学生信息voidDisplaystu();

//输出学生信息

voidFileS(Student*);

//保存学生信息voidDuquS(Student*);

//读取学生信息

};

classDate

intyear;

intmonth;

intday;

Date(inty=0,intm=0,intd=0){year=y;

month=m;

day=d;

}voidSetDa();

//输入日期

voidDisplayDa();

//输出日期

classAFCT

AFCT(){}

stringAT;

//缺课类型

voidSetAT();

//输入缺课类型voidDisplayAT();

//输出缺课类型

classAtt_Man:

publicDate,publicStudent,publicAFCT

Att_Man(){};

intNumClass;

//第几节课stringCName;

//课程名称staticintT1;

staticintW1;

voidSetAM(Student*);

//输入考勤信息voidDisplayAM();

//输出考勤信息

voidFileAM(Att_Man*);

//保存学生考勤信息voidDuquAM(Att_Man*);

//读取学生考勤信息

4.2函数实现

voidStudent:

:

Setstu()

for(h=0;

h<

100;

h++)

cout<

<

"

学号:

"

;

cin>

>

Number;

a[j]=Number;

if(Number==0)

学号不能为0!

请重新输入"

endl;

continue;

else

break;

T++;

for(i=0;

i<

j;

i++)//学生学号是否重复判断

if(a[i]==a[j])

输入学号重复,已取消此次输入,请重新输入!

for(h=0;

if(Number==0)

i=0;

姓名:

Name1;

f[j]=Name1;

性别(morf):

cin>

Sex;

if(Sex=='

m'

||Sex=='

f'

性别输入不正确,请重新输入!

年龄(10-30):

Age;

if(Age>

30||Age<

10)

年龄输入不正确,请重新输入!

班级:

Class;

j++;

i--;

Displaystu()

**************************"

显示此学生的信息:

Number<

姓名:

Name1<

性别:

Sex<

年龄:

Age<

Class<

InquiryS1(Student*s)

intI=0;

intNumber1;

请输入学生的学号进行查询:

Number1;

for(j=0;

j<

T;

j++)//判断是否有相同学号

if(Number1==s[j].Number)

I++;

s[j].Displaystu();

break;

if(I==0)

没有相同的学号!

①.进行修改!

②.进行删除!

③.继续查询或返回!

i++)

请输入编号:

x;

if(x>

3||x==0)

编号输入错误,请重新输入!

if(x==1)

cout<

①.学号 ②.名字 ③.性别 ④.年龄 ⑤.班级

请输入编号进行修改:

h;

if(h>

5||h==0)

if(h==1)

intNumber2;

for(w=0;

w<

w++)

输入修改的学号:

Number2;

s[j].Number=Number2;

if(Number2==0)

修改成功!

elseif(h==2)

stringName3;

输入修改的姓名:

Name3;

s[j].Name1=Name3;

elseif(h==3)

charSex2;

23

输入修改的性别(morf):

Sex2;

s[j].Sex=Sex2;

if(Sex2=='

||Sex2=='

elseif(h==4)

intAge1;

输入修改的年龄(10-30):

Age1;

s[j].Age=Age1;

if(Age1>

30||Age1<

elseif(h==5)

stringClass1;

输入修改的班级:

Class1;

s[j].Class=Class1;

elseif(x==2)//删除信息

W++;

for(w=0;

10;

if((j+w+1)<

T)

s[j+w]=s[j+w+1];

elseif((j+w+1)==T)

删除成功!

elseif(x==3)

*************************"

InquiryS2(Student*s)

intU=0;

stringName2;

请输入学生的姓名进行查询:

Name2;

j++)//判断是否有相同姓名

if(Name2==s[j].Name1)

U++;

if(U==0)

没有相同姓名!

①.进行修改!

②.进行删除!

③.继续查询或返回!

29

charSex1;

Sex1;

s[j].Sex=Sex1;

if(Sex1=='

||Sex1=='

int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2