技能训练类(一)报告学生

发布时间:2012-06-18 11:11:30   来源:文档文库   
字号:

华北科技学院

(技能训练类(一)报告)

2011~2012学年第2学期)

训练地点 信息楼基础五

指导教师 杨月江

专业班级 信管2010B101

学生姓名: 曹冬东201007034114

201239



一、训练项目 2

二、训练目的 2

三、设计分析 2

四、设计方案 2

五、实训详细设计 3

六、使用说明 4

七、运行调试 4

八、训练心得 4

九、参考文献 4



一、训练项目

商店销售管理系统

问题描述:建立一个商店销售管理文件,包括商品的名称,商品的数量,商品的价格。

功能:屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

分步实施。

1 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、建立一个文件,相关的信息写入文件中并能显示于屏幕上;

3、能按商品编号进货和销售;

4、进一步要求:完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

要求:1、用C语言及数据结构实现程序设计;

2、利用结构体数组实现信息的数据结构设计;

3、系统的各个功能模块要求用函数的形式实现;

4界面友好(良好的人机交互),程序加必要的注释。

技能实训实验报告要求:

1、预习报告:题目、技能实训任务、数据结构、程序的总体设计(算法)、模块划分

2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结

、训练目的

通过本次训练,能够进一步巩固、掌握程序设计基础和数据结构课程的基本知识、基本技能。运用算法分析与程序设计的一般方法进行实际项目的开发。本项目需要具备熟练的数组和线性表知识,具备程序编写、调试的基本能力,具有一定的文字表达和报告撰写能力,具备办公软件使用能力。

三、设计分析

这个酒店管理系统采用了goto语句,指针等方法,基本满足了本次试验的要求。进入酒店管理系统后,我们可以根据提示选择自己想要进行的选项。具体如下:

四、设计方案

1)建立一个明了的管理菜单。

2)使操作人员很容易的完成对酒店进货,销售,增加,删除,查看库存

3)对要查询的数据要有准确性。

五、详细设计

源程序代码如下:

#include

#include

#define N 1000 //N代表货物的最大种类

struct goods

{

char name[10];//商品名称

int amount;//商品数量

int num;//商品编号

float price;//商品价格

}sp[N],sc[N];

//定义全局变量

int flag=1;

FILE *fp;

int i=0;

int k=0;

int b=0;

chakan()//显示目前的库存

