C++课程设计高校学生信息管理系统.docx
《C++课程设计高校学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计高校学生信息管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
C++课程设计高校学生信息管理系统
《C++程序设计》课程设计
课程名称:
C++语言程序设计
设计课题:
高校学生信息管理系统
学院:
信息科学技术学院
专业:
数学与应用数学
年级:
目录
一、引言1
二、课程设计任务1
三、设计方案1
1、程序代码1
2、运行结果截图8
四、结论8
五、参考文献9
《C++程序设计语言》课程设计
一、引言
随着人们生活水平的提高,计算机发展异常迅速。
如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。
通过计算机对各类问题求解已经成为一种高效、快捷的方式。
本课程设计就是用C++研究两点距离的求解的问题,实现对两点距离的问题求解,和实现类模板的应用以及函数的调用。
二、课程设计的任务
使用类实现编写一个高校学生信息管理系统,能够实现录入学生的基本信息,含有姓名、编号、性别、出生信息、身份证号、专业、导师以及分出各类学生,有研究生、助教博士生等信息。
三、设计方案
1、程序代码:
lab1_1.h:
People(人员)类的声明及成员函数的实现
#include
#include
usingnamespacestd;
classDate{
private:
intyy,mm,dd;
public:
Date(){}
Date(Date&d):
yy(d.yy),mm(d.mm),dd(d.dd){}//增添
~Date(){}
intGetyy()const{returnyy;}
intGetmm()const{returnmm;}
intGetdd()const{returndd;}
voidSetyy(inty){yy=y;}
voidSetmm(intm){mm=m;}
voidSetdd(intd){dd=d;}
};
classPeople{
private:
charname[11];//姓名,增添
charnumber[7];//编号
charsex[3];//男或女
Datebirthday;//出生日期
charid[16];//身份证号
public:
People(){}
People(People&p);
~People(){}
voidGetname(charna[]){strcpy(na,name);}
voidGetnumber(charnu[]){strcpy(nu,number);}
voidGetsex(charse[]){strcpy(se,sex);}
intGetbirthyy()const{returnbirthday.Getyy();}
intGetbirthmm()const{returnbirthday.Getmm();}
intGetbirthdd()const{returnbirthday.Getdd();}
voidGetid(chard[]){strcpy(d,id);}
voidSetname(charna[]){strcpy(name,na);}
voidSetnumber(charnu[]){strcpy(number,nu);}
voidSetsex(charse[]){strcpy(sex,se);}
voidSetbirthyy(inty){birthday.Setyy(y);}
voidSetbirthmm(intm){birthday.Setmm(m);}
voidSetbirthdd(intd){birthday.Setdd(d);}
voidSetid(chard[]){strcpy(id,d);}
voidinput();
voidoutput();
};
People:
:
People(People&p)
:
birthday(p.birthday)
{
strcpy(name,p.name);
strcpy(number,p.number);
strcpy(sex,p.sex);
strcpy(id,p.id);
}
inlinevoidPeople:
:
input()
{
cout<<"姓名:
";cin>>name;
cout<<"编号:
";cin>>number;
cout<<"性别(男/女):
";cin>>sex;
cout<<"出生日期(年月日):
";
inty,m,d;cin>>y>>m>>d;
Setbirthyy(y);Setbirthmm(m);Setbirthdd(d);
cout<<"身份证号:
";cin>>id;
}
inlinevoidPeople:
:
output()
{
cout<<"姓名:
"<"<cout<<"性别:
"<cout<<"出生日期:
"<<cout<<"身份证号:
"<}
(2)lab1_2.h:
People类的派生类
#include"lab1_1.h"
classstudent:
virtualpublicPeople{//学生类
private:
charclassNo[7];//班号
public:
student(){}
student(student&st):
People(st){strcpy(classNo,st.classNo);}//使用类型兼容规则
~student(){}
voidGetclassNo(charcNo[]){strcpy(cNo,classNo);}
voidSetclassNo(char*c){strcpy(classNo,c);}
voidinput()
{People:
:
input();cout<<"班号:
";cin>>classNo;}
voidoutput()
{People:
:
output();cout<<"班号:
"<};
classteacher:
virtualpublicPeople{//教师类
private:
charprincipalship[11];//职务
chardepartment[21];//部门
public:
teacher(){}
teacher(teacher&t):
People(t){
strcpy(principalship,t.principalship);
strcpy(department,t.department);
}
~teacher(){}
voidGetprincipalship(char*pri){strcpy(pri,principalship);}
voidGetdepartment(char*dep){strcpy(dep,department);}
voidSetprincipalship(char*pri){strcpy(principalship,pri);}
voidSetdepartment(char*dep){strcpy(department,dep);}
voidinput(){
People:
:
input();
cout<<"职务:
";cin>>principalship;
cout<<"部门:
";cin>>department;
}
voidoutput(){
People:
:
output();
cout<<"职务:
"<cout<<"部门:
"<}
};
classgraduate:
publicstudent{//研究生类
private:
charsubject[21];//专业
teacheradviser;//导师
public:
graduate(){}
graduate(graduate&g):
student(g),adviser(g.adviser){strcpy(subject,g.subject);}
~graduate(){}
voidGetSubject(char*sb){strcpy(sb,subject);}
voidGetadviser(teacher&ad){
charna[11];adviser.Getname(na);ad.Setname(na);
charnb[7];adviser.Getnumber(nb);ad.Setnumber(nb);
charse[3];adviser.Getsex(se);ad.Setsex(se);
ad.Setbirthyy(adviser.Getbirthyy());
ad.Setbirthmm(adviser.Getbirthmm());
ad.Setbirthdd(adviser.Getbirthdd());
charid0[16];adviser.Getid(id0);ad.Setid(id0);
charpp[11];adviser.Getprincipalship(pp);ad.Setprincipalship(pp);
chardp[21];adviser.Getdepartment(dp);ad.Setdepartment(dp);
}
voidSetSubject(char*sb){strcpy(subject,sb);}
voidSetadviser(teacher&ad){
charna[11];ad.Getname(na);adviser.Setname(na);
charnb[7];ad.Getnumber(nb);adviser.Setnumber(nb);
charse[3];ad.Getsex(se);adviser.Setsex(se);
adviser.Setbirthyy(ad.Getbirthyy());
adviser.Setbirthmm(ad.Getbirthmm());
adviser.Setbirthdd(ad.Getbirthdd());
charid0[16];ad.Getid(id0);adviser.Setid(id0);
charpp[11];ad.Getprincipalship(pp);adviser.Setprincipalship(pp);
chardp[21];ad.Getdepartment(dp);adviser.Setdepartment(dp);
}
voidinput(){
student:
:
input();
cout<<"专业:
";cin>>subject;
cout<<"导师:
"<adviser.input();
}
voidoutput(){
student:
:
output();
cout<<"专业:
"<cout<<"导师:
"<adviser.output();
}
};
classTA:
publicgraduate,publicteacher{//助教博士生类
public:
TA(){}
TA(TA&ta):
graduate(ta),teacher(ta){}
~TA(){}
voidinput(){
graduate:
:
input();
cout<<"助教博士生的职务:
";charpp[11];cin>>pp;
Setprincipalship(pp);
cout<<"助教博士生所在部门:
";chardp[21];cin>>dp;
Setdepartment(dp);
}
voidoutput(){
graduate:
:
output();
charpp[11];Getprincipalship(pp);
cout<<"助教博士生的职务:
"<chardp[21];Getdepartment(dp);
cout<<"助教博士生所在部门:
"<}
};
(3)Lab1_2.cpp:
主函数(测试)
#include"lab1_2.h"
voidmain(){
TAa;
cout<<"输入一个助教博士生的信息:
"<a.input();
cout<<"\n输出一个助教博士生的信息:
"<a.output();
}
2、运行结果截图
四、总结
通过本次课程设计,让我对C++这门学科对有了进一步的认识,掌握了类及类模板的应用。
以前对该课程不再那么恐惧,任何事情没有做不到只有愿不愿意去做。
之后凭借那闪现在眼前的点点思路,慢慢在琢磨,终于想出了大体的程序内容。
然后一个一个函数的思考,一步一步的编写,调试,做起来也就越来越顺手了。
通过我的反复思考,程序中的错误得到了解决。
函数功能也得到了进一步的完善。
并且在本次课程设计的过程中,让我知道一个人的力量真的好有限,即使个人能力再强,做一个大点的项目,也会力不从心。
所以遇到问题要学会去问同学,问老师,只有这样才能将事顺利办得越快越好。
通过这次课程设计,会为我们以后进入社会提供一定的经验。
我相信在今后的学习真的我会更加努力,积累经验。
使自己在编程等各方面得到提高。
五、参考文献
[1]张基温编著.C++程序设计基础.北京:
高等教育出版社,1996
[2]宛延闺.c++语言和面向对象程序设计.北京:
清华大学出版社,1999
[3]钱能主编.c++程序设计教程.北京:
清华大学出版社,1999