数据结构课程设计产品进销存管理系统 数据结构课程设计 产品进销存管理系统

作者&投稿:边苇 (若有异议请与网页底部的电邮联系)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include <fstream>
using namespace std;

//结构体
struct commodity
{
int num;//商品号
char kind[10];//产品的种类
char name[10];//产品的名称
int count;//产品的总量
char date[15];//进货日期
int sale;//销出数量
char saledate[15];//销售时间
} cod[50],codtemp[50],dod[50];//产品名称cod,产品种类dod

//定义函数
void inputnum();
void inputkind();
void inputname();
void sort();
int count(int n);
void binarysearch();

int choice;

int main(int argc, char *argv[])
{
cout<<"\t\t\t欢迎进入产品进销存管理系统"<<endl;
do{
cout<<"\t1.产品入库"<<endl;
cout<<"\t2.查找产品"<<endl;
cout<<"\t3.退出系统"<<endl;

cin>>choice;
switch(choice) {
case 1:cout<<"\t1.产品类的添加"<<endl;
cout<<"\t2.产品的添加"<<endl;
cout<<"\t3.数量的添加"<<endl;
cin>>choice;
switch(choice){
case 1:inputkind();break;
case 2:inputname();break;
case 3:inputnum();break;
default:cout<<"错误!";break;
}break;

case 2:binarysearch();break;
case 3:exit(0); break;
default:cout<<"错误!"<<endl;
break;
}
} while(1);
system("PAUSE");
return 0;
}

//计算文件中结构体个数
int count(int n)
{
FILE *fp;
int i;
if((fp=fopen("产品","r"))==NULL)
{
cout<<"打不开文件!"<<endl;
exit(0);
}
for(i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++) //读文件
{
}
return i;
}

