学生考勤管理系统

上传人:无*** 文档编号:86707214 上传时间:2022-05-08 格式:DOC 页数:39 大小:344.50KB
收藏 版权申诉 举报 下载
学生考勤管理系统_第1页
第1页 / 共39页
学生考勤管理系统_第2页
第2页 / 共39页
学生考勤管理系统_第3页
第3页 / 共39页
资源描述:

《学生考勤管理系统》由会员分享,可在线阅读,更多相关《学生考勤管理系统(39页珍藏版)》请在装配图网上搜索。

1、word课程设计任务书课程设计题目:学生考勤管理系统课程设计目的:本程序设计的目的是通过对学生考勤管理系统课程的综合训练,掌握使用面向对象程序设计语言C+,熟悉面向对象开发平台VisualC+2010,通过对课程设计中类的定义和其中构造函数,成员函数的调用,帮助我们系统的掌握C+课程设计的容。培养我们面向对向的程序设计思想和应用C+程序设计方法来分析问题,编程去解决实际问题的能力,提高调查研究、查阅技术资料以及编写技术文献的能力。问题描述:在学生考勤管理系统中,学生信息记录了学生的基本信息,它包括:学生、学号、性别、年龄、班级等信息。考勤信息记录了学生的考勤情况,它包括缺课日期、第几节课、课程

2、名称、学生、缺课类型(迟到、早退、请假和旷课)等。它的功能包括查询功能、显示功能、编辑功能、删除功能、统计功能、保持功能和读取功能。设计成果:学生考勤管理系统,课程设计说明书。指导教师:年月日学生考勤管理系统前 言关键词:考勤;缺课类型;课程名称;日期;学号等在本章的设计中我将对我所编写的学生考勤管理系统进行详细的介绍。首先,为何要编写学生考勤管理系统?因为只有真正的通过编写程序才能强化我们的计算机应用技能,切实提高我们的编程能力。 本学生考勤管理系统共分为四大部分,分别为1.需求分析 2.概要设计 3.详细设计 4.调试分析。通过这四个部分的设计以及其中具体容的程序编写,使得我们巩固和充实了

3、所学的知识。在此系统中共解决了学生考勤管理系统中的8大功能即1.添加功能2查询功能3显示功能4编辑功能5删除功能6统计功能7保存功能8读取功能,并且在实现这些功能之前都进行了详细的分析。另外此程序是由VisualC+2010编写的,因此程序代码具有简洁、灵活、高效和可移植性强等特点。在四大部分中,第3部分和第4部分占据了大量篇幅,因为第3部分是对各部分功能进行了具体的实现,第4部分是对各部分功能带入数据进行具体调试,对于其中的错误还要进行分析与更改,在调试。 本系统的设计虽然时间上有点紧促,但最终在设计与编程过程中也得到了不少老师和同学指导和帮助,还是完成了系统设计。通过该系统的设计,扩宽了我

4、们的知识面,也培养了我们的创新,实践和开拓能力!目 录前言2第1章需求分析445第2章概要设计62.1 功能模块图67第3章详细设计83.1 添加学生的考勤信息83.2 修改学生的考勤信息93.3 查询学生的考勤信息113.4 删除学生的考勤信息123.5 显示学生的考勤信息133.6 统计学生的考勤信息133.7 保存和读取学生的考勤信息15第4章调试分析164.1 功能调试164.2 类与算法分析20小结23参考文献25附录26第1章 需求分析功能需求1.1.1添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。添加学生记录时,要求学号要唯一,如果添加了重复学

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

6、需要排序。1.1.7保存功能:可将当前系统中各类记录存入文件中,存入方式任意。1.1.8读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。数据需求本系统主要涉及的数据有学生基本信息和学生考勤信息。学生基本信息包括学生学号、性别、年龄、班级等信息;学生考勤信息包括学生,缺课日期,课程名称,第几节课,学生缺课类型(迟到、早退、请假和旷课)。第2章 概要设计2.1 功能模块图根据分析整个系统主要划分为8个功能模块,分别执行系统需求中的功能。数据管理中实现对学生的基本信息即学生学号、性别、年龄、班级等信息的管理。以及学生考勤信息即学生,缺课日期,课程名称,第几节课,学生缺课类型(迟到、

7、早退、请假和旷课)等管理实现学生缺课的查询、添加、删除和修改,以及具体考勤容,是迟到、早退、请假还是旷课。查询管理可以通过根据学生、学号、班级以及课程名称等信息进行,查询,修改管理可以任意修改考勤管理信息及基本信息中的任一项。功能模块图如图所示。学生考勤管理系统读取学生的考勤信息保存学生的考勤信息统计学生的考勤信息显示学生的考勤信息删除学生的考勤信息查询学生的考勤信息修改学生的考勤信息添加学生的考勤信息此程序共包括4个类,分别是日期类、考勤类、缺课课程类以及缺课学生类。其中考勤类为一个基类,缺课课程类和缺课学生类均继承考勤类:考勤类kaoqin缺课学生类qkxs缺课课程类qkkc此程序是使用面

8、向对象的语言设计的,在设计过程中采用了多种条件语句,主题采用了函数的调用,类的继承以及指针。程序在设计日期类时,采用了数组语句将日期的年月日分成了三个部分,在界面设计过程中采用了switch选择语句,然后在case子句中寻找值相等的常量表达式,以此为入口,将主界面发分为7个部分,使的程序更加清晰明了。另外在整个系统设计过程中需要处理大量的同类型数据,于是采用了大量的循环语句for 和dowhile语句用于实现许多已知和未知的循环。第3章 详细设计3.1 添加学生的考勤信息在功能模块图的第一部分添加学生的考勤信息是,我设计了一个添加函数tianjia,它是从“输入开始”后在根据提示逐步输入,首先

9、是“请输入学生:”输入完毕按回车键继续输入下一条“请输入课程名称:”再其次一次根据提示分别输入“请输入缺课日期:”,“请输入缺课学生年龄:”,“请输入缺课学生学号:”,“请输入缺课学生班级:”,“请输入缺课学生性别:”,“请输入缺课类型(迟到,请假,早退,旷课):”,“请输入缺课节次:”最后输入考勤信息完毕,系统会提示“是否还要继续输入:(y/n)”,以此来方便我们继续添加还是返回主界面!请输入学生某某请输入课程名称添加学生的考勤信息请输入缺课日期请输入缺课学生学号请输入缺课学生班级请输入缺课学生性别请输入缺课类型(迟到,请假,早退,旷课)请输入缺课学生年龄请输入缺课节次在这一部分的设计中使用

