目录一、设计目的...................................................................................................................................2二、环境配置要求:.......................................................................................................................2三、设计题目...................................................................................................................................2题目1学生学籍管理系统....................................................................................................2题目2学生选修课系统........................................................................................................5四、课程设计文字资料要求...........................................................................................................8五、总结报告...................................................................................................................................8六、考核...........................................................................................................................................8七、实间安排...................................................................................................................................9附录:参考代码.............................................................................................................................10学生学籍管理系统.................................................................................................................10选修课系统.............................................................................................................................25《程序设计语言(C++)》课程设计一、设计目的1、进一步掌握利用C++进行类的定义和操作方法;2、进一步掌握类的继承和派生方法;3、进一步理解虚函数和多态;4、综合利用上述知识,学习设计并编写面向对象的C++简单应用程序;5、培养学生团结协作的能力。二、环境配置要求:硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于64MB,硬盘自由空间不少于200MB。推荐配置为内存128MB或256MB(或以上),硬盘自由空间500MB以上。操作系统:Windows2000/NT/Xp、VisualC++集成开发环境。三、设计题目题目1学生学籍管理系统(一)、系统的主要功能1.添加系统将提示用户输入新添加的职员的信息,插入在链表中。2.删除首先由用户输入要删除的学生的学号,然后调用删除函数,删除该名学生的资料。3.查找首先由用户输入要查找的学生的学号,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生资料。4.修改首先由用户输入要修改的学生的学号,然后系统用修改函数查找,显示该名学生的资料,然后系统提示用户输入需要修改的项目和新的资料。5.其他功能在上述功能的基础上进行进一步完善。(二)、系统总框架图(三)、系统数据结构定义classlistNode{//这是数据节点!public:listNode(){}listNode(Inform&);listNode(listNode&);listNode*create();//创建链表listNode*insert(listNode*);//对链表进行插入操作;listNode*del(listNode*,char*);//删除资料中含有char*的节点;voidprintlistNode(listNode*);//打印链表;~listNode();voidsearch(char*,listNode*);//查找链表中含有char*的学生;listNode*modify(listNode*);//修改private:Informdata;staticintnum;listNode*nextPtr;};****************************Inform.h**************************classInform{friendostream&operator(ostream&,Inform&);friendistream&operator(istream&,Inform&);public:Inform();Inform(Inform&);intoperator==(constInform&);intoperator==(char*);intoperator!=(char*);Inform&operator=(Inform&);~Inform();主要提示的菜单界面开始界面查找资料修改资料删除资料输出资料插入资料private:char*number;char*id;char*name;char*sex;achieveach;char*phonenumber;char*roomnumber;};************************achieve.h********************************************cclassachieve{friendostream&operator(ostream&output,achieve&);friendistream&operator(istream&input,achieve&);public:achieve();voidcountaverage(subject*);intoperator==(achieve&);achieve&operator=(achieve&);voidinstruction();~achieve();voidsetnum(inta);intgetnum();subject*TT;private:intnum;floatsum;floataverage;};*******************************subject.h*************************************classsubject{friendistream&operator(istream&,subject&);friendostream&operator(ostream&,constsubject&);public:subject&operator=(constsubject&);charname[MAX1];floatachievement;floatxuefen;};题目2学生选修课系统(一)、系统的主要功能1.选修课系统学生端完成学生选课、学生情况、选课情况、退出系统等功能的设计与实现。2.选修课系统管理端完成增加学生、增加课程、删除学生、删除课程、填写成绩、更改学分、学生情况、选课情况、保存数据、退出系统等功能的设计与实现。(二)、系统总框架图(三)、系统数据结构定义//定义课程structcourse//某个学生所学的课程中的某一个{charcname[20];//课程名称floatgrade;//课程成绩course*Next;//指向下一个课程的指针};//学生类classstudent{public:student(){root=NULL;constmaxcourse=5;选课系统选修课系统学生端选修课系统管理端学生选课学生情况选课情况退出系统增加课程增加学生删除学生删除课程填写成绩更改学分学生情况选课情况保存数据退出系统factcourse=0;}voidreadname(charN[]);//读入学生的姓名voidgetname(charN[]);//得到学生的姓名voidwrecourse(charN[],floatscore);//要据课程名写入学生课程的成绩floataverage();//学生课程的平均成绩voidaddcourse(charN[],floatg);//给学生增加一门课intfindcourse(charN[]);//查找是否已有此课程,如果有返回1,如果没有返回0intretfactcourse(){returnfactcourse;}//得到所学的课程数目course*retroot(){returnroot;//利用键表将所有的课程保存起来}intretmaxcourse(){return5;//得到最多可学的课程数目}voidclrroot()//清零{root=NULL;factcourse=0;}private:charsname[20];//学生的姓名intmaxcourse;//学生最多可以学五门课程intfactcourse;//学生实际所学的课程数目course*root;//课程的根结点指针};structstudentdb{studentstu;studentdb*Next;};structstudentname{chartname[20];//学生的名字floatresult;//学生所得的该课程分数studentname*Next;};//课程类classsubject{public:subject(){first=NULL;maxstudent=30;activestudnet=0;}floatreadcredit();//得到课程的学分voidgetcredit(floata);//设置学分floatgetaverage();//得到学生的平均成绩floatgetresult(charN[]);//查找某个学生的成绩voidgetkname(charN[]);//读出课程的名称voidsetkname(charN[]);//读入课程的名称voidfindstudent(studentdb*P);//根据该课程的名称,寻找选这课程的学生studentname*retfirst(){returnfirst;//返回根结点}intretactivestudent(){returnactivestudnet;//返回实际学生数}intretma