C++课程设计学生信息管理系统Word下载.docx
《C++课程设计学生信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生信息管理系统Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![C++课程设计学生信息管理系统Word下载.docx](https://file1.bdocx.com/fileroot1/2022-11/28/d98ddbad-bb4f-4131-95c1-cad657e40fd3/d98ddbad-bb4f-4131-95c1-cad657e40fd31.gif)
_______________
前言
学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。
它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。
在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:
效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
第一章系统概述
1。
1功能简介
本软件是一个简单的学校学生信息管理系统,软件窗口为DOS页面。
学生信息管理系统的功能主要是实现学校学生的信息化管理.通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。
本系统最大的优点就是操作简便快捷等.
1.2设计思路
将学生信息定义为一个student类,在类中包含私有数据成员intnum、stringname、stringsex、stringpolitic、stringaddress,分别表示学号、姓名、性别、政治面貌、家庭住址。
公有成员函数包括set(),add(),del(),change(),research(),show(),分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能.
然后定义了一个menu()菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作.
主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数.
第二章系统功能的分析和设计
在本章中,主要是介绍各个功能函数的设计思路和实现方法。
2.1初始录入功能
此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控制循环,当输入的姓名是“0”时,使用break语句就跳出循环,即停止输入学生信息。
在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt文件,使输入的学生信息都写入文件.
2.2添加函数
此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息.在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。
2。
3删除函数
此函数实现的功能主要是,删除一个学生的信息。
在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。
再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。
4修改函数
此函数实现的功能主要是,修改一个学生的信息.此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖.
2.5查询函数
在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询.使用if语句来选择查询条件.
2。
5。
1按学号查询
根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环.
当无查询结果时,会输出一条提示信息“无此人信息!
"
。
5.2按姓名查询
根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。
当无查询结果时,会输出一条提示信息“无此人信息!
”。
2.6显示函数
此函数实现的功能主要是,显示所有学生的信息。
先是从文件中读取学生信息,然后在输出到显示窗口中。
用一个for循环语句,来把所有学生的信息都输出。
2.7退出系统
当输入“0"
时,就能退出系统,这是通过while语句来控制实现的。
第三章调试及运行结果
3。
1主菜单
主菜单显示如下:
图3-1主菜单
2显示功能
按6则显示全部信息,如图3—2:
图3—2显示功能
3增加功能
进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3—2:
增加后显示如图3—3:
图3-3增加后
4删除功能
进入主菜单后选择3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图3—3:
删除数据后显示如图3-4:
图3—4删除后
3.5修改功能
进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图3—4:
修改后如图3-5:
图3-5修改后
6查询功能
进入主菜单后选择5,进入查询功能,如图3-6:
图3—6选择查询条件
按学号查询如图3—7:
按姓名查询如图3-8:
图3—7按学好查询:
图3-8按姓名查询
第四章总结
4。
1遇到的问题及解决方法
首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;
其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决.
2收获和体会
此次c++面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试.程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;
进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力.我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
参考文献
[1]《C++语言程序设计(第三版)》,郑莉,清华大学出版社,2004
[2]《C++语言程序设计案例教程》,郑莉,清华大学出版社,2005
[3]《C++程序设计教程》,钱能主编,清华大学出版社,1999.4
[4]《C++程序设计》,谭浩强,清华大学出版社,2004
[5]《C++程序设计实践指导》,谭浩强,清华大学出版社,2005
[6]《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;
stringname,sex,politic,address;
};
intstudent:
:
num=110;
student:
:
student(){}
voidstudent:
set()
{
inti;
stringsetname,setsex,setpolitic,setaddress;
ofstreamoutfile;
outfile。
open("
f1.txt"
,ios:
out);
//-—-—打开文件---—
if(!
outfile)
{
cerr〈<
”openerror"
<
endl;
exit
(1);
}
//—-—-依次录入相应个数的学生信息———-
for(i=0;
i〈M;
i++)
cout〈〈"
当姓名输入为'
0’时,停止输入!
!
”〈〈endl;
cout<
〈"
请输入姓名:
〈〈endl;
cin>
〉setname;
name=setname;
if(setname=="
0”)break;
if(setname!
=”0”)
{
N++;
num++;
outfile〈〈num〈<
"
;
outfile〈〈setname〈<
””;
请输入性别:
”〈<
cin〉〉setsex;
sex=setsex;
outfile<
setsex〈〈””;
请输入政治面貌:
〈〈endl;
cin〉〉setpolitic;
politic=setpolitic;
outfile〈〈setpolitic〈〈””;
cout〈<
请输入家庭住址:
〉setaddress;
address=setaddress;
outfile〈〈setaddress〈<
endl;
}
outfile.close();
//-——-关闭文件—---
}
voidstudent:
add()
stringaddname,addsex,addpolitic,addaddress;
//—-——以追加的方式录入信息,直接将信息追加到以前文件的末尾-—--
ofstreamoutfile(”f1。
txt"
app);
outfile)
{
cerr〈〈"
openerror"
}
N=N+1;
//————依次输入相应的数据,并且追加到之前的文件中去----
cout〈<
请输入您要添加的数据”<
〈endl;
num++;
outfile〈〈num〈〈””;
”<
>
addname;
outfile〈<
addname<
”;
请输入性别:
〉addsex;
outfile<
〈addsex〈<
”"
;
cout〈〈”请输入政治面貌:
cin〉〉addpolitic;
〈addpolitic<
””;
〈endl;
〉addaddress;
outfile〈〈addaddress<
outfile。
close();
〈”已添加成功!
del()
intk,i;
intnum[M];
stringname[M],sex[M],politic[M],address[M];
ifstreaminfile(”f1.txt”,ios:
in);
infile)
cerr<
openerror”<
exit
(1);
i〈N;
”;
infile〉>
num[i];
〈setw(9)<
num[i];
infile>
name[i];
cout〈〈setw(9)〈〈name[i];
sex[i];
cout〈〈setw(9)〈<
sex[i];
infile〉〉politic[i];
setw(9)<
〈politic[i];
address[i];
setw(9)〈〈address[i]〈<
”你想删除第几个?
cin>
〉k;
k=k—1;
infile。
close();
ofstreamoutfile("
ios:
if(!
//退出程序
//--—-将数组存取的信息输出到文件中去—-——
i<
N;
if(i!
=k)
outfile〈<
num[i]〈〈”"
name[i]<
outfile〈〈sex[i]〈〈””;
〈politic[i]〈〈”"
〈address[i]<
〈<
N=N-1;
cout<
已删除成功!
change()
inti,k;
intnum[M];
stringname[M],sex[M],politic[M],address[M];
ifstreaminfile("
f1.txt”,ios:
〈”openerror"
for(i=0;
cout〈〈”"
〉num[i];
cout〈〈setw(9)<
num[i];
infile〉〉name[i];
setw(9)〈<
infile〉〉sex[i];
〈sex[i];
〉politic[i];
〈politic[i];
infile〉〉address[i];
〈setw(9)〈〈address[i]〈〈endl;
infile.close();
f1.txt”,ios:
out);
cerr<
openerror”〈〈endl;
exit
(1);
”你想修改第几个数据?
〉k;
k=k-1;
cout〈〈”请输入新的数据:
cin〉>
name[k];
cout〈〈”请输入性别:
sex[k];
cout〈〈"
〉politic[k];
请输入家庭住址:
〉address[k];
outfile〈<
num[i]〈〈”"
outfile〈〈name[i]<
outfile〈〈sex[i]〈〈"
〈politic[i]〈〈"
address[i]<
〈”已修改成功!
search()
inti,n,w=0,num[M],a[M];
charch;
stringsearchname,name[M],sex[M],politic[M],address[M],b[M][4];
cout〈〈”a.按学号查找b。
按姓名查找"
in);
i〈N;
num[i];
a[i]=num[i];
b[i][0]=name[i];
sex[i];
b[i][1]=sex[i];
〉politic[i];
b[i][2]=politic[i];
〉address[i];
b[i][3]=address[i];
请输入a或者b!
ch;
if(ch=='
a'
)
请输入学号!
cin〉〉n;
for(i=0;
if(a[i]==n)
{
w=1;
cout<
学号姓名性别政治面貌家庭住址”〈〈endl;
cout〈<
a[i];
〈setw(9)〈〈b[i][0];
〈setw(9)〈〈b[i][1];
cout〈<
〈b[i][2];
b[i][3]<
}
if(w==0)
cout〈〈”无此人信息!
elseif(ch=='
b'
请输入姓名!
”〈〈endl;
〉searchname;
for(i=0;
N;
if(name[i]==searchname)
{
cout〈〈”学号姓名性别政治面貌家庭住址”<
b[i][0];
b[i][1];
cout<
b[i][2];
〈b[i][3]〈〈endl;
if(w==0)
elsecout<
没有此选项!
}
display()
intk,num;
stringname,sex,politic,address;
f1。
txt”,ios:
学号姓名性别政治面貌家庭住址”<
for(k=0;
k<
k++)
infile〉〉num;
cout〈〈setw(9)〈〈num;
name;
〈name;
infile〉〉sex;
sex;
politic;
〈politic;
address;
〈address<
studentstu;
voidmain()
charch;
voidmenu();
menu();
while(ch!
=’0’)
system("
cls”);
switch(ch)
case’1'
stu.set();
break;
case'
2’:
stu.add();
break;
3'
stu.del();
4’:
stu。
change();
5'