程序设计基础课程设计.docx

上传人:b****3 文档编号:6716616 上传时间:2023-05-10 格式:DOCX 页数:20 大小:178.75KB
下载 相关 举报
程序设计基础课程设计.docx_第1页
第1页 / 共20页
程序设计基础课程设计.docx_第2页
第2页 / 共20页
程序设计基础课程设计.docx_第3页
第3页 / 共20页
程序设计基础课程设计.docx_第4页
第4页 / 共20页
程序设计基础课程设计.docx_第5页
第5页 / 共20页
程序设计基础课程设计.docx_第6页
第6页 / 共20页
程序设计基础课程设计.docx_第7页
第7页 / 共20页
程序设计基础课程设计.docx_第8页
第8页 / 共20页
程序设计基础课程设计.docx_第9页
第9页 / 共20页
程序设计基础课程设计.docx_第10页
第10页 / 共20页
程序设计基础课程设计.docx_第11页
第11页 / 共20页
程序设计基础课程设计.docx_第12页
第12页 / 共20页
程序设计基础课程设计.docx_第13页
第13页 / 共20页
程序设计基础课程设计.docx_第14页
第14页 / 共20页
程序设计基础课程设计.docx_第15页
第15页 / 共20页
程序设计基础课程设计.docx_第16页
第16页 / 共20页
程序设计基础课程设计.docx_第17页
第17页 / 共20页
程序设计基础课程设计.docx_第18页
第18页 / 共20页
程序设计基础课程设计.docx_第19页
第19页 / 共20页
程序设计基础课程设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

程序设计基础课程设计.docx

《程序设计基础课程设计.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计.docx(20页珍藏版)》请在冰点文库上搜索。

程序设计基础课程设计.docx

程序设计基础课程设计

 

 学院

 

课程设计说明书

题目

设计一个简单的产品管理系统

系(部)

计算机科学与技术

专业(班级)

姓名

学号

指导教师

起止日期

2010年1月4日-2010年1月8日

 

程序设计基础课程设计任务书

系__计算机科学与技术__专业__计算机科学与技术__班级___设计人__

一、题目:

设计一个简单的产品管理系统

二、目的与要求

1.目的:

通过产品管理系统的设计,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。

2. 基本要求:

(1)要求用C++模块化设计的思想来完成程序的设计;

(2)要求使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要求使用头文件;

(3)要求使用选择法排序,折半查找法进行查找。

3.创新要求

在基本要求达到后,进行创新设计,如进行删除或插入操作。

4.书写设计报告的要求

设计报告中包含以下几个方面:

1、设计题目

2、总体设计

1)用自顶而下或自底而上的方法,划分功能模块。

2)确定各模块的算法

3、根据算法画出流程图

4、列出程序清单,并加以必要的注释

5、写出调试程序的方法

6、指出所设计问题的不足和改进方案

5.课程设计材料的装订顺序为:

1)设计说明书封面

2)课程设计任务书

3)课程设计鉴定表

4)目录

5)设计报告书正文

三、设计方法和基本原理

1.问题描述:

某工厂有5种产品,每种产品包括:

产品代码,产品名称,产品数量,销售量,要求编写函数实现下面:

(1)从键盘输入这些产品的信息;

(2)按照产品的库存量进行升序排序,使用选择法排序,在主函数中输出;

(3)使用折半查找法进行循环查询,当用户给出某种产品的代码时,在主函数中显示该产品的信息,如果没找到则给出未找到的信息,退出程序的运行;

(4)输出产品信息。

2.问题的解决方案:

根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。

(1)产品的库存量在输入函数中求解或者编写独立函数求解;

(2)在排序过程中,结构数组元素的交换可以整体进行,无需每个成员之间进行互换。

(3)使用折半查找法进行查找之前,应该先按照产品代码进行排序。

四、主要技术问题的描述

根据三的分析,主要问题在于:

(1)结构体的构造

除了产品的代码(intcode)、产品名称(charname),产品数量(floatamount) ,销售量(floatsales)外,还应有产品的库存量(float stock)

