面向对象程序设计(C++)学生信息管理系统设计_第1页
面向对象程序设计(C++)学生信息管理系统设计_第2页
面向对象程序设计(C++)学生信息管理系统设计_第3页
面向对象程序设计(C++)学生信息管理系统设计_第4页
面向对象程序设计(C++)学生信息管理系统设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

word文档可自由复制编辑面向对象程序设计(C++)期末设计报告题目:学生信息管理系统学院:信息科学与工程学院专业:数字媒体技术专业班级:2014级职务姓名分工情况组长组员设计日期:

目录TOC\o"1-1"\h\z\u一项目需求及分析 1二功能描述 3三程序流程 4四操作指南 5五程序代码 6一项目需求及分析学生信息是学校管理中一项繁琐的工作。管理人员需要建立学生的学籍,汇总每学期没有拿到规定学分的学生,及这些学生的详细情况;学生完成一门课程的学习后,教师学要录入学生的考试成绩,计算平均成绩,汇总各分数段的人数;学生需要查询已结业的各门课程的成绩;班主任需要查询本班学生的学习情况,包括哥们课程的平均成绩和每个学生的考试通过情况。为此,设计一套实用的学生信息管理系统就可以大大简化管理人员、班主任和任课教师的工作,方便学生查询自己的学习情况。二功能描述它涵盖了现代校园中绝大部分的日常应用和管理功能,并能有机的集成学校内现有的各类应用系统。与以往任何有关的学校管理信息系统不同,本系统提供了更多的集成性和可管理性。系统的成功实施,可以形成校园内规范一致的数据集成和共享环境,达成真正意义上的资源共享,为学校管理提供有力的支持。学生信息管理:学生档案管理是盛远学生综合管理系统的基础模块,主要包括在校学生档案管理、贫困生档案管理、勤工助学管理等。在校学生档案管理将帮助学校完成日常在校学生的管理工作,可直接处理新生入学、在校生编辑处理以及查看和统计,同时具有引出标准Excel格式数据,学生学籍卡打印、学生证卡打印,树型结构查询等功能。贫困生档案管理提供了高校关于贫困生的特殊管理。贫困生可根据在校学生档案提取生成;贫困生统计可以按照贫困程度、男女、地域、类别进行统计;还提供了打印,并且可输出Excel格式数据。贫困生记录可直接生成勤工助学申请表。勤工助学管理提供了在校学生利用日常业余时间或者节假日通过校内或者校外提供的岗位进行工作,并获得一定报酬这一功能。勤工助学也有利于提高学生的社会工作经验和个人素质发展。而本功能将帮助学校完成勤工助学的日常监督、跟踪以及管理工作。三程序流程程序流程描述本程序是用控制台写的简单的学生管理系统程序能够实现学生信息录入也就是可以实现增加删除修改学生的基本信息班级二、程序流程图进入系统进入系统录入学生信息修改学生信息添加一个信息查询学生信息删除一个信息显示学生信息四操作指南一、主菜单(运行结果截图)程序运行后进入主菜单,如下图所示1.2初始化信息,第一次对信息的录入1.3添加学生信息1.4删除某学生信息1.5修改某学生信息1.6查询某学生信息1.7显示全部学生信息五程序代码/*把StudentData.cpp(源代码)和student.txt(数据存放处)放在同一个文件夹下*/#include<iostream>#include<string>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;//最多提供50个学生的数据,可根据需要进行更改constintMAX=50; intcount=0; //用来统计学生人数classStudent{public: voidSet(); //初始化信息,第一次对信息的录入 voidAdd(); //添加学生信息 //从磁盘读取数据以便进行数据的操作,方便再重写进磁盘 friendvoidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[]); intJudge(stringnum); //判断num是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值) voidDelete(); //删除某学生信息 voidChange(); //修改某学生信息voidSearch(); //查询某学生信息 voidDisplay(); //显示全部学生信息private: stringm_no; stringm_name; stringm_sex; //m_指的是成员变量(member) stringm_special; stringm_clas; };voidStudent::Set(){ stringno,name,sex,special,clas; ofstreamoutfile("student.txt"); //打开文件 if(!outfile) { cerr<<"openerror"<<endl; exit(1); //退出程序 } cout<<"当学号输入为0时,停止输入!"<<endl; cout<<"请依次输入学生的学号,姓名,性别,专业,班级:"<<endl; for(inti=0;i<MAX;i++) { cout<<"第"<<count+1<<"个学生:"<<endl; cin>>no; if(no=="0")break; //当输入的学号是0时,停止录入 cin>>name>>sex>>special>>clas; count++; m_no=no; outfile<<m_no<<"\t"; //每录入一个学号,写进磁盘保存,以下同理 m_name=name; outfile<<m_name<<"\t"; m_sex=sex; outfile<<m_sex<<"\t"; m_special=special; outfile<<m_special<<"\t"; m_clas=clas; outfile<<m_clas<<endl; } outfile.close();}//添加学生信息voidStudent::Add(){ stringno,name,sex,special,clas; //以追加的方式录入信息,直接将信息追加到以前文件的末尾 ofstreamoutfile("student.txt",ios::app); if(!outfile) { cerr<<"openerror"<<endl; exit(1); } count++; //添加一个学生信息,当然count要+1 cout<<"请依次输入要添加的学生学号,姓名,性别,专业,班级:"<<endl; cin>>no>>name>>sex>>special>>clas; m_no=no; outfile<<m_no<<"\t"; m_name=name; outfile<<m_name<<"\t"; m_sex=sex; outfile<<m_sex<<"\t"; m_special=special; outfile<<m_special<<"\t"; m_clas=clas; outfile<<m_clas<<endl; outfile.close(); cout<<"已添加成功!"<<endl;}//从磁盘读取数据voidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[]){ ifstreaminfile("student.txt",ios::in); if(!infile) { cerr<<"openerror"<<endl; exit(1); } for(inti=0;i<count;i++) //只读取存放在数组中但不对其进行相关操作 { infile>>no[i]>>name[i]>>sex[i]>>special[i]>>clas[i]; } infile.close();}//判断某学号的学生是否在数据库中intStudent::Judge(stringnum){ stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX]; Read(no,name,sex,special,clas); //调用Read()函数,获取数据,以便等下进行相关数据的判断 for(inti=0;i<count;i++) { if(num==no[i]) { returni; //如果存在,返回其下标 break; } } return-1; //否则,返回-1}//删除某学生信息voidStudent::Delete(){ stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX]; Read(no,name,sex,special,clas); //读取学生所有数据, cout<<"请输入你要删除的学生学号:"; cin>>num; intk=Judge(num); //定义一个k来接收Judge()的返回值,等下用来判断该num是否存在 if(k!=-1) //如果k不等于-1,表示要删除的学生存在 { ofstreamoutfile("student.txt"); if(!outfile) { cerr<<"openerror"<<endl; exit(1); } for(inti=0;i<count;i++) { if(i!=k) //把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存 { outfile<<no[i]<<"\t"; outfile<<name[i]<<"\t"; outfile<<sex[i]<<"\t"; outfile<<special[i]<<"\t"; outfile<<clas[i]<<endl; } } outfile.close(); count--; //删除一个学生,人数-1 cout<<"删除成功!"<<endl; } else cout<<"该数据库没有此学生!"<<endl;}voidStudent::Change(){ stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX]; cout<<"请输入你要修改的学生学号:"; cin>>num; intk=Judge(num); if(k!=-1) { Read(no,name,sex,special,clas); //读取学生所有数据, cout<<"请依次输入修改后的学生学号,姓名,性别,专业,班级:"<<endl; cin>>no[k]>>name[k]>>sex[k]>>special[k]>>clas[k]; //把下标是k的学生进行修改 ofstreamoutfile("student.txt",ios::out); if(!outfile) { cerr<<"openerror"<<endl; exit(1); } for(inti=0;i<count;i++) //改完后,回写进磁盘保存 { outfile<<no[i]<<"\t"; outfile<<name[i]<<"\t"; outfile<<sex[i]<<"\t"; outfile<<special[i]<<"\t"; outfile<<clas[i]<<endl; } outfile.close(); cout<<"修改成功!"<<endl; } else cout<<"该数据库没有此学生!"<<endl;}voidStudent::Search(){ stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX]; Read(no,name,sex,special,clas); cout<<"请输入你要查找的学生学号"; cin>>num; intk=Judge(num); if(k!=-1) //找到该学生就打印出其信息 { cout<<"学号\t姓名\t性别\t专业\t班级"<<endl; cout<<no[k]<<"\t"; cout<<name[k]<<"\t"; cout<<sex[k]<<"\t"; cout<<special[k]<<"\t"; cout<<clas[k]<<endl; } else cout<<"该数据库没有此学生!"<<endl;}//显示学生的所有信息voidStudent::Display(){ stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX]; Read(no,name,sex,special,clas); //先读取 cout<<"学号\t姓名\t性别\t专业\t班级"<<endl; for(inti=0;i<count;i++) //后打印 { cout<<no[i]<<"\t"; cout<<name[i]<<"\t"; cout<<sex[i]<<"\t"; cout<<special[i]<<"\t"; cout<<clas[i]<<endl; }}intmain(){ intchoice=-1;

温馨提示

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

评论

0/150

提交评论