1一、设计内容与设计要求1.设计内容:学生考勤管理系统1、问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。2、功能要求(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。还可以按课程名、学生姓名对缺课记录进行查询。(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。需要排序。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。目录一、需求分析.........................................................................................................61.系统设计目的与意义...................................................................................62.系统功能需求(系统流程图)...................................................................63.系统功能流程图...........................................................................................74.输入输出的要求...........................................................................................7二、总体分析.........................................................................................................71.系统功能分析..........................................................................................82.系统功能结构图...........................................................................................8三、详细设计.........................................................................................................91.类设计:.....................................................................................................11四、界面设计与各功能模块的实现...................................................................1221.界面设计................................................................................................12五、系统调试.......................................................................................................141.首页进入学籍管理系统主菜单.................................................................142录入学生信息缺课界面:..........................................................................153.显示学生信息缺课界面.............................................................................164.查找学生信息界面.....................................................................................175.删除学生信息界面.....................................................................................186.修改学生信息.............................................................................................187.统计学生信息:.........................................................................................19六、使用说明及心得体会...............................................................................20七、附件...............................................................................................................20一、需求分析1.系统功能流程图33.输入输出的要求1.输入的要求:通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和缺课信息的输入。记录查询功能可以对数据各分类的记录进行查询。2.输出的要求:1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。2)可以统计全部学生缺课类型,及其缺课次数。3)如果检索不到相应的信息应提示用户。二、总体分析系统功能分析能够从屏幕上读取一个学生的信息和缺课信息并将信息存入到数据文件中。能够将指定的信息从文件中删除。能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。可以统计全部学生缺课次数,及其缺课类型。要求有错误提示功能。如果检索不到相应的信息应提示用户。退出主程序初始化程序菜单程序查找删除修改统计录入显示保存4三、详细设计1.类设计:类:Person数据成员学号,姓名,性别,年龄,班级缺课类型,缺课次数,指针域doublenum;//学号charName[20];//姓名charsex;//性别doubleold;//年龄longdoubleG;//班级intDuty;//缺课类型(1-迟到,2-早退,3-请假,4-旷课)doubleSalary;//缺课次数Person*next;//指针域、成员函数Person()//基类构造{next=0;//指针域设置为空}virtual~Person()//基类虚析构{}virtualvoidInput()=0;//从键盘输入数据virtualvoidInput(ifstream&ifs)=0;//从文件输入数据virtualvoidOutput()=0;//向屏幕输出数据virtualvoidOutput(ofstream&ofs)=0;//向文件输出数据virtualdoubleIncoming()=0;//计算次数friendclassCollege;类:Teacher(公共继承与Person类)数据成员:5protected:intHours;//第几节课charB;//迟到日期charZ;//课程名称classschool成员函数:Tercher(){}voidInput()voidInput(ifstream&ifs)voidOutput(ofstream&ofs)doubleIncoming()迟到类:classAssistant:virtualpublicPerson数据成员:protected:intAllowance;intHours;//第几节课charB;//早退日期charZ;//课程名称成员函数:Assistant()voidInput()voidInput(ifstream&ifs)voidOutput()voidOutput(ofstream&ofs)doubleIncoming()请假类:classManager:virtualpublicPerson数据成员:protected:intAllowance;intHours;//第几节课charB;//请假日期charZ;//课程名称6成员函数:Manager()voidInput()voidInput(ifstream&ifs)voidOutput()voidOutput(ofstream&ofs)doubleIncoming()旷课类:classTeacher_Assistant:publicTeacher,publicAssistant成员函数:Teacher_Assistant()voidInput()voidInput(ifstream&ifs)voidOutput()voidOutput(ofstream&ofs)doubleIncoming()学生类:classCollege数据成员private:Person*PL;voidClear();intCollege::Cfind(intID,Person**p1,Person**p2)成员函数:public:College();//构造~College();//析构voidAdd();//退出voidDelete();//删除voidModify();//修改voidPrint();//输出voidSave();//信息存盘7voidLoad();//信息装入voidFind();//查找voidBuild();//导引voidStat();//统计四、界面设计与各功能模块的实现1.界面设计1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2.功能模块实现设计通过主窗体调用其他窗体。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。具体举例如下:1)输入函数:voidInput(){cout\n学号:;cinnum;cout\n姓名:;cinName;cout\n性别:;cinsex;cout\n年龄:;cinold;cout\n班级:;cinG;cout\n第几节课:;cinHours;Salary=Incoming();}2)删除函数voidschool::del(){student*p,*p2;intnum;cout请输入编号:;cinnum;if(!find(&p,num,^)){c