(2)排序

在进行完结构数组中某个成员的比较后,不是某个成员的互换,而是结构体数组元素之间的互换。

例如结构体数组元素pro[j]和pro[k]的互换:

t=pro[j];pro[j]=pro[j+1];pro[j+1]=t;

(3)各个函数的参数传递问题

实参应为结构数组名,形参为结构体指针或者结构体数组。

如输入函数:

voidInput(PRODUCT*p)//结构体指针作为形参

{//programcode

}

函数调用时:

Input(pro); //pro为结构体数组名

五、课程设计时间:

18周

六、课程设计的考核方式及评分方法

1.考核方式

课程设计结束时,在机房当场验收。

1)教师提供测试数据,检查运行结果是否正确。

2)回答教师提出的问题。

3)学生提交课程设计文档(A4纸打印)

2.评分方法

上机检查:

书面报告=7 :

3,没有通过上机检查的其成绩直接记录不及格

指导教师签名:

     日期:

    

教研室主任签名:

  日期:

   

系主任签名:

      日期:

   

ﻬ长沙学院课程设计鉴定表

 姓名

  

 学号

 

专业

  计算机科学与技术

 班级

设计题目

设计一个简单的产品管理系统

指导教师

指导教师意见:

 

评定等级:

  教师签名:

   日期:

  

答辩小组意见:

 

评定等级:

 答辩小组长签名:

   日期:

   

教研室意见:

 

教研室主任签名:

   日期:

   

系(部)意见:

 

系主任签名:

  日期:

  

说明

课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

摘要

用C++模块化设计的思想来完成该简单的产品管理系统程序的设计,使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,使用了头文件,并使用选择法排序,折半查找法进行查找。

关键词:

产品管理系统;模块化设计;结构数组;结构指针;选择法排序;折半查找法。

 

1设计内容与要求…………………………………………………………………………………1

2.设计说明 …………………………………………………………………………………………2

 2.1问题描述与功能设计…………………………………………………………………………2

2.2算法与数据结构………………………………………………………………………………4

 2.3 函数定义…………………………………………………………………………………………6

2.4界面设计………………………………………………………………………………………9

 2.5编码……………………………………………………………………………………………12

 2.6测试……………………………………………………………………………………………21

3 总结…………………………………………………………………………………………………23

参考文献……………………………………………………………………………………………25

附录A源代码………………………………………………………………………………………26

 

1设计内容与要求

设计一个简单的产品管理系统:

某工厂有5种产品,每种产品包括:

产品代码,产品名称,产品数量,销售量,要求编写函数实现下面:

(1)从键盘输入这些产品的信息;

(2)按照产品的库存量进行升序排序,使用选择法排序,在主函数中输出;

(3)使用折半查找法进行循环查询,当用户给出某种产品的代码时,在主函数中显示该产品的信息,如果没找到则给出未找到的信息,退出程序的运行;

(4)输出产品信息。

 基本要求:

(1)要求用C++模块化设计的思想来完成程序的设计;

(2)要求使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要求使用头文件;

(3)要求使用选择法排序,折半查找法进行查找。

创新要求:

在基本要求达到后,进行创新设计,如进行删除或插入操作。

 

2.设计说明

2.1 问题描述与功能设计

2.1.1问题描述:

问题描述:

某工厂有5种产品,每种产品包括:

产品代码,产品名称,产品数量,销售量,要求编写函数实现下面:

( 1 )从键盘输入这些产品的信息;

(2)按照产品的库存量进行升序排序,使用选择法排序,在主函数中输出;

使用折半查找法进行循环查询,当用户给出某种产品的代码时,在主函数中显示该产品的信息,(3)如果没找到则给出未找到的信息,退出程序的运行;

(4)输出产品信息。

主要问题在于:

(1)结构体的构造

除了产品的代码(intcode)、产品名称(charname),产品数量(float amount),销售量(floatsales) 外,还应有产品的库存量(floatstock) 

(2)排序

