




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+面向对象课程设计- 学生信息管理系统面向对象课程设计目录摘要 ,1前言 .1第一章 系统概述 .21.1系统需求 ,21.2功能简介 .21.3设计思路 .2 第二章 系统功能的分析和设计 .22.1初始录入功能 .32.2添加函数 .32.3删除函数 .32.4修改函数 .32.5查询函数 .42.5.1按学号查询 .42.5.2按姓名查询 .42.6显示函数 .42.7退出系统 .4第三章 调试及运行结果.53.1主菜单 .53.2显示功能 .53.3增加功能 .63.4删除功能 .73.5修改功能 .73.6查询功能 .8第四章 总结.94.1遇到的问题及解决方法 .94.2收获和体
2、会 .9主要参考文献 . 10附录 :源代码 ,11摘要本文主要介绍了学生信息管理系统程序的设计与实现,该程序具有添加函数、删除函数、修改函数、查询函数、显示函数等功能。实际设计过程中,通过对类的使用,加深我们面向对象编程思想,有助于以后的学习。在课程设计中,程序设计语言采用 Visual C+, 程序运行平台为 Windows 7。采用链表的结构对学生信息的结点进行增添、删除、查找等功能。程序通过调试运行,实现了最初的设计目标,并且经过适当的完善后,在实际中可以解决更多的问题。关键词 : 学生信息管理系统、信息的增删查、C+前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理
3、软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如 : 效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管
4、理,具有着手工管理所无法比拟的优点。例如: 检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。1第一章系统概述1.1 系统需求该设计要求学生以学校学生信息管理业务为背景设计、开发一套“学生信息管理系统”软件。通过该题目的设计培养学生面向对象程序设计的思想要求学生达到熟练掌握 C+,或 Java, 语言的基本知识和技能基本掌握面向对象程序设计的基本思路和方法能够利用所学的基本知识和技能解决简单的面向对象程序设计问题。同时强调好的
5、程序设计风格提高解决实际问题的能力。1.2 功能简介本软件是一个简单的学校学生信息管理系统,软件窗口为DOS页面。学生信息管理系统的功能主要是实现学校学生的信息化管理。通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。本系统最大的优点就是操作简便快捷等。1.3 设计思路将学生信息定义为一个student类,在类中包含私有数据成员int num、string name、string sex、 string politic、string address,分别表示学号、姓名、性别、政治面貌、家庭住址。公有成员函数包括set( ) ,add( ) ,del( ) ,c
6、hange( ) ,research( ) ,show( ) ,分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能。然后定义了一个menu( )菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。主函数是一个程序必不可少的,在主函数中,使用一个switch 语句来选择调用主菜单中的各个功能函数。2第二章系统功能的分析和设计在本章中,主要是介绍各个功能函数的设计思路和实现方法。2.1初始录入功能此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控
7、制循环,当输入的姓名是“0”时,使用 break 语句就跳出循环,即停止输入学生信息。在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开 f1.txt 文件,使输入的学生信息都写入文件。 2.2 添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。2.3删除函数此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件
8、。再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件( 除了打算删除的那个学生的信息) ,由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。2.4修改函数此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。32.5查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。使用if语句来选择查询条件。按学号查询根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该
9、学生的信息,由于学生的学号是唯一固定的,所以并使用break 语句跳出循环。当无查询结果时,会输出一条提示信息“无此人信息”。按姓名查询根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break 语句跳出循环,应该从第一个学生开始检索直到最后一名学生。当无查询结果时,会输出一条提示信息“无此人信息”。2.6显示函数此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for 循环语句,来把所有学生的信息都输出。 2.7退出系统当
10、输入“ 0”时,就能退出系统,这是通过while 语句来控制实现的。4第三章调试及运行结果3.1主菜单主菜单显示如下 :图 3-1 主菜单3.2显示功能按 6 则显示全部信息,如图 3-2: 5图 3-2 显示功能3.3增加功能进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图3-3:图 3-3 增加后63.4删除功能进入主菜单后选择 3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图 3-3:除数据后显示如图3-4:删图 3-4 删除后3.5修改功能进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图 3-
11、4:修改后如图 3-5:7图 3-5 修改后3.6查询功能进入主菜单后选择5,进入查询功能,如图3-6:图 3-6 选择查询条件按学号查询如图 3-7:按姓名查询如图3-8:图 3-7 按学好查询 : 8图 3-8 按姓名查询第四章 总结4.1遇到的问题及解决方法首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。4.2收获和体会此次 c+面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
12、程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。根据 C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序 ; 进一步加深对 C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。9参考文献1 C+语言程序设计 ( 第三版 ) ,郑莉,清华大学出版社 ,20042 C+语言程序设计案例教程,郑莉,清华大学出版社 ,20053 C+程序设计教程,钱能主编,清华大学出版社, 1999.44
13、 C+程序设计,谭浩强,清华大学出版社, 20045 C+程序设计实践指导,谭浩强,清华大学出版社, 20056 C+程序设计课程设计,刘振安,机械工业出版社, 2004.8附录 : 程序代码 #include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;#define M 200 /可以存信息总量int N=0; /学生总量10class studentpublic:student();void set(); /初始化信息,第一次对
14、信息的录入void add(); /添加学生信息void del(); /删除某学生信息void change(); /修改某学生信息void search(); /查询某学生信息void display(); /显示全部学生信息private:static int num,age;long tel;string name,sex,politic,address;int student:num;student:student() void student:set()int i;int setnum,setage;long settel;string setname,setsex,setpoli
15、tic,setaddress;ofstream outfile;outfile.open("E:/f1.txt",ios:out); /-if(!outfile)cerr<<" open error"<<endl;打开文件 -exit(1);/-依次录入相应个数的学生信息-for(i=0;i<M;i+)cout<<" 当姓名输入为 '0' 时,停止输入 "<<endl;cout<<" 请输入姓名 :"<<endl;cin&
16、gt;>setname;name=setname;if(setname="0") break;if(setname!="0")N+;num+;11outfile<<num<<" "cout<<" 请输入学号 :"<<endl;cin>>setnum;sex=setnum;outfile<<setname<<" "cout<<" 请输入年龄 :"<<endl;cin
17、>>setage;sex=setage;outfile<<setsex<<" "cout<<" 请输入性别 :"<<endl;cin>>setsex;sex=setsex;outfile<<setsex<<" "cout<<" 请输入政治面貌 :"<<endl;cin>>setpolitic;politic=setpolitic;outfile<<setpolitic<
18、;<" "cout<<" 请输入电话号码 :"<<endl;cin>>settel;politic=settel;outfile<<settel<<" "cout<<" 请输入家庭住址 :"<<endl;cin>>setaddress;address=setaddress;outfile<<setaddress<<endl;cout<<endl;outfile.close();
19、/-关闭文件 -void student:add() int addnum,addage; long addtel;string addname,addsex,addpolitic,addaddress;/-以追加的方式录入信息,直接将信息追加到以前文件的末尾-ofstream outfile("E:/f1.txt",ios:app);if(!outfile)cerr<<" open error"<<endl;exit(1);12N=N+1;/-依次输入相应的数据,并且追加到之前的文件中去-cout<<" 请
20、输入您要添加的数据 "<<endl;num+;cout<<" 请输入学号 :"<<endl;cin>>addnum;outfile<<num<<" "cout<<" 请输入姓名 :"<<endl;cin>>addname;outfile<<addname<<" "outfile<<addage<<" "cout<<&qu
21、ot; 请输入年龄 :"<<endl;cin>>addage;cout<<" 请输入性别 :"<<endl;cin>>addsex;outfile<<addsex<<" "cout<<" 请输入政治面貌 :"<<endl;cin>>addpolitic;outfile<<addpolitic<<" "outfile<<addsex<<&qu
22、ot; "cout<<" 请输入电话号码 :"<<endl;cin>>addtel;outfile<<addtel<<" "cout<<" 请输入家庭住址 :"<<endl;cin>>addaddress;outfile<<addaddress<<endl;outfile.close();cout<<" 已添加成功 "<<endl;void student:del
23、()int k,i;int numM,ageM ;long telM;string nameM,sexM,politicM,addressM;ifstream infile("f1.txt",ios:in);if(!infile)cerr<<" open error"<<endl;exit(1);for(i=0;i<N;i+)13cout<<" "infile>>numi;cout<<setw(9)<<numi;infile>>namei;cou
24、t<<setw(9)<<namei;infile>>agei;cout<<setw(9)<<agei;infile>>sexi;cout<<setw(9)<<sexi;infile>>politici;cout<<setw(9)<<politici;infile>>teli;cout<<setw(9)<<teli;infile>>addressi;cout<<setw(9)<<addressi
25、<<endl;cout<<" 你想删除第几个 ,"<<endl;cin>>k;k=k-1;infile.close();ofstream outfile("E:/f1.txt",ios:out);if(!outfile)cerr<<" open error"<<endl;exit(1); /退出程序/-将数组存取的信息输出到文件中去-for(i=0;i<N;i+)if(i!=k)outfile<<numi<<" "
26、outfile<<namei<<" "outfile<<agei<<" "outfile<<sexi<<" "outfile<<politici<<" "outfile<<teli<<" "outfile<<addressi<<" "<<endl;outfile.close();N=N-1;cout<<&quo
27、t; 已删除成功 "<<endl;14void student:change() int i,k;int numM,ageM;long telM;string nameM,sexM,politicM,addressM;ifstream infile("E:/f1.txt",ios:in);if(!infile)cerr<<" open error"<<endl;exit(1);for(i=0;i<N;i+)cout<<" "infile>>numi;cout&
28、lt;<setw(9)<<numi;infile>>namei;cout<<setw(9)<<namei;infile>>agei;cout<<setw(9)<<agei;infile>>sexi;cout<<setw(9)<<sexi;infile>>politici;cout<<setw(9)<<politici;infile>>teli;cout<<setw(9)<<teli;infile&g
29、t;>addressi;cout<<setw(9)<<addressi<<endl;infile.close();ofstream outfile("E:/f1.txt",ios:out);if(!outfile)cerr<<" open error"<<endl;exit(1);cout<<" 你想修改第几个数据 ?"<<endl;cin>>k;k=k-1;cout<<" 请输入新的数据 :"<
30、<endl;15cout<<" 请输入学号 :"<<endl;cin>>numk;cout<<" 请输入姓名 :"<<endl;cin>>namek;cout<<" 请输入年龄 :"<<endl;cin>>agek;cout<<" 请输入性别 :"<<endl;cin>>sexk;cout<<" 请输入政治面貌 :"<<en
31、dl;cin>>politick;cout<<" 请输入电话号码 :"<<endl;cin>>telk;cout<<" 请输入家庭住址 :"<<endl;cin>>addressk;for(i=0;i<N;i+)outfile<<numi<<" "outfile<<namei<<" "outfile<<agei<<" "outfile&
32、lt;<sexi<<" "outfile<<politici<<" "outfile<<teli<<" "outfile<<addressi<<" "<<endl;outfile.close();cout<<" 已修改成功 "<<endl;void student:search()int i,n,w=0,numM,aM,ageM;char ch;long telM ;st
33、ring searchname,nameM,sexM,politicM,addressM,bM4;cout<<"a. 按学号查找 b. 按姓名查找 "<<endl;ifstream infile("E:/f1.txt",ios:in);if(!infile)cerr<<" open error"<<endl;exit(1);for(i=0;i<N;i+)infile>>numi;ai=numi;16infile>>namei;bi0=namei;infile
34、>>agei;bi1=agei;infile>>sexi;bi2=sexi;infile>>politici;bi3=politici;infile>>teli;bi4=teli;infile>>addressi;bi5=addressi;cout<<" 请输入 a 或者 b!"<<endl;cin>>ch;if(ch='a')cout<<" 请输入学号 "<<endl;cin>>n;for(i=0;i<
35、;N;i+)if(ai=n)w=1;cout<<"学号 姓名 年龄 性别 政治面貌电话号码家庭住址 "<<endl;cout<<" "cout<<setw(9)<<ai;cout<<setw(9)<<bi0;cout<<setw(9)<<bi1;cout<<setw(9)<<bi2;cout<<setw(9)<<bi3;cout<<setw(9)<<bi4;cout<&l
36、t;setw(9)<<bi5<<endl;if(w=0)cout<<" 无此人信息 "<<endl;else if(ch='b')cout<<" 请输入姓名 "<<endl;cin>>searchname;for(i=0;i<N;i+)if(namei=searchname)w=1;cout<<" 学号 姓名 年龄 性别 政治面貌 电话号码 家庭住址 "<<endl; cout<<"
37、"cout<<setw(9)<<ai;cout<<setw(9)<<bi0;17cout<<setw(9)<<bi1;cout<<setw(9)<<bi2;cout<<setw(9)<<bi3;cout<<setw(9)<<bi4;cout<<setw(9)<<bi5<<endl;if(w=0)cout<<" 无此人信息 "<<endl;else cout<
38、<"没有此选项 "<<endl;void student:display()int k,num,age;long tel ;string name,sex,politic,address;ifstream infile("E:/f1.txt",ios:in);if(!infile)cerr<<" open error"<<endl;exit(1);cout<<"姓名 学号 年龄 性别 政治面貌电话号码家庭住址 "<<endl;for(k=0;k<N;k+)cout<<" "
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国集成建筑行业运营状况与发展潜力分析报告
- 2025-2030年中国螺旋藻行业发展现状及前景趋势分析报告
- 2025-2030年中国葡萄籽提取物opc行业运营状况与发展潜力分析报告
- 2025天津市建筑安全员知识题库
- 2025-2030年中国航空客运行业市场发展现状及前景趋势分析报告
- 2025-2030年中国电解锰废渣处理行业竞争状况及发展趋势分析报告
- 长江大学《设计软件基础》2023-2024学年第二学期期末试卷
- 中国石油大学(华东)《强化学习(双语)》2023-2024学年第二学期期末试卷
- 西安体育学院《食品分析技术》2023-2024学年第二学期期末试卷
- 广西卫生职业技术学院《食品研究开发》2023-2024学年第二学期期末试卷
- 电气控制线路的设计和元器件选择
- 剖宫产术后子宫瘢痕妊娠诊治专家共识
- 注塑一线工资考核方案
- 工程质量回访记录
- GB/T 18268.1-2010测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
- 第三节对化学武器的防护
- 人教版高一物理必修二第六章《圆周运动》课后练习(有答案解析)
- 施工进度计划-报审表本
- 基于单片机的老人跌倒报警装置获奖科研报告
- 呼吸机及管路的管理课件
- 维修质量检验制度
评论
0/150
提交评论