C++程序设计报告书
课题名称: 学生信息管理系统
学 号:
姓 名:
班 级:
指导老师:
成 绩:
一、程序设计目的
本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼:
1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
二、 课程设计内容
学生信息包括:学号、姓名、年龄、性别、出生年月、电话、E-mail等,试设设计学生信息管理系统,使之能提供以下功能:
(一) 系统以菜单方式工作
(二)功能:
1. 学生信息录入功能(学生信息以文件保存)——输入
2. 学生信息浏览功能——输出
3. 查询、排序功能——算法
按学号查询
按姓名查询
4.学生信息的修改和删除(可选项)
三、课程总体设计
(一)各项功能说明:
(1)学生基本信息的录入和保存:
这部分的功能主要包括信息的录入和保存。首先进入主菜单界面,按照界面的提示选择进入录入信息功能,按照程序的提示分别录入学生的学号、姓名、年龄、性别、出生年月、地址、电话、Email信息,在录入信息的同时系统会自动缓冲存储录入的信息,并最终自动保存到文件名为stu.txt的文件中。输入完毕后请按任意键可自动返回到主菜单界面。
(2) 学生信息的浏览:
此功能是将录入并保存的学生信息读出,并在屏幕中显示出来。
(3) 按学生的姓名或学号查询此学生信息:
此功能可以根据用户输入的要查询的学生的姓名或学号查询该生的信息并在屏幕上输出该学生的所有信息。
(4)删除指定学生的信息:
此功能可以根据用户输入的要删除的学生的学号或姓名,在文件中删除该生的所有信息。
(5)退出系统,结束任务。
(二)功能如下图所示:
(
四.系统详细设计
该程序采用类来处理学生所有的基本信息,如下所述:
1.包含的库函数有:
#include <iostream> #include <string>
#include <iomanip> #include <fstream>
#include <cstdlib>
2.定义的Student类为:
class Student
{
string name;//姓名
string number;//学号
string age;//年龄
string sex;//性别
string born;//出生年月
string address;//地址
string tell;//电话
string email;//Email
public:
void student();//构造函数,对信息初始化
void input();//录入学生信息
void save_new();//保存学生信息
void output();//输出信息
void search();//按姓名或学号查询信息
void del();//删除想删除的学生信息
};
1.主函数
2.信息的输入 3.浏览学生信息
4.按姓名或学号查询信息 5删除信息
五.总结
通过本次课程设计懂得了,学习计算机语言知识,要不断实践,不断学习新的内容,特别是课堂中没有涉及的内容要自主的去学习并学会运用。在今后的学习中我要加强自主学习的能力,加强动手能力。通过一星期的C++语言程序设计实习,我们从中受益匪浅,并且对C++语言程序设计这一门课程有了更深一步的认识。在实习中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。虽然我们对这些C++语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。
在课程设计中,我设计了一个学生信息管理系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对学生成绩更加有效系统的管理,并且速度更快内容更直接地达到用户所想要的效果。在该软件中我们实现了对学生信息的输入和存取、读取,对学生相关信息的删除等,并且可以按学号查询学生的相关信息等的功能。但软件中仍然存在一些不足,例如在输入有关学生的数据时名字没有限定,插入新的学生信息的程序还有待完善,菜单不美观等。
我一边设计一边探索,发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。在实习中我们学到了很多,希望在以后我们能充分利用这样的机会充实自己,并希望这样的机会能被更好更多地提供。
六.运行结果
结果如下:
1、将程序进行初始化。
2、进入主菜单界面 如下图:
主菜单界面
界面显示的是一个“学生信息管理系统”,总的操作流程共五个方面:
(1) 学生信息录入(系统自动以文件形式保存);
(2) 浏览学生信息;
(3) 按姓名或学号查询信息;
(4) 按姓名或学号删除学生信息;
(5) 退出菜单界面。
最后是提示用户做出要软件进行怎样功能运行的选择。
3、录入学生信息:选择菜单界面的第一个选择,按Enter键进入此选择界面,出现的界面如图:
进入录入信息界面
按照系统提示录入信息:
按系统提示录入信息
此时已录入一位学生信息,系统自动将录入的信息以stu.txt文件格式存储。按Enter键返回主菜单,如需继续录入,则继续选择菜单界面的第一个选择项。
4. 浏览学生信息:选择菜单界面第二个选择,按Enter键进入此界面,则出现的界面如图:
所有学生信息
界面上的图即显示的是浏览学生信息界面的内容,它表示的是全部学生信息
表,可按Enter键退出此界面,返回主菜单。
5.按学号查询学生信息,从菜单界面中选择第三个选择,按Enter键入,
则出现如图的界面;
按学号查询的学生的信息
以上分别显示的是按学号查询的学生的信息。
按Enter键退出此界面,返回主菜单。
6.用学号或姓名从列表中删除学生信息:从菜单界面中选择第四个选择,按Enter键入,则出现如图的界面;
按学号或姓名删除的学生的信息
按照输入的学生的学号和姓名删除该生信息,系统显示该生信息已被删除。
可按Enter键退出此界面,返回主菜单。
再选择菜单界面第二个选择,按Enter键进入此界面,则出现的界面如图:
删除后再浏览学生总信息
C++课程设计报告 更多精彩,尽在大学生校园网
学生信息管理系统(C++)
1程序功能要求
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息。 (1)信息维护:
(2)信息查询:
要求:查询时可实现按姓名查询、按学号查询。
(3)成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60~70),统计出在此分数段的学生情况。
(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果。
2 开发环境
操作系统: Windows XP
开发软件: Visual C++ 6.0
3 程序分析
(1)定义一个数组记录总成绩:total[2000];
(2)先定义结构体:struct student
(3)用for循环实现一个查找函数
(4)定义插入函数
(5)定义删除函数
(6)定义了一个输出函数来控制输出
(7)编写主函数:其中包括学生信息的输入,并求出每个学生的总成绩用数组total[2000]进行记录,然后按学生的总成绩从高到低进行排序;排序的方法有很多种,这里我用了冒泡法排序;最后调用查找,插入,删除,输出等函数实现各种功能。根据提示选择功能:cz表示查找,cr表示插入,sc表示删除,js表示结束输入输出。
4 程序详细内容
大学生校园网 1
C++课程设计报告 更多精彩,尽在大学生校园网
#include<iostream>
#include<string>
using namespace std;
int total[2000]; //总成绩;
struct student
{
int num; //学号;
string name; //姓名;
string classes; //班级;
int math; //数学成绩;
int english; //英语成绩;
int cl; //c++成绩;
}st[2000],temp; //定义结构体数组;
//查找函数;
void chazhao(int n)
{
int number;
cout<<"请输入你的学号:";
cin>>number;
for(int i=1;i<=n;i++)
{
if(st[i].num==number)//查找学号为number的学生,并输出其信息;
大学生校园网 2
C++课程设计报告 更多精彩,尽在大学生校园网
{
cout<<st[i].num<<" "<<st[i].name<<" ";
cout<<st[i].classes<<" "<<st[i].math<<" "; cout<<st[i].english<<" "<<st[i].cl<<" "; cout<<total[i]<<endl;
break;
}
}
}
//插入函数;
void charu(int n)
{
int nu,mat,en,ccl,ttotal;
string na,cla;
int x;
cout<<"请输入要插入的学生信息:";
cin>>nu>>na>>cla>>mat>>en>>ccl;
ttotal=mat+en+ccl;
for(int i=1;i<=n;i++) //查找要插入的学生的位置,并记下位置x;
{
if(ttotal>=total[i])
{x=i;break;}
大学生校园网 3
C++课程设计报告 更多精彩,尽在大学生校园网
}
for(int i=n+1;i>x;i--) //将x+1到n位置的学生信息往后移一个位置;
{
st[i]=st[i-1];
total[i]=total[i-1];
}
//对x位置的信息处理;把要插入的信息放入x的位置; st[x].num=nu; st[x].name=na;
st[x].classes=cla; st[x].math=mat;
st[x].english=en; st[x].cl=ccl;
total[x]=ttotal;
}
//删除函数;
void shanchu(int n)
{
int m,i,j;
cout<<"请输入要删除的学生的学号:";
cin>>m;
//找到要删除的信息的位置,并跳出循环,i值就是要删除信息的位置;
for(i=1;i<=n;i++)
大学生校园网 4
C++课程设计报告 更多精彩,尽在大学生校园网
{
if(m==st[i].num)break;
}
//将i+1到n的学生信息往前移一个位置,循环到n-1时结束; for(j=i;j<n;j++)
{
st[j]=st[j+1];
total[j]=total[j+1];
}
}
//输出函数;
void output(int n)
{
for(int i=1;i<=n;i++)
{
cout<<st[i].num<<" "<<st[i].name<<" ";
cout<<st[i].classes<<" "<<st[i].math<<" ";
cout<<st[i].english<<" "<<st[i].cl<<" ";
cout<<total[i]<<endl;
}
}
//主函数;
int main()
大学生校园网 5
C++课程设计报告 更多精彩,尽在大学生校园网
{
int i,n,j;
string m;
cout<<"请输入学生的人数:";
cin>>n;//表示学生的人数;
//输入n个学生的信息;
for(i=1;i<=n;i++)
{
cin>>st[i].num>>st[i].name;
cin>>st[i].classes>>st[i].math;
cin>>st[i].english>>st[i].cl;
total[i]=st[i].math+st[i].english+st[i].cl; }
//排序;冒泡排序法,根据总成绩的高到低排列;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
if(total[j]>total[i])
{
int p=total[i];
total[i]=total[j];
total[j]=p;
temp=st[i];
大学生校园网 6
C++课程设计报告 更多精彩,尽在大学生校园网
st[i]=st[j];
st[j]=temp;
}
}
for(i=1;;i++)
{
cout<<"查找成绩输入cz,插入学生信息输入cr,删除学生信息输入sc,结束请输入js:";
cin>>m;
if(m=="js")break;
if(m=="cz"){chazhao(n);}//output(n);
if(m=="cr"){charu(n);output(n+1);n++;}
if(m=="sc"){shanchu(n);output(n-1);n--;}
cout<<endl;
}
//while(1){}
return 0;
}
5程序运行结果
大学生校园网 7
C++课程设计报告 更多精彩,尽在大学生校园网
6总结心得
通过编写学生成绩管理系统这个程序,感觉到自己有很多方面的不足,在编写过程中不断的求助于同学老师,不断的查找资料和翻书本,自己真是受益匪浅。
首先,在编程学习中,实践是非常重要的,无论自己在读程序看程序时是多么的明白,但到了电脑面前,才知道在实际操作中有很多问题等着我们去解决。所以 大学生校园网
8
C++课程设计报告 更多精彩,尽在大学生校园网
以后要多多加强动手操作和编写能力。其次要多和同学老师交流,因为写程序是有很多技巧和方法的,这是一笔宝贵的经验等着我们去学习,在经常的交流和实践中,才能准确快速的编写出所需要的程序,通过程序进而解决问题。
大学生校园网 9
数据库课程设计报告指导老师贺亚茹组名组长组员完成日期成绩数据库课程设计报告一项目名称学生信息管理系统二项目需求分析1项目需求分析简…
课设名称学生成绩管理系统院系姓名学号年级专业班级指导教师时间20xx年6月目录第一部分摘要3第二部分目的背景与意义4第三部分需求分…
C程序设计报告书课题名称学号姓名班级指导老师成绩一程序设计目的本课程设计是在学习C基本理论之后的实践教学环节该实践教学是软件设计的…
C语言课程设计报告一问题描述题目七学生成绩管理系统设计学生成绩信息包括学期学号班别姓名四门课程成绩语文数学英语和计算机等主要功能1…
C可视化课程设计学生信息管理系统设计C基于MFC类可视化程序设计报告小组成员赵文琪倪涛学号31307042333130704234…
学生信息管理系统HUNANUNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师院长系主任20xx年5月25日第1页…
C语言课程设计报告一问题描述题目七学生成绩管理系统设计学生成绩信息包括学期学号班别姓名四门课程成绩语文数学英语和计算机等主要功能1…
C可视化课程设计学生信息管理系统设计C基于MFC类可视化程序设计报告小组成员赵文琪倪涛学号31307042333130704234…
一实验题目学生证管理系统数据库的设计与实现描述设计一个学生证管理系统实现下列功能1录入某位学生的学生证信息2给定学号查询某位学生的…
C语言课程设计报告之学生基本信息管理系统一需求分析学生成绩管理问题描述每个学生的信息包括学号姓名性别年龄电话成绩系统能够完成学生信…
C程序设计报告C语言课程设计题目学生信息管理系统设计者梁天江专业机械设计制造及其自动化班级学号0720xx31所属院系机电学院指导…