商品信息管理系统(c语言)项目报告

目录

一、需求分析(三号,宋体,粗体) 2

二、系统设计(三号,宋体,粗体) 2

(一)系统中的数据定义(四号,黑体,粗体) 2

(二)系统的概要设计 2

(三)系统的详细设计 2

(四)系统的核心算法 2

三、系统编码及运行(三号,宋体,粗体) 3

(一)系统开发涉及的软件 3

(二)系统运行界面及结果 3

四、系统测试(三号,宋体,粗体) 3

五、总结 3

附录(源代码) 4

 

 

 

 

 

 

 

 

  • 需求分析

1.仓库管理系统的背景:

  计算机的应用普及,目前大多数企业的仓库管理数据资料已开始采用计算机数据系统管理,仓库的管理的操作自动化和信息电子化 ,为企业得飞速发展提供无限潜力,采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志。

2.仓库管理系统的意义:

  仓库管理系统帮助企业解决了以下问题:

  (1)采集输入代替手工输入减少了失误率。

  (2)使产品信息能快速录入到数据库中

  (3)减少了原材料的浪费和成品的丢失。

(4)为企业把生产和销售整合在一起。

(5)提高工作人员的工作效率

3.仓库管理系统的主要功能:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

  • 系统设计

(一)系统中的数据定义

  1. 读取功能(void readfile)

使用函数读取数据文件,根据输入的文件名加载保存在本地的数据文件,若找不到相同文件名称,则有错误提示

  1. 输入功能(void input)

根据菜单提示项,进行输入编号的操作,以便进行下面的操作

  1. 显示功能(void display)

显示商品的姓名,价格,数量以及编号

  1. 查找功能(void seek)

通过输入选择相关的查询函数来完成查找功能,若相同则输出,若不同则输出错误提示

  1. 修改功能(void modify)

通过输入姓名或编号来查找要进行修改的信息,以便修改,之后进行保存

  1. 删除功能(void delete)

输入要删除的商品的姓名或编号进行删除,之后保存,若输入的查找不到,则错误提示

  • 系统的概要设计

 

 

 

 

 

 

 

 

  • 系统的详细设计

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.输入功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

输入商品信息,即增加商品信息(输入商品的姓名,编号,数量和价格),后进行保存

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.输出功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

输出商品信息,即商品信息的显示(可以输出商品的姓名,数量,编号和价格)

 

 

 

 

 

 

 

 

 

 

 

 

 

3.查找功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

查找商品信息,通过商品的姓名或编号进行查询,查找商品的价格和数量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.删除函数

 

 

 

 

 

 

 

 

 

删除商品信息,通过输入商品的编号进行删除

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.修改功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

修改商品信息,选择按编号或者姓名进行修改,可以修改商品的姓名,数量,价格和编号。后进行保存

 

 

  • 系统的核心算法

伪代码:

输入相应序号,通过switch语句实现相应功能

输入0:系统帮助及说明,使用printf打印提示信息,用scanf函数输入详细信息

输入1:刷新商品信息,使用printf打印提示信息,用scanf函数输入详细信息

输入2:查询商品信息,使用printf打印提示信息,用scanf函数输入详细信息

输入3:修改商品信息,使用printf打印提示信息,用scanf函数输入详细信息

输入4:增加商品信息,使用printf打印提示信息,用scanf函数输入详细信息

输入5:删除商品信息,使用printf打印提示信息,用scanf函数输入详细信息

输入6:显示当前信息,使用printf打印提示信息,用scanf函数输入详细信息

输入7:退出系统

系统编码及运行

系统开发涉及的软件

代码编写工具:CodeBlocks

画图工具:系统自带的画图软件

文档撰写工具:Microsoft Word

(二)系统运行界面及结果

               图1.系统登录界面

图2.运行界面(增加商品信息)

图3.运行界面(查询商品信息)

图4.运行界面(修改商品信息)

图5.运行界面(删除商品信息)

      

系统测试

运行时,进入界面,可根据需求选择七种功能。例如:

输入4,可以增加商品信息,选择要增加的个数,输入要增加的商品姓名,编号,个数及价格;

输入6,可以显示当前信息

 

 

输入3,可以修改商品信息,输入商品编号进行修改;

 

 

