面向对象程序设计+课程设计报告1.docx

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

面向对象程序设计+课程设计报告1.docx

《面向对象程序设计+课程设计报告1.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计+课程设计报告1.docx(35页珍藏版)》请在冰点文库上搜索。

面向对象程序设计+课程设计报告1.docx

面向对象程序设计+课程设计报告1

 

面向对象程序设计课程设计

学生学籍管理系统

院系:

计算机科学技术学院二系

班级:

计11–1班

姓名:

梁娟(20号)

合作者:

田媛媛迟苗苗

指导教师:

薛曼玲

 

2012年7月06日

面向对象程序设计课程设计任务书

一、题目:

学生学籍管理系统

二、设计要求

(1)梁娟(组长)、田媛媛和迟苗苗组成设计小组。

(2)小组成员分工协作完成,要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。

(3)查阅相关资料,自学具体课题中涉及到的新知识。

(4)根据实现的功能,划分出合理的对象类,明确对象类间的关系。

为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。

(5)编程简练,程序功能齐全,能正确运行。

(6)课题完成后提交课程设计报告,格式规范,内容详实。

其主要内容包括:

1-封皮、2-课程设计任务书,3-指导教师评语与成绩、4-目录、5-需求分析、6-概要设计、7-详细设计(含主要代码)、8-调试分析与测试结果、9-用户使用说明、10-附录或参考资料。

报告用A4纸打印,中文字体为宋体,西文字体用TimeNewRoma,小四号字,行距采用“固定值”18磅,首行缩进2字符。

(7)课程设计报告内容的说明:

需求分析-分析课题需要实现的功能以及要用到的知识点,分析课题涉及的对象间的关系;概要设计-根据实现的功能,划分出合理的对象类,明确对象类间的关系;为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体;详细设计-具体的类、对象和功能的实现以及主要程序代码;调试分析与测试结果-用多组测试用例调试分析系统的正确性、完备性等各项性能指标,写出测试结果;用户使用说明-编写该系统的使用说明书;附录或参考资料-完整的程序代码以及查阅资料的参考文献。

三、课程设计工作量

由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。

四、课程设计工作计划

2012年6月25日,指导教师讲课,学生根据题目准备资料;

2012年6月26日、27日、28日,设计小组进行总体方案设计和任务分工;每人完成自己承担的程序模块并通过独立编译;

2012年6月29日~2012年7月5日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;同时撰写报告。

2012年7月6日,验收;提交课程设计报告。

指导教师签章:

教研室主任签章

 

 

面向对象程学设计课程设计指导教师评语与成绩

指导教师评语:

 

课程设计表现成绩:

课程设计验收成绩:

课程设计报告成绩:

课程设计总成绩:

指导教师签章

2012年7月6日

第1章需求分析4

1.1性能需求4

1.2功能需求4

第2章概要设计5

2.1功能模块设计5

2.2类的分析与设计7

第3章程序设计9

3.1录入函数9

3.2查找函数9

3.3删除函数10

3.4显示函数11

3.5修改函数11

3.6保存函数12

3.7统计函数13

第4章用户使用说明14

第5章程序清单14

参考文献26

第1章需求分析

 

1.1性能需求

系统软件环境:

MicrosoftVisualC++6.0,即利用网上资料查询。

1.2功能需求

需求分析-分析课题需要实现的功能以及要用到的知识点,分析课题涉及的对象间的关系;

要开发学生成绩数据管理程序,首先要分析改程序应实现哪些功能。

对学生成绩管理系统程序的功能需求可描述如下:

程序运行后显示程序运行后显示学生成绩管理系统的操作界面,操作界面中有8项操作,分别有1:

录入学生信息2:

显示学生信息3:

查找学生信息4:

删除学生信息5:

修改学生信息6:

统计学生成绩7:

保存学生信息0:

退出系统这8个操作是学生成绩系统要实现的功能。

实现基本的学生成绩数据管理,如:

具有建立文件,读取文件和保存记录的功能,并可增加、显示、修改、删除、查询学生记录的功能,并能对学生成绩进行统计.其中数据的查找、数据的删除又可通过不同的方式如按学号或姓名等进行操作。

第2章概要设计

2.1功能模块设计

Show(  )函数:

所运用的几个模块整体上有个统一认识,方便了对程序的调用,节省了时间。

显示主菜单功能。

 

del(  )函数:

 

该函数实现的是删除功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的删除所选的目标

output()函数

该函数是一个输出函数,它运用了for循环语句,本程序定义了两个变量,通过scanf语句的使用,又调用了函数SIR,实现了简洁明了的对学生成绩,姓名以及学号等进行输出

Input(  )函数:

     该函数是一个输入函数,它运用了for循环语句,本程序定义了两个变量,通过scanf语句的使用,又调用了函数SIR,实现了简洁明了的对学生成绩,姓名以及学号等进行键入。

 

found()函数

该函数实现的是查找功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的查找所选的目标

 