在进行完结构数组中某个成员的比较后,不是某个成员的互换,而是结构体数组元素之间的互换。

例如结构体数组元素pro[j]和pro[k]的互换:

t=pro[j];pro[j]=pro[j+1]; pro[j+1]=t;

(3)各个函数的参数传递问题

实参应为结构数组名,形参为结构体指针或者结构体数组。

如输入函数:

void Input(PRODUCT*p) //结构体指针作为形参

{//programcode

}

函数调用时:

Input(pro); //pro为结构体数组名

2.1.2功能设计:

根据问题描述和设计要求,设计如下的功能:

产品信息的输入、全部产品信息的查看、单个产品信息的按代码查看、单个产品信息的修改。

 

2.2算法与数据结构

2.2.1算法

主函数

 

产品信息输入

 

产品库存量升序排列

 

产品代码查找

 

修改已输入产品信

 

2.2.2数据结构

本程序采用的数据结构为:

structproduct

{

   intcode;

 charname[10];

floatamount;

 floatsales;

 float stock;

 

}pro[5];

 

2.3函数定义

我设计该程序一共定义了三个函数,分别为:

产品输入,产品库存量升序排列,产品代码查找,修改已输入产品信息,主界面。

函数名分别为:

voidinput()

     voidsort()

voidsearch()

      voidreput()

voiddesktop()

 

2.4 界面设计

本程序界面设计为

 

2.5编码

system("pause");

  ﻩsystem("cls");

在我写的程序中运用了上面的语句,这个语句在程序中大量运用,使得界面清晰明了,更加美观。

ﻩsystem("pause")用来暂停系统工作

system("cls")用来清除屏幕

 

2.6测试

⒈建立产品信息:

产品代码

产品名称

产品数量

产品销售量

101

沙发

56

22

102

椅子

89

48

103

餐桌

46

23

104

柜子

33

21

105

书桌

12

6

 

⒉查看全部产品信息:

 

⒊查找产品信息:

 

  查找代码为103的餐桌.

 

⒋修改产品信息:

修改代码:

105名称:

书桌为:

 代码:

205名称:

书桌产品数量:

23 销售量:

12

 

3总结

通过本次课程设计,使得本学期来我学到的的知识得到了一次综合的应用。

实验了从理论到实践的飞跃。

本次课程设计中,我要用C++知识设计的是一个简单产品信息管理系统。

要求用C++模块化设计的思想来完成程序的设计,并使用结构数组和结构指针,各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要使用头文件。

在查看产品信息时要求使用选择法排序,折半查找法进行查找。

在输入产品信息时,为解决产品代码重复输入的问题,通过与同学的交流,采用了通过字符比较的方法排除。

在查看产品信息时要求使用折半查找法进行查找,在输入错误代码时,总造成系统死机,也是在同学的帮助下找到了问题所在。

这些都令我十分高兴。

在一系列的数据测试后,该程序能基本顺利运行,但不排除还存在一些问题。

比如:

在输入产品代码时,如果输入数据不为整数类型时,会造成程序错误。

总之,通过本次课程设计,是我使用C++语言编程的综合能力得到了提高。

 

 

参考文献

[1] 王挺、周会平、贾丽丽、徐锡山.C++程序设计[M].北京:

清华大学出版社,2005:

138-221.

[2]刘瑞新. Visual C++面向对象程序设计教程[M].北京:

机械工业出版社,2005.

 

附录A 源代码

Main.cpp

#include

#include

#include"function.h"

intmain()

{

ﻩintn;

ﻩdo

ﻩ{

desktop();

ﻩcin>>n;

ﻩsystem("cls");

ﻩif(n==1)

{

ﻩinput();

ﻩﻩ

ﻩ}

ﻩelseif(n==2)

ﻩ{

ﻩﻩsort();

}

ﻩﻩelseif(n==3)

{ﻩ

ﻩ  search();

ﻩﻩ}

ﻩﻩelseif(n==4)

ﻩﻩ{

ﻩﻩ  reput();

ﻩ}

}

ﻩwhile(n!

=0);

ﻩreturn 0;

}

