C++学生信息管理系统课程设计报告42596.docx

上传人:b****6 文档编号:7378124 上传时间:2023-01-23 格式:DOCX 页数:35 大小:330.10KB
下载 相关 举报
C++学生信息管理系统课程设计报告42596.docx_第1页
第1页 / 共35页
C++学生信息管理系统课程设计报告42596.docx_第2页
第2页 / 共35页
C++学生信息管理系统课程设计报告42596.docx_第3页
第3页 / 共35页
C++学生信息管理系统课程设计报告42596.docx_第4页
第4页 / 共35页
C++学生信息管理系统课程设计报告42596.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

C++学生信息管理系统课程设计报告42596.docx

《C++学生信息管理系统课程设计报告42596.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理系统课程设计报告42596.docx(35页珍藏版)》请在冰豆网上搜索。

C++学生信息管理系统课程设计报告42596.docx

C++学生信息管理系统课程设计报告42596

面向对象的程序设计课程设计报告

 

姓名:

学号:

班级:

院系

日期:

 

1课程设计目的……………………………………………………

2项目要求与简介…………………………………………………

3设计题目…………………………………………………………

题目学生成绩管理系统……………………………………

4测试运行的结果………………………………………………….

5心得体会与进一步的改进………………………………………

6参考书目…………………………………………………………

7源代码…………………………………………………………

 

《《程序设计语言(C++)》》课程设计

一.设计目的

1.进一步掌握用C++进行类的定义和操作

2.进一步掌握类的继承和派生

3.掌握在VisualC++6进行编程的技术

4.综合利用上述知识,编写面向对象的简单程序

5.培养团结合作能力和自主学习的能力

二.项目要求与简介

1.要求系统具备一定的存储记忆功能

2.要求系统能够处理常见异常并作出反映

3.系统具备常用的学生信息处理功能

4.本系统还处于1.1版本,还会发布后续版本

三.设计题目

题目学生成绩管理系统

(一).系统的主要功能

1.增加学生

系统可以提示用户输入增加的学生个数,添入到student.dat

2.删除

首先由用户输入要删除的位置,然后系统调用删除函数

3.查找

系统提示用户输入要查找的学号,成绩,姓名然后系统再传递用户

选择的项目分别调用以上三个函数

 

4.修改

系统提示用户要修改的位置,然后传递给修改函数。

接着系统出现提示

提示用户修改的项目,可以修改学号,姓名或者成绩

5.成绩信息

用户选择该功能以后,系统出现提示。

总共有六项,求平均成绩,成绩排序

低于平均成绩的学生信息,高于90分的学生信息,低于60分的学生信息或

退出该功能

6.显示所有学生信息

调用此功能,系统读取文件中当前所有内容输出

7.当前学生总数

读取long.txt中保存的信息并输出

8.交换两个学生信息

调用函数交换两个学生的信息

9.插入学生信息

在指定位置新建一个学生信息,位置由用户输入

(二).系统总体框架

 

(三).系统数据结构定义

classstudent{//这是数据节点

public:

student(){};

student(student&c){

this->number=c.getnumber();

this->setname(c.getname());

this->setsex(c.getsex());

this->grade=c.getgrade();

}

voidsetname(char*name1){

strcpy(this->name,name1);

}

voidsetnumber(intnum){

this->number=num;

}

voidsetgrade(doublegrade1){

this->grade=grade1;

}

voidsetsex(char*sex1){

strcpy(this->sex,sex1);

}

char*getname(){

returnthis->name;

}

doublegetgrade(){

returnthis->grade;

}

intgetnumber(){

returnthis->number;

}

char*getsex(){

returnthis->sex;

}

private:

charname[20];

charsex[5];

doublegrade;

intnumber;

};

 

四.测试运行的结果

<1>测试新建学生信息功能

<2>测试查看学生总数功能

 

<3>测试插入学生信息功能

<4>测试显示所有学生信息功能

 

<5>测试学生成绩信息功能

<6>测试交换学生信息功能

 

<7>测试删除学生信息功能

<7>测试修改学生信息功能

<8>测试查找学生信息功能

五.心得体会与进一步改进

通过此次VC++课程设计,我了解了VisualC++6的调试和找错基本方法。

系统的设计基本实现了老师所要求的功能,同时还增添加了交换学生信息的新功能。

同时在设计过程中,对于系统的功能还有许多不完善的地方,例如为了是对输入信息的限制,没有在系统中做限制用户可以随意输入,由此可能导致系统出错。