{

int zong=0;

fp=fopen("chaoshi.txt","r");

for(i=1;i<=(k+b);i++)

fread(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

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

{

zong=zong+sp[i].num;

}

if(zong!=0)

{

printf(" 目前库存情况为:名称 数量 价格 编号\n");

for(i=1;i<=(k+b);i++)

{

printf(" %s %d %f %d\n",sp[i].name,sp[i].amount,sp[i].price,sp[i].num);

}

}

else printf("\n #####目前库存为#####\n");

}

jinhuo()//进货模块

{

do

{

k++;

i++;

printf(" 请输入商品的名称.数量.价格.标号(>0)例如:a 1 2.5 111\n\t\t\t");

scanf("%s %d %f %d%c",sp[i].name,&sp[i].amount,&sp[i].price,&sp[i].num);

printf(" 是否继续,是(1),(0)\n\t\t\t");

scanf("%d",&flag);

}while(flag!=0);

fp=fopen("chaoshi.txt","w");

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

fwrite(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

chakan();

}

xiaoshou()//销售模块

{

float m[100];

int z=1;

int j[100];

int a[100];

int g=0;

int y=0;

int h=0;

float zong=0;

fp=fopen("chaoshi.txt","r");

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

fread(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

do

{

g++;

y++;

loop: printf(" 请输入商品编号和数量,例如:(100 20)\n\t\t\t");

scanf("%d %d",&j[y],&a[y]);

for(z=1;z<=k;z++)

{

if(j[y]==sp[z].num)

{

h++;

sp[z].amount=sp[z].amount-a[y];

m[y]=(float)a[y]*sp[z].price;

sc[y]=sp[z];

}

}

if(h==0)

{

printf(" 输入有误,请重新输入\n\t\t\t");

goto loop;

}

fp=fopen("chaoshi.txt","wt");

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

fwrite(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

printf(" 是否继续,是(1),(0)\n\t\t\t");

scanf("%d",&flag);

}while(flag!=0);

printf("\n ############################################\n");

printf(" 编号 名称 单价 数量 总计\n");

for(y=1;y<=g;y++)

{

printf(" %4d%10s%8.2f%6d%13.2f\n",sc[y].num,sc[y].name,sc[y].price,a[y],m[y]);

zong=zong+m[y];

}

printf(" 您此次一共消费%f 元,欢迎您下次光临\n",zong);

shijian();

}

zengjia()//增加商品数量模块

{

float m;

int z=1;

int j[100],a[100];

int g=0;

int y=0;

int zong=0;

int h=0;

fp=fopen("chaoshi.txt","r");

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

fread(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

do

{

g++;

y++;

loop: printf(" 请输入商品编号和数量,例如:(100 20)\n\t\t\t");

scanf("%d %d",&j[y],&a[y]);

for(z=1;z<=k;z++)

{

if(j[y]==sp[z].num)

{

h++;

sp[z].amount=sp[z].amount+a[y];

m=a[y]*sp[z].price;

sc[y]=sp[z];

}

}

if(h==0)

{

printf(" 输入有误,请重新输入\n\t\t\t");

goto loop;

}

fp=fopen("chaoshi.txt","wt");

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

fwrite(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

printf(" 是否继续,是(1),(0)\n\t\t\t");

scanf("%d",&flag);

}while(flag!=0);

chakan();

}

shanchu()//删除商品模块

{

int z;

int j[100],a[100];

int c=0;

int y=0;

int h=0;

do

{

c++;

loop: printf(" 请输入您想删除的商品编号\n\t\t\t");

scanf("%d",&j[y]);

for(z=1;z<=k;z++)

{

h++;

if(j[y]==sp[z].num)

sp[z]=sp[z+1];

}

if(h==0)

{

printf(" 输入有误,请重新输入\n\t\t\t");

goto loop;

}

fp=fopen("chaoshi.txt","wt");

for(i=1;i<=(k-1);i++)

fwrite(&sp[i],sizeof(struct goods),1,fp);

fclose(fp);

printf(" 是否继续,是(1),(0)\n\t\t\t");

scanf("%d",&flag);

}while(flag!=0);

chakan();

}

shijian()

{

struct tm when;

time_t now;

time(&now);

when=*localtime(&now);

printf(" %s\n",asctime(&when));

}

main()//主函数

{

int choice;

do

{

printf("\n\n\n ********商店管理系统*******\n\n");

printf(" 1.进货\n");

printf(" 2.销售\n");

printf(" 3.增加商品数量\n");

printf(" 4.删除商品\n");

printf(" 5.查看目前库存\n");

printf(" 0.返回主菜单\n");

printf(" 请选择您要进行的操作\n\t\t\t");

scanf("%d",&choice);

switch(choice)

{

case 1:jinhuo();break;

case 2:xiaoshou();break;

case 3:zengjia();break;

case 4:shanchu();break;

case 5:chakan();break;

case 0:break;

default :printf(" 输入有误,请重新输入\n\t\t\t");

}

}while(choice!=0);

}

六、使用说明

例如,表达式求值

本程序在turboc 2.0环境下运行通过。运行后,根据提示输入数据即可。可以输入1,2,3,4,5等编号结束时按回车。在屏幕上会显示你要输入编号所对应的功能

七、运行调试

例如,表达式求值

运行实例如下:

测试数据一:

1 进货界面

测试数据二:

图二:销售系统

测试数据三:

图三:增加商品数量

测试数据四:

图四:查看库存

八、训练心得

通过本次训练,能够进一步巩固、掌握程序设计基础和数据结构课程的基本知识、基本技能。运用算法分析与程序设计的一般方法进行实际项目的开发。本项目需要具备熟练的数组和线性表知识,具备程序编写、调试的基本能力,具有一定的文字表达和报告撰写能力,具备办公软件使用能力。

九、参考文献

[1] 闵敏. 数据结构. 高等教育出版社.2007.7

[2] 严蔚敏. 数据结构—C语言. 清华大学出版社

[3] 杨秀金. 数据结构. 西安电子科技大学出版社

[4] 李春葆. 数据结构习题与解析. 清华大学出版社

[5] 谭浩强. C程序设计. 清华大学出版



教师评语

成绩

评阅教师

注:教师评定内容

1实践操作技能2训练报告质量3训练期间表现

本文来源:https://www.2haoxitong.net/k/doc/13d508290066f5335a812116.html

《技能训练类(一)报告学生.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式