课设实验报告.docx

上传人:b****2 文档编号:11622107 上传时间:2023-06-01 格式:DOCX 页数:53 大小:208.73KB
下载 相关 举报
课设实验报告.docx_第1页
第1页 / 共53页
课设实验报告.docx_第2页
第2页 / 共53页
课设实验报告.docx_第3页
第3页 / 共53页
课设实验报告.docx_第4页
第4页 / 共53页
课设实验报告.docx_第5页
第5页 / 共53页
课设实验报告.docx_第6页
第6页 / 共53页
课设实验报告.docx_第7页
第7页 / 共53页
课设实验报告.docx_第8页
第8页 / 共53页
课设实验报告.docx_第9页
第9页 / 共53页
课设实验报告.docx_第10页
第10页 / 共53页
课设实验报告.docx_第11页
第11页 / 共53页
课设实验报告.docx_第12页
第12页 / 共53页
课设实验报告.docx_第13页
第13页 / 共53页
课设实验报告.docx_第14页
第14页 / 共53页
课设实验报告.docx_第15页
第15页 / 共53页
课设实验报告.docx_第16页
第16页 / 共53页
课设实验报告.docx_第17页
第17页 / 共53页
课设实验报告.docx_第18页
第18页 / 共53页
课设实验报告.docx_第19页
第19页 / 共53页
课设实验报告.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

课设实验报告.docx

《课设实验报告.docx》由会员分享,可在线阅读,更多相关《课设实验报告.docx(53页珍藏版)》请在冰点文库上搜索。

课设实验报告.docx

课设实验报告

课设实验报告

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

北 华航天工业学院

 

《基于C++的面向对象程序设计实例》

课程设计报告

 

报告题目:

课程设计选题管理系统设计 

作者所在系部:

计算机科学与工程系 

作者所在专业:

计算机应用技术   

作者所在班级:

    11512     

作者姓名:

生亚军   

指导教师姓名:

斯庆巴拉  

完成时间:

  2012/6/16 

 

北华航天工业学院教务处制

摘要

在当前的高校课程选课系统中,,往往需要对学生进行编号以便于管理和统计工作,所以就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现对冗杂的选课及编号的管理目的,还可以变得更有效率。

本文利用MicrosoftVisualC++(类和函数,数组,对象等)编写程序,实现了学生选课系统的统一管理。

本系统主要有八个功能模块:

包括添加,查询,修改,删除,统计,保存,读取等功能。

已经过全面的系统测试,能够很好的运行,达到了预期的效果。

关键词:

程序设计 类函数统计友元

 

摘要1

第一章绪论ﻩ2

1.1课程设计的目的ﻩ2

1.2课程设计的背景和意义ﻩ2

1.2.1 课程设计的背景ﻩ2

1.3 课程设计环境2

第二章需求分析ﻩ3

2.1问题描述3

2.2功能要求ﻩ3

2.3 问题的解决方案3

3.1.1类设计ﻩ4

3.2结构设计ﻩ4

3.2.1系统流程图ﻩ4

3.2.2界面设计ﻩ5

4.1类实现6

4.2 函数实现6

4.3 主函数实现ﻩ14

第五章系统测试16

5.1 模块测试16

5.2课程设计过程中遇到的问题22

总结ﻩ23

参考文献ﻩ25

附录ﻩ26

 

第一章 绪论

1.1课程设计的目的

(1)要求学生能够熟练掌握C++语言的基本知识和技能。

(2)基本掌握面向对象程序设计的基本思路和方法。

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

1.2 课程设计的背景和意义

1.2.1课程设计的背景

1.理论研究基础

(1)运用面向对象(类和对象)的机制来实现系统功能。

(2)建立清晰的类与函数之间的关系,学会对函数调用的熟练使用。

2.技术层面的支持

MicrosoftVisualC++6.0

MicrosoftVisualstudio

1.2.2课程设计的意义

通过此次课程设计,清晰的掌握C++语言的基本知识并能熟练的应用进行编程。

1.3 课程设计环境

软件:

WindosXP系统,

  MicrosoftVisual studio,

  MicrosoftVisualC++6.0编译器。

