小的庫存管理系統

inventory.c文件

/****************************************************************************

*Namc:goods inventory management systerm                                    *

*Purpose:Maitains a parts database --array version /using struct            *

*Author:Bennett                                                             *

*Date written:2/1/2012                                                      *

****************************************************************************/

#include<stdio.h>

#include "read_line.h"

 

#define NAME_LEN 25

#define MAX_PARTS 100

 

struct part{

int number;

char name[NAME_LEN+1];

int on_hand;

}inventory[MAX_PARTS];

 

int num_parts=0; /*number of parts currently stored*/

 

int find_part(int number);

 

/*four fuction in the program*/

void insert(void);

void search(void);

void update(void);

void print(void);

 

 

/*****************************************************************************/

int main(void){

char code;

for(;;){

printf("Enter operation code: ");

scanf(" %c",&code);

while(getchar()!='\n')  /*skips to the end of line*/

;

switch(code){

 

case 'i':insert();

break;

case 's':search();

break;

case 'u':update();

break;

case 'p':print();

break;

case 'q':return 0;

default:printf("Illegal code\n");

}

printf("\n");

printf("Enter 'i': insert,'s':search,'u':update,'p':print,'q':exit \n");

}

 

}

 

 

/********************************************************************************

*find_part:Looks up a part number in the inventory array.Returns the array index*

*          if the part number is found;otherwise ,returns -1;                   *

********************************************************************************/

 

 

int find_part(int number){

int i;

for(i=0;i<num_parts;i++){

if(inventory[i].number==number)

return i;

}

return -1;

}

 

 

 

/********************************************************************************

*insert:prompts the user for information about a new part and then inserts the  *

*       part into the database.prints an error message and returns prematurely  *

*       if the part already exists or the database is full                      *

********************************************************************************/

 

 

void insert(void){

int part_number;

 

if(num_parts==MAX_PARTS){

printf("Database is full ;can`t add more parts.\n");

return;

 

}

printf("Enter the part number: ");

scanf("%d",&part_number);

 

if(find_part(part_number)>=0){

printf("Part already exists.\n");

return;

}

inventory[num_parts].number=part_number;

printf("Enter part name: ");

read_line(inventory[num_parts].name,NAME_LEN);

printf("Enter quantity on hand: ");

scanf("%d",&inventory[num_parts].on_hand);

num_parts++;

}

 

 

/*******************************************************************************

*search:prompts the user to enter a  part number ,then looks up the part in the*

*       database.if the part exists ,prints the name and quantity on hand;     *

*       if not ,prints an error message;                                       *

*******************************************************************************/

void search(void){

int i,number;

 

printf("Enter the part number: ");

scanf("%d",&number);

i=find_part(number);

if(i>=0){

printf("Part name: %s\n",inventory[i].name);

printf("Quantity on hand: %d\n",inventory[i].on_hand);

}else

 printf("Part not found.\n");

 

}

 

 

/********************************************************************************

*update:prompts the user to enter a part number .prints and error message if the*

*       part number doesn`t exist;otherwise , prompts the user to enter change  *

*       in quantity on hand and updates the database;                           *

********************************************************************************/

 

 

void update(void){

int i,number,change;

 

printf("Enter the part number: ");

scanf("%d",&number);

i=find_part(number);

if(i>=0){

printf("Enter the change in quantity on hand: ");

scanf("%d",&change);

inventory[i].on_hand+=change;

}else

printf("part not exist.\n");

 

}

 

 

 

/*******************************************************************************

*print:print a listing of all parts in the database,showing the information    *

*******************************************************************************/

 

void print(void){

int i;

printf("Part Number        Part Name                       "

                "Quantity On Hand\n");

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

printf("%7d            %-25s%11d\n",inventory[i].number,inventory[i].name,inventory[i].on_hand);

}

 

/****************************************************************************

*NAMC:read_line.c                                                           *

*purpose:define the read_line function                                      *

*Author:Bennett                                                             *

*Date written:2/1/2012                                                      *

****************************************************************************/

#include<ctype.h>

#include<stdio.h>

#include "read_line.h"

 

read_line.c文件:

int read_line(char str[],int n)

{

int ch,i=0;

while(isspace(ch=getchar()))       /*judge the getchar if is a void char */

;

while(ch!='\n'&&ch!=EOF){

if(i<n)

str[i++]=ch;

ch=getchar();

}

str[i]='\0';

return i;

}

 

read_line.h文件:

#ifndef READ_LINE_H

#define READ_LINE_H

int read_line(char str[],int n);

#endif

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章