版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
光器面向对象课程设计目录TOC\o"1-5"\h\z摘要…………………………1前言1第一章系统概述2系统需求…………2功能简介2设计思路2第二章系统功能的分析和设计2初始录入功能3添加函数3删除函数3修改函数3查询函数4按学号查询4按姓名查询4显示函数4退出系统4第三章调试及运行结果5主菜单5显示功能5增加功能6删除功能7修改功能7查询功能8第四章总结9遇到的问题及解决方法9收获和体会9主要参考文献101111裁器附录:源代码………………摘要本文主要介绍了学生信息管理系统程序的设计与实现,该程序具有添加函数、删除函数、修改函数、查询函数、显示函数等功能。实际设计过程中,通过对类的使用,加深我们面向对象编程思想,有助于以后的学习。在课程设计中,程序设计语言采用VisualC++,程序运行平台为Windows7。采用链表的结构对学生信息的结点进行增添、删除、查找等功能。程序通过调试运行,实现了最初的设计目标,并且经过适当的完善后,在实际中可以解决更多的问题。关键词:学生信息管理系统、信息的增删查、C++前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。第一章系统概述1.1系统需求该设计要求学生以学校学生信息管理业务为背景,设计、开发一套“学生信息管理系统”软件。通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握C++(或Java)语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同时强调好的程序设计风格,提高解决实际问题的能力。功能简介本软件是一个简单的学校学生信息管理系统,软件窗口为DOS页面。学生信息管理系统的功能主要是实现学校学生的信息化管理。通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。本系统最大的优点就是操作简便快捷等。设计思路将学生信息定义为一个student类,在类中包含私有数据成员intnum、stringname、stringsex、stringpolitic、stringaddress,分别表示学号、姓名、性别、政治面貌、家庭住址。公有成员函数包括set(),add(),del(),change(),research(),show(),分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能。然后定义了一个menu()菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。确為第二章系统功能的分析和设计在本章中,主要是介绍各个功能函数的设计思路和实现方法。初始录入功能此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个讦条件语句来实现控制循环,当输入的姓名是“0”时,使用break语句就跳出循环,即停止输入学生信息。在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt文件,使输入的学生信息都写入文件。添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。删除函数此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。修改函数此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。光器2.5查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。使用if语句来选择查询条件。2.5.1按学号查询根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。当无查询结果时,会输出一条提示信息“无此人信息!”。2.5.2按姓名查询根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。当无查询结果时,会输出一条提示信息“无此人信息!”。2.6显示函数此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for循环语句,来把所有学生的信息都输出。2.7出系统2.7出系统当输入“0”时,就能退出系统,这是通过while语句来控制实现的。第三章调试及运行结果主菜单主菜单显示如下部宀王人加善询一11234560第三章调试及运行结果主菜单主菜单显示如下部宀王人加善询一11234560MMMMM5ICM图3-1主菜单显示功能按6则显示全部信息,如图3-2:确需确需图3-2显示功能增加功能进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图3-3:图3-3增加后删除功能进入主菜单后选择3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图3-3:删除数据后显示如图3-4:图3-4删除后修改功能进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图3-4:修改后如图3-5:确需图3-5修改后查询功能进入主菜单后选择5,进入查询功能,如图3-6乳按学号查找d按姓名查找濡输入a或看3!图3-6选择查询条件按学号查询如图3-7按姓名查询如图3-8船識M®ttAaO!汕号!孚号齡W01蹄电硼龜图3-7按学好查询:bMAB!2希劇W協躺确电话号码魏yQ」44』图3-8按姓名查询第四章总结遇到的问题及解决方法首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。收获和体会此次c++面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。确為确為确需确需参考文献《C++语言程序设计(第三版)》,郑莉,清华大学出版社,2004《C++语言程序设计案例教程》,郑莉,清华大学出版社,2005《C++程序设计教程》,钱能主编,清华大学出版社,1999.4《C++程序设计》,谭浩强,清华大学出版社,2004《C++程序设计实践指导》,谭浩强,清华大学出版社,2005《C++程序设计课程设计》,刘振安,机械工业出版社,2004.8附录:程序代码附录:程序代码#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;#defineM200//可以存信息总量intN=0;〃学生总量classstudent{public:student();voidset();//初始化信息,第一次对信息的录入voidadd();//添加学生信息voiddel();//删除某学生信息voidchange();//修改某学生信息voidsearch();//查询某学生信息voiddisplay();//显示全部学生信息private:staticintnum,age;longtel;stringname,sex,politic,address;};intstudent::num;student::student(){}voidstudent::set(){inti;intsetnum,setage;longsettel;stringsetname,setsex,setpolitic,setaddress;ofstreamoutfile;outfile.open("E://f1.txt",ios::out);//打开文件if(!outfile){cerr<<"openerror"<<endl;exit(1);}//依次录入相应个数的学生信息for(i=0;i<M;i++){coutvv"当姓名输入为'O'时,停止输入!!!"vvendl;coutvv"请输入姓名:"vvendl;cin>>setname;name=setname;if(setname=="O")break;if(setname!="O"){N++;num++;outfile<<num<<"";coutvv"请输入学号:"vvendl;cin>>setnum;sex=setnum;outfilevvsetnamevv"";coutvv"请输入年龄:"vvendl;cin>>setage;sex=setage;outfilevvsetsexvv"";coutvv"请输入性别:"vvendl;cin>>setsex;sex=setsex;outfilevvsetsexvv"";coutvv"请输入政治面貌:"vvendl;cin>>setpolitic;politic=setpolitic;outfilevvsetpoliticvv"";coutvv"请输入电话号码:"vvendl;cin>>settel;politic=settel;outfilevvsettelvv"";coutvv"请输入家庭住址:"vvendl;cin>>setaddress;address=setaddress;outfilevvsetaddressvvendl;}coutvvendl;}outfile.close();//关闭文件}voidstudent::add(){intaddnum,addage;longaddtel;stringaddname,addsex,addpolitic,addaddress;//以追加的方式录入信息,直接将信息追加到以前文件的末尾ofstreamoutfile("E://f1.txt",ios::app);if(!outfile){cerrvv"openerror"vvendl;exit(1);确為确為}}}N=N+1;//依次输入相应的数据,并且追加到之前的文件中去coutvv"请输入您要添加的数据"vvendl;num++;coutvv"请输入学号:"vvendl;cin>>addnum;outfilevvnumvv"";coutvv"请输入姓名:"vvendl;cin>>addname;outfilevvaddnamevv"";outfilevvaddagevv"";coutvv"请输入年龄:"vvendl;cin>>addage;coutvv"请输入性别:"vvendl;cin>>addsex;outfilevvaddsexvv"";coutvv"请输入政治面貌:"vvendl;cin>>addpolitic;outfilevvaddpoliticvv"";outfilevvaddsexvv"";coutvv"请输入电话号码:"vvendl;cin>>addtel;outfilevvaddtelvv"";coutvv"请输入家庭住址:"vvendl;cin>>addaddress;outfilevvaddaddressvvendl;outfile.close();coutvv"已添加成功!"vvendl;}voidstudent::del(){intk,i;intnum[M],age[M];longtel[M];stringname[M],sex[M],politic[M],address[M];ifstreaminfile("f1.txt",ios::in);if(!infile){cerrvv"openerror"vvendl;exit(1);for(i=0;i<N;i++){cout<<"";infile>>num[i];cout<<setw(9)<<num[i];infile>>name[i];cout<<setw(9)<<name[i];infile>>age[i];cout<<setw(9)<<age[i];infile>>sex[i];cout<<setw(9)<<sex[i];infile>>politic[i];cout<<setw(9)<<politic[i];infile>>tel[i];cout<<setw(9)<<tel[i];infile>>address[i];cout<<setw(9)<<address[i]<<endl;}coutvv"你想删除第几个?"vvendl;cin>>k;k=k-1;infile.close();ofstreamoutfile("E://f1.txt",ios::out);if(!outfile){cerrvv"openerror"vvendl;exit(1);//退出程序}//将数组存取的信息输出到文件中去for(i=0;ivN;i++){if(i!=k){outfilevvnum[i]vv"";outfilevvname[i]vv"";outfilevvage[i]vv"";outfilevvsex[i]vv"";outfilevvpolitic[i]vv"";outfilevvtel[i]vv"";outfilevvaddress[i]vv""vvendl;}}outfile.close();N=N-1;}coutvv"已删除成功!"vvendl;voidstudent::change(){inti,k;intnum[M],age[M];longtel[M];stringname[M],sex[M],politic[M],address[M];ifstreaminfile("E://f1.txt",ios::in);if(!infile){cerrvv"openerror"vvendl;exit(1);}for(i=0;ivN;i++){coutvv"";infile>>num[i];coutvvsetw(9)vvnum[i];infile>>name[i];coutvvsetw(9)vvname[i];infile>>age[i];coutvvsetw(9)vvage[i];infile>>sex[i];coutvvsetw(9)vvsex[i];infile>>politic[i];coutvvsetw(9)vvpolitic[i];infile>>tel[i];coutvvsetw(9)vvtel[i];infile>>address[i];coutvvsetw(9)vvaddress[i]vvendl;}infile.close();ofstreamoutfile("E://f1.txt",ios::out);if(!outfile){cerrvv"openerror"vvendl;exit(1);}coutvv"你想修改第几个数据?"vvendl;cin>>k;k=k-1;coutvv"请输入新的数据:"vvendl;coutvv"请输入学号:"vvendl;cin>>num[k];coutvv"请输入姓名:"vvendl;cin>>name[k];coutvv"请输入年龄:"vvendl;cin>>age[k];coutvv"请输入性别:"vvendl;cin>>sex[k];coutvv"请输入政治面貌:"vvendl;cin>>politic[k];coutvv"请输入电话号码:"vvendl;cin>>tel[k];coutvv"请输入家庭住址:"vvendl;cin>>address[k];for(i=0;ivN;i++){outfilevvnum[i]vv"";outfilevvname[i]vv"";outfilevvage[i]vv"";outfilevvsex[i]vv"";outfilevvpolitic[i]vv"";outfilevvtel[i]vv"";outfilevvaddress[i]vv""vvendl;}outfile.close();coutvv"已修改成功!"vvendl;}voidstudent::search(){inti,n,w=0,num[M],a[M],age[M];charch;longtel[M];stringsearchname,name[M],sex[M],politic[M],address[M],b[M][4];coutvv"a.按学号查找b.按姓名查找"vvendl;ifstreaminfile("E://f1.txt",ios::in);if(!infile){cerrvv"openerror"vvendl;exit(1);}for(i=0;ivN;i++){infile>>num[i];a[i]=num[i];infile>>name[i];b[i][0]=name[i];infile>>age[i];b[i][1]=age[i];infile>>sex[i];b[i][2]=sex[i];infile>>politic[i];b[i][3]=politic[i];infile>>tel[i];b[i][4]=tel[i];infile>>address[i];b[i][5]=address[i];}coutvv"请输入a或者b!"vvendl;cin>>ch;if(ch=='a'){coutvv"请输入学号!"vvendl;cin>>n;for(i=0;ivN;i++)if(a[i]==n){w=1;coutvv"学号姓名年龄性别政治面貌电话号码家庭住址"vvendl;coutvv"";coutvvsetw(9)vva[i];coutvvsetw(9)vvb[i][0];coutvvsetw(9)vvb[i][1];coutvvsetw(9)vvb[i][2];coutvvsetw(9)vvb[i][3];coutvvsetw(9)vvb[i][4];coutvvsetw(9)vvb[i][5]vvendl;}if(w==0)coutvv"无此人信息!"vvendl;}elseif(ch=='b'){coutvv"请输入姓名!"vvendl;cin>>searchname;for(i=0;ivN;i++)if(name[i]==searchname){w=1;coutvv"学号姓名年龄性别政治面貌电话号码家庭住址"vvendl;coutvv"";coutvvsetw(9)vva[i];裁器裁器2叶acout<<setw(9)<<b[i][0];cout<<setw(9)<<b[i][1];cout<<setw(9)<<b[i][2];cout<<setw(9)<<b[i][3];cout<<setw(9)<<b[i][4];cout<<setw(9)<<b[i][5]<<endl;}if(w==0)coutvv"无此人信息!"vvendl;}elsecoutvv"没有此选项!"vvendl;}voidstudent::display(){intk,num,age;longtel;stringname,sex,politic,address;ifstreaminfile("E://f1.txt",ios::in);if(!infile){cerrvv"openerror"vvendl;exit(1);}coutvv"姓名学号年龄性别政治面貌电话号码家庭住址"vvendl;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐传播网络研究-洞察分析
- 虚拟现实技术在行地址性能评估中的实验研究-洞察分析
- 野生植物遗传育种技术创新-洞察分析
- 《礼仪就在你身边》课件
- 2024年05月广东浙商银行广州分行暑期实习生招考笔试历年参考题库附带答案详解
- 2024年枝江市中医医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 内控合同范本(2篇)
- 2024年05月山东民生银行淄博二级分行社会招考(512)笔试历年参考题库附带答案详解
- 2025年沪科版九年级地理下册阶段测试试卷含答案
- 2024年沪教版八年级地理上册阶段测试试卷含答案
- 英国签证户口本翻译模板(汇编)
- 中小企业内部控制与风险管理(第二版)项目一:内部控制与风险管理基础
- 驾驶舱资源管理绪论课件
- 声艺 EPM8操作手册
- 西北农林科技大学专业学位研究生课程案例库建设项目申请书(MBA)
- 外墙保温、真石漆施工技术交底
- 车床日常点检表
- 配网工程施工监理管理要点~.docx
- 国内No.7信令方式技术规范----综合业务数字网用户部分(ISUP)
- 尾矿库在线监测方案)
- 房屋安全简易鉴定表.docx
评论
0/150
提交评论