《2022年C++课程设计——学生信息管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C++课程设计——学生信息管理系统 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计说明书题目 :学 生 信 息 管 理 系 统学院 :信 息 工 程 学 院班级 :软 件 09- 12011 年1 月21 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - X X 大学课程设计(论文)任务书课程名称:面向对象程序设计课程设计学院:信息工程学院班级:软件 09-1 学生姓名: X X X _ 学号: 0000 指导教师: X X X 一、题目学生信息管理系统二、目的与意义面向对象程序设计课程设计课程设计
2、是计算机科学与技术专业实践性环节之一,通过课程设计的综合训练可以使学生进一步理解和掌握面向对象程序设计课程的基本知识; 掌握面向对象程序设计的思路和方法;基本具有利用面向对象的方法以及C+的编程思想来完成系统设计的能力。三、要求 (包括原始数据、技术参数、设计要求、图纸量、工作量要求等)1.要求利用面向对象的方法以及C+的编程思想来完成系统的设计;2.要求在设计的过程中,建立清晰的类层次;3.在系统中至少要定义一个类,类中要有各自的属性和方法;4.在系统的设计中,至少要用到面向对象的一种机制。四、工作内容、进度安排1.根据课程设计的要求,确定设计题目;(0.5 天)2.查找相关资料 ,进行应用
3、程序总体结构、使用功能的设计;(0.5 天)3.进行应用程序的界面设计和源程序代码的编写;(2.5 天)4.设计说明书的撰写、答辩(1.5天)五、主要参考文献1 C+语言程序设计(第三版) ,郑莉,清华大学出版社,2004 2 C+程序设计教程 ,钱能主编,清华大学出版社,1999.4 3 C+程序设计课程设计 ,刘振安,机械工业出版社,2004.8审核意见系(教研室)主任(签字)指导教师下达时间 2011年 1 月 17 日指导教师签字: _ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
4、 - 第 2 页,共 19 页 - - - - - - - - - 目录前言 . . 1 第一章 系统概述 . . 2 1.1 功能简介 . 2 1.2 设计思路 . 2 第二章 系统功能的分析和设计. . 3 2.1 初始录入功能. 3 2.2 添加函数 . 3 2.3 删除函数 . 3 2.4 修改函数 . 3 2.5 查询函数 . 4 2.5.1 按学号查询 . . 4 2.5.2 按姓名查询 . . 4 2.6 显示函数 . 4 2.7 退出系统 . 4 第三章 调试及运行结果 . . 5 3.1 主菜单 . 5 3.2 显示功能 . 5 3.3 增加功能 . 5 3.4 删除功能 .
5、 6 3.5 修改功能 . 6 3.6 查询功能 . 6 第四章 总结 . . 8 4.1 遇到的问题及解决方法. 8 4.2 收获和体会 . 8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 1 前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行
6、学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理
7、的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 2 第一章 系统概述1.1 功能简介本软件是一个简单的学校学生信息管理系统,软件窗口为DOS 页面。学生信息管理系统的功能主要是实现学校学生的信息化管理。通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。本系统最大的优点就是操作简便快捷等。1.2 设计
8、思路将学生信息定义为一个student类,在类中包含私有数据成员int num、string name 、string sex、string politic 、string address ,分别表示学号、姓名、性别、政治面貌、家庭住址。公有成员函数包括set( ) ,add( ) ,del( ) ,change( ) ,research( ) ,show( ) , 分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能。然后定义了一个 menu( ) 菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。主函数是一个程序必不可少的,在主函数中, 使
9、用一个 switch 语句来选择调用主菜单中的各个功能函数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 3 第二章 系统功能的分析和设计在本章中,主要是介绍各个功能函数的设计思路和实现方法。2.1 初始录入功能此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据, 可以通过次函数输入任意个学生的信息,在输入时通过一个if 条件语句来实现控制循环,当输入的姓名是“0”时,使用 break语句就跳出
10、循环,即停止输入学生信息。在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt 文件,使输入的学生信息都写入文件。2.2 添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。2.3 删除函数此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。再以写的方式打开文件,以一个if 条件语句控制,再重新将学生
11、信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。2.4 修改函数此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 4 2.5 查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名
12、查询。使用 if 语句来选择查询条件。 2.5.1 按学号查询根据提示信息输入学号后, 然后使用一个 for 循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用 break语句跳出循环。当无查询结果时,会输出一条提示信息“无此人信息!” 。 2.5.2 按姓名查询根据提示信息输入姓名后,然后使用一个for 循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。当无查询结果时,会输出一
13、条提示信息“无此人信息!” 。2.6 显示函数此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for 循环语句,来把所有学生的信息都输出。2.7 退出系统当输入“ 0”时,就能退出系统,这是通过while 语句来控制实现的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 5 第三章 调试及运行结果3.1 主菜单主菜单显示如下:图 3-1 主菜单3.2 显示功能按 6 则显示全
14、部信息,如图3-2:图 3-2 显示功能3.3 增加功能进入主菜单后选择 2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图 3-3:图 3-3 增加后名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - 6 3.4 删除功能进入主菜单后选择3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图 3-3:删除数据后显示如图3-4:图 3-4 删除后3.5 修改功能进入主菜单后选择4,进入修改功能
15、,按要求输入要修改的学生信息,修改数据前显示如图 3-4:修改后如图 3-5:图 3-5 修改后3.6 查询功能进入主菜单后选择5,进入查询功能,如图3-6:图 3-6 选择查询条件按学号查询如图 3-7:按姓名查询如图 3-8:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 7 图 3-7 按学好查询:图 3-8 按姓名查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
16、- - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - 8 第四章 总结4.1 遇到的问题及解决方法首先,是对文件的处理不够熟练, 通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。4.2 收获和体会此次 c+面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C+ 编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。根据 C+ 课程所学的
17、概念、理论和方法,按照C+ 程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+ 语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献1 C+语言程序设计(第三版) ,郑莉,清华大学出版社,20042 C+语言程序设计案例教程,郑莉,清华大学出版社,2005 3 C+程序设计教程 ,钱能主编,清华大学出版社,1999.4 4 C+程序设计,谭浩强,清华大学出版社,2004 5 C+程序设计实践指导 ,谭浩强,清华大学出版社,2
18、005 6 C+程序设计课程设计 ,刘振安,机械工业出版社,2004.8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 9 附录:程序代码#include #include #include #include using namespace std; #define M 200 /可以存信息总量int N=0; /学生总量class student public: student(); void set(); /初始化信息,
19、第一次对信息的录入void add(); /添加学生信息void del(); /删除某学生信息void change(); /修改某学生信息void search(); /查询某学生信息void display(); /显示全部学生信息private: static int num; string name,sex,politic,address; ; int student:num=110; student:student() void student:set() int i; string setname,setsex,setpolitic,setaddress; ofstream ou
20、tfile; outfile.open(f1.txt,ios:out); /-打开文件 - if(!outfile) cerr open errorendl; exit(1); /-依次录入相应个数的学生信息- for(i=0;iM;i+) cout当姓名输入为 0时,停止输入! !endl; cout请输入姓名: setname; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 10 name=setname; if(se
21、tname=0) break; if(setname!=0) N+; num+; outfilenum ; outfilesetname ; cout请输入性别: setsex; sex=setsex; outfilesetsex ; cout请输入政治面貌: setpolitic; politic=setpolitic; outfilesetpolitic ; cout请输入家庭住址: setaddress; address=setaddress; outfilesetaddressendl; outfile.close(); /-关闭文件 - void student:add() stri
22、ng addname,addsex,addpolitic,addaddress; /-以追加的方式录入信息,直接将信息追加到以前文件的末尾- ofstream outfile(f1.txt,ios:app); if(!outfile) cerr open errorendl; exit(1); N=N+1; /-依次输入相应的数据,并且追加到之前的文件中去- cout请输入您要添加的数据 endl; num+; outfilenum ; cout请输入姓名: addname; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师
23、精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - - - - 11 outfileaddname ; cout请输入性别: addsex; outfileaddsex ; cout请输入政治面貌: addpolitic; outfileaddpolitic ; cout请输入家庭住址: addaddress; outfileaddaddressendl; outfile.close(); cout已添加成功! endl; void student:del() int k,i; int numM; string nameM,sexM,politicM,ad
24、dressM; ifstream infile(f1.txt,ios:in); if(!infile) cerr open errorendl; exit(1); for(i=0;iN;i+) coutnumi; coutsetw(9)namei; coutsetw(9)sexi; coutsetw(9)politici; coutsetw(9)addressi; coutsetw(9)addressiendl; cout你想删除第几个? k; k=k-1; infile.close(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
25、 - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - 12 ofstream outfile(f1.txt,ios:out); if(!outfile) cerr open errorendl; exit(1); /退出程序 /-将数组存取的信息输出到文件中去- for(i=0;iN;i+) if(i!=k) outfilenumi ; outfilenamei ; outfilesexi ; outfilepolitici ; outfileaddressi endl; outfile.close(); N=N-1; cout已删
26、除成功! endl; void student:change() int i,k; int numM; string nameM,sexM,politicM,addressM; ifstream infile(f1.txt,ios:in); if(!infile) cerr open errorendl; exit(1); for(i=0;iN;i+) coutnumi; coutsetw(9)namei; coutsetw(9)sexi; coutsetw(9)politici; coutsetw(9)addressi; coutsetw(9)addressiendl; infile.clo
27、se(); ofstream outfile(f1.txt,ios:out); if(!outfile) cerr open errorendl; exit(1); cout你想修改第几个数据 ?k; k=k-1; cout请输入新的数据: endl; cout请输入姓名: namek; cout请输入性别: sexk; cout请输入政治面貌: politick; cout请输入家庭住址: addressk; for(i=0;iN;i+) outfilenumi ; outfilenamei ; outfilesexi ; outfilepolitici ; outfileaddressi
28、endl; outfile.close(); cout已修改成功! endl; void student:search() int i,n,w=0,numM,aM;char ch; string searchname,nameM,sexM,politicM,addressM,bM4; couta.按学号查找b.按姓名查找 endl; ifstream infile(f1.txt,ios:in); if(!infile) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 1
29、9 页 - - - - - - - - - 14 cerr open errorendl; exit(1); for(i=0;inumi;ai=numi; infilenamei;bi0=namei; infilesexi;bi1=sexi; infilepolitici;bi2=politici; infileaddressi;bi3=addressi; cout请输入 a 或者 b!ch; if(ch=a) cout请输入学号! n; for(i=0;iN;i+) if(ai=n) w=1; cout 学号姓名性别政治面貌家庭住址 endl; cout ; coutsetw(9)ai; c
30、outsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi2; coutsetw(9)bi3endl; if(w=0) cout无此人信息! endl; else if(ch=b) cout请输入姓名! searchname; for(i=0;iN;i+) if(namei=searchname) w=1; cout 学号姓名性别政治面貌家庭住址 endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - -
31、- - - 15 cout ; coutsetw(9)ai; coutsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi2; coutsetw(9)bi3endl; if(w=0) cout无此人信息! endl; else cout没有此选项! endl; void student:display() int k,num; string name,sex,politic,address; ifstream infile(f1.txt,ios:in); if(!infile) cerr open errorendl; exit(1); cout 学号姓名性别政治
32、面貌家庭住址endl; for(k=0;kN;k+) coutnum; coutsetw(9)name; coutsetw(9)sex; coutsetw(9)politic; coutsetw(9)address; coutsetw(9)addressch; while(ch!=0) system(cls); switch(ch) case 1:stu.set();break; case 2:stu.add();break; case 3:stu.del();break; case 4:stu.change();break; case 5:stu.search();break; case 6
33、:stu.display();break; case 0:cout退出系统 !;break; default:cout没有此选项! ch; void menu() cout*endl; cout* 1.输入*endl; cout* 2.添加*endl; cout* 3.删除*endl; cout* 4.修改*endl; cout* 5.查询*endl; cout* 6.显示全部*endl; cout* 0.退出*endl; cout*endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -