学生考勤管理系统_第1页
学生考勤管理系统_第2页
学生考勤管理系统_第3页
学生考勤管理系统_第4页
学生考勤管理系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生考勤管理系统学生考勤管理系统学生考勤管理系统学生考勤管理系统编制仅供参考审核批准生效日期地址:电话:传真:邮编:课程设计任务书课程设计题目:学生考勤管理系统课程设计目的:本程序设计的目的是通过对学生考勤管理系统课程的综合训练,掌握使用面向对象程序设计语言C++,熟悉面向对象开发平台VisualC++2010,通过对课程设计中类的定义和其中构造函数,成员函数的调用,帮助我们系统的掌握C++课程设计的内容。培养我们面向对向的程序设计思想和应用C++程序设计方法来分析问题,编程去解决实际问题的能力,提高调查研究、查阅技术资料以及编写技术文献的能力。问题描述:在学生考勤管理系统中,学生信息记录了学生的基本信息,它包括:学生姓名、学号、性别、年龄、班级等信息。考勤信息记录了学生的考勤情况,它包括缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)等。它的功能包括查询功能、显示功能、编辑功能、删除功能、统计功能、保持功能和读取功能。设计成果:学生考勤管理系统,课程设计说明书。指导教师:年月日学生考勤管理系统前言关键词:考勤;姓名;缺课类型;课程名称;日期;学号等在本章的设计中我将对我所编写的学生考勤管理系统进行详细的介绍。首先,为何要编写学生考勤管理系统因为只有真正的通过编写程序才能强化我们的计算机应用技能,切实提高我们的编程能力。本学生考勤管理系统共分为四大部分,分别为1.需求分析2.概要设计3.详细设计4.调试分析。通过这四个部分的设计以及其中具体内容的程序编写,使得我们巩固和充实了所学的知识。在此系统中共解决了学生考勤管理系统中的8大功能即1.添加功能2查询功能3显示功能4编辑功能5删除功能6统计功能7保存功能8读取功能,并且在实现这些功能之前都进行了详细的分析。另外此程序是由VisualC++2010编写的,因此程序代码具有简洁、灵活、高效和可移植性强等特点。在四大部分中,第3部分和第4部分占据了大量篇幅,因为第3部分是对各部分功能进行了具体的实现,第4部分是对各部分功能带入数据进行具体调试,对于其中的错误还要进行分析与更改,在调试。本系统的设计虽然时间上有点紧促,但最终在设计与编程过程中也得到了不少老师和同学指导和帮助,还是完成了系统设计。通过该系统的设计,扩宽了我们的知识面,也培养了我们的创新,实践和开拓能力!目录TOC\o\h\z\u前言 2第1章需求分析 4功能需求 4数据需求 5第2章概要设计 6功能模块图 6数据技术模块 7第3章详细设计 8添加学生的考勤信息 8修改学生的考勤信息 9查询学生的考勤信息 11删除学生的考勤信息 12显示学生的考勤信息 13统计学生的考勤信息 13保存和读取学生的考勤信息 15第4章调试分析 16功能调试 16类与算法分析 20小结 23参考文献 25附录 26第1章需求分析功能需求添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。还可以按课程名、学生姓名对缺课记录进行查询。显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。统计功能:能根据多种参数进行统计。能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。需要排序。保存功能:可将当前系统中各类记录存入文件中,存入方式任意。读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。数据需求本系统主要涉及的数据有学生基本信息和学生考勤信息。学生基本信息包括学生学号、姓名、性别、年龄、班级等信息;学生考勤信息包括学生姓名,缺课日期,课程名称,第几节课,学生缺课类型(迟到、早退、请假和旷课)。第2章概要设计功能模块图根据分析整个系统主要划分为8个功能模块,分别执行系统需求中的功能。数据管理中实现对学生的基本信息即学生学号、姓名、性别、年龄、班级等信息的管理。以及学生考勤信息即学生姓名,缺课日期,课程名称,第几节课,学生缺课类型(迟到、早退、请假和旷课)等管理实现学生缺课的查询、添加、删除和修改,以及具体考勤内容,是迟到、早退、请假还是旷课。查询管理可以通过根据学生姓名、学号、班级以及课程名称等信息进行,查询,修改管理可以任意修改考勤管理信息及基本信息中的任一项。功能模块图如图所示。学生考勤管理系统学生考勤管理系统读取学生的考勤信息保存学生的考勤信息统计学生的考勤信息显示学生的考勤信息删除学生的考勤信息查询学生的考勤信息修改学生的考勤信息添加学生的考勤信息读取学生的考勤信息保存学生的考勤信息统计学生的考勤信息显示学生的考勤信息删除学生的考勤信息查询学生的考勤信息修改学生的考勤信息添加学生的考勤信息数据技术模块此程序共包括4个类,分别是日期类、考勤类、缺课课程类以及缺课学生类。其中考勤类为一个基类,缺课课程类和缺课学生类均继承考勤类:考勤类kaoqin考勤类kaoqin缺课学生类qkxs缺课学生类qkxs缺课课程类qkkc此程序是使用面向对象的语言设计的,在设计过程中采用了多种条件语句,主题采用了函数的调用,类的继承以及指针。程序在设计日期类时,采用了数组语句将日期的年月日分成了三个部分,在界面设计过程中采用了switch选择语句,然后在case子句中寻找值相等的常量表达式,以此为入口,将主界面发分为7个部分,使的程序更加清晰明了。另外在整个系统设计过程中需要处理大量的同类型数据,于是采用了大量的循环语句for和do—while语句用于实现许多已知和未知的循环。第3章详细设计添加学生的考勤信息在功能模块图的第一部分添加学生的考勤信息是,我设计了一个添加函数tianjia,它是从“输入开始”后在根据提示逐步输入,首先是“请输入学生姓名:”输入完毕按回车键继续输入下一条“请输入课程名称:”再其次一次根据提示分别输入“请输入缺课日期:”,“请输入缺课学生年龄:”,“请输入缺课学生学号:”,“请输入缺课学生班级:”,“请输入缺课学生性别:”,“请输入缺课类型(迟到,请假,早退,旷课):”,“请输入缺课节次:”最后输入考勤信息完毕,系统会提示“是否还要继续输入:(y/n)”,以此来方便我们继续添加还是返回主界面!请输入学生姓名请输入学生姓名请输入课程名称请输入课程名称添加学生的考勤信息添加学生的考勤信息请输入缺课日期请输入缺课日期请输入缺课学生学号请输入缺课学生学号请输入缺课学生班级请输入缺课学生班级请输入缺课学生性别请输入缺课学生性别请输入缺课类型(迟到,请假,早退,旷课)请输入缺课类型(迟到,请假,早退,旷课)请输入缺课学生年龄请输入缺课学生年龄请输入缺课节次请输入缺课节次在这一部分的设计中使用了do-while循环,实现了添加学生考勤信息时的逐步输入。修改学生的考勤信息在功能模块图的第二部分修改学生的考勤信息时,我定义了一个修改函数xiugai,它是先根据你要修改的学生姓名查找到你要修改的学生考勤信息,然后为你提供九个选项(0~8),分别是:"0.修改学生姓名1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学生年龄6.修改学生性别7.修改学生学号8.修改学生班级”。之后输入你所要选择的数值(0,1,2,3,4,5,6,7,8)分别执行其中9个修改选项。程序代码如下:etname())==0)do{a[j]=i;cout<<"0.修改学生姓名1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学生年龄6.修改学生性别7.修改学生学号8.修改学生班级"<<endl;cout<<"请输入要选择的数值(0,1,2,3,4,5,6,7,8)"<<endl;intb;cin>>b;if(b==1){cout<<"请输入新日期:"<<endl;cin>>y>>m>>d;st1[i].settime(y,m,d);} elseif(b==0){cout<<"请输入新姓名:"<<endl;cin>>name;st1[i].setname(name);} elseif(b==5){cout<<"请输入新年龄:"<<endl;cin>>age;st1[i].setage(age);} elseif(b==6){cout<<"请输入新性别:"<<endl;cin>>sex;st1[i].setsex(sex);} elseif(b==7){cout<<"请输入新学号:"<<endl;cin>>xuehao;st1[i].setxuehao(xuehao);} elseif(b==8){cout<<"请输入新班级:"<<endl;cin>>banji;st1[i].setbanji(banji);}elseif(b==2){cout<<"请输入新节次:"<<endl;cin>>jieci;st1[i].setjieci(jieci);}elseif(b==3){cout<<"请输入新课程名称:"<<endl;cin>>kechen;st1[i].setkechen(kechen);}elseif(b==4){cout<<"请输入新缺课类型:"<<endl;cin>>queke;st1[i].setqklx(queke);}flgh=1;j++;}while(b<1||b>4);if(flgh==0){cout<<"没有你要找的学生姓名,请重试要退出请按"<<endl;cin>>k;}else{cout<<"还要继续吗"<<endl<<"(1or0)退出请按"<<endl;cin>>k;}}for(inti=0;i<j;i++){h=a[i];xiansi(st1[h]);}}由程序可以看到此段代码运用了if-else语句请输入请输入你要查询的学生姓名、学号、班级、课程名称或课程类型(任一即可)查询学生的考勤信息查询学生的考勤信息将你要查询的学生考勤信息显示出来将你要查询的学生考勤信息显示出来选择是进行继续添加还是返回主菜单(y/n)选择是进行继续添加还是返回主菜单(y/n)查询学生的考勤信息在功能模块图的第三部分查询学生的考勤信息时,我定义了一个查询函数chaxun。在此部分设计中,我采用了一种比较省事的方法来查询考勤信息,它的实用性非常好,即我采用了||符号,它可以让我们在查询学生考勤信息时随意的输入9大信息中任一信息即可查到该学生的考勤信息。当然在实际编程过程中我只使用了5种查询方法。分别是输入你要查询的学生姓名、学号、班级、课程名称或课程类型,查询时任意输入一种即可,下面为此功能的三个部分简图:(上图)。删除学生的考勤信息在功能模块图的第四部删除改学生的考勤信息时,我定义了一个删除函数shanchu,先根据的查询学生的考勤信息,查找出你要删除的某个学生的考勤信息,如果在查询时不存在该学生的考勤记录,界面将给出提示“你要删除的学生考勤信息不存在”,如果查询时发现记录中存有,就该对象中所有的对象成员全部赋值为0(其中int变量直接赋值为0,char类型变量全部赋值成字符‘0‘),赋值成功后界面将提示“删除该学生考勤信息成功”,其中模块图如图所示:删除学生的考勤信息删除学生的考勤信息请输入你要查询的学生姓名、学号、班级、课程名称或课程类型(任一即可)请输入你要查询的学生姓名、学号、班级、课程名称或课程类型(任一即可)存在存在不存在不存在将所有成员全部赋值为0将所有成员全部赋值为0删除该学生考勤信息成功你要删除学生的考勤信息不存在删除该学生考勤信息成功你要删除学生的考勤信息不存在选择是进行继续选择是进行继续删除还是返回主菜单(y/n)显示学生的考勤信息在功能模块图的第五部显示学生的考勤信息时,我定义了一个显示函数xianshi,将所有的学生考勤记录显示出来,依靠添加时的顺序,将其9大信息依次列出。其设计的程序代码如下:etname()<<endl;if(*(st1[0].getjieci()+2)!='\0')js=+2;elsejs++;cout<<"节数:"<<js<<endl;}elseettime()+1)<*(st1[i+1].gettime()+1)){min=st1[i]; st1[i]=st1[i+1]; st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)<*(st1[i+1].gettime()+2)){min=st1[i]; st1[i]=st1[i+1]; st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)==*(st1[i+1].gettime()+2))d1++;}for(intj=0;j<(g-d1);j++){cout<<*st1[j].gettime()<<*(st1[j].gettime()+1)<<*(st1[j].gettime()+2)<<endl;for(i=0;i<k;i++){setqstn(st1,qt1,g);cout<<"姓名:"<<qt1[i].qstn<<endl;cout<<"节数:"<<qt1[i].getjs(st1,g,i)<<endl;}}}}保存和读取学生的考勤信息此为功能模块图的第七、八部分保存学生的考勤信息和读取学生的考勤信息,将考勤信息保存在“考勤txt”文本文件中。ifstreamfile("考勤.txt",ios::in|ios::out|ios::binary);(0,ios::beg);第4章调试分析功能调试图一调试并运行该程序出现主界面,如图一所示,界面出现7个选项分别是“1.添加学生的缺课记录2.修改学生的缺课记录3.查询学生的缺课记录4.删除学生的缺课记录5.按姓名统计出任一学生的旷课情况6.按课程名称统计出学生旷课的信息7.退出系统”以及最下面的“请选择执行的项目:”。故输入数字1添加学生的考勤记录:如图二所示,依次按照系统所给的提示逐步完成对各个部分数据的记录。由图可知,当所有考勤数据记录完毕时,界面下方会给出提示:“是否还要继续输入(y/n)”,若选择y,则系统返回添加页面,再次添加另外的学生考勤记录,若选择n,则系统返回主页面即图一界面。由图二可知系统添加功能正常。图二由图一输入2,即可进入修改界面;然后根据提示输入将要修改的图三学生姓名“刘多山”,后界面将显示"0.修改学生姓名1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学生年龄6.修改学生性别7.修改学生学号8.修改学生班级”,以及“请输入你所要选择的数值(0,1,2,3,4,5,6,7,8),然后根据需要输出即可!例如修改姓名选择0,输入新的姓名,输入完成后系统图四会提示是否继续修改。由图四可以看出修改功能也一切正常。由图一输入3即可进入查询界面如图五所示,可以根据学生姓名、学号、班级、课程名称和课程类型进行查询。输入班级“软件“进行查询,查询结果如图六,显然查询结果正常!图五图六选择“n“返回主界面,在选择是进入删除选项,选择以学号进行删除,输入学号“90”查询出来后确认删除,页面提示“删除成功”。类与算法分析类的分析time类year:inttime类year:intmonth:intday:inttime()~time()qkxs类jieshu:intqkxs类jieshu:intqst;:intqkxs()~qkxs()print(st1:kaoqin&):voidgetjs(st1[]:xinxi,n:int,j:int)setjs(js:int=0):int基类kaoqin类kaoqin类name[20]:charkechen[10]:charkeshu[3]:charqueke[10]:chartm[3]: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():char*继承继承派生类派生类qkkc类qkkc类renci:intkcshu:int=0qkkc()~qkkc()getrc(st1[]:xinxi,n:int,j:int):intqkn[20]:char算法的分析整个系统的设计过程对于我来说算是个学习、探索的过程,在编程的过程中不断地进行调试,在调试过程中选择菜单查询学生的旷课记录,程序不执行,后来通过改错发现程序中没有加入选择的case语句。后来在switch后加一个case就可以自动执行了。在设置查询函数的过程中虽然设置了以姓名和学号来查找学生考勤信息的记录,但在调试时发现还有欠缺,因为考虑到实际查询过程中不一定都知道学生姓名或学号,于是我采用了||这一符号!程序如下:cout<<"输入你要查询的学生姓名、学号、班级、课程名称或课程类型:"<<endl;cin>>xuehao||xuehao||banji||kechen||queke;inti=0;for(i;i<g;i++)if(strcmp(name,st1[i].getname())==0||strcmp(xuehao,st1[i].getxuehao())==0||strcmp(banji,st1[i].getbanji())==0||strcmp(kechen,st1[i].getkechen())==0||strcmp(queke,st1[i].getqklx())==0){u[j]=i;j++;} 以此来实现除了学生姓名和学号来查询,更增加了通过班级、课程名和课程类型来查询学生考勤记录!在该函数中,我设置了if语句用来判断系统中是否存有用户要修改的学生缺课信息。如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在