另外对于删除没有实现按学号删除,因此还需要更多的设计来完善对于表达式的处理;设计一开始是以链表为基础的,后来进行不下去了。

重新用了现在C++中对文件处理的知识;界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。

此次的课程设计让自己在学习新知识上有了更高的理解,有些只是只有在你想到要用时才会自己去学,同时自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。

六.参考书目

Visualc++入门到精通

七.源代码

classlist:

publicstudent{

public:

voiddisplay(){

ifstreaminfile;

inta=1;

infile.open("student.dat",ios:

:

binary);

studentc;

while(infile.read((char*)&c,sizeof(c))){

cout<<"第"<

cout<<"姓名:

"<

cout<<"性别:

"<

cout<<"成绩:

"<

cout<<"学号:

"<

a++;

cout<

}

infile.close();

}//显示学生信息

voidwrite(inti){

inta,t,b=0;

charname1[20];

charsex1[5];

intnumber1;

doublegrade1;

ofstreamoutfile;

outfile.open("student.dat",ios:

:

app);

studentc;

for(a=1;a<=i;a++){

cout<<"请输入姓名:

";

cin>>name1;

c.setname(name1);

cout<<"请输入学生学号:

";

cin>>number1;

c.setnumber(number1);

cout<<"请输入学生性别:

";

cin>>sex1;

c.setsex(sex1);

cout<<"请输入学生成绩:

";

cin>>grade1;

c.setgrade(grade1);

outfile.write((char*)&c,sizeof(c));

}

outfile.close();

ifstreaminfile;

//infile.seekg(0,ios:

:

end);

infile.open("long.txt");

if(infile.is_open())

{

while(!

infile.eof())

{

chartemp[50];

infile.getline(temp,50);

b=atoi(temp);

}

}else

{

b=0;

}

infile.close();

ofstreamoutfile1("long.txt");

t=i+b;

outfile1<

outfile1.close();

}//增加学生信息

voidmodify2(inti,intj){

intcap1;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

studentc;

ifstreaminfile1("student.dat");

ofstreamoutfile("temp.dat");

inta;

for(a=1;a

infile1.read((char*)&c,sizeof(c));

outfile.write((char*)&c,sizeof(c));

}

outfile.close();

infile1.close();

ifstreaminfile2("student.dat");

infile2.seekg(sizeof(c)*(i-1));

infile2.read((char*)&c,sizeof(c));

charname1[20];

cout<<"输入姓名:

";

cin>>name1;

c.setnumber(c.getnumber());

c.setgrade(c.getgrade());

c.setname(name1);

c.setsex(c.getsex());

ofstreamoutfile1("temp.dat",ios:

:

app);

outfile1.write((char*)&c,sizeof(c));

outfile1.close();

ifstreaminfile3("student.dat");

infile3.seekg(sizeof(c)*i);

ofstreamoutfile2("temp.dat",ios:

:

app);

for(a=i+1;a<=cap1;a++){

infile3.read((char*)&c,sizeof(c));

outfile2.write((char*)&c,sizeof(c));

}

outfile2.close();

infile3.close();

ifstreaminfile4("temp.dat");

ofstreamoutfile3("student.dat");

for(a=1;a<=cap1;a++){

infile4.read((char*)&c,sizeof(c));

outfile3.write((char*)&c,sizeof(c));

}

remove("temp.dat");

infile4.close();

outfile3.close();

}

voidmodify1(inti,intj){

intcap1;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

studentc;

ifstreaminfile1("student.dat");

ofstreamoutfile("temp.dat");

inta;

for(a=1;a

infile1.read((char*)&c,sizeof(c));

outfile.write((char*)&c,sizeof(c));

}

outfile.close();

infile1.close();

ifstreaminfile2("student.dat");

infile2.seekg(sizeof(c)*(i-1));

infile2.read((char*)&c,sizeof(c));

intnumber1;

cout<<"输入学号:

";

cin>>number1;

c.setnumber(number1);

c.setgrade(c.getgrade());

c.setname(c.getname());

c.setsex(c.getsex());

ofstreamoutfile1("temp.dat",ios:

:

app);

outfile1.write((char*)&c,sizeof(c));

outfile1.close();

ifstreaminfile3("student.dat");

infile3.seekg(sizeof(c)*i);

ofstreamoutfile2("temp.dat",ios:

:

app);

for(a=i+1;a<=cap1;a++){

infile3.read((char*)&c,sizeof(c));

outfile2.write((char*)&c,sizeof(c));

}

outfile2.close();

infile3.close();

ifstreaminfile4("temp.dat");

ofstreamoutfile3("student.dat");

for(a=1;a<=cap1;a++){

infile4.read((char*)&c,sizeof(c));

outfile3.write((char*)&c,sizeof(c));

}

remove("temp.dat");

infile4.close();

outfile3.close();

}

