




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
⑦退出系统。选择菜单7,退出系统。如图4.1.7.图结果分析这次的课程设计,用到类与继承派生的知识。另外对指针,引用也有很多的使用。程序中通过建立对象数组来实现对函数的调用。我认为这是一个亮点。虽然程序中没有其他的优点,都是平常的函数及排序等。由于我对继承的知识掌握不好,在派生类中不知道如何使用基类的数据成员。在信息类中我不清楚如何调用基类student中的name数据成员。后来通过老师的帮助,我知道了需要在基类构造没有参数的函数。在派生类的构造函数中会自动调用基类的构造函数。自然name就在信息类可以很好的使用了。另外,在开始的时候我将student的成员变量设为protected类型,但是在调试的时候显示信息类构造函数有错。而将它改为public之后就正确了。至于是什么原因,我也不清楚。攀枝花学院本科毕业设计(论文)总结5总结这次的程序设计相对于上学期还是有了进步的。虽然大部分是通过看网上的资料来完成自己的程序,但是我编了几个函数,并且自己改掉了在网上所找程序的错误。最后,课程设计顺利完成,题目所要求的功能也都一一实现,可以对学生的缺课信息进行添加,修改,删除以及查询的显示。整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。最后,通过完成编程,我达到了:1、加深对本课程理论知识的理解,提高实际应用能力;2、树立自身对理论联系实际的工作作风、严肃认真的科学态度;3、进一步训练和提高自身的分析设计能力、理论计算能力、实验研究能力、外文阅读、查阅文献资料和文字表达等基本技能;4、培养自身独立分析、解决实际问题的能力,培养自身的创新意识和创新能力。虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。攀枝花学院本科毕业设计(论文)参考文献参考文献[1]谭浩强.C++语言程序设计(第二版).清华大学出版社.[2]谭浩强.C语言程序设计(第四版).清华大学出版社.[3].攀枝花学院本科毕业设计(论文)附录:程序源代码附录:程序源代码#include<iostream>#include<cstring>#include<windows.h>usingnamespacestd;//学生信息类classstudent{public: student(){}student(stringno,chars,inta,stringc,char*na):number(no),sex(s),age(a),clas(c){strcpy(name,na);}voidset(){cin>>number;cin>>sex;cin>>age;cin>>clas;cin>>name;}//学号、姓名、性别、年龄、班级public:stringnumber,clas;charname[20];charsex;intage;};//时间类classtime{public:time(inty=0,intm=0,intd=0){year=y;month=m;day=d;}~time(){}protected: intyear,month,day;};//信息类classxinxi:publictime,student{public:xinxi():student(),time(){tiaoshu++;}~xinxi(){tiaoshu--;}voidsetname(char*na){strcpy(name,na);}//voidsetname(char*n){strcpy(name,n);}voidsettime(inty,intm,intd){year=y;month=m;day=d;}voidsetqklx(char*qk){strcpy(queke,qk);}voidsetjieci(char*jc){strcpy(jieci,jc);}voidsetkechen(char*kc){strcpy(kechen,kc);}char*getname(){returnname;}//char*getname(){char*n;n=name;returnn;}char*getqklx(){char*qk=queke;returnqk;}char*getjieci(){char*jc;jc=jieci;returnjc;}char*getkechen(){char*gk;gk=kechen;returngk;}int*gettime();private://charname[20];//姓名charjieci[3],kechen[10],queke[10];inttm[3]; staticinttiaoshu;};intxinxi::tiaoshu=0;int*xinxi::gettime(){int*t;t=tm; tm[0]=year; tm[1]=month; tm[2]=day; returnt;}//缺课课程类classqkechen:publicxinxi{public:qkechen(){kcshu++;}~qkechen(){kcshu--;}intgetrc(xinxist1[],intn,intj);charqkn[20];//公有数据成员private:intrenci;staticintkcshu;//静态数据成员};intqkechen::kcshu=0;intqkechen::getrc(xinxist1[],intn,intj){renci=0;renci++;for(inti=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(qkn,st1[i].getkechen())==0) renci++; returnrenci;}//缺课学生类classqstu:publicxinxi{public:qstu(){qst++;}~qstu(){qst--;}voidprint(xinxi&st1);intgetjs(xinxist1[],intn,intj);intsetjs(intjs=0){jieshu=js;}charqstn[20];private:intjieshu;staticintqst;//静态数据成员};intqstu::qst=0;//类的实现voidqstu::print(xinxi&st1){ cout<<"|缺课日期|"<<"第几节课|"<<"课程名称|"<<"缺课类型|"<<endl;cout<<"|"<<*st1.gettime()<<"|"<<*(st1.gettime()+1)<<*(st1.gettime()+2)<<"|"<<st1.getjieci()<<"|"<<st1.getkechen()<<"|"<<st1.getqklx()<<"|"<<endl;}intqstu::getjs(xinxist1[],intn,intj){inti=0,js=0;xinximin; if(*(st1[j].getjieci()+2)!='\0') js=+2; else js++; 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(),st1[j].getname())==0) { if(*(st1[i].getjieci()+2)!='\0') js=+2; else js++; } jieshu=js; returnjieshu;}//函数声明intshuru(xinxist1[]);voidchaxun(xinxist1[],qstuqt[]);voidxiugai(xinxist1[],intn);voidtongji1(xinxist1[],qstuqt1[]);voidtongji2(xinxist1[],qkechenqk1[]);voidcaidan();voidxiansi(xinxi&st1);voidsetqstn(xinxist1[],qstuqt1[],intn);voidsetqkn(xinxist1[],qkechenqk[],intn);//全局变量intg,k=1,b=1;intq=-1;charname[20],kechen[10],queke[10],jieci[3];inty,m,d;//主函数intmain(){xinxitl[15];//定义15条信息类对象 qstuqt[10]; qkechenqk[6];intch; while(1) {cout<<"********欢迎进入学生考勤管理系统!*********"<<endl; caidan();cout<<"请选择菜单项:"<<endl;cin>>ch; switch(ch) {case1:g=shuru(tl);break; case2:xiugai(tl,g);break; case3:chaxun(tl,qt);break; case4:tongji1(tl,qt);break; case5:tongji2(tl,qk);break; case6:exit(0); } } return0;} //菜单函数voidcaidan(){system("colorA"); cout<<"*************************************************************"<<endl;cout<<"*学生考勤管理系统*"<<endl;cout<<"*************************************************************"<<endl;cout<<"1.录入学生的缺课记录*"<<endl;cout<<"2.修改学生的缺课记录*"<<endl;cout<<"3.查询学生的缺课情况*"<<endl;cout<<"4.统计某段时间内旷课学生姓名及旷课节数*"<<endl;cout<<"5.统计某段时间内旷课的课程及旷课人次*"<<endl;cout<<"6.退出系统*"<<endl;}//输入函数intshuru(xinxist1[]){chara; 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>>queke; st1[q].setqklx(queke); cout<<"请输入缺课节次"<<endl; cin>>jieci; st1[q].setjieci(jieci); cout<<"是否还要继续输入:(y/n)"<<endl; cin>>a; }while(a=='y'); returnq+1;}//修改函数 voidxiugai(xinxist1[],intn) { intk=1,j=0,a[10]; intflgh;inth;while(k==1) {cout<<"请输入你要修改缺课记录的学生姓名"<<endl;cin>>name; flgh=0; for(inti=0;i<n;i++) if(strcmp(name,st1[i].getname())==0) do{a[j]=i; cout<<"1.修改日期2.修改节次3.修改课程名称4.修改缺课类型"<<endl; cout<<"请输入要选择的数值(1,2,3,4)"<<endl; intb; cin>>b; if(b==1) {cout<<"请输入新日期"<<endl; cin>>y>>m>>d; st1[i].settime(y,m,d); } 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<<"没有你要找的学生姓名,请重试要退出请按0"<<endl;cin>>k; } else {cout<<"还要继续吗(1\0)退出请按0"<<endl; cin>>k; } } for(inti=0;i<j;i++) {h=a[i]; xiansi(st1[h]); }}//查询函数voidchaxun(xinxist1[],qstuqt[]){ charn='y'; intu[10]; while(n=='y') {intj=0; cout<<"输入你要查询的学生姓名:"<<endl; cin>>name; inti=0; for(;i<g;i++) if(strcmp(name,st1[i].getname())==0) {u[j]=i;j++; }if(j==0) {cout<<"没有你所要的学生名字!";//没有找到 cout<<"是否退出退出请按n\n"; cin>>n; } for(inta=0;a<j;a++) {//只有一条信息 if(j<2){i=u[a];cout<<"|缺课日期|"<<"第几节课|"<<"课程名称|"<<"缺课类型|"<<endl;cout<<"|"<<*st1[i].gettime()<<"|"<<*(st1[i].gettime()+1)<<"|"<<*(st1[i].gettime()+2)<<"|"<<st1[i].getjieci()<<"|"<<st1[i].getkechen()<<"|"<<st1[i].getqklx()<<"|"<<endl; } //两条信息以上排序else{i=u[a]; if(*(st1[i].gettime()+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(xinxist1[],qstuqt1[]) {intd1=0,js=0; xinximin; if(g==0) cout<<"没有你要统计的学生信息请返回菜单录入学生缺课信息"<<endl; elseif(g==1) { cout<<"姓名:"<<st1[0].getname()<<endl;if(*(st1[0].getjieci()+2)!='\0') js=+2; else js++; cout<<"节数:"<<js<<endl; } else //信息按时间排序 {inti=0; for(;i<(g-1);i++) { if(*(st1[i].gettime()+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; } } } } //统计某段时间内旷课的课程及旷课人次voidtongji2(xinxist1[],qkechenqk1[]) {intd1=0,rc=0;xinximin;if(g==0) cout<<"没有你要统计的学生信息请返回菜单录入学生缺课信息"<<endl; elseif(g==1) { cout<<"课程名:"<<st1[0].getkechen()<<endl; rc++; cout<<"人数:"<<rc<<endl; } else { inti=0; for(;i<g;i++) { if(*(st1[i].gettime()+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<b;i++) {setqkn(st1,qk1,g); cout<<"课程名:"<<qk1[i].qkn<<endl; cout<<"人数:"<<qk1[i].getrc(st1,g,i)<<endl; } } }}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产地重楼购销合同标准文本
- 秋季学期个人发展计划
- 典当行房产借款合同标准文本
- 农村公寓转让合同标准文本
- 2025装饰装潢工程合同
- 水务行业质量管理体系的构建计划
- 养殖竹鼠合同回收合同标准文本
- 2025年汽车租赁协议合同范文
- 2025建筑设备租赁协议(合同版本)
- 2025专属定制合同及员工手册等企业规章制度服务
- 2025-2030中国热电偶线行业市场发展趋势与前景展望战略分析研究报告
- 北京市海淀区2023-2024学年七年级下学期期末道德与法治试题(原卷版)
- 设备使用维护保养基础知识培训
- 2025人教版七年级下册生物期中学业质量检测试卷(含答案)
- 2025年长春汽车职业技术大学单招职业技能测试题库参考答案
- 鸿蒙HarmonyOS应用开发基础教程 课件 单元6-Stage模型
- 机动车检测站安全生产培训
- 2025天津市建筑安全员-B证考试题库及答案
- 流浸膏剂浸膏剂讲解
- 2025年新疆水利水电勘测设计研究院有限责任公司招聘笔试参考题库附带答案详解
- 新农村建设之《农村自建房设计图纸38套》高清版
评论
0/150
提交评论