仓库管理C++实训报告之仓库管理以及实训题目指导.docx

上传人:b****8 文档编号:10963765 上传时间:2023-02-24 格式:DOCX 页数:50 大小:266.78KB
下载 相关 举报
仓库管理C++实训报告之仓库管理以及实训题目指导.docx_第1页
第1页 / 共50页
仓库管理C++实训报告之仓库管理以及实训题目指导.docx_第2页
第2页 / 共50页
仓库管理C++实训报告之仓库管理以及实训题目指导.docx_第3页
第3页 / 共50页
仓库管理C++实训报告之仓库管理以及实训题目指导.docx_第4页
第4页 / 共50页
仓库管理C++实训报告之仓库管理以及实训题目指导.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

仓库管理C++实训报告之仓库管理以及实训题目指导.docx

《仓库管理C++实训报告之仓库管理以及实训题目指导.docx》由会员分享,可在线阅读,更多相关《仓库管理C++实训报告之仓库管理以及实训题目指导.docx(50页珍藏版)》请在冰豆网上搜索。

仓库管理C++实训报告之仓库管理以及实训题目指导.docx

仓库管理C++实训报告之仓库管理以及实训题目指导

昆明理工大学城市学院面向对象程序设计实训报告

仓库商品检查登记管理系统

专业:

班级:

姓名:

学号:

指导老师:

 

2012年1月6日

 

目录………………………………1

实训的目的和任务………………3

实训内容指导……………………3

仓库商品检查登记管理系统……

类设计……………………………

流程图……………………………

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

程序运行结果……………………

总结………………………………

 

一、实训的目的和任务

C++语言程序设计的实训,是教学计划中的一个有机组成部分,是培养学生综合应用所学的基础的理论,基本知识和技能,分析解决实际问题能力的重要一环,与其它教学环节紧密配合,相辅相成,是前面教学环节的继续,深入和发展。

通过实训过程可在不同程度上提高调查研究,查问文献,实际应用的能力。

二、实训内容指导

(一)数据类型和表达式

基础实训

1、定义一个描述学生的结构体类型student,含有学号num、姓名name、性别sex、成绩score几个分量,再定义属于这个结构体类型的两个变量stu1、stu2。

structstudent

 {

  int  num;   /*学号*/

  char name[20]; /*姓名*/

  char sex;   /*性别*/

  float score;  /*成绩*/

   };

structstudentstudent1,student2;

2、建立一个适于描述碗和勺子的结构体,有关的信息是:

两者都有货号、价格、颜色,不同的是碗的大小用口径来表示,勺子的大小用枚举类型表示,分大、中、小三种。

现有的勺子的大小是中,将其表示出来。

#include

usingnamespacestd;

structbowl{

intNo;

intprice;

charcolor;

floatsize;

};

structspoon{

intNo;

intprice;

charcolor;

struct{

enum{small,medium,big}shaozi;

}a;

}b;

voidmain()

{

b.a.shaozi=b.a.medium;

cout<

}

3、编程实现两个整数相加。

#include

intmain()

{

intinteger1,integer2,sum;

cout<<"Enterfirstinteger\n";

cin>>integer1;

cout<<"Entersecondinteger\n";

cin>>integer2;

sum=integer1+integer2;

cout<<"Sumis"<

return;

}

4、编程实现,输入一个三位整数,能够将它反向输出。

#include

#include

usingnamespacestd;

voidmain()

{

intnum;

cout<<"input:

";

cin>>num;

while(num)

{

cout<

num/=10;

}

cout<

}

5、读程序写结果。

综合实训

数字互换实训。

输入一个大于三位的整数,编一个程序,将它的十位数和百位数互换位置。

#include

usingnamespacestd;

intmain()

{

intx;

inta[3];

cin>>x;

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

{

a[i]=x%10;x=x/10;

}

x=x*1000+a[0]+a[1]*100+a[2]*10;

cout<

return1;

}