10、了do-while循环,实现了添加学生考勤信息时的逐步输入。”。之后输入你所要选择的数值(0,1,2,3,4,5,6,7,8)分别执行其中9个修改选项。程序代码如下:/修改函数void xiugai(kaoqin st1,int n) int k=1,j=0,a10; int flgh; int h; while(k=1) cout请输入你要修改缺课记录的学生:name; flgh=0; for(int i=0;in;i+) if(strcmp(name,st1i.getname()=0) do aj=i; cout0.修改学生1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学

11、生年龄6.修改学生性别7.修改学生学号8.修改学生班级endl; cout请输入要选择的数值(0,1,2,3,4,5,6,7,8)b; if(b=1) cout请输入新日期:ymd; st1i.settime(y,m,d); elseif(b=0) cout请输入新:name; st1i.setname(name); elseif(b=5) cout请输入新年龄:age; st1i.setage(age); elseif(b=6) cout请输入新性别:sex; st1i.setsex(sex); elseif(b=7) cout请输入新学号:xuehao; st1i.setxuehao(xu

12、ehao); elseif(b=8) cout请输入新班级:banji; st1i.setbanji(banji); elseif(b=2) cout请输入新节次:jieci; st1i.setjieci(jieci); elseif(b=3) cout请输入新课程名称:kechen; st1i.setkechen(kechen); elseif(b=4) cout请输入新缺课类型:queke; st1i.setqklx(queke); flgh=1;j+; while(b4); if(flgh=0)cout没有你要找的学生,请重试要退出请按k; else cout还要继续吗?endl(1 o

13、r 0)退出请按k; for(int i=0;ij;i+) h=ai; xiansi(st1h); 由程序可以看到此段代码运用了if-else语句请输入你要查询的学生某某、学号、班级、课程名称或课程类型(任一即可)查询学生的考勤信息将你要查询的学生考勤信息显示出来选择是进行继续添加还是返回主菜单(y/n) 在功能模块图的第三部分查询学生的考勤信息时,我定义了一个查询函数chaxun。在此部分设计中,我采用了一种比较省事的方法来查询考勤信息,它的实用性非常好,即我采用了 | |符号,它可以让我们在查询学生考勤信息时随意的输入9大信息中任一信息即可查到该学生的考勤信息。当然在实际编程过程中我只使用

14、了5种查询方法。分别是输入你要查询的学生、学号、班级、课程名称或课程类型,查询时任意输入一种即可,下面为此功能的三个部分简图:(上图)。在功能模块图的第四部删除改学生的考勤信息时,我定义了一个删除函数shanchu,先根据3.3的查询学生的考勤信息,查找出你要删除的某个学生的考勤信息,如果在查询时不存在该学生的考勤记录,界面将给出提示“你要删除的学生考勤信息不存在”,如果查询时发现记录中存有,就该对象中所有的对象成员全部赋值为0(其中int变量直接赋值为0,char类型变量全部赋值成字符0),赋值成功后界面将提示“删除该学生考勤信息成功”,其中模块图如图所示:删除学生的考勤信息请输入你要查询的

15、学生某某、学号、班级、课程名称或课程类型(任一即可)存在不存在将所有成员全部赋值为0删除该学生考勤信息成功你要删除学生的考勤信息不存在选择是进行继续删除还是返回主菜单(y/n) 在功能模块图的第五部显示学生的考勤信息时,我定义了一个显示函数xianshi,将所有的学生考勤记录显示出来,依靠添加时的顺序,将其9大信息依次列出。其设计的程序代码如下:/显示函数void xiansi(kaoqin &st1) cout| 缺课日期|学生年龄学生性别学生学号学生班级 第几节课| 课程名称| 学生| 缺课类型|endl; cout|*(st1.gettime()|*(st1.gettime()+1)*(

16、st1.gettime()+2)|st1.getage()|st1.getsex()|st1.getxuehao()|st1.getbanji()|st1.getjieci()|st1.getkechen()|st1.getname()|st1.getqklx()|endl; 此外在功能模块的第六部分统计学生的考勤信息共分为两部分进行统计,分别是tongji1按照“学生统计出任一学生的旷课情况”和tongji2按照“按课程名称统计出任一课程学生旷课的信息”。在统计的过程中由于很有可能会有大量记录数据,使得显示出的记录不止一条。这时就要对这些数据记录进行排序,本程序我采用了以时间为顺序,时间被我

17、划分为3部分,分别是年、月、日;比较顺序是,先按照年份进行比较然后用月份进行比较最后用日进行比较!具体代码如下:void tongji1(kaoqin st1,qkxs qt1) /按统计出任一学生的旷课情况 int d1=0,js=0; kaoqin min; if (g=0)cout没有你要统计的学生信息请返回菜单录入学生缺课信息endl; elseif(g=1) cout:st10.getname()endl; if( *(st10.getjieci()+2)!=0) js=+2; else js+; cout节数:jsendl; else/信息按时间排序 int i=0; for(;i

18、(g-1);i+) if(*(st1i.gettime()+1)*(st1i+1.gettime()+1) min=st1i; st1i=st1i+1; st1i+1=st1i;elseif( *(st1i.gettime()+1)=*(st1i+1.gettime()+1)&*(st1i.gettime()+2)*(st1i+1.gettime()+2) min=st1i; st1i=st1i+1; st1i+1=st1i; elseif(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&*(st1i.gettime()+2)=*(st1i+1.gettim

19、e()+2) d1+; for(int j=0;j(g-d1);j+) cout*st1j.gettime()*(st1j.gettime()+1)*(st1j.gettime()+2)endl; for(i=0;ik;i+) setqstn(st1,qt1,g); cout:qt1i.qstnendl; cout节数:qt1i.getjs(st1,g,i)endl; 此为功能模块图的第七、八部分保存学生的考勤信息和读取学生的考勤信息,将考勤信息保存在“考勤txt”文本文件中。ifstream file(考勤.txt,ios:in|ios:out|ios:binary); file.seekg

20、(0,ios:beg);第4章 调试分析 图一调试并运行该程序出现主界面,如图一所示,界面出现7个选项分别是“”以及最下面的“请选择执行的项目:”。故输入数字1添加学生的考勤记录:如图二所示,依次按照系统所给的提示逐步完成对各个部分数据的记录。由图可知,当所有考勤数据记录完毕时,界面下方会给出提示:“是否还要继续输入(y/n)”,若选择y,则系统返回添加页面,再次添加另外的学生考勤记录,若选择n,则系统返回主页面即图一界面。由图二可知系统添加功能正常。图二 由图一输入2,即可进入修改界面;然后根据提示输入将要修改的图三学生“多山”,以及“请输入你所要选择的数值(0,1,2,3,4,5,6,7,

21、8),然后根据需要输出即可!例如修改选择0,输入新的,输入完成后系统 图四会提示是否继续修改。由图四可以看出修改功能也一切正常。由图一输入3即可进入查询界面如图五所示,可以根据学生、学号、班级、课程名称和课程类型进行查询。输入班级“软件“进行查询,查询结果如图六,显然查询结果正常!图五图六选择“n“返回主界面,在选择是进入删除选项,选择以学号进行删除,输入学号“3120909090”查询出来后确认删除,页面提示“删除成功”。time类year:intmonth:intday:inttime()time()qkxs类jieshu:intqst;:intqkxs()qkxs()print(st1:

22、kaoqin&):voidgetjs(st1:xinxi,n:int,j:int)setjs(js:int=0):int 基类kaoqin类name20:charkechen10:charkeshu3:charqueke10:chartm3:chartiaoshi:int=0kaoqin()kaoqin()setname(n:char*):voidsettime(y:int,m:int,d:int):voidsetqklx(qk:char*):voidsetcishu(jc:char*):voidsetkechen(kc:char*):voidgetname():char*getqklx():

23、char*继承派生类qkkc类renci:intkcshu:int=0qkkc()qkkc()getrc(st1:xinxi,n:int,j:int):intqkn20:char 整个系统的设计过程对于我来说算是个学习、探索的过程,在编程的过程中不断地进行调试,在调试过程中选择菜单查询学生的旷课记录,程序不执行,后来通过改错发现程序中没有加入选择的case语句。后来在switch后加一个case就可以自动执行了。在设置查询函数的过程中虽然设置了以和学号来查找学生考勤信息的记录,但在调试时发现还有欠缺,因为考虑到实际查询过程中不一定都知道学生或学号,于是我采用了|这一符号!程序如下:cout输入

24、你要查询的学生、学号、班级、课程名称或课程类型: xuehao | xuehao | banji | kechen | queke; int i=0; for(i;ig;i+) if(strcmp(name,st1i.getname()=0 | strcmp(xuehao,st1i.getxuehao()=0 | strcmp(banji,st1i.getbanji()=0 | strcmp(kechen,st1i.getkechen()=0 | strcmp(queke,st1i.getqklx()=0) uj=i; j+; 以此来实现除了学生和学号来查询,更增加了通过班级、课程名和课程类型

25、来查询学生考勤记录!在该函数中,我设置了if语句用来判断系统中是否存有用户要修改的学生缺课信息。如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生或者退出修改环节,可以在循环语句中改变循环进行的条件从而终止循环。至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的考勤类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实现显示功能。小 结通过此次的学生考勤管理的设计,我不但对C+语言编程有了更加深刻的认识,还积累了许

26、多软件开发的经验。整个系统的设计对于我来说都是在学习和探索中摸索出来的,这使我学会了在对待问题时应该考虑到哪些方面和怎么解决问题。虽然在设计时间上紧迫,但我也学会了许多。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。除此之外,我对于怎样用文件保存数据还没有深入了解,但我将数据保存到文件后又因为文件打不开而无法访问文件“”的数据。,可是在实际编程的过程中,由于共有9部分信息,而且其中日期一部分又包含3个分支年、月、日,所有操作过程中存在很大的难度,思维太复杂不够清晰。于是我果断

27、采用了|这一运算符,使得在查询过程中,可以随意使用任意一种方式进行查询,而且在编码过程中也十分简单。如此就轻松的解决了查询这一个函数的编程!在调试过程中我发现在主函数中把字符数组名赋值给字符指针然后用字符指针指向字符数组;语句可以输出字符数组里全部的容,但利用函数返回指针值却不能做到这一点,在我思考一番后终于明白了,这与存中的地址值有关。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。这次实验后我发现我掌握得还不够。我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,平时遇到的一些小问题一定要重视,越是基

28、础的知识越要理解透彻。比如现在对于指针和数组方面的知识还不够清楚,这使得我在编程的过程中遇到了许多问题。虽然有些知识已经通过查看资料解决了,但有些依然没有能弄明白,因此我也感到了自身知识的贫乏,。另外在完成学生考勤系统之后,我也感觉到了我在编程方面的整体实力都有了提高,许多平时模糊的小知识,现在基本上都已经很清楚了!参考文献1杜茂康等编著C+.NET程序设计 :清华大学,20092周鸣争主编 大学计算机基础 :电子科技大学,20093周鸣争主编 C语言程序设计教程 :电子科技,2005附录#include#include#include#includeusingnamespace std;cl

29、ass time /建立日期类public: time(int y=0,int m=0,int d=0) year=y;month=m;day=d; time() protected: int year,month,day; ; class kaoqin:public time/建立考勤类 public: kaoqin() tiaoshi+; kaoqin()tiaoshi-; void setname(char *n)strcpy(name,n); /学生void settime(int y,int m,int d)year=y;month=m;day=d;/日期void setage(ch

30、ar *a)strcpy(age,a);/年龄void setxuehao(char *xh)strcpy(xuehao,xh);/学号void setbanji(char *bj)strcpy(banji,bj);/班级void setsex(char *xb)strcpy(sex,xb);/性别void setqklx(char *qk)strcpy(queke,qk); /课程类型void setjieci(char *jc)strcpy(jieci,jc); /缺课节次void setkechen(char *kc)strcpy(kechen,kc); /课程char *getname

31、()char *n;n=name;return n; char *getqklx()char *qk=queke;return qk; char *getjieci()char *jc;jc=jieci;return jc; char *getkechen()char *gk;gk=kechen;return gk; char *getage()char *a;a=age;return a;char *getsex()char *xb;xb=sex;return xb;char *getxuehao()char *xh;xh=xuehao;return xh;char *getbanji()c

32、har *bj;bj=banji;return bj;int *gettime(); private: char name20;char age3,jieci3,kechen10,queke10,sex10,xuehao10,banji10; int tm3; staticint tiaoshi; ;int kaoqin:tiaoshi=0; int *kaoqin:gettime() int *t; t=tm; tm0=year; tm1=month; tm2=day; return t; /缺课课程类class qkkc:public kaoqin public: qkkc()kcshu+

33、; qkkc()kcshu-; int getrc(kaoqin st1,int n,int j); char qkn20;/公有数据成员private: int renci; staticint kcshu;/静态数据成员;int qkkc:kcshu=0; int qkkc:getrc(kaoqin st1,int n,int j) renci=0; renci+; for(int i=0;in;i+) if(*(st1i+1.gettime()+1)=*(st1j.gettime()+1)&*(st1i+1.gettime()+2)= *(st1j.gettime( )+2) if(st

34、rcmp(qkn,st1i.getkechen()=0) renci+; return renci; /缺课学生类class qkxs:public kaoqin public: qkxs()qst+; qkxs()qst-; void print(kaoqin &st1); int getjs(kaoqin st1,int n,int j); int setjs(int js=0) jieshu=js; char qstn20; private: int jieshu; staticint qst; /静态数据成员;int qkxs:qst=0; /类的实现void qkxs:print(k

35、aoqin &st1) cout| 缺课日期| 年龄| 性别| 学号| 班级 第几节课| 课程名称| 缺课类型|endl; cout|*st1.gettime()|*(st1.gettime()+1)*(st1.gettime()+2)|st1.getage()|st1.getsex() |st1.getxuehao()|st1.getbanji()|st1.getjieci()|st1.getkechen()|st1.getqklx()|endl; int qkxs:getjs(kaoqin st1,int n,int j) int i=0,js=0; kaoqin min; if(*(st

36、1j.getjieci()+2)!=0) js=+2; else js+; for(i=0;in;i+) if(*(st1i+1.gettime()+1)=*(st1j.gettime()+1)&*(st1i+1.gettime()+2)=*(st1j.gettime()+2) if(strcmp(st1i+1.getname(),qstn)=0) if(*(st1i.getjieci()+2)!=0) js=+2; else js+; jieshu=js; return jieshu; / 函数声明int tianjia(kaoqin st1); void chaxun(kaoqin st1

37、,qkxs qt); void xiugai(kaoqin st1,int n); void shanchu(kaoqin st1,int n);void tongji1(kaoqin st1,qkxs qt1); void tongji2(kaoqin st1,qkkc qk1); void caidan(); void xiansi(kaoqin &st1); void setqstn(kaoqin st1,qkxs qt1,int n); void setqkn(kaoqin st1,qkkc qk,int n);/全局变量int g,k=1,b=1;int q=-1; char nam

38、e20,kechen10,queke10,jieci3,age3,sex10,xuehao10,banji10; int y,m,d; /主函数int main() kaoqin tl15;/定义条信息类对象qkxs qt10; qkkc qk6; int ch; while(1) cout学生考勤管理系统:endl; caidan(); cout请选择执行项目:ch; switch(ch) case 1: g=tianjia(tl); break; case 2: xiugai(tl,g); break; case 4: chaxun(tl,qt); break; case 3: chaxu

39、n(tl,qt); break; case 5: tongji1(tl,qt); break; case 6: tongji2(tl,qk); break; case 7: exit(0); return 0; /菜单函数void caidan() system(color A); coutendl; cout 学生考勤管理系统 endl; coutendl; cout1. 添加学生的缺课记录endl; cout2. 修改学生的缺课记录endl; cout3. 查询学生的缺课情况endl; cout4. 删除学生的缺课情况endl;cout5. 按统计出任一学生的旷课情况endl; cout6

40、. 按课程名统计出学生旷课的信息endl; cout7. 退出系统endl; /输入函数int tianjia(kaoqin st1) char a; ifstream file(考勤.txt,ios:in|ios:out|ios:binary); file.seekg(0,ios:beg);cout输入开始!endl; do q+; cout请输入学生:name; st1q.setname(name); cout请输入课程名称:kechen; st1q.setkechen(kechen); cout请输入缺课日期:ymd; st1q.settime(y,m,d); cout请输入缺课学生年龄

41、:age; st1q.setage(age); cout请输入缺课学生学号:xuehao; st1q.setxuehao(xuehao); cout请输入缺课学生班级:banji; st1q.setbanji(banji); cout请输入缺课学生性别:sex; st1q.setsex(sex); cout请输入缺课类型(迟到,请假,早退,旷课):queke; st1q.setqklx(queke); cout请输入缺课节次:jieci; st1q.setjieci(jieci); cout是否还要继续输入:(y/n)a; while(a=y); return q+1; /修改函数void x

42、iugai(kaoqin st1,int n) int k=1,j=0,a10; int flgh; int h; while(k=1) cout请输入你要修改缺课记录的学生:name; flgh=0; for(int i=0;in;i+) if(strcmp(name,st1i.getname()=0) do aj=i; cout0.修改学生1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学生年龄6.修改学生性别7.修改学生学号8.修改学生班级endl; cout请输入要选择的数值(0,1,2,3,4,5,6,7,8)b; if(b=1) cout请输入新日期:ymd; st

43、1i.settime(y,m,d); elseif(b=0) cout请输入新:name; st1i.setname(name); elseif(b=5) cout请输入新年龄:age; st1i.setage(age); elseif(b=6) cout请输入新性别:sex; st1i.setsex(sex); elseif(b=7) cout请输入新学号:xuehao; st1i.setxuehao(xuehao); elseif(b=8) cout请输入新班级:banji; st1i.setbanji(banji); elseif(b=2) cout请输入新节次:jieci; st1i.

44、setjieci(jieci); elseif(b=3) cout请输入新课程名称:kechen; st1i.setkechen(kechen); elseif(b=4) cout请输入新缺课类型:queke; st1i.setqklx(queke); flgh=1;j+; while(b4); if(flgh=0)cout没有你要找的学生,请重试要退出请按k; else cout还要继续吗?endl(1 or 0)退出请按k; for(int i=0;ij;i+) h=ai; xiansi(st1h); / 查询函数void chaxun(kaoqin st1,qkxs qt) char n

45、=y; int u10; while(n=y) int j=0;/s=0; /cout1.按学生查询2.按学生学号查询s;/if (s=1)/ cout输入你要查询的学生、学号、班级、课程名称或课程类型: xuehao | xuehao | banji | kechen | queke; int i=0; for(i;ig;i+) if(strcmp(name,st1i.getname()=0 | strcmp(xuehao,st1i.getxuehao()=0 | strcmp(banji,st1i.getbanji()=0 | strcmp(kechen,st1i.getkechen()=

46、0 | strcmp(queke,st1i.getqklx()=0) uj=i; j+; if(j=0) cout没有你所要查询的学生名字或学号!; /没有找到 coutn; /* if(s=2) cout输入你要查询的学生学号:xuehao; int i=0; for(i;ig;i+) if(strcmp(name,st1i.getxuehao()=0) uj=i; j+; if(j=0) cout没有你所要的学生学号!;/没有找到 coutn; */for(int a=0;aj;a+) if(j2) /只有一条信息时 i=ua; cout| 缺课日期|学生年龄学生性别学生学号学生班级 第几

47、节课| 课程名称| 缺课类型|endl; cout| *st1i.gettime()| *(st1i.gettime()+1)| *(st1i.gettime()+2)|st1i.getage()|st1i.getsex()|st1i.getxuehao()|st1i.getbanji()| st1i.getjieci()| st1i.getkechen()| st1i.getqklx()| endl; else/两条信息以上排序时 i=ua; if(*(st1i.gettime()+1)*(st1i+1.gettime()+1) qti.print(st1i); elseif(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&*(st1i.gettime()+2)*(st1i+1.gettime()+2) qti.print(st1i); elseif(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&*(st1i.gettime()+2)=*(st1i+1.gettime()+2) if(strcmp(st1i.getjieci(),st1i+1.getjieci()=-1) qti.pr

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!