ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:22.66KB ,
资源ID:27657127      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27657127.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++程序设计大作业含源代码讲解学习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++程序设计大作业含源代码讲解学习.docx

1、C+程序设计大作业含源代码讲解学习 面向对象程序设计大作业姓名:叶尔凯西 学院(系):计科系 班级:计科系07-1班 学号:08080605227设计本程序的目的: 关于一些并不太复杂的集体来说,一般需要管理集体中的每个人的基本信息的,本程序专门为一些在校学生的基本信息的管理而设计的,主要目的是通过本程序来实现简单的记录和查找学生的基本信息;程序功能简介: 本程序是通过面向对象的最重要的特点“类”来设计出来的,其功能是实现简单的学生基本信息管理。包括一些要求用户从键盘输入(记录)学生的基本信息、输出学生的基本信息和用学生的学号来查找学生信息表中的某个学生的基本信息等功能;程序功能的详细介绍:

2、本人设计程序时考虑到的很所内容,其中输入输出学生的基本信息是最基本的功能。下面来给大家介绍程序的核心类的构建:1 在程序中共建立了两种类,分别是person类和student类。person作为student类的基类,其内部是如下设计的:class personpublic: void SetPersonAddress(char *AddressFromMain); void SetPersonSex(char *SexFromMain); void ShowPersonSex(); void ShowPersonAddress(); private: char Address25; char

3、 Sex2; 可以看到,在上面分别声明了四个成员函数和两个数据成员。四个成员函数的作用是对私有数据成员进行访问(包括输入和输出)。所以当建立了一个person类之后就可以通过它的对象来访问该类的数据成员。下面分别说明每一个成员函数的具体定义:(1) 设置(输入)人地址的成员函数: void person:SetPersonAddress(char *AddressFromMain) strcpy(Address,AddressFromMain); 通过strcpy把字符指针的内容送入person类中的数据成员Address。(2) 设置(输入)人性别的成员函数: void person:Set

4、PersonSex(char *SexFromMain)strcpy(Sex,SexFromMain); 通过strcpy把字符指针SexFromMain的内容作为地址的存储单元中的内容送入person类中Sex数据成员。(3) 输出地址成员函数: void person:ShowPersonAddress() coutAddressendl;输出person类中的Address数据成员的内容;(4) 输出性别的成员函数: void person:ShowPersonSex() coutSexendl;输出person类中的Sex数据成员的内容;接下来就是person基类的派生类student

5、类的内部设计如下:class student: public personpublic:void SetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score);void ShowStudentInformation();friend void FindStudentNumber(student *data);friend void FindStudentName(student *data

6、);private:int MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult; char StudentNumber25; char Name25; float Average; int total;当设计student派生类的时候,最主要的特点就是利用了“类”的一个特点继承。所以说派生出来的student类也具有基类person的一些特点。在继承的方式上本人使用了共有继承方式(public),下面来给大家介绍student类的内部构造:1 成员函数共有设置(

7、输入)学生信息、输出学生信息等两个。还有一个非成员函数的一个函数,它为该student类的友元函数,其功能是实现查找。除此之外还有从基类person类继承下来的一些成员函数;2 数据成员分别为整形变量的学生成绩(包括数学成绩、英语成绩、C+成绩、汇编语言成绩、数字逻辑成绩、马克思哲学成绩等),字符数组的学生学号和学生姓名以及整型变量的学生的总分和单精度变量的平均分;下面介绍student派生类中的各个成员函数的定义部分:设置(输入)学生信息的成员函数: Void student:SetStudentInformation(char*NameFromMain,char*StudentAddres

8、sFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score) strcpy(Name,NameFromMain); SetPersonAddress(StudentAddressFromMain); SetPersonSex(StudentSexFromMain); strcpy(StudentNumber ,StudentNumberFromMain); for(int i=0; i6; i+) switch(i) case 0: MathResult=score0; case 1: EnglishRe