输入5,可以删除商品信息,输入商品编号进

行删除

 

 

五、总结

一.实验功能:

管理员可以对仓库进行各种操作,包括入库操作,出库操作,查询操作及修改操作

二.收获:

1:明白了系统的3大步骤:

  1. 软件设计:如系统框架设计,数据库设计。
  2. 程序编码:在程序编码中必定要制定统一,符合标准的编写规范。保证程序的可读性,易维护性,提高程序运行效率。
  3. 软件测试:在设计完成后要进行严密的测试,发现存在问题加以纠正。

2:明白工作中需要能力,素质,知识之外,更重要得是学会了如何去做好一件事,懂得享受过程。遇到问题,冷静,想办法解决,排除障碍,最后获得成功。

三.未来学习目标:

1.培养自己的综合能力、人际交往能力。我们不仅要注重专业学习,还要与实践相结合。这不是一朝一日就能完全搞得定的,因此,能否学到东西,学到东西后能否适应社会,走向社会时候能否找到自己满意的工作,这些都是我们应该要去努力和思考的事

2.培养自己的持续学习能力。我们要有自己有效的学习方法,但是如何让自己成为学习型人才,保持持续学习能力,除了有清晰的长中短期目标之外,还有学会如何学习,如何积累,如何利用知识,如何结合实践与未来目标,这些都会使我们清晰利用自己的时间,保持较强的持续学习能力。大学并不是想象的那样轻松,我们依就需要努力学习,为以后步入社会打下坚实的基础。

 

源代码

 

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define BUFLEN 100

#define LEN 15 /* 商品信息编号和姓名最大字符数 */

#define N 100 /* 最大商品数*/

static int in=0;

struct record

{

char name[LEN+1]; /* 商品名称 */

int num; /* 编号 */

int price; /* 价钱 */

int amount; /*数量 */

char items;

}

items[N];static int k=1,n,m; /* 定义全局变量 */

void readfile();/* 函数声明 */

void insert();//输入函数

void display();//显示函数

void seek();//查找函数

void modify();//修改函数

void del();//删除函数

void menu();

int main()

{

while(k)

menu();

system("pause");

return 0;

}

void help()

{

printf("\n0.欢迎使用系统帮助!\n");

printf("\n1.按照菜单提示键入数字代号;\n");

printf("\n2.谢谢您的使用!\n");

}

void readfile()/* 建立信息 */