(二)语句和函数

基础实训

1、根据考试成绩的等级A、B、C和D,输出对应的百分制分数段,A对应85~100,B对应70~84,C对应60~69,D对应0~60。

#definenum100

inta[]=newint[num];

for(inti=0;i

{

if(a[i]>=85)

cout<<'A';

eseif(a[i]>=70)

cout<<'B';

elseif(a[i]>=60)

cout<<'C';

else

cout<<'D';

}

2、用for语句编程求1~100之和。

#include

voidmain()

{

intsum(0);

for(inti=1;i<=100;i++)

sum+=i;

cout<<"sum="<

}

3、用for语句、while语句和递归函数三种方法计算n!

#include

main(){

intn;

intsum=1;

cin<

for(;n>0;)

sum*=n--;

while(n>0)

sum*=n--;

intf(intx)

{

if(x>1)

{

x*=f(x-1);

returnx;

}

else

returnx;

}

4、用for循环编程打印图形。

#include

usingnamespacestd;

intmain()

{

for(inti=1;i<=5;i++)

{

for(intj=1;j<=i;j++)

cout<<"*";

cout<

}

cout<<"*****"<

cout<<"*"<

}

5、编写函数,判断一个数是否是质数。

#include

#include

usingnamespacestd;

intmain()

{inti,j,k;

cin>>j;

k=sqrt(j);

for(i=2;i<=k;i++)

if(j%i==0)break;

if(i>k)

cout<<1;

elsecout<<0;

return0;

}

9、设计一个函数,求三个数中的最大值。

#include

intmax(int,int,int);

voidmain()

{

cout<

}

intmax(inta,intb,intc)

{

intt=max(a,b);

returnmax(t,c);

}

10、编写程序,利用itoa函数实现整数到字符串的转换。

#include

int itoa(x)

{

    char c;

    c=x;

    printf("%c",c);

    getch();

}

int main(void)

{

   int a;

   printf("input a number:

");

   scanf("%d",&a);

   itoa(a);

}

11、编写程序,最多读入10个数,读入0表示结束。

将读入的非零的数放在一个数组里,按从大到小的顺序排序后输出。

#include

#include

#include

#include

usingnamespacestd;

intmain()//主函数

{

vectorb;

for(inti=0;i<10;i++){

intx=0;

cin>>x;

if(x)

b.push_back(x);

else

break;

}

sort(b.begin(),b.end());

copy(b.begin(),b.end(),ostream_iterator(cout,""));

return0;

}

12、将一个代表整型数的字符串转换为一个整型的数字。

#include

#include

#include

usingnamespacestd;

intmain(intargc,char*argv[])

{

stringstreama;

stringb;

inti;

cin>>b;

a.str(b);

a>>i;

cout<

return0;

}

综合实训(职工信息处理函数实训)

职工的信息有姓名、年龄、工龄、性别、婚姻状况、级别、工资、在职否。

现在要进行工资的调整,规定凡是退休职工一律增加工资50元,在职1~5级职工的工资分别增加20、40、60、80、100元。

编程实现上述工资调整。

要求如下:

(1)分析要存放的信息,设计合适的数据结构;

(2)分析要对信息进行的操作,进行处理;

(3)打印程序执行前后的工资状况和级别。

(三)面向对象基本概念与类实训

基础实训

1、读程序写结果;

2、设计一个表示猫的类,包括猫的颜色、体重、年龄等数据,具有设置猫的颜色,修改和显示猫的体重、年龄等操作。

设猫类的类名为Cat,猫类Cat有3个数据成员,颜色用字符串color[7],可以存放3个汉字,体重用实型数weight表示,年龄用整型数age表示,为了数据的安全性,Cat的3个数据成员全部为私有的。

对猫的属性数据的设置和修改,PutColor为设置和修改颜色,PutWeight为设置和修改体重,PutAge为设置和修改年龄,它们都设置为公有函数,还要有一个1个3个参数的函数SetCat。

设计Display函数输出猫的信息。

#include

classCat

{

privateStringcolour;

privateintweight;

privateintage;

...

intgetWeight(){returnweight;}

intgetAge(){returnage;}

voidsetClolur(StringxClolour){colour=xCloour;}

voidsetWeight(intxWeight){weight=xWeight;}

voidsetAge(intxAge){age=xAge;}

}

3、设计一个表示学习成绩的类,至少包括三门课程的成绩,可以设置、显示每门课程的成绩,可以计算、显示平均成绩。

classGrades{

private:

intMath,English,Chinese;

public:

Grades(){Math=English=Chinese=0;}

Grades(inta,intb,intc)

{

Math=a;

English=b;

Chinese=c;

}

intgetM(){returnMath;}

intgetE(){returnEnglish;}

intGetC(){returnChinese;}

voidSetvalue(inta,intb,intc)

Math=a;

English=b;

Chinese=c;

voidDisplay();

floatAverage()

return(Math+English+Chinese)/3.0;

}

4、设计成绩类,成绩类的数据成员,应该包括学生的学号Number[10]和姓名Name[9],假设有3门课,分别为C++程序设计语言,用整型变量Cpp表示;计算机原理,用整型变量Computer表示;数据库,用整型变量DataBase表示。

平均成绩用实型变量Average表示。

为了Grade类数据的安全性,数据成员全部为私有成员,对成绩类的属性数据用一些函数进行设置和修改,PutNo为设置和修改学号,PutName为设置和修改姓名,PutCpp为设置和修改C++程序设计语言的成绩,PutCom为设置和修改计算机原理的成绩,PutData为设置和修改数据库的成绩,还有一个同时设置所有5个参数的函数SetGrade,它们都设置为公有函数。

计算平均成绩的函数为Calc,设计函数Display输出成绩。

有时可能要查看某个学生的成绩,所以设计比较学号的函数为ComNo,设计比较姓名的函数为ComName,GetCpp为读取C++程序设计语言的成绩,GetCom为读取计算机原理的成绩,GetData为读取数据库的成绩,设计读取平均成绩的函数为GetAvg。

计算平均成绩只是在类的内部实现,所以设计为私有函数,其它都为公有函数。

综合实训

设计一个表示整型数据的集合类,可以对集合中的数据进行添加、删除,可以判断一个整数是否在这个集合里,可以求出集合数据的多少,可以判断集合的空与满,空集合就是没有数据元素,满集合就是数据元素已经占满给出的存储单元。

两个集合可以做交运算,就是将两个集合的公共数据组成一个新的集合。

两个集合可以做并运算,就是将两个集合的所有数据组成一个新的集合。

要求如下:

(1)分析集合类的数据属性要求;

(2)分析集合类的操作属性要求;

(3)编制集合类的接口定义;

(4)实现集合类的属性函数。

#include

//formthedata

structData

{

longnum;

Data*next;

};

//thesetclass

classGather

{

public:

Gather(int=5);

//~Gather();

voidform(int);

voiddel();

voidsetGather();

voidprint();

voidadd(int);

Data*getptr(){returnptr;}

Gather&operator=(Gather&);

Gather&operator+(Gather&);

Gather&operator*(Gather&);

private:

intLEN;

Data*ptr;

};

Gatherinside;

Gather:

:

Gather(inta){form(a);}

voidGather:

:

form(inta)

{

LEN=a;

Data*p;

for(inti=0;i

if(i==0){

ptr=newData;

p=ptr;

}

else{

p->next=newData;

p=p->next;

}

}

p->next=NULL;

}

//Gather:

:

~Gather(){del();}

voidGather:

:

del()

{

Data*p;

Data*q;

p=ptr;

for(inti=0;i

q=p;

p=p->next;

deleteq;

}

LEN=0;

}

voidGather:

:

setGather()

{

Data*p;

p=ptr;

for(inti=0;i

cout<<"Enteritem"<

";

cin>>p->num;

p=p->next;

}

}

voidGather:

:

print()

{

if(LEN==0)

cout<<"It'sanemptyset!

"<

Data*p;

p=ptr;

for(inti=0;i

cout<num<<"";

p=p->next;

if(i!

=0&&i%10==0)cout<

}

}

voidGather:

:

add(intt)

{

booly=true;

Data*p;

p=ptr;

for(inti=0;i

if(p->num==t){

y=false;

break;

}

if(i!

=LEN-1)p=p->next;

}

if(y){

p->next=newData;

p=p->next;

p->num=t;

p->next=NULL;

LEN++;

}

}

Gather&Gather:

:

operator=(Gather&x)

{

if(ptr==x.ptr)return*this;

else{

del();

form(x.LEN);

Data*p,*q;

p=ptr;

q=x.ptr;

for(inti=0;i

p->num=q->num;

p=p->next;

q=q->next;

}

return*this;

}

}

Gather&Gather:

:

operator+(Gather&x)

{

inside.del();

inside.form(LEN);

Data*q;

Data*p;

q=ptr;

p=inside.getptr();

for(inti=0;i

p->num=q->num;

p=p->next;

q=q->next;

}

q=x.ptr;

for(i=0;i

inside.add(q->num);

q=q->next;

}

returninside;

}

Gather&Gather:

:

operator*(Gather&x)

{

intz=0;

longg[100];

booly=true;

Data*p;

Data*q;

p=ptr;

q=x.ptr;

for(inti=0;i

q=x.ptr;

for(intj=0;j

if(p->num==q->num){

for(intt=0;t

if(p->num==g[t]){

y=false;

break;

}

if(y){

g[z]=p->num;

z++;

break;

}

y=true;

break;

}

elseq=q->next;

}

p=p->next;

}

inside.del();

inside.form(z);

Data*pre;

pre=inside.getptr();

for(i=0;i

pre->num=g[i];

pre=pre->next;

}

returninside;

}

//themain

intmain()

{

Gatherx(6);

Gathery;

Gatherresult;

cout<<"Entertheitemofsetx:

"<

x.setGather();

cout<<"Theitemsofxis:

"<

x.print();

cout<

cout<<"Entertheitemofsety:

"<

y.setGather();

cout<<"Theitemsofyis:

"<

y.print();

cout<

cout<<"Theresultofx+yis:

"<

result=x+y;

result.print();

cout<

cout<<"Theresultofx*yis:

"<

result=x*y;

result.print();

cout<

cout<<"Entertheitemyouwanttoaddtox:

";

inta;

cin>>a;

x.add(a);

cout<<"Nowxis:

";

x.print();

cout<

inside.del();

result.del();

x.del();

y.del();

return0;

}

(四)对象实训

基础实训

1、读程序写结果;

2、设计计算图形面积的程序,图形有圆和长方形,计算半径为15、23、37的圆和长宽分别为(32,56)、(21,45)的长方形等五个图形的面积。

classrect

{

private:

floatlength;

floatwidth;

public:

rect(floatl,floatw);

voidputwidth(floatw);

voidputlength(floatl);

floatgetwidth()const;

floatgetlength()const;

floatArea()const;

floatTotal()const;

};

rect:

:

rect(floatl=0,floatw=0)

{

length=l;

width=w;

}

voidrect:

:

putwidth(floatw)

{

width=w;

}

voidrect:

:

putlength(floatl)

{

length=l;

}

floatrect:

:

getlength()const

{

returnlength;

}

floatrect:

:

getwidth()const

{

returnwidth;

}

floatrect:

:

Area()const

{

returnlength*width;

}

floatrect:

:

Total()const

{

return2*(length+width);

}

//rect.cpp

#include

#include

#include"rect.h"

#in

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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