循环语句中改变循环进行的条件从而终止循环。至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的考勤类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实现显示功能。小结通过此次的学生考勤管理的设计,我不但对C++语言编程有了更加深刻的认识,还积累了许多软件开发的经验。整个系统的设计对于我来说都是在学习和探索中摸索出来的,这使我学会了在对待问题时应该考虑到哪些方面和怎么解决问题。虽然在设计时间上紧迫,但我也学会了许多。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。除此之外,我对于怎样用文件保存数据还没有深入了解,但我将数据保存到文件后又因为文件打不开而无法访问文件“”的数据。在设置查询函数的过程中,本来想用while语句来分条查询学生考勤管理信息。例如1.根据学号查询2.根据姓名查询3.根据班级查询4.根据年龄查询5.根据课程查询······,可是在实际编程的过程中,由于共有9部分信息,而且其中日期一部分又包含3个分支年、月、日,所有操作过程中存在很大的难度,思维太复杂不够清晰。于是我果断采用了||这一运算符,使得在查询过程中,可以随意使用任意一种方式进行查询,而且在编码过程中也十分简单。如此就轻松的解决了查询这一个函数的编程!在调试过程中我发现在主函数中把字符数组名赋值给字符指针然后用字符指针指向字符数组;语句可以输出字符数组里全部的内容,但利用函数返回指针值却不能做到这一点,在我思考一番后终于明白了,这与内存中的地址值有关。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。这次实验后我发现我掌握得还不够。我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻。比如现在对于指针和数组方面的知识还不够清楚,这使得我在编程的过程中遇到了许多问题。虽然有些知识已经通过查看资料解决了,但有些依然没有能弄明白,因此我也感到了自身知识的贫乏,。另外在完成学生考勤系统之后,我也感觉到了我在编程方面的整体实力都有了提高,许多平时模糊的小知识,现在基本上都已经很清楚了!参考文献[1]杜茂康等编著C++.NET程序设计北京:清华大学出版社,2009[2]周鸣争主编大学计算机基础成都:电子科技大学出版社,2009[3]周鸣争主编C语言程序设计教程成都:电子科技出版社,2005附录#include<iostream>#include<cstring>#include<>#include<fstream>usingnamespacestd;classtimeettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].gettime()+2))if(strcmp(qkn,st1[i].getkechen())==0)renci++;returnrenci;}etjieci()+2)!='\0')js=+2;elsejs++;for(i=0;i<n;i++)if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].gettime()+2))if(strcmp(st1[i+1].getname(),qstn)==0){if(*(st1[i].getjieci()+2)!='\0')js=+2;elsejs++;}jieshu=js;returnjieshu;}添加学生的缺课记录"<<endl;cout<<"2.修改学生的缺课记录"<<endl;cout<<"3.查询学生的缺课情况"<<endl;cout<<"4.删除学生的缺课情况"<<endl;cout<<"5.按姓名统计出任一学生的旷课情况"<<endl;cout<<"6.按课程名统计出学生旷课的信息"<<endl;cout<<"7.退出系统"<<endl;}xt",ios::in|ios::out|ios::binary);(0,ios::beg);cout<<"输入开始!"<<endl;do{q++;cout<<"请输入学生姓名:"<<endl;cin>>name;st1[q].setname(name);cout<<"请输入课程名称:"<<endl;cin>>kechen;st1[q].setkechen(kechen);cout<<"请输入缺课日期:"<<endl;cin>>y>>m>>d;st1[q].settime(y,m,d);cout<<"请输入缺课学生年龄:"<<endl;cin>>age;st1[q].setage(age);cout<<"请输入缺课学生学号:"<<endl;cin>>xuehao;st1[q].setxuehao(xuehao);cout<<"请输入缺课学生班级:"<<endl;cin>>banji;st1[q].setbanji(banji);cout<<"请输入缺课学生性别:"<<endl;cin>>sex;st1[q].setsex(sex);cout<<"请输入缺课类型(迟到,请假,早退,旷课):"<<endl;cin>>queke;st1[q].setqklx(queke);cout<<"请输入缺课节次:"<<endl;cin>>jieci;st1[q].setjieci(jieci);cout<<"是否还要继续输入:(y/n)"<<endl;cin>>a;}while(a=='y');returnq+1;}etname())==0)do{a[j]=i;cout<<"0.修改学生姓名1.修改日期2.修改节次3.修改课程名称4.修改缺课类型5.修改学生年龄6.修改学生性别7.修改学生学号8.修改学生班级"<<endl;cout<<"请输入要选择的数值(0,1,2,3,4,5,6,7,8)"<<endl;intb;cin>>b;if(b==1){cout<<"请输入新日期:"<<endl;cin>>y>>m>>d;st1[i].settime(y,m,d);} elseif(b==0){cout<<"请输入新姓名:"<<endl;cin>>name;st1[i].setname(name);} elseif(b==5){cout<<"请输入新年龄:"<<endl;cin>>age;st1[i].setage(age);} elseif(b==6){cout<<"请输入新性别:"<<endl;cin>>sex;st1[i].setsex(sex);} elseif(b==7){cout<<"请输入新学号:"<<endl;cin>>xuehao;st1[i].setxuehao(xuehao);} elseif(b==8){cout<<"请输入新班级:"<<endl;cin>>banji;st1[i].setbanji(banji);}elseif(b==2){cout<<"请输入新节次:"<<endl;cin>>jieci;st1[i].setjieci(jieci);}elseif(b==3){cout<<"请输入新课程名称:"<<endl;cin>>kechen;st1[i].setkechen(kechen);}elseif(b==4){cout<<"请输入新缺课类型:"<<endl;cin>>queke;st1[i].setqklx(queke);}flgh=1;j++;}while(b<1||b>4);if(flgh==0){cout<<"没有你要找的学生姓名,请重试要退出请按"<<endl;cin>>k;}else{cout<<"还要继续吗"<<endl<<"(1or0)退出请按"<<endl;cin>>k;}}for(inti=0;i<j;i++){h=a[i];xiansi(st1[h]);}}学生姓名查询2.按学生学号查询"<<endl; etname())==0||strcmp(xuehao,st1[i].getxuehao())==0||strcmp(banji,st1[i].getbanji())==0||strcmp(kechen,st1[i].getkechen())==0||strcmp(queke,st1[i].getqklx())==0){u[j]=i;j++;}if(j==0){cout<<"没有你所要查询的学生名字或学号!";etxuehao())==0){u[j]=i;j++;}if(j==0){cout<<"没有你所要的学生学号!";ettime()<<"|"<<*(st1[i].gettime()+1)<<"|"<<*(st1[i].gettime()+2)<<"|"<<st1[i].getage()<<"|"<<st1[i].getsex()<<"|"<<st1[i].getxuehao() <<"|"<<st1[i].getbanji()<<"|"<<st1[i].getjieci()<<"|"<<st1[i].getkechen()<<"|"<<st1[i].getqklx()<<"|"<<endl;}elseettime()+1)<*(st1[i+1].gettime()+1))qt[i].print(st1[i]);elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)<*(st1[i+1].gettime()+2))qt[i].print(st1[i]);elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)==*(st1[i+1].gettime()+2))if(strcmp(st1[i].getjieci(),st1[i+1].getjieci())==-1)qt[i].print(st1[i]);}cout<<"是否继续查询(y/n)继续请按y退出按n"<<endl;etname())==0||strcmp(xuehao,st1[i].getxuehao())==0||strcmp(banji,st1[i].getbanji())==0||strcmp(kechen,st1[i].getkechen())==0||strcmp(queke,st1[i].getqklx())==0){u[j]=i;j++;}if(j==0){cout<<"没有你所要查询的学生名字或学号!";ettime()<<"|"<<*(st1[i].gettime()+1)<<"|"<<*(st1[i].gettime()+2)<<"|"<<st1[i].getage()<<"|"<<st1[i].getsex()<<"|"<<st1[i].getxuehao() <<"|"<<st1[i].getbanji()<<"|"<<st1[i].getjieci()<<"|"<<st1[i].getkechen()<<"|"<<st1[i].getqklx()<<"|"<<endl;}elseettime()+1)<*(st1[i+1].gettime()+1))qt[i].print(st1[i]);elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)<*(st1[i+1].gettime()+2))qt[i].print(st1[i]);elseif(*(st1[i].gettime()+1)==*(st1[i+1].gettime()+1)&&*(st1[i].gettime()+2)==*(st1[i+1].gettime()+2))if(strcmp(st1[i].getjieci(),st1[i+1].getjieci())==-1)qt[i].print(st1[i]);}cout<<"是否继续查询(y/n)继续请按y退出按n"<<endl;cin>>n;}}}*/voidtongji1(kaoqinst1[],qkxsqt1[])etname()<<endl;if(*(st1[0].getjieci()+2)!='\0')js=+2;elsejs++;cout<<"节数:"<<js<<endl;}elseettime()+1)<*(st1[i+1].gettime()+1)){min=st1[i]; st1[i]=st1[i+1]; st1[i+1]=st1[i];}elseif(*(st1[i].gettime()+1)==

温馨提示

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

评论

0/150

提交评论