c语言链表学生考勤,(完整word版)学生考勤管理系统

《(完整word版)学生考勤管理系统》由会员分享,可在线阅读,更多相关《(完整word版)学生考勤管理系统(23页珍藏版)》请在人人文库网上搜索。

1、完整word版)学生考勤管理系统(完整word版)学生考勤管理系统编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)学生考勤管理系统)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整word版)学生考勤管理系统的全部内容。23(完整word版)学生考勤管理系统亲爱的读者:本文内容由我和我的同事精心收集整。

2、理后编辑发布到文库,发布之前我们对文中内容进行详细的校对,但难免会有错误的地方,如果有错误的地方请您评论区留言,我们予以纠正,如果本文档对您有帮助,请您下载收藏以便随时调用。下面是本文详细内容。最后最您生活愉快 O(_)O 一、设计内容与设计要求1设计内容:学生考勤管理系统1、问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。2、功能要求(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别.添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加。

3、重复并取消添加。(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。还可以按课程名、学生姓名对缺课记录进行查询。(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行.(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!并返回操作。(6)统计功能:能根据多种参数进行统计.能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况.需要排序.(7)保存功能:可将当前系。

4、统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。目 录一、需求分析61。系统设计目的与意义62.系统功能需求(系统流程图)63。系统功能流程图74.输入输出的要求7二、总体分析71。系统功能分析82.系统功能结构图8三、详细设计91.类设计:11四、界面设计与各功能模块的实现121。界面设计12五、系统调试141.首页进入学籍管理系统主菜单142录入学生信息缺课界面:153.显示学生信息缺课界面164.查找学生信息界面175。删除学生信息界面186.修改学生信息187。统计学生信息:19六、使用说明及心得体会20七、附件20一、 需。

5、求分析1.系统功能流程图退出主程序初始化程序菜单程序查找删除修改统计录入显示保存3。输入输出的要求1.输入的要求:通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和缺课信息的输入。记录查询功能可以对数据各分类的记录进行查询。2.输出的要求:1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。2)可以统计全部学生缺课类型,及其缺课次数.3)如果检索不到相应的信息应提示用户。二、 总体分析系统功能分析能够从屏幕上读取一个学生的信息和缺课信息并将信息存入到数据文件中。能够将指定的信息从文件中删除。能够按编号、姓名对学生的信息进行检索。

6、并将检索结果显示在屏幕上。可以统计全部学生缺课次数,及其缺课类型。要求有错误提示功能.如果检索不到相应的信息应提示用户。 三、详细设计1。类设计:类:Person 数据成员学号,姓名,性别,年龄,班级缺课类型,缺课次数,指针域double num; /学号 char Name20; /姓名 char sex;/性别double old;/年龄long double G;/班级int Duty; /缺课类型(1-迟到,2-早退,3-请假,4旷课) double Salary; /缺课次数 Person *next; /指针域 、成员函数Person() /基类构造 next=0; /指针域设置为。

7、空 virtual Person() /基类虚析构 virtual void Input()=0; /从键盘输入数据 virtual void Input(ifstream& ifs)=0; /从文件输入数据 virtual void Output()=0; /向屏幕输出数据 virtual void Output(ofstream& ofs)=0; /向文件输出数据 virtual double Incoming()=0; /计算次数 friend class College;类:Teacher(公共继承与Person类)数据成员:protected: int Hours; /第几节课cha。

8、r B;/迟到日期char Z;/课程名称class school成员函数:Tercher()void Input()void Input(ifstream& ifs)void Output(ofstream ofs)double Incoming()迟到类:class Assistant:virtual public Person数据成员:protected: int Allowance; int Hours; /第几节课char B;/早退日期char Z;/课程名称 成员函数:Assistant()void Input()void Input(ifstream& ifs)void Out。

9、put()void Output(ofstream& ofs)double Incoming()请假类:class Manager:virtual public Person数据成员:protected: int Allowance;int Hours; /第几节课char B;/请假日期char Z;/课程名称成员函数:Manager()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream ofs)double Incoming()旷课类:class Teacher_Assistant:public Te。

10、acher,public Assistant成员函数:Teacher_Assistant()void Input()void Input(ifstream ifs)void Output()void Output(ofstream ofs)double Incoming()学生类:class College数据成员private: Person *PL; void Clear(); int College:Cfind(int ID,Person *p1,Person *p2)成员函数:public: College(); /构造 College(); /析构 void Add(); /退出vo。

11、id Delete(); /删除void Modify(); /修改void Print(); /输出void Save(); /信息存盘 void Load(); /信息装入 void Find(); /查找 void Build(); /导引 void Stat(); /统计四、 界面设计与各功能模块的实现1. 界面设计1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2.功能模块实现设计通过主窗体调用其他窗体.应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入.记录查询功能可以对数据各分类的记录进行查询.具体举例如下:1) 输入函数:v。

12、oid Input() coutnum; coutn姓名:; cinName; coutsex;coutold;coutG; coutHours; Salary=Incoming(); 2)删除函数void school::del()student p,*p2;int num;coutnum;if( !find(p,num,) )coutoutput();p2=pnext;p-next=p2-next;delete p2;school:setkey(1);2. 类的派生之间的示意图TercherAssitantMannagerTercher_AssitantPerson五、 系统调试1。首页进。

13、入学生考勤管理系统主菜单2录入学生信息界面:3。显示学生信息界面:4.修改学生信息六、 使用说明及心得体会此次c+课程设计,在指导教师的精心教导下,我学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。七、附件源文件代码:include fstream.h 文件操作头文件include string.h 字符串流 class Person /人员类(抽象类) protected: double num; /学号 char Name20; 。