//产品种类的添加
void inputkind()
{
FILE *fp1,*fp2;
int i,size,size1,j;
if((fp1=fopen("产品种类","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
cout<<"请输入新入库产品种类的个数:";
cin>>size;
for(i=0;i<size;i++)
{//在产品种类文件中添加
cout<<"请输入第"<<i+1<<"个产品种类的资料"<<endl;

cout<<"产品的种类:";
cin>>dod[i].kind;
cout<<"请输入该产品种类中产品的个数:";
cin>>size1;
if((fp2=fopen("产品","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
for(j=0;j<size1;j++)
{//在产品文件中添加
cout<<"请再次输入种类:";
cin>>cod[j].kind;

cout<<"请输入产品号:";
cin>>cod[j].num;

cout<<"产品的名称:";
cin>>cod[j].name;

cout<<"产品的数量:";
cin>>cod[j].count;

cout<<"产品的进货日期:";
cin>>cod[j].date;

cout<<"销出数量:";
cin>>cod[j].sale;

cout<<"销售时间:";
cin>>cod[j].saledate;
}
fwrite(&cod[i],sizeof(struct commodity),1,fp2);
}
fwrite(&dod[i],10,1,fp1); //把数据写入文件

fclose(fp1);
fclose(fp2);//关闭
}

//产品的添加
void inputname()
{
FILE *fp;
int i,size;
if((fp=fopen("产品","a"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}
cout<<"请输入新入库产品的个数:";
cin>>size;
for(i=0;i<size;i++) {
{
cout<<"请输入第"<<i+1<<"个产品的资料"<<endl;

cout<<"所属产品的种类:";
cin>>cod[i].kind; //

cout<<"请输入产品号:";
cin>>cod[i].num;

cout<<"产品的名称:";
cin>>cod[i].name;

cout<<"产品的数量:";
cin>>cod[i].count;

cout<<"产品的进货日期:";
cin>>cod[i].date;

cout<<"销出数量:";
cin>>cod[i].sale;

cout<<"销售时间:";
cin>>cod[i].saledate;

}
fwrite(&cod[i],sizeof(struct commodity),1,fp); //把数据写入文件
}
fclose(fp); //关闭
}

//数量的添加
void inputnum()
{
FILE *fp;
int i,size,j;
int k=count(1);
char str[10];//记录增加数量的产品名称
sort();
if((fp=fopen("产品","rb"))==NULL)
{ //追加
cout<<"打不开文件!"<<endl;
exit(0);
}

cout<<"请输入增加数量的产品名称:";
cin>>str;
cout<<"请输入数量:";
cin>>size;
for(i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++)
{
if(strcmp(str,cod[i].name)==0)
{

cod[i].count=cod[i].count+size;

{ //重写
fp=fopen("产品","wb");
for(j=0;j<k;j++)
fwrite(&cod[j],sizeof(struct commodity),1,fp);
fclose(fp);
}
break;
}

}

fclose(fp); //关闭
cout<<"添加成功!"<<endl;
}

//商品排序
void sort() //排序函数
{
int i,j,n,last,w;
int templist[30];
struct commodity temp;
FILE *fp;
if((fp=fopen("产品","rb"))==NULL)
{
cout<<"打不开文件!"<<endl;
exit(0);
}
int k=count(1);

for(i=0;i<k;i++)
{
fread(&cod[i],sizeof(struct commodity),1,fp);
templist[i]=cod[i].num;

}
i--;
while(i>0) //冒泡排序
{
last=0;
for(n=0;n<i;n++)
{
if(templist[n+1]<templist[n])
{
w=templist[n];templist[n]=templist[n+1];templist[n+1]=w;
last=n;
}
}
i=last;
}

for(i=0;i<k;i++)
for(j=0;j<k;j++)
{
fseek(fp,j*sizeof(struct commodity),0);
fread(&cod[j],sizeof(struct commodity),1,fp);
if(templist[i]==cod[j].num) //比较数组中i的值是否与结构体中商品号相等
codtemp[i]=cod[j]; //将文件中存储的结构体数据暂存在临时结构体中

}

fclose(fp);

{ //重写
FILE *fp;
fp=fopen("产品","wb");
for(i=0;i<k;i++)
fwrite(&codtemp[i],sizeof(struct commodity),1,fp);
fclose(fp);
}
}

// 查找商品
void binarysearch()
{
int low=0,high,k,mid=0,m,seek;
char str[10];
k=count(1);
high=k-1;
sort(); //调用
cout<<"请选择查找方式:"<<endl;
cout<<"1.产品号查找"<<endl;
cout<<"2.产品名查找"<<endl;
cin>>seek;
switch(seek)
{ case 1:
{
cout<<"请输入产品号:";
cin>>m;
while(low<=high) //折半查找
{
mid=(low+high)/2;
if(m==cod[mid].num)
{
FILE *fp;
if((fp=fopen("commodity","r"))==NULL)
{
cout<<"打不开文件."<<endl;
exit(0);
}
fseek(fp,mid*sizeof(struct commodity),0);
fread(&cod[mid],sizeof(struct commodity),1,fp);
fclose(fp);
//
cout<<"所属产品类:";
cout<<cod[mid].kind<<endl;
cout<<"产品号:";
cout<<cod[mid].num<<endl;
cout<<"产品名称:";
cout<<cod[mid].name<<endl;
cout<<"产品总量:"<<cod[mid].count<<endl;
cout<<"进货日期:"<<cod[mid].date<<endl;
cout<<"销出数量:"<<cod[mid].sale<<endl;
cout<<"销售日期:"<<cod[mid].saledate<<endl;

break;
}
else if(m<cod[mid].num)
high=mid-1;
else low=mid+1;
}

if(low!=high)
cout<<"不存在该商品!"<<endl;

break;
}
case 2:
{ FILE *fp;
fp=fopen("产品","r");
cout<<"请输入产品名:"<<endl;
cin>>str;
for(int i=0;fread(&cod[i],sizeof(struct commodity),1,fp);i++)
{
if(strcmp(str,cod[i].name)==0) //是否匹配
{
cout<<"所属产品类:";
cout<<cod[i].kind<<endl;
cout<<"产品号:";
cout<<cod[i].num<<endl;
cout<<"产品名称:";
cout<<cod[i].name<<endl;
cout<<"产品总量:"<<cod[i].count<<endl;
cout<<"进货日期:"<<cod[i].date<<endl;
cout<<"销出数量:"<<cod[i].sale<<endl;
cout<<"销售日期:"<<cod[i].saledate<<endl;
break;
}
}

fclose(fp);
break;
}

default :
cout<<"系统关闭!"<<endl;
break;
}
}

数据结构课程设计:产品进销存管理系统~

易顺佳超稳定

可以通过Baidu Hi提示我
有时间可能完成你所面临的任务
相关的要求也可能提示我

ES:\\A449CD49DBA6A202633BEA01FD498C69

数据结构课程:产品进销存管理系统
答:推荐一款进销存管理。。功能比较符合你。特别是每天的进出明细这块。。http://yucciouu.blog.163.com/blog/static/16962911220107252172483/ 合适的话,,把分给我哇。

学籍管理系统用什么数据结构
答:数据结构课程设计学生信息管理系统数据结构课程设计是综合运用数据结构课程中学到的儿种典型数据结构以及程序设计语言c语言自行实现一个较为完整的应用系统的设讣与开发通过课程设计自己通过系统。

数据库应用课程设计的报告
答:数据库:ACCESS实现:Delphi 7.0系统构架:C/S(Client/Server )三.数据库设计.1.需求分析:超市进销存管理系统2.概念结构设计(1)实体设计商品信息(商品编号,商品名称,商品单位,商品单价,类别,产地,说明)进货信息(进货编号,商品编号,进货...

进销存系统是什么意思?
答:进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等进行全程进行(从接获订单合同开始,进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等)跟踪(每一步都提供详尽准确的数据)、管理(有效辅助...

程序设计题目四 仓库产品管理系统
答:在此基础上上进行系统的结构、代码、数据库、输入输出和处理程序设计。关键词 管理信息系统 系统分析 系统设计 仓库管理系统 Title the warehouse management system of jinyuandianli Abstract More and more thorough but ...

哪个商品销售管理软件好用(简单好用的进销存软件推荐)
答:选择一个合适的零售店软件可以省很多事。还有到2022年零售店软件排名如何?让 让我们看一看。首先,秦丝产品星级评定:秦丝是一个专门为服装商家设计的进销存管理系统。致力于解决服装经营过程中账目混乱、库存不准确、信息反馈不...

求数据库课程设计医院药品进销存系统。
答:这个不难,但得有数据模型,还得花点时间,在这你一进半会找不到完整的答案.Access就可以做得出,就5张表,关系也不是很复杂,老兄你还是花点时间看看书吧.一样简单,不过你得先弄懂关系模型....

进销存管理软件的功能介绍
答:复制技术,保证企业数据安全;多层次的分布式网络体系结构设计,很好的支持商业企业的连锁经营模式。 完全的网络化操作各个站点的数据保存即通过网络传递到服务器,相关人员可以随时看到更新的数据,极大的提高了信息传递的速度,使得企业的管理效率...

进销存是什么?
答:进销存,又称为购销链,是指企业管理过程中采购(进)—>入库(存)—>销售(销)的动态管理过程。进:指询价、采购到入库与付款的过程。销:指报价、销售到出库与收款的过程。存:指出入库之外,包括领料、退货、盘点、...

求数据库图书管理系统课程设计全套
答:任课教师: 2008 年7 月 16日摘要本设计报告主要介绍了用数据库开发工具ASP.NET开发一个小型数据库系统━━图书馆管理系统的设计过程.在数据库系统的开发工具中,ASP.NET具有良好的人机交互界面,合理的数据库结构,是一种可视化,面向...