mend()函数

该函数实现的是修改功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的修改所选的目标

2.2类的分析与设计

此程序主要包含一个类student用来.对学生相关学籍信息的描述.

School.数据成员number;name.sex.place.nation.Birth.party.id.score

Number学生学号.Name学生姓名sex学生性别place学生籍贯nation民族

Classstudent

{public:

student*next;

student(){}

~student(){}

char*getname(){returnname;}

intgetnumber(){returnnumber;}

doublegetscore(inti){returnscore[i];}

floatgetg(){return(score[0]+score[1]+score[2]+score[3]+score[4]+score[5]);}

classschool

{

public:

school(){head=newstudent;head->next=NULL;key=0;}

~school(){deletehead;}

voidinput();

voidmend();

voiddel();

intfind(student**p,intnum,char*pn="^");

voidfound();

voidshow();

  

第3章程序设计

3.1录入函数

本段函数通过链表尾插法录入学生的信息,通过while函数的使用,可以实现连续输入学生信息

voidschool:

:

input()

{

  student*p,*p2=NULL;

  p=head;                                          

  intn;

  while(p->next)

   p=p->next;

  while(n)

  {

         p2=newstudent;

      p2->input();

      p->next=p2;

      p2->next=NULL;

      p=p->next;                                   

   school:

:

setkey

(1);

      cout<<"\t\t\t按1继续,按0返回:

";

      cin>>n;

  }

3.2查找函数

该函数实现的是查找功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的查找所选的目标

voidschool:

:

found()

{

  student*p;

  intnum=-1,n=9;

  charname[20]="^";

  do

  {

        cout<<"\t\t1:

按学号查找,2:

按姓名查找:

";

     cin>>n;

  }while(n<1||n>2);

  if(n==1)

  {

   cout<<"\t\t\t输入学号:

";

      cin>>num;

  }

  if(n==2)

  {cout<<"\t\t\t输入姓名:

";

   

   cin>>name;

  }

  if(!

find(&p,num,name))

  {

   cout<<"\t\t找不到你要查找的内容!

"<

   return;

  }

  (p->next)->output();/

3.3删除函数

该函数实现的是删除功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的删除所选的目标

voidschool:

:

del()

{

student*p,*p2;

intnum;

cout<<"\t\t\t输入学号:

";

cin>>num;

if(!

find(&p,num,"^")){

cout<<"\t\t找不到你要删除的内容!

"<

return;

}

(p->next)->output();

p2=p->next;

p->next=p2->next;

deletep2;

school:

:

setkey

(1);

}

3.4显示函数

所运用的几个模块整体上有个统一认识,方便了对程序的调用,节省了时间。

显示主菜单功能。

此函数主要是遍历整个链表,用来输出ZG类链表中的所有结点,就是所有职工信息。

voidschool:

:

show()

{

student*p;

p=head;

while(p->next)

{

(p->next)->output();

p=p->next;

}

}

3.5修改函数

该函数实现的是修改功能。

该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的修改所选的目标

voidschool:

:

mend()

{

student*p;

intnum=-1,n;

charname[20]="^";

do

{

cout<<"\t\t1:

按学号修改,2:

按姓名修改:

";

cin>>n;

}while(n<1||n>2);

if(n==1)

{

cout<<"\t\t\t输入学号:

";

cin>>num;

}

if(n==2)

{

cout<<"\t\t\t输入姓名:

";

cin>>name;

}

if(!

find(&p,num,name))

{

cout<<"\t\t找不到你要修改的内容!

"<

return;

}

(p->next)->output();

(p->next)->input();

school:

:

setkey

(1);

}

}

3.6保存函数

通过链表访问学校类中的信息并进行保存,其中还用while函数实现这一过程

voidschool:

:

save()

{

  student*p;

  p=head;

  ofstreamos("student.txt",ios:

:

out);

  if(school:

:

getkey()==1)while(p->next)

{

       (p->next)->output(os);

       p=p->next;

   }

  }

  cout<<"\t\t\t文件已保存!

"<

 school:

:

setkey(0);

}

3.7统计函数

通过使用链表访问shool类并使用while循环实现了这一统计

voidschool:

:

count()

{

student*p;

p=head;

intn=0;

doubleg[3]={0,0,0};

floatj[3]={0,0,0};

while(p->next)

{

p=p->next;

n++;

for(inti=0;i<3;i++)

{

g[i]=g[i]+(p->getscore(i));

(p->getscore(i))>=60?

j[i]++:

0;

}

}

cout<<"\t\t\b\b\b\b高数总分:

"<

"<

<<"及格率:

"<

"<

<<"平均分:

"<

"<

<<"\t\t\b\b\b\b面向对象程序设计总分:

"<

"<

<<"及格率:

"<

<<"\t\t\b\b\b\b大学物理总分:

"<

"<

<<"及格率:

"<

"<

<<"平均分:

"<

"<

<<"\t\t\b\b\b\b大学体育总分:

"<

"<

<<"及格率:

"<

第4章用户使用说明

系统功能说明:

1录入:

    作用:

用于对学生学籍信息进行输入,并保存.

    方法:

先输入学生学籍信息,然后录入,最后按enter结束.你所录入的文字

         就给保存到该文件里!

2显示

     输入学生学号,或者姓名可以显示学生的学籍信息

3查找:

有两种,一种按学号,一种按姓名.

4删除

    输入需要删除的学生的学号,或者姓名

5修改

输入需要修改的学生的学号,或者姓名

6统计:

      作用:

用于对学生学习成绩进行统计

      方法:

输入学生学号,或者姓名.然后按确定

7保存

.    按7,并按确定,可以保存学生学籍信息

0退出:

      作用:

退出整个"学生学籍管理系统";

      方法:

按0并按确定.

 

第5章程序清单

#include

#include

#include

#include

usingnamespacestd;

classstudent

{

protected:

intnumber;

charname[20];

charsex[6];

charplace[20];

charnation[6];

charbirth[20];

charparty[10];

charid[20];

floatscore[5];

public:

student*next;

student(){}

~student(){}

char*getname(){returnname;}

intgetnumber(){returnnumber;}

doublegetscore(inti){returnscore[i];}

floatgetg(){return(score[0]+score[1]+score[2]+score[3]+score[4]+score[5]);}

voidinput()

{

inte=1;

cout<<"\t\t\t按提示输入:

"<

cout<<"\t\t输入学号:

";

cin>>number;

cout<<"\t\t输入姓名:

";

cin>>name;

do

{

cout<<"\t\t输入性别:

";

cin>>sex;

if(strcmp(sex,"男")==0||strcmp(sex,"女")==0)

{

cout<<"\t\t输入籍贯:

";

cin>>place;

cout<<"\t\t输入民族:

";

cin>>nation;

cout<<"\t\t输入生日:

";

cin>>birth;

cout<<"\t\t输入政治面貌:

";

cin>>party;

cout<<"\t\t输入身份证号:

";

cin>>id;

cout<<"\t\t输入高数分数:

";

cin>>score[0];

cout<<"\t\t输入大学英语分数:

";

cin>>score[1];

cout<<"\t\t输入面向对象程序设计分数:

";

cin>>score[2];

cout<<"\t\t输入大学物理分数:

";

cin>>score[3];

cout<<"\t\t输入线性代数分数:

";

cin>>score[4];

cout<<"\t\t输入大学体育分数:

";

cin>>score[5];

e=0;

}

else

{

cout<<"\t\t\t无此类型性别!

重新输入!

"<

e=1;

}

}while(e);

return;

}

voidinput(ifstream&is)

{

is>>number>>name>>sex>>place>>nation>>birth>>party>>id

>>score[0]>>score[1]>>score[2]>>score[3]>>score[4]>>score[5];

is.get();

}

voidoutput()

{

cout<<"学生基本信息如下:

"<

cout<<"学号:

"<

<<"姓名:

"<

<<"性别:

"<

<<"籍贯:

"<

<<"民族:

"<

<<"生日:

"<

<<"政治面貌:

"<

<<"身份证号:

"<

<<"高数:

"<

<<"大学英语英语:

"<

<<"面向对象程序设计:

"<

<<"大学物理:

"<

<<"线性代数:

"<

<<"大学体育:

"<

<<"总分:

"<

}

voidoutput(ofstream&os)

{

os<

<

<

<

<

<

<

<

<

<

<

<

<

<

}

};

classschool

{

public:

school(){head=newstudent;head->next=NULL;key=0;}

~school(){deletehead;}

voidinput();

voidmend();

voiddel();

intfind(student**p,intnum,char*pn="^");

voidfound();

voidshow();

voidcount();

voidsave();

voidbegin();

voidclear();

charmainmenu();

intgetkey(){returnkey;}

voidsetkey(intk){key=k;}

private:

student*head;

intkey;

};

//主选菜单函数

charschool:

:

mainmenu()

{

charn[6];

cout<<"\n\n☆☆☆☆Welcometothestudentmanagementsystem☆☆☆☆"<

cout<<"作者:

计11-1班田媛媛梁娟迟苗苗"<

<<"****************************"<

<<"****************************"<

<<"**1:

录入学生信息**"<

<<"**2:

显示学生信息**"<

<<"**3:

查找学生信息**"<

<<"**4:

删除学生信息**"<

<<"**5:

修改学生信息**"<

<<"**6:

统计学生成绩**"<

<<"**7:

保存学生信息**"<

<<"**0:

退出系统**"<

<<"****************************"<

<<"****************************"<

<<"请选择:

";

cin>>n;

returnn[0];

}

//录入函数

voidschool:

:

input()

{

student*p,*p2=NULL;

p=head;

intn;

while(p->next)

p=p->next;

while(n)

{

p2=new

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

当前位置:首页 > 工程科技 > 能源化工

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

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