{

char *p="cangku.txt";

FILE *fp;

int i=0;

if ((fp=fopen("cangku.txt","w+"))==NULL)

{

printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s%d%d%d",items[i].name,&items[i].amount,&items[i].num,&items[i].price)==8)

{

i++;i=i;

}

fclose(fp);

n=i;

printf("录入完毕!\n");

}

void seek() /*查找*/

{

int i,item,flag;

char s1[21];

int s2;/* 以商品姓名和编号最长长度+1为准 */

printf("------------------\n");

printf("-----1.按编号查询-----\n");

printf("-----2.按姓名查询-----\n");

printf("-----3.退出本菜单-----\n");

printf("------------------\n");

while(1)

{

printf("请选择子菜单编号:");

scanf("%d",&item);

flag=0;

switch(item)

{

case 1:printf("请输入要查询的商品的编号:\n");

scanf("%d",&s2);

for(i=0;i<n;i++)

if(items[i].num==s2)

{

flag=1;

printf("商品姓名  商品编号  数量  价格       \n");

printf("--------------------------------------------------------------------\n");

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

}

if(flag==0)

printf("该编号不存在!\n");

break;

case 2:printf("请输入要查询的商品的名称:\n");

scanf("%s",s1);

for(i=0;i<n;i++)

if(strcmp(items[i].name,s1)==0)

{

flag=1;

printf("商品姓名  商品编号  数量  价格   \n");

printf("--------------------------------------------------------------------\n");

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

}

if(flag==0)

printf("该姓名不存在!\n");

break;

case 3:return;

default:

printf("请在1-3之间选择\n");

}

}

}

 void modify() /*修改信息*/

{

int i,item,number;

char s2[15];

int s1; /* 以姓名和编号最长长度+1为准 */

printf("请输入要要修改的商品的编号:\n");

scanf("%d",&s1);

for(i=0;i<n;i++)

if(items[i].num==s1) /*比较字符串是否相等*/

number=i;

printf("------------------\n");

printf("1.修改姓名\n");

printf("2.修改数目\n");

printf("3.修改价钱\n");

printf("4.修改编号\n");

printf("5.退出本菜单\n");

printf("------------------\n");

while(1)

{

printf("请选择子菜单编号:");

scanf("%d",&item);

switch(item)

{

case 1:printf("请输入新的名称:\n");

scanf("%s",s2);

strcpy(items[number].name,s2);

break;

case 2:printf("请输入新的数目:\n");

scanf("%d",&items[number].amount);

break;

case 3:printf("请输入新的价钱:\n");

scanf("%d",&s1);

items[number].price=s1;

break;

case 4:printf("请输入新的编号:\n");

scanf("%d",&s1);

items[number].num=s1;

break;

case 5:return;

default:printf("请在1-5之间选择\n");

}

}

}

void sort()/*按编号排序*/

{

int i,j,*p,*q,s;

char temp[10];

int s1;

for(i=0;i<n-1;i++)

{

for(j=n-1;j>i;j--)

if(items[j-1].num==items[j].num)

{

s1=items[j-1].num;

items[j-1].num=items[j].num;

items[j].num=s1;

strcpy(temp,items[j-1].name);

strcpy(items[j-1].name,items[j].name);

strcpy(items[j].name,temp);

s1=items[j-1].amount;

items[j-1].amount=items[j].amount;

items[j].amount=s1;

s1=items[j-1].price;

items[j-1].price=items[j].price;

items[j].price=s1;

p=&items[j-1].amount;

q=&items[j].amount; s=*q; *q=*p; *p=s;

}

}

}

void insert() /*插入函数*/

{

 int j;

printf("请输入待增加的商品数:\n");

scanf("%d",&m);

for(j=in;j<m+in;j++)

{

printf("请输入第 %d 个商品的名称:\n",j+1);

scanf("%s",items[j].name);

printf("请输入第 %d 个商品的编号:\n",j+1);

scanf("%d",&items[j].num);

printf("请输入第 %d 个商品的数目:\n",j+1);

scanf("%d",&items[j].amount);

printf("请输入第 %d 个商品的价格\n",j+1);

scanf("%d",&items[j].price);

}

in=in+m;

while(j<n+m);

{

n+=m;

printf("录入完毕!\n\n");

sort();

}

}

void del()

{

int i,j,flag=0;

int s1;

printf("请输入要删除商品的编号:\n");

scanf("%d",&s1);

for(i=0;i<s1;i++)

if(items[i].num==s1)

{

 flag=1;

for(j=i;j<in;j++)

items[j]=items[100];

}

if(flag==0)

printf("该编号不存在!\n");

if(flag==1)

{

printf("删除成功,显示结果请选择菜单6\n");

n--;

}

}

void display()

{

int i;

printf("所有商品的信息为:\n");

printf("商品姓名  商品编号  数量  价格\n");

printf("--------------------------------------------------------------------\n");

for(i=0;i<in;i++)

{

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

}

}

 void menu()/* 界面 */

{

int num;

printf("*********************系统功能菜单************************       \n");

printf("     ----------------------   ----------------------   \n");

printf("     *********************************************     \n");

printf("     * 0.系统帮助及说明   * *  1.刷新商品信息    *     \n");

printf("     *********************************************     \n");

printf("     * 2.查询商品信息     * *  3.修改商品信息    *     \n");

printf("     *********************************************     \n");

printf("     * 4.增加商品信息     * *  5.按编号删除信息  *     \n");

printf("     *********************************************     \n");

printf("     * 6.显示当前信息     * *  7.退出系统        *     \n");

printf("     ********************** **********************     \n");;

printf("     ----------------------   ----------------------                           \n");

printf("请选择菜单编号:");

scanf("%d",&num);

switch(num)

{

case 0:help();

break;

case 1:readfile();

break;

case 2:seek();

break;

case 3:modify();

break;

case 4:insert();

break;

case 5:del();break;

case 6:display();

break;

case 7:k=0;

break;

default:printf("请在0-8之间选择\n");

}

}

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/81805541