硬件:

戴尔 双核处理器,二G内存,512独立显卡,80G硬盘。

 

第二章 需求分析

2.1问题描述

课程设计题目包括:

编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。

学生信息包括:

学号、姓名、性别、年龄、班级、专业等信息。

2.2功能要求

(1)添加功能:

程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。

添加记录时,要求学号和编号要唯一。

如果添加了重复记录,则提示数据添加重复并取消添加。

(2)查询功能:

可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:

可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。

(4)编辑功能:

可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:

主要实现对已添加的学生和课程设计题目记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!

”并返回操作。

(6)统计功能:

能根据多种参数进行统计。

能按课程设计题目名称统计出学生选择该题目的人员的信息。

(7)保存功能:

可将当前系统中各类记录存入文件中,存入方式任意。

(8)读取功能:

可将保存在文件中的信息读入到当前系统中,供用户进行使用

2.3问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

第三章系统设计

3.1数据设计

3.1.1类设计

定义一个学生类student,类中包括学号num,姓名name,性别xb,年龄age,班级clas,专业profess,及所选课程的课程编号bianhao,课程名称xname;函数包括向文件输入函数friendvoidWrite(Studentstu[],intn);从文件读取函数,friend intRead(Studentstu[]);并声明为友元,定义的函数包括添加学生信息函数voidadd(Studentstu[]),查询信息函数voidchaxun(Studentstu[]),按学号查询函数voidchaxun1(Student stu[]),按姓名查询函数voidchaxun2(Studentstu[]),按题目编号查询函数voidchaxun3(Studentstu[]),按题目名称查询函数voidchaxun4(Student stu[])。

3.1.2函数设计

