学生考勤管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号、姓名、性别、年龄、班级等信息。
缺课日期、第几节课、课程名称、学生姓名、缺课类
型(迟到、早退、请假和旷
别。 添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相 应的提示
信息, 如果找到, 则显示相应的记录信息。 还可以按课程名、 学生姓名对缺课记录进行查询。
(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则 提示“记
录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。能按课程名统计出学生旷课的信息、还可以按姓名 统计出任
一学生的旷课情况。需要排序。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 目录
一、设计内容与设计要求 设计内容: 问题描述 学生信息包括: 考勤信息包括: 1.
1、 课)
2、 学生考勤管理系统 功能要求
(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类
添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消
、需求分析
1.系统功能流程图
3.输入输出的要求
1.输入的要求:
通过主函数体调用其他函数应用系统主控界面包括学生信息录入,
学生信息录入功能完成学生信息和缺课信息的输入。记录查询功能可以对数据各
分类的记录进行查询。
2.输出的要求:
1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
2)可以统计全部学生缺课类型,及其缺课次数。
3)如果检索不到相应的信息应提示用户。
查找等功能模块。
二、总体分析
系统功能分析
能够从屏幕上读取一个学生的信息和缺课信息并将信息存入到数据文件中。 将指定的信息从文件中删除。能够按编号、姓名对学生的信息进行检索并将检索结 果显示在屏幕上。可以统计全部学生缺课次数,及其缺课类型。要求有错误提示功 能。如果检索不到相应的信息应提示用户。
、详细设计
1.类设计:
类:Person
数据成员
学号,姓名,性别,年龄,班级缺课类型,缺课次数,指针域
double num;面设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
2. 功能模块实现设计
通过主窗体调用其他窗体。应用系统主控界面包括学生信息录入,查找等功能模块。
学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的 记录进行查询。 具体举例如下:
1)输入函数:
void Inpu t()
Salary=I ncomi ng(); } 2 )删除函数
void school::del()
能够 cout<<"\n 学号:";cin>>num; cout<<"\n
cout<<"\n 姓名:";cin>>Name; 性别:";cin> >sex;
cout<<"\n 年龄:";cin> >old;
cout<<"\n
班级:";cin>>G; cout<<"\n 第几节课:";cin>>Hours;
{stude nt *p,*p2;
int num;
coutvv"请输入编号:";
cin>>num;
if( !find(&p,nu m,""))
{coutvv"SORR丫!找不到你要删erso的内容!"<< return;}
(p->n ext)->out puX);
p2=p->n ext;
Te p che> next; p->nex
delete p2; Assita nt
school::setkey(1);}
1.类的派生之[、间的示意图ssitant
四、系统调试
1.首页进入学生考勤管理系统主菜单2录入学生信息界面:
3.显示学生信息界
面
4.修改学生信息
五、使用说明及心得体会ndl;
Mannager
此次C++课程设计,在指导教师的精心教导下,我学会了如何用C++编写一个简
单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
七、附件
源文件代
码:
#include <> #include <> class P erson 文件操作头文件
字符串流
点指针由p1返回,p2为前看指针)
int College::Cfind(int ID,P erson **p1,P erson **p2) {
*p 1= PL->next;
*p2=PL;
while(*p1) if((*p1)->num==ID) break; n";
int Duty; //
人员类型
Person *p2; //
long t; // 读写位置
Clear();
ifstream f("",ios::in);
Person *p=PL; // 尾结点指针 while(1) t=(); f>>buf>>buf>>Duty;
if(f) { switch(Duty) { case 1: p2=new
Teacher; break; case 2: p2=new Assistant; break;
case 3: p2=new Manager; break;
case 4: p2=new Teacher_Assistant; break; default: (); return;
p->next=p2;
p=p->next;
(t);
p->Input(f);
} else break;
();
}
char ah;
int c;
do
{
cout<<" 输入要录入的出勤人员个数 :\n"; cin>>c;
for(int i=1;i<=c;i++)
void College::Build() // 出勤信息
char buf[81];
// 临时空间 新建结点的指针
void College::Load() //
出勤信息录入
cout<<"\n**
出勤信息录入 **\n";