9、sult=score1; case 2: CResult=score2; case 3: CompilationLanguageResult=score3; case 4: DigitalLogicResult=score4; case 5: MarksismResult=score5; total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+MarksismResult; Average=total/6.0; 可以看到在设计student类的输入成员函数时其内部同时调用了从基类继承

10、下来的一些成员函数,这就是继承的特点。下面将会详细地介绍该成员函数的功能: 首先是student类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy来直接实现,也就是可通过该类的成员函数来给数据成员赋值。还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过student派生类的成员函数中调用从基类person中继承下来的成员函数,从而改变对不能被继承下来的基类的数据成员赋值。接着就是对student类中自己的数据成员学生成绩的赋值,它们是通过一个简单的switch case语句来实现的。 输出学生信息的成员函数:void student:ShowStud

11、entInformation() coutendl; cout学生的基本信息如下: endlendl; cout学生的姓名: Nameendlendl; cout学生的学号为: StudentNumberendlendl; cout学生的家庭地址为: ; ShowPersonAddress(); coutendl; cout学生的性别为: ; ShowPersonSex(); coutendl; cout学生的考试课程成绩如下: endlendl; cout学生的离散数学课程成绩为: MathResult分endlendl; cout学生的英语课程成绩为: EnglishResult分endl

12、endl; cout学生的C+课程成绩为: CResult分endlendl; cout学生的汇编语言课程成绩为: CompilationLanguageResult分endlendl; cout学生的数字逻辑课程成绩为: DigitalLogicResult分endlendl; cout学生的马克思主义哲学课程成绩为: MarksismResult分endlendl; cout学生的总分为:total分endlendl; cout学生的平均分为:Average分endlendl; 输出学生信息的成员函数的定义中不难发现输出时不仅会输出student派生类自己的数据成员的值还会同时输出不能被继