voidmodify3(inti,intj){

intcap1;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

studentc;

ifstreaminfile1("student.dat");

ofstreamoutfile("temp.dat");

inta;

for(a=1;a

infile1.read((char*)&c,sizeof(c));

outfile.write((char*)&c,sizeof(c));

}

outfile.close();

infile1.close();

ifstreaminfile2("student.dat");

infile2.seekg(sizeof(c)*(i-1));

infile2.read((char*)&c,sizeof(c));

charsex1[5];

cout<<"输入性别:

";

cin>>sex1;

c.setnumber(c.getnumber());

c.setgrade(c.getgrade());

c.setname(c.getname());

c.setsex(sex1);

ofstreamoutfile1("temp.dat",ios:

:

app);

outfile1.write((char*)&c,sizeof(c));

outfile1.close();

ifstreaminfile3("student.dat");

infile3.seekg(sizeof(c)*i);

ofstreamoutfile2("temp.dat",ios:

:

app);

for(a=i+1;a<=cap1;a++){

infile3.read((char*)&c,sizeof(c));

outfile2.write((char*)&c,sizeof(c));

}

outfile2.close();

infile3.close();

ifstreaminfile4("temp.dat");

ofstreamoutfile3("student.dat");

for(a=1;a<=cap1;a++){

infile4.read((char*)&c,sizeof(c));

outfile3.write((char*)&c,sizeof(c));

}

remove("temp.dat");

infile4.close();

outfile3.close();

}

voidmodify4(inti,intj){

intcap1;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

studentc;

ifstreaminfile1("student.dat");

ofstreamoutfile("temp.dat");

inta;

for(a=1;a

infile1.read((char*)&c,sizeof(c));

outfile.write((char*)&c,sizeof(c));

}

outfile.close();

infile1.close();

ifstreaminfile2("student.dat");

infile2.seekg(sizeof(c)*(i-1));

infile2.read((char*)&c,sizeof(c));

doublegrade1;

cout<<"输入成绩:

";

cin>>grade1;

c.setnumber(c.getnumber());

c.setgrade(grade1);

c.setname(c.getname());

c.setsex(c.getsex());

ofstreamoutfile1("temp.dat",ios:

:

app);

outfile1.write((char*)&c,sizeof(c));

outfile1.close();

ifstreaminfile3("student.dat");

infile3.seekg(sizeof(c)*i);

ofstreamoutfile2("temp.dat",ios:

:

app);

for(a=i+1;a<=cap1;a++){

infile3.read((char*)&c,sizeof(c));

outfile2.write((char*)&c,sizeof(c));

}

outfile2.close();

infile3.close();

ifstreaminfile4("temp.dat");

ofstreamoutfile3("student.dat");

for(a=1;a<=cap1;a++){

infile4.read((char*)&c,sizeof(c));

outfile3.write((char*)&c,sizeof(c));

}

remove("temp.dat");

infile4.close();

outfile3.close();

}

voidmodify(inti){

intcap1;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

studentc;

ifstreaminfile1("student.dat");

if(i<=cap1){

intj=1;

while(j!

=0){

cout<<"__________________________________"<

cout<<"|****请输入你想执行的操作****|"<

cout<<"|****1.修改学生学号****|"<

cout<<"|****2.修改学生姓名****|"<

cout<<"|****3.修改学生性别****|"<

cout<<"|****4.修改学生成绩****|"<

cout<<"|****5.显示该学生信息***|"<

cout<<"|****0.退出操作****|"<

cout<<"—————————————————"<

cin>>j;

switch(j){

case1:

this->modify1(i,j);

break;

case2:

this->modify2(i,j);

break;

case3:

this->modify3(i,j);

break;

case4:

this->modify4(i,j);

break;

case5:

infile1.seekg(sizeof(c)*(i-1));

infile1.read((char*)&c,sizeof(c));

cout<<"第"<

cout<<"姓名:

"<

cout<<"性别:

"<

cout<<"成绩:

"<

cout<<"学号:

"<

break;

case0:

break;

}

}

}

else

cout<<"你修改的位置有误"<

}//修改学生信息

voidchange(inti,intj){

intcap1,t;

if(i>j){

t=i;

i=j;

j=t;

}

studentb;

ifstreaminfile;

infile.open("long.txt");

infile>>cap1;

infile.close();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1