14、/姓名 char sex;/性别double old;/年龄long double G;/班级int Duty; /缺课类型(1迟到,2早退,3请假,4-旷课) double Salary; /缺课次数 Person next; /指针域 public: Person() /基类构造 next=0; /指针域设置为空 virtual Person() /基类虚析构 virtual void Input()=0; /从键盘输入数据 virtual void Input(ifstream& ifs)=0; /从文件输入数据 virtual void Output()=0; /向屏幕输出数据 vir。

15、tual void Output(ofstream ofs)=0; /向文件输出数据 virtual double Incoming()=0; /计算次数 friend class College; ; class Teacher:virtual public Person /迟到类 protected: int Hours; /第几节课char B;/迟到日期char Z;/课程名称public: Duty=1; Salary=800; void Input() /键盘补充输入其它数据 coutnum; coutName; coutn性别:; cinsex;coutold;cout”n班级:。

16、”; cinG; coutnumNamesexoldGDutyHoursSalary; void Output() coutnum; coutName; coutold;coutG; coutHours; Salary=Incoming(); void Input(ifstream& ifs) ifsnumNamesexoldGDutyHoursSalary; void Output() coutnum; coutsex;coutold;coutG; coutHours; Salary=Incoming(); void Input(ifstream ifs) ifsnumNamesexoldG。

17、DutyHoursSalary; void Output() coutnumInput(); p-next=pt; break; case 2: pa=new Assistant; pa-Input(); pnext=pa; break; case 3: pm=new Manager; pm-Input(); pnext=pm; break; case 4: pta=new Teacher_Assistant; pta-Input(); p-next=pta; break; default: return; cout”是否进行循环?y/nn; cinc; while(c=y|c=Y); Sav。

18、e(); /查找 void College::Find() double ID; Person *p1; Person *p2; coutID; p1=PL-next; p2=PL; while(p1) if(p1num=ID) break; /找到 else p2=p1; /继续查找 p1=p1next; if(!p1) cout”找不到你所查询的人!n请确认你所查询的编号是否出错!!!n”;return; else coutn* 出勤信息表 *n; coutOutput(); /查找缺课结点(返回1-找到,0未找到.结点指针由p1返回,p2为前看指针) int College::Cfind。

19、(int ID,Person p1,Person *p2) *p1=PL-next; p2=PL; while(p1) if(*p1)num=ID) break; /找到 else *p2=p1; /继续查找 *p1=(p1)next; return *p1?1:0; void College:Delete() /删除 coutnum; if(!Cfind(num,&p1,&p2)) coutnext=p1-next; /连接 delete p1; coutnum; if(!Cfind(num,&p1,p2) coutInput(); /输入新的出勤信息(更新) coutnext; if(!p。

20、) coutOutput(); p=pnext; void College:Save() /出勤信息存盘? ofstream f(Person.dat,ios::out); /打开文件 Person p=PL-next; while(p) pOutput(f); p=pnext; f.close(); /关闭文件 coutbufbufDuty; 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=n。

21、ew Teacher_Assistant; break; default: f。close(); return; p-next=p2; p=pnext; f.seekg(t); pInput(f); else break; f。close(); void College:Load() /出勤信息录入 char ah; int c; coutc; for(int i=1;i=c;i+) Person p=PL; while(p-next)p=p-next; int ch; coutch; Teacher pt; Assistant pa; Manager pm; Teacher_Assistan。

22、t *pta; switch(ch) case 1: pt=new Teacher; pt-Input(); pnext=pt; break; case 2: pa=new Assistant; paInput(); pnext=pa; break; case 3: pm=new Manager; pmInput(); pnext=pm; break; case 4: pta=new Teacher_Assistant; ptaInput(); p-next=pta; break; default: return; Save(); coutah; while(ah=Y|ah=y); void 。

23、College:Stat() Person p1; Person p2; double Sa=0; int a,b,i=0; double c,d; cout”选择你要统计的类别n1-类别;2次数;3缺课总次数;n; cina; if(a=1) coutc; coutd; p1=PL-next; p2=PL; while(p1) if(p1-Salary=c&p1Salarynext; else if(a=3) Person *p=PLnext; while(p) /遍历链表 Sa=Sa+(p-Salary); p=p-next; cout缺课总数是:next; while(p) i=i+1;。

24、 p=p-next; cout”缺课次数是:”ch; switch(ch) case 1: c。Load(); break; case 2: c.Find(); break; case 3: c.Modify(); break; case 4: c.Delete(); break; case 5: c。Stat(); break; case 6: c.Print(); break;case 7: c.Add; break; while(ch!=7); 结尾处,小编送给大家一段话。米南德曾说过,“学会学习的人,是非常幸福的人”。在每个精彩的人生中,学习都是永恒的主题.作为一名专业文员教职,我更加。

25、懂得不断学习的重要性,“人生在勤,不索何获,只有不断学习才能成就更好的自己.各行各业从业人员只有不断的学习,掌握最新的相关知识,才能跟上企业发展的步伐,才能开拓创新适应市场的需求.本文档也是由我工作室专业人员编辑,文档中可能会有错误,如有错误请您纠正,不胜感激!At the end, Xiao Bian gives you a passage. Minand once said, people who learn to learn are very happy people. In every wonderful life, learning is an eternal theme. As a。

26、 professional clerical and teaching position, I understand the importance of continuous learning, ”life is diligent, nothing can be gained, only continuous learning can achieve better self。 Only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of life 。

27、keep up with the pace of enterprise development and innovate to meet the needs of the market。 This document is also edited by my studio professionals, there may be errors in the document, if there are errors, please correct, thank you!此处将被文件名替换编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(此处将被文件名替换)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为此处将被文件名替换的全部内容。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值