C++学生信息管理系统课程设计报告.doc_第1页
C++学生信息管理系统课程设计报告.doc_第2页
C++学生信息管理系统课程设计报告.doc_第3页
C++学生信息管理系统课程设计报告.doc_第4页
C++学生信息管理系统课程设计报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档一、课程设计目的 1.通过C+课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。2.用所学的C+语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C+编程环境(VC+)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1. 目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C+语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2. 要求 基本要求:(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义三个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。3.信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。4.功能描述(1) 使用继承的方法构造3个类(如人员类-基类,普通学生类和管理员类-派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3) 录入学生信息并保存(4) 按不同类别输出学生信息(如按性别、年龄等)(5) 查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。首先,看题目要求,每一条记录包括一个学生姓名,班级、性别,院系和各科成绩。同时,应具备以下功能:(一)管理员登陆:允许管理员登陆并包含如下内容:1、添加信息:可以完成对一个学生的信息记录的输入。2、查看所有信息:将所有的学生信息显示出来。3、删除信息:对指定姓名的学生的信息进行删除。4、查询信息:以姓名方式,显示出和输入名字相符的学生信息。5、对信息进行存盘:上述操作的结果存入文件中。6、关闭程序:退出学生信息管理系统。(二)学生登陆:允许学生登陆并包含如下内容: 1、查看所有信息:将所有的学生信息显示出来。2、查询信息:以姓名方式,显示出和输入名字相符的学生信息。3、 关闭程序:退出学生信息管理系统。四、程序流程图各功能模块的实现流程图:1、添加信息新增学生信息退出该功能,返回主菜单,继续选择按提示输入学个的各种信息判断以前是否存储了学生信息2 查看所有信息显示学生的信息退出该功能,返回主菜单,继续选择导入学生信息文件data.txt退出该功能,返回主菜单,继续选择3、删除信息输入要删除学生的姓名删除该生的信息,显示删除成功4、查询信息退出该功能,返回主菜单,继续选择查询该生的信息,显示出内容输入要查询学生的姓名五、功能模块图3.输入要删除的学生的姓名,删除该学生信息1.输入学生的姓名、班级、性别、院系及各科成绩1. 添加信息2. 查看所有信息3. 删除信息4. 查询信息5. 对信息进行存盘6. 关闭程序4.输入要查询的学生的姓名,显示该学生的信息6.退出系统学生管理系统功能模块图2.显示文件保存的所有的学生信息5.保存学生信息六、类设计Node类public:node* left; node* right; node(); void add(node* n); node* del1(); void show(); info类public:string NAME; string GRADE; string SEX; string YARD; string C;string ENGLISH;string MATH;由于学生的姓名、班级、性别、院系及各科成绩是学生共有的,可以抽取出来形成一个类,这里定义为info类。因为在存储的时候,每个学生的信息都以一个节点的形式存储,所以我们再定义一个node类,这个类是info类的派生类。七、各功能模块效果图添加信息查看所有信息删除信息查询信息八、程序代码=test.h=#include using namespace std;class infopublic:string NAME; string GRADE; string SEX; string YARD; string C; string ENGLISH;string MATH;class node:virtual public info public:node* left; node* right; node(); void add(node* n);node* del1(); void show(); ;node* del1(node& head, string name); void init(node &head,string name,string grade,string sex,string yard,string c,string english,string math);void del(node* n); void enter(node& head); void display(node& head); void search(node& head, string name); void save(node &head); void menu1(node& head); void menu2(node& head);=test.cpp=#include #include #include #include #include conio.h#include test.husing namespace std;node:node() left=0,right=0; void node:add(node* n) n-right=right; n-left=this; if(right!=NULL)right-left=n; right=n; node* node:del1() if(left!=0)left-right=right; if(right!=0)right-left=left; return 0;void node:show() cout=endl; cout姓名: setw(8)NAMEendl; cout班级: setw(8)GRADEendl; cout性别: setw(8)SEXendl; cout院系: setw(8)YARDendl; cout成绩如下: endl; coutC语言: setw(8)Cendl; cout英语 : setw(8)ENGLISHendl; cout数学 : setw(8)MATHendl;cout=; coutright) if(i-NAME=name) return i; return 0;void init(node &head,string name,string grade,string sex,string yard,string c,string english,string math)node* n;n=new node; n-NAME = name; n-GRADE = grade; n-SEX = sex; n-YARD = yard; n-C = c;n-ENGLISH = english;n-MATH = math; head.add(n);void del(node* n) if(n!=0)n-del1();delete n;void enter(node& head) node* n;n=new node; cout输入姓名、班级、性别、院系、成绩:endl; coutn-NAME; coutn-GRADE; coutn-SEX; coutn-YARD; cout成绩:endl;coutn-C;coutn-ENGLISH;coutn-MATH;cout=输入完成=right) i-show();void search(node& head, string name) for(node*i=head.right; i!=0; i=i-right) if(i-NAME=name) if(i!=0) i-show(); void save(node &head) ofstream file(data.txt);file姓名t班级t性别t院系tCt英语t数学nright)fileNAMEtGRADEtSEXtYARDtCtENGLISHtMATHn;void menu1(node& head) bool b=false; string a;system(cls); cout=学生信息管理=endlendl; cout1.添加信息endl;cout2.查看所有信息endl;cout3.删除信息endl;cout4.查询信息endl;cout5.对信息进行存盘endl;cout6.关闭程序endl;cout=endl;coutendl;cout请选择操作指令:a; if(a=2) cout数据如下:endl; display(head);getch();menu1(head); else if(a=3) couta;while(1)if(del1(head,a) != 0)del(del1(head, a);elsebreak;cout删除成功!endl;getch();menu1(head); else if(a=1) enter(head);getch(); menu1(head); else if(a=4) couta; search(head, a); cout=查找成功=endl;getch();menu1(head); else if (a = 5) save(head);cout=保存成功=endl;getch();menu1(head); else if (a = 6) break; else cout无效指令,请重新输入:; exit(1);void menu2(node& head) bool b=false; string a; cout=学生信息管理=endlendl;cout1.查看所有信息endl;cout2.查询信息endl;cout3.关闭程序endl;cout=endl;coutendl;cout请选择操作指令:a; if(a=1) cout数据如下:endl; display(head);getch();system(cls);menu2(head); else if(a=2) couta; search(head, a); cout=查找成功=endl;getch();system(cls);menu2(head); else if (a = 3) break; else cout无效指令,请重新输入:; exit(1);=Main.cpp=#include #include #include #include #include test.husing namespace std;int passwd=123; int main() system(cls); node head; string name,grade,sex,yard;string c,english,math;int flag;int password;ifstream read (data.txt); if (read) while (readnamegradesexyardcenglishm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论