13、承下来的基类person中的数据成员的值。这显然只能通过继承下来的成员函数来实现(如ShowPersonAddress()和ShowPersonSex()。 下面来介绍三个非成员函数,其中两个为student类的友元函数。它就是实现查找功能的(分别用学生学号和学生姓名来进行查找),另一个是一个单独的普通函数。其功能是当程序运行时保持一个用户界面的功能。 Student类共有两个友元函数,分别是friend void FindStudentNumber(student *data)和friend void FindStudentName(student *data),它们两个都有查找功能,只是一

14、个用学生的学号另一个用学生的姓名进行查找。 下面详细介绍student类的两个友元函数中的用学号查找的函数是如何的定义:void FindStudentNumber(student *data) char findnum25; coutfindnum; int i=0; for(i;iStuNum;i+) if(strcmp(datai.StudentNumber,findnum)=0) cout在第i+1个编号里有您查找的记录:endl; datai.ShowStudentInformation(); if(strcmp(datai.StudentNumber,findnum)0) cout

15、在编号i+1里没有您查找的记录!endl; 下面详细介绍student类的两个友元函数中的用姓名查找的函数是如何的定义:void FindStudentName(student *data) char findname25; coutfindname; int i=0; for(i;iStuNum;i+) if(strcmp(datai.Name,findname)=0) cout在第i+1个编号里有您查找的记录:endl; datai.ShowStudentInformation(); if(strcmp(datai.Name,findname)0) cout在编号i+1里没有您查找的记录!

16、endl; 可以看出student类的两个友元函数即查找(分别用学号和姓名)函数的定义都很相似,主要是算法是一致。因为在student类中数据成员学生姓名和学生学号都是用字符数组来定义的,所以上面的两个分别用学号和姓名来查找的函数的算法是基本一致的,只是一个是用student类的一个对象中里面的name(姓名)去查找,另一个是用student类的一个对象中里面的StudentNumber(学生姓名)去查找。在整个查找函数先是在函数的参数表中声明student类的对象指针,在主函数main中当调用查找函数时把main函数中定义的student类的数组的首地址传送给查找函数。在查找函数中先定义一个

17、字符数组,再提示用户输入要查找的学生的姓名或学号,当姓名或学号在相应的学生编号里的相应的name(姓名)和StudentNumber(学生学号)相等时查找便成功并提示用户该学号或姓名为基本信息的学生信息输出在屏幕上,当不相等时查找不成功并提示用户没有找到学生的记录。下面介绍非成员函数即普通函数(程序运行时保持一个用户界面功能的函数): void paint() int i; cout 学生信息管理系统endl; for (i = 0; i80; i+) putchar(%); coutendl; cout(1) 输入学生的信息 (3)用学号查找学生基本信息 endl; coutendl; co

18、ut(2) 输出学生信息 (4)用姓名查找学生基本信息 endl; coutendl; cout(0) 退出程序 endl; cout 备注:如果您还没有输入任何信息,请先输入信息再输出!endl; coutendl; for (i = 0; i80; i+) putchar(%); coutendl; 上面的普通函数只是一个简单的函数,其功能只是在屏幕上保持如下一个画面: 学生信息管理系统%(1) 输入学生的信息 (3)用学号查找学生基本信息(2) 输出学生信息 (4)用姓名查找学生基本信息(0) 退出程序 备注:如果您还没有输入任何信息,请先输入信息再输出!% 接着给大家介绍主函数main

19、的定义部分:void main() char StuSex2,StuName25 ,StuAddress25,StuNumber25; int StuScore6,ctrl; int i=0,j; student stuStuNum; paint(); cout请选择一个序号 ctrl; while (ctrl != 0) switch(ctrl) case 1: for(i; iStuNum; i+ ) system(cls); cout请输入第i+1个学生的基本信息:endl; coutStuName; coutendl; coutStuSex; coutendl; coutStuNumb

20、er; coutendl; coutStuAddress; coutendl; cout请按顺序输入学生的考试成绩endl; coutendl; coutStuScore0; coutendl; coutStuScore1; coutendl; coutStuScore2; coutendl; coutStuScore3; coutendl; coutStuScore4; coutendl; coutStuScore5; coutendlendl; stui.SetStudentInformation(StuName,StuAddress,StuSex,StuNumber,StuScore);

21、 break; case 2: coutendl; system(cls); for(j=0; jStuNum; j+) stuj.ShowStudentInformation(); system(pause); break; case 3: coutendl; system(cls); FindStudentNumber(stu); system(pause); break; case 4: coutendl; system(cls); FindStudentName(stu); system(pause); break; if (ctrl != n) system(cls); paint(

22、); cout请选择一个序号ctrl; main主函数的实现比较长,主要是因为在main函数中不仅仅定义了普通变量(基本变量)用来暂时存放从键盘输入的学生基本信息,还定义了student类的对象数组,且使用了while循环和switch case语句来不停地进行选择,case的每一个分句分别实现不同的功能,case 1主要实现输入,用for循环来把student对象数组的每一个对象本别进行赋值;case 2主要实现输出功能,输出时用for循环调用每一个student数组对象的ShowStudentInformation()函数(输出学生信息的成员函数);case 3和case 4主要就是实现查

23、找功能,只是因为查找函数不是student类的成员函数,所以可以直接调用函数,在实参表里写了student对象数组的首地址,把student对象数组的首地址传递给查找函数;程序源代码:#include#includeusing namespace std;const int StuNum=1;class personpublic: void SetPersonAddress(char *AddressFromMain); void SetPersonSex(char *SexFromMain); void ShowPersonSex(); void ShowPersonAddress(); p

24、rivate: char Address25; char Sex2;void person:SetPersonAddress(char *AddressFromMain) strcpy(Address,AddressFromMain);void person:SetPersonSex(char *SexFromMain) strcpy(Sex,SexFromMain); void person:ShowPersonAddress() coutAddressendl;void person:ShowPersonSex() coutSexendl;class student: public per

25、sonpublic: void SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char *StudentSexFromMain,char *StudentNumberFromMain, int *score); void ShowStudentInformation(); friend void FindStudentNumber(student *data); friend void FindStudentName(student *data);private: int MathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult; char StudentNumber25; char Name25; float Average; int total;void student:SetStudentInformation(char *NameFromMain,char *StudentAddressFromMain,char* StudentSexFrom

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1