学生信息管理系统.txt.docx_第1页
学生信息管理系统.txt.docx_第2页
学生信息管理系统.txt.docx_第3页
学生信息管理系统.txt.docx_第4页
学生信息管理系统.txt.docx_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

学生信息管理系统完成时间 2013年5月27日1、 编程目的(1)对C+语法、基础知识进行综合运用,编写具有一定综合应用价值的稍大一些的程序, 掌握面向对象程序设计(OOP)的思想,培养学生使用面向对象的程序设计思想分析和解决实际问题的能力;(2)掌握在Visual C+集成开发环境下编辑、编译、链接和运行一个C+程序的基本方法; (3)加深对所学知识的理解和掌握;(4)培养文档报告书面表达和思辨的能力。2、 系统简介利用面向对象的方法以及C+的编程思想来完成学生信息管理系统的设计。学生信息包括:学号、姓名、性别、班级、联系电话等等信息(也可自主设计其他的学生相关信息)。要求实现学生信息的增加、修改、查询、删除、浏览等基本功能。学生信息保存在文件中,要求文件中至少要记录10位学生信息的相关数据。3、 编程思路本程序建立了带表头节点的链表类、菜单类、主函数。菜单类包括增加学生信息、删除信息、查找、浏览等功能。 链表类包括建立链表和删除链表4、 总体设计下表是根据程序画的基本结构图:建立链表菜单类学生信息管理系统链表类删除链表2、加入学生资料1、建立链表3、插入一个学生3、建立链表5、显示该生4、移除一个学生6、按姓名查找7、学生总数8、清空链表9、显示菜单0、退出程序5、 关键技术说明运用了面向对象设计中的类和链表,类是逻辑上相关的函数与数据的封装,它是对所要处理的问题的抽象描述。类实际上也就相当于用户自定义的类型,和基本数据类型的不同之处在于,类这个特殊类型中同时包含了对数据进行操作的函数。链表类的基本操作应该包括:生成新节点、插入节点、删除节点、访问/修改节点数据、遍历链表等。因此,在链表类中应该包含完成上述操作的成员函数,以及为了实现这些函数而添加的一些辅助函数,为了方便链表类对象间的赋值,还应重载“=”运算符。另外,由于面向对象的封装特性,当然还要提供一些接口函数。6、 源代码#include #include class StuList;class Student friend StuList; private: char name9; char sex6; char add20; int number; Student *next; public: Student(char *val=NULL,char *sal=NULL,char *adl=NULL,int No=0) number=No;next=NULL; if(val!=NULL) strcpy(name,val); if(sal!=NULL) strcpy(sex,sal); if(adl!=NULL) strcpy(add,adl); ;class StuList /带表头节点的链表类 private: Student *head,*current; int count; public: StuList() current=head=new Student; count=2003060; cout链表已建立endl; StuList() makeEmpty(); delete head; cout链表已删除next!=NULL) p=head-next; head-next=p-next; delete p; current=head; count=0;void StuList:add(char *value,char *salue,char *adl)/将新元素value插入到最后 Student *newStu; newStu=new Student(value,salue,adl); while(current-next!=NULL) current=current-next; newStu-next=current-next; current=current-next=newStu; newStu-number=count+1; count+; coutvalue已经加入表next!=NULL) if(node-number=No-1)break; node=node-next; newStu-next=node-next; newStu-number=No; node=node-next=newStu; Student *p=node-next; while(p!=NULL) p-number+; p=p-next; count+; coutvalue已经插入next; while(q!=NULL) if(q-number=No)break; q=q-next; if(q=NULL) cout没找到!next=q)break; p=p-next; p-next=q-next; delete q; count-; p=p-next; while(p!=NULL) p-number-; p=p-next; cout学号No已移除next=NULL)/链表为空 cout链表为空!endl; return; cout学号 姓名 性别 地址next; while(p-next!=NULL) coutnumber name sex addnext; coutnumber name sex addnext; while(current!=NULL) if(strcmp(current-name,value)=0)break; current=current-next; if(current=NULL)cout没找到!endl; else cout找到学号为number value在链表里endl;class Menu/菜单类 char *c1,*c2; public: Menu() c1= *; c2=*n; void show() coutendl; coutc1-*-*-*-*-*-*-*-*-*-*-*-*菜单*-*-*-*-*-*-*-*-*-*-*-*-*c2; coutc1 c2; coutc1 1.建立链表 2.加入学生资料 c2; coutc1 3.插入一个学生 4.移除一个学生 c2; coutc1 5.显示该表 6.按姓名查找 c2; coutc1 7.学生总数 8.清空链表 c2; coutc1 9.显示菜单 0.退出程序 c2; coutc1 c2; coutc1-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-c2; coutendl; ;void main() char cmd; StuList *list=NULL; Menu menu; menu.show(); do coutendlcmd; if(list=NULL)/检查输入的命令是否合适 while(cmd!=1 & cmd!=9 & cmd!=0) coutcmd; switch(cmd)/匹配命令 case (1):/建表 list=new StuList; break; case (2):/加入学生到链表后 char insname29,inssex26,insadd220; cout请输入姓名,性别(male or female),地址。insname2; cininssex2; cininsadd2; list-add(insname2,inssex2,insadd2); break; case (3):/按学号插入一个学生 char insname39,inssex36,insadd320; int insnum; coutinsnum; coutinsname3; coutinssex3; coutinsadd3; list-insert(insnum,insname3,inssex3,insadd3); break; case (4):/删除一个学生 int rem; coutrem; list-remove(rem); break; case (5):/显示所有学生 list-print(); break; case (6):/按姓名查找一个学生 char sear9; coutsear; list-searchStu(sear); list-print(); break; case (7):/学生总数 cout共有 length() 个学生makeEmpty(); cout链表为空endl; break; case (9):/显示菜单 menu.show(); break; case (0):/退出 if(list=NULL) break; char temp; couttemp; if(temp=y) list-StuList();list=NULL; else cmd=10; break; default: cout请输入菜单中的命令!endl; while(cmd!=0);7、 测试(程序有相似只列出部分程序)。()(1)开始界面:(2)加入学生资料:本程序可以添加很多的学生资料(加一个为例)(3)插入一个学生:(4)移除一个学生信息:(5)显示学生人数:由于移除一个学生,下面的学生学号自动升一位。(6)按姓名查找:8、 系统评价及展望优点:(1)界面友好(良好的人机交互),提供菜单选项,并给出足够的选

温馨提示

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

评论

0/150

提交评论