Function.h

#include

#include

structproduct

{

int code;

charname[10];

  floatamount;

  floatsales;

 floatstock;

}pro[5];

//……产品输入……

void input()

{

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

  {

ﻩﻩcout<<"请输入第"<<i+1<<"种产品代码:

";

  cin>>pro[i].code;

ﻩcout<<"请输入第"<

";

ﻩcin>>pro[i].name;

ﻩcout<<"请输入第"<<i+1<<"种产品数量:

";

ﻩcin>>pro[i].amount;

ﻩcout<<"请输入第"<<i+1<<"种产品销售量:

";

ﻩcin>>pro[i].sales;

  pro[i].stock=pro[i].amount-pro[i].sales;

ﻩsystem("cls");

 }

}

//……产品库存量升序排列

voidsort()

product temp;

for(int i=0;i<5-1;i++)

ﻩﻩfor(intj=i+1;j<=5-1;j++)

ﻩﻩif(pro[i].stock>pro[j].stock)

ﻩﻩ{

ﻩﻩtemp=pro[i];

pro[i]=pro[j];

ﻩﻩpro[j]=temp;

ﻩ}

ﻩﻩfor(intj=0;j<=5-1;j++)

ﻩ{

ﻩﻩcout<<"库存量排第"<

ﻩﻩﻩcout<<"代码是"<

ﻩﻩﻩcout<<"名称是"<<pro[j].name<<endl;

ﻩcout<<"数量是"<

ﻩﻩﻩcout<<"销售量是"<

ﻩ}

ﻩsystem("pause");

ﻩﻩsystem("cls");

}

//……产品代码查找……

voidsearch()

{

intcode[5]={1,2,3,4,5};

 bool flag=0;

    intb;

  cout<<"请输入要查询的代码为:

";

   cin>>b;

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

   if(b==pro[i].code)

    {

  flag=1;

  cout<<"产品代码:

"<<pro[i].code<<""

      <<"名称:

"<<pro[i].name<<""

  <<"数量:

"<

      <<"销售量:

"<<pro[i].sales<<endl;

     }

   if(flag==0)

    cout<<"此代码不存在!

"<<endl;

ﻩsystem("pause");

  ﻩsystem("cls");

}

//……修改已输入产品信息

voidreput()

{

int code;

cout<<"已输入产品代码分别是:

"<<endl;

ﻩfor(intk=0;k<=5-1;k++)

ﻩcout<

ﻩcout<<"您要修改的产品代码是多少?

"<<endl;

ﻩcin>>code;

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

{

if (pro[i].code==code)break;

ﻩ}

ﻩif(i==5)

cout<<"没有您要修改的产品"<

ﻩelse

cout<<"请输入您要修改的产品的代码"<<endl;

ﻩcin>>pro[i].code;

 ﻩcout<<"请输入您要修改的产品的名字"<

ﻩﻩcin>>pro[i].name;

ﻩcout<<"请输入您要修改的产品的数量"<

ﻩcin>>pro[i].amount;

ﻩcout<<"请输入您要修改的产品的销售量"<

ﻩcin>>pro[i].sales;

ﻩpro[i].stock=pro[i].amount-pro[i].sales;

}

ﻩsystem("pause");

ﻩsystem("cls");

}

//++++++++++++++desktop+++++++++++++++

voiddesktop()

ﻩcout<

ﻩcout<<"********************欢迎进入产品管理系统********************"<<endl

ﻩ<<"***  请选择您要的服务        ***"<<endl

ﻩ<<" ***  1.输入产品信息  ***"<

ﻩ<<" ***        2.查看产品信息  ***"<

ﻩ<<" ***    3.查找产品信息      ***"<<endl

<<"***       4.修改产品信息      ***"<

ﻩ<<"***      0.退出系统   ***"<

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

cout<

ﻩcout<<"请输入相应的代码:

";

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

当前位置:首页 > 农林牧渔 > 林学

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

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