voidWrite(Studentstu[],intn),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;int Read(Studentstu[]),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;voidadd(Studentstu[]),添加学生信息;void chaxun(Studentstu[])查询学生信息(可根据学生的学号、姓名、所选课程编号、课程名称);voidxiugai(Studentstu[]),修改学生信息;voiddel(Student stu[])删除学生信息,根据输入的学生学号通过调用函数实现;voidtotal(Student stu[],统计学生信息(根据学生所选课程名称);voiddisplay(Studentstu[]),显示函数用来显示所有学生信息;intxmenu(),菜单函数;voidmain()主函数,调用菜单函数intxmenu()实现对所有功能的实现。

3.2结构设计

3.2.1系统流程图

课程设计学生选课系统设计结构图:

进入功能界面后,可以进行多项功能选择,如

添加,查询,修改,删除,统计,显示,将数据写入文件,从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式。

如图3-1示。

 

学生类

图3-1课程设计学生选课系统设计结构图

3.2.2界面设计

主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能:

1.添加新的纪录

2.查询记录

3.修改学生相关信息

4.删除学生纪录

5.统计所有记录

6.显示所有记录

0.退出系统

其中,查询记录又可以弹出一个界面分别有以下几个功能:

[1].根据学号查询

[2].根据姓名查询

[3].根据题目编号查询

[4].根据题目名称查询

每实现一个功能,重新弹出主界面,进行下一个的功能选择。

第四章 系统实现

4.1类实现

class Student

{

public:

charstu[100];       //字符串数组学生

friend voidadd(Student stu[]);   //友元函数添加学生信息

 friendvoidchaxun(Studentstu[]);  //友元函数查询学生信息

 friendvoidchaxun1(Studentstu[]);  //查询学生信息(按学号)

 friendvoid chaxun2(Student stu[]);//查询学生信息(按姓名)

 friendvoidchaxun3(Studentstu[]);//查询学生信息(按题目编号)

 friend voidchaxun4(Studentstu[]); //查询学生信息(按题目名称)

 friend voidxiugai(Studentstu[]); //友元函数修改学生信息

ﻩfriendvoid del(Studentstu[]);  //友元函数删除学生信息

 friend voidtotal(Studentstu[]);  //友元函数统计学生信息

friendvoiddisplay(Studentstu[]); //友元函数显示全部学生信息

friendvoid Write(Studentstu[],int n);  //向文件中写入数据

friendintRead(Studentstu[]);    //从文件中读数据

private:

 int num;//学号

 char name[10];//姓名

 char xb[2];//性别

ﻩ intage;//年龄

charclas[10];//班级

ﻩcharprofess[10];//专业

 intbianhao;//题目编号

  charxname[10];//题目名称

}stu[100];//定义对象

4.2函数实现

voidWrite(Studentstu[],int n)//向文件中写入数据

{

ﻩfstreammyfile;

my("D:

\\student.txt",ios:

out|ios:

:

binary);

if(!

myfile)

cout<<"该文件不能打开!

"<<endl;

abort();

ﻩ}

intcount=n;

ﻩmyfile<

ﻩfor(inti=0;i<=count;i++)

ﻩ{

    myfile<<stu[i].num<<""<

 my();

intRead(Student stu[]) //从文件中读数据

  fstreammyfile;

 my("D:

\\student.txt",ios:

in|ios:

binary);

if(!

myfile)

ﻩ{

cout<<"该文件不能打开!

"<<endl;

abort();

ﻩ  intcount;

 my(0);

  myfile>>count;

ﻩfor(inti=0;i<=count;i++)

 {

myfile>>stu[i].num>>stu[i].name>>stu[i].xb>>stu[i].age>>stu[i].clas>>stu[i].profess>>stu[i].bianhao>>stu[i].xname;

ﻩﻩ cout<<endl;

ﻩ}

 my();

return count;

}

voidadd(Student stu[])//添加学生信息

{

int n=Read(stu);

inti=0;

charsign;

ﻩcout<

"<

while(sign!

='N')

 loop:

ﻩcout<<"学号:

";

ﻩcin>>stu[i].num;

 cout<

ﻩint c=0;

ﻩwhile(c<i)

ﻩ{

c++;

ﻩif(stu[i].num==stu[i-c].num)

ﻩﻩ{

ﻩﻩcout<<"你输入的学号已经存在!

请重新输入"<

ﻩﻩgoto loop;

ﻩﻩﻩ}

ﻩ}

cout<<"姓名:

";

 cin>>stu[i].name;

   cout<

 cout<< "性别:

" ;

   cin>>stu[i].xb;

   cout<< endl;

cout <<"年龄:

 ";

 cin >>stu[i].age;

 cout<< endl;

   cout<<"班级:

";

  cin >>stu[i].clas;

    cout<< endl;

  cout<<"专业:

 ";

   cin >>stu[i].profess;

  cout<

  cout<<"题目编号:

";

   cin>>stu[i].bianhao;

    cout<

cout<<"题目名称:

 " ;

 cin>>stu[i].xname;

cout<<endl;

  cout<<"提示:

是否继续写入学生信息?

(Y/N)";

cin>>sign; //输入判断

i++;

}

Write(stu,i);

}

voidchaxun(Student stu[]) //查询学生信息

{

int n=Read(stu);

ﻩcout<<"* 【1】根据学号查询*"<<endl;

 cout<<"*  【2】根据姓名查询 *"<<endl;

 cout<<"*【3】根据编号查询 *"<<endl;

 cout<<"*【4】根据名称查询 *"<

ﻩcout<<endl;

 intc;

 cout<<"请输入选择:

" ;

ﻩcin>>c;

 switch(c)

{

case 1:

     chaxun1(stu);

ﻩ  break;

  case2:

   chaxun2(stu);

break;

 case3:

chaxun3(stu);

ﻩﻩbreak;

case4:

  chaxun4(stu);

break;

default:

ﻩcout<<"输入错误,请重新输入!

"<<endl;

ﻩ}

ﻩWrite(stu,n);

}

voidchaxun1(Student stu[])  //按学号查询

intn=Read(stu);

ints;

int i=0;

ﻩcout<<endl<<"查找学生信息:

"<

cout<<"请输入需要查找学生的学号:

"<

cin>>s; 

ﻩwhile((stu[i].num-s)!

=0&&i<n)i++;//查找判断 

if(i==n)

ﻩ{

ﻩcout<<"提示:

对不起,无法找到该学生的信息!

"<

}

else

{

ﻩﻩcout<<"---------------------------------------"<

ﻩcout<<"学号:

 "<

   cout<<"姓名:

"<<stu[i].name<

  cout <<"性别:

"<

   cout<<"年龄:

"<<stu[i]. age<

  cout<<"班级:

"<<stu[i].clas<< endl;

cout<< "专业:

 "<

   cout << "题目编号:

"<

  cout<< "题目名称:

 "<

ﻩ}

}

