当前位置:文档之家› 学校类课程设计报告

学校类课程设计报告

中原工学院计算机学院C++课程设计姓名:王宏方学号:201100824223专业:计算机科学与技术班级:网络112课程:c++程序设计指导教师:王文奇一、课程设计目的及要求1.设计目的计算机学院所开设的C++课程设计是教学实践环节中一项重要内容,进行此课程设计的旨在:(1)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。

(2)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。

(3)学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。

本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。

2.设计要求1.编写学校类,要求:●包含成员学校名称、位置,校长等,并通过成员变量设置和获得这些变量的值。

●派生大学类:包括成员变量,院系个数;●派生中学类包含成员变量中学类型;●编写一个虚函数获得学校的功能(学校类中是纯虚函数、大学类的功能为“专业人才培养”,中学功能为“学习学科专业化与理论化的基础知识”)2.学生通讯录管理系统用面向对象的方法编写一个程序,实现在菜单中,输入数字序号,执行相应功能;基木要求:●学生信息包括:学号,姓名,所在专业和年级、性别,出生年月,手机,QQ,家庭住址等;●查询学生时,可以按照学号或姓名完成查询;●修改或删除学生时,可按照学号或姓名找到学生后完成相应修改;●显示学生信息时,要求可以按照学写或姓名的升序或降序分别进行显示;3.大数计算问题大数是超过整数表示范围的整数(-232~(232-1)),针对整数运算,定义一个大数类,并编写两个大数类对象的加法和减法函数。

说明:大数的计算范围为(-264~(264-1))基木要求:●(1)编写大数类对象的构造函数和输入输出函数●(2)重载大数类对象的加法和减法操作●(3)设计主函数时,可指定测试数据。

4.简单的学籍管理系统为了使学校教务处更好的管理学生的学籍和有关情况,方便快捷的处理各种信息,设计了程序。

比如有新生入学,可以利用程序创建班级,输入学生的信息和资料。

程序的基本功能:●向班级里插入一个学生,但必须是插在已经建立的班级里。

●输入学生信息,建立一个班级。

●修改一个学生的所有资料。

●删除某班的一个学生及其所有资料。

●删除一个班级。

●根据学生姓名查找某个学生信息。

二、课程设计具体实现(一)学校类1.总体设计创建一个学校类,包含名称,位置,校长三个成员变量,和一个功能虚函数;派生出大学类,中学类,分别在这两个类中实现功能虚函数。

2.详细设计创建了一个学校类,包含名称,位置,校长三个成员变量,并通过成员变量设置和获得这些变量的值。

定义一个功能虚函数。

代码如下:class xuexiao//创建学校类{public:xuexiao(string a,string b,string c)//构造函数{mingcheng=a;weizhi=b;xiaozhang=c;}void print1()//输出函数,获得成员变量的值{cout<<"学校名称:"<<mingcheng<<endl;cout<<"学校位置:"<<weizhi<<endl;cout<<"学校校长:"<<xiaozhang<<endl;}virtual void gongneng()=0;//定义一个gongneng()虚函数private:string mingcheng,weizhi,xiaozhang;//成员变量:名称,位置,校长。

};实现daxue类,定义yuanxi成员变量,和获得成员变量值的print2()成员函数。

实现了gongneng()虚函数,输出学校功能专业人才培养。

代码如下:class daxue:public xuexiao//以公有的方式由xuexiao类派生出daxue类{public:daxue(string a,string b,string c,int d):xuexiao(a,b,c)//构造函数,给成员变量赋值{yuanxi=d;}void print2(){cout<<"院系个数:"<<yuanxi<<endl;}void gongneng() //实现gongneng()虚函数。

{cout<<"学校功能:"<<"专业人才培养"<<endl;}private:int yuanxi;//yuanxi成员变量};实现zhongxue类,和大学类类似。

实现了用虚函数gongneng输出学校功能:学习学科专业化与理论化的基础知识。

class zhongxue:public xuexiao//以公有方式由xuexiao类派生zhongxue类{public:zhongxue(string a,string b,string c,string d):xuexiao(a,b,c)//构造函数,给各成员变量赋值{leixing=d;}void print3(){cout<<"学校类型:"<<leixing<<endl;}void gongneng()//实现gongneng函数{cout<<"学校功能:"<<"学习学科专业化与理论化的基础知识"<<endl;}private:string leixing;//成员变量leixing};3.程序调试及问题解决本题遇到问题主要是,编写代码时不认真等小问题。

4.源代码#include<iostream>#include<string>using namespace std;class xuexiao{public:xuexiao(string a,string b,string c){mingcheng=a;weizhi=b;xiaozhang=c;}void print1(){cout<<"学校名称:"<<mingcheng<<endl;cout<<"学校位置:"<<weizhi<<endl;cout<<"学校校长:"<<xiaozhang<<endl;}virtual void gongneng()=0;private:string mingcheng,weizhi,xiaozhang;};class daxue:public xuexiao{public:daxue(string a,string b,string c,int d):xuexiao(a,b,c) {yuanxi=d;}void print2(){cout<<"院系个数:"<<yuanxi<<endl;}void gongneng(){cout<<"学校功能:"<<"专业人才培养"<<endl;}private:int yuanxi;};class zhongxue:public xuexiao{public:zhongxue(string a,string b,string c,string d):xuexiao(a,b,c){leixing=d;}void print3(){cout<<"学校类型:"<<leixing<<endl;}void gongneng(){cout<<"学校功能:"<<"学习学科专业化与理论化的基础知识"<<endl;}private:string leixing;};int main(){daxue s1("中原工学院","郑州龙湖","崔世忠",18);zhongxue s2("鹿邑一中","河南鹿邑","光头强","重点高中");s1.print1();s1.print2();s1.gongneng();s2.print1();s2.print3();s2.gongneng();return 0;}(二)学生通讯录管理系统1. 总体设计2. 详细设计(1)信息输入模块主要功能:输入联系人的信息。

主要技术:(使用的函数、语句等)使用for 循环性别判断使用到if …else if.. Else重新输入及判断是否继续用到 goto 语句用到输入流。

关键代码:ofstream o1("xuesheng.txt",ios_base::app);o1<<setw(10)<<id<<setw(10)<<name<<setw(10)<<grade<<setw(10)<<sex<<se tw(10)<<birthday<<setw(10)<<tell<<setw(10)<<adress<<setw(10)<<QQ<<endl; 代码解释:在输入中,比较简单,重要的是写入到数据文件里,关键代码就是往数据文件中增加数据信息。

关键代码是用ofstream 类,建立了o1对象,xuesheng.txt 是数据文件和类型,ios_base::app 是在xuesheng.txt 追加。

下面的代码是要添加的数据。

o1<<setw(10)<<id<<setw(10)<<name<<setw(10)<<grade<<setw(10)<<sex<<se tw(10)<<birthday<<setw(10)<<tell<<setw(10)<<adress<<setw(10)<<QQ<<endl; 学生通讯录管理系统输入信息 显示所有 查询信息 修改信息 退出系统删除信息(2)信息显示模块主要功能:用于显示所有联系人的信息。

相关主题