C语言程序设计--商品信息管理

   前言

 C语言是目前国内外使用最广泛的程序设计语言之一,也是计算机课程体系的第一门重要的基础课程。它具有简洁紧凑、使用灵活方便、表达能力强、运算符丰富、执行效率高、可移植性好等特点。C语言作为一门最通用的语言,深受广大学者的热捧。

程序设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题。

1.系统分析

1.1课程设计内容

商场商品信息管理系统

本题目设计目的是训练学生的基本编程能力,了解商品管理信息系统的开发流程,熟悉C语言的各种基本操作。本程序中涉及结构体、数组、调用函数等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,为进一步开发出高质量的管理信息系统打下坚实的基础。

1.2系统功能需求分析

1、问题定义

创建一个商品信息管理系统。假设系统中每件商品记录只包括编码、价格、商品名称等信息。程序的运行效果如下图所示,选择任意菜单后,实现相应功能。

在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。

2.系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

本商品管理系统要求采用数组实现,如图2.1所示,它由如下五大功能模块组成:

  1. 1.录入商品基本信息模块。完成将数据存入数组的工作。定义一个int型整型变量,该数组把首地址给menu-item指针变量,并调用page-title()函数输出“录入商品基本信息”这句话。商品信息记录由商品的编码、名字、价格构成。但录入商品基本信息时运用了for循环语句。录入商品的数量不能为空,否则跳出for循环。录入商品信息时,系统将商品信息存储在数组中,即void product-new()启到录入商品信息的作用。完成录入信息后,调用return-confirm()函数,提示是否继续,否则按任意键返回主页面。
  2. 2.修改商品基本信息模块。运用了条件判断语句if语句,在此商品信息管理系统中,完成了对商品信息记录的维护。将修改过的信息重新存入到源数据中。其中还调用了search-num()函数与之键入的商品信息作比较,即键入商品信息不能为空。
  3. 3.删除商品基本信息模块。定义一个int整型变量,再调用page-title函数输出“注销商品基本信息”这句话,再运用if选择结构语句,判断条件是输入的商品不能为空,条件成立即执行程序,将此商品信息从源数据中删除。其中调用了search-num()函数与之键入的商品信息作比较,判断键入的商品信息不能为空,成立既可以删除。
  4. 4.浏览商品基本信息模块。该模块运用了for循环结构语句,内嵌套if选择结构语句,调用search-num()函数与之键入商品信息作比较,即输入信息不能为空,否则跳出循环,成立即可浏览商品,最后并调用return-confirm()函数提示是否继续此模块,“否”按任意键返回主界面。

2.2详细设计

2.2.1数据结构设计

struct product             //定义结构体数组

{

 int num;                //成员表列

 float price;

 char name[21];

}products[32];            //变量名表列

   定义了一个结构体数组product,共有32个元素,product【0】~product【31】。每个数组元素都具有struct product类型。该数组各元素在内存中连续存放,占用一段连续的储存单元。

3.系统编码设计
3.1编码
3.1.1程序预处理
注:包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。
#include "stdio.h"   /*标准输入输出函数库*/
#include "stdlib.h"  /*标准函数库*/
#include "string.h"  /*字符串函数库*/
#include "conio.h"    /*屏幕操作函数库*/
#include"windows.h"   //存放清屏、改变字体颜色等函数//
struct product             //定义结构体数组
{
 int num;                //成员表列
 float price;
 char name[21];
}products[32];            //变量名表列

void page_title(char *menu_item)  // 定义一个页眉函数
 system("CLS");      调用DOS命令,清屏
 printf(">>> 商品管理系统 <<<\n\n- %s -\n\n",menu_item);
}

void return_confirm()  //按任意键返回
{
 printf("\n按任意键返回\n");
 getch();
 system("CLS");   //调用DOS命令,清屏

}


void product_new()  //录入信息函数
{
 int n;
 page_title("录入商品基本信息");
 printf("编号-名字-价格\n");
 for(n=0;n<32;n++)
 if(products[n].num==0) break;
 printf("编号:");
 scanf("%d",&products[n].num);
 printf("名字:");
 scanf("%s",&products[n].name);
 printf("价格:");
 scanf("%f",&products[n].price);
 return_confirm();
}

int search_num()   //定义一个查找信息函数
{
 int n,i;
 printf("请输入商品编号:");
 scanf("%d",&i);
 system("CLS");    调用DOS命令,清屏
 for(n=0;n<32;n++)
 {
  if(products[n].num==i&&products[n].num!=0)
  {
   printf("编号:%d\n",products[n].num);
   printf("名字:%s\n",products[n].name);
   printf("价格:%f\n",products[n].price);
   return n;
  }
 }
 printf("\n输入错误或编号不存在.\n");
 return 0;
}

void product_del()    //删除信息函数
{
 int n;
 page_title("注销商品基本信息");
 if((n=search_num())!=-1) products[n].num=0;
 printf("\n!该商品已注销.\n");
 return_confirm();    //按任意键返回
}

void product_edit()  //编辑信息函数
{
 int n;
 page_title("编辑商品基本信息");
 if((n=search_num())!=-1)
 {
  printf("\n请重新输入新信息:\n编号:");
  scanf("%d",&products[n].num);
  printf("名字:");
  scanf("%s",&products[n].name);
  printf("价格:");
  scanf("%f",&products[n].price);
  }
 return_confirm();   //按任意键返回
}
void browser()     //浏览信息函数
{int n,i;
 system("CLS");   //调用DOS命令,清屏
 printf("商品列表:\n");
 for(i=0;i<32;i++)
 {
 if((n=search_num())!=-1);break;
 }
 return_confirm();    //按任意键返回
}

void main()    //主函数
{
 system("color 0A");  //设置界面以及字体颜色
 menu: page_title("  操作选单  ");
 printf("请用数字键选择操作\n\n");
 printf("1 录入商品基本信息\n2 修改商品基本信息\n");
 printf("3 注销商品基本信息\n4 浏览商品");
 printf("  0 退出\n");
 switch(getch())
 {
   case '1' : product_new();break;
   case '2' : product_edit();break;
   case '3' : product_del();break;
   case '4' : browser();break;
   case '0' : exit(0);
 }
 goto menu;    //跳转到指定位置
}

 


文章借鉴于此纷传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值