void chaxun2(Studentstu[])  //按姓名查询

{ 

ﻩintn=Read(stu);

ﻩchara[10];

ﻩcout<<"请输入需要查找学生的姓名:

"<

cin>>a;

  for(int i=0;i<n;i++)

if(strcmp(stu[i].name,a)==0) 

{

   cout<<"---------------------------------------"<<endl;

ﻩcout<<"学号:

"<

  cout<<"姓名:

"<<stu[i].name<<endl;

 cout<< "性别:

 "<<stu[i].xb<<endl;

 cout<< "年龄:

"<

  cout<<"班级:

"<<stu[i].clas<

 cout<< "专业:

"<<stu[i].profess<

    cout<<"题目编号:

"<<stu[i].bianhao<

 cout<<"题目名称:

 "<<stu[i].xname<<endl; 

ﻩ}

}

void chaxun3(Studentstu[])//按题目编号查询

{

int n=Read(stu);

ﻩintb;

ﻩinti=0;

ﻩcout<<"请输入需要查找的题目编号:

"<<endl; 

cin>>b;

ﻩwhile((stu[i].bianhao-b)!

=0&&i<n) i++;//查找判断

if(i==n)

ﻩ{

ﻩcout<<"提示:

对不起,无法找到该信息!

"<<endl;

ﻩ}

else

ﻩ{

ﻩcout<<"---------------------------------------"<<endl;

ﻩﻩcout<<"学号:

"<<stu[i].num<

 cout <<"姓名:

"<<stu[i].name<

   cout<< "性别:

"<<stu[i].xb<<endl ;

   cout<<"年龄:

"<

  cout<< "班级:

"<<stu[i].clas<< endl;

cout <<"专业:

"<<stu[i].profess<

  cout <<"题目编号:

"<

  cout<<"题目名称:

"<<stu[i].xname<

ﻩ}

}

voidchaxun4(Studentstu[]) //按题目名称查询

{

int n=Read(stu);

char c[10];

cout<<"请输入需要查找的题目名称:

"<

cin>>c;

ﻩfor(inti=0;i

if(strcmp(stu[i].xname,c)==0)

{

   cout<<"---------------------------------------"<<endl;

ﻩcout<< "学号:

"<

    cout <<"姓名:

"<<stu[i].name<

 cout<<"性别:

"<

    cout<<"年龄:

"<

cout<<"班级:

"<<stu[i].clas<<endl;

   cout<<"专业:

"<<stu[i].profess<<endl;

   cout <<"题目编号:

"<<stu[i].bianhao<<endl;

  cout <<"题目名称:

"<<stu[i].xname<

ﻩ} 

}

void xiugai(Studentstu[]) //修改学生信息

  intn=Read(stu);

int s;

inti=0;

cout<

"<

ﻩcout<<"请输入需要修改学生的学号:

"<<endl;

cin>>s;

while((stu[i].num-s)!

=0&&i

if(i==n)

{

ﻩcout<<"提示:

对不起,无该学生的信息!

!

!

"<

} 

ﻩelse

ﻩcout<<"该学生的信息:

"<

ﻩcout<<"学号"<

ﻩﻩstu[i].clas<<'\n'<<"专业"<

ﻩﻩcout<<"请重新输入该学生的信息"<

ﻩcout<<"学号:

";

 cin>> stu[i]. num;

  cout<

   cout << "姓名:

";

 cin>>stu[i]. name;

  cout<< endl;

 cout<<"性别:

" ;

cin>>stu[i].xb;

    cout<

  cout<<"年龄:

" ;

  cin>>stu[i].age;

 cout<

 cout << "班级:

";

  cin>> stu[i].clas;

  cout<

 cout<<"专业:

";

  cin>>stu[i]. profess;

  cout<

  c

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2