c语言超市管理系统报告书.docx

上传人:b****5 文档编号:7876799 上传时间:2023-01-26 格式:DOCX 页数:39 大小:192.08KB
下载 相关 举报
c语言超市管理系统报告书.docx_第1页
第1页 / 共39页
c语言超市管理系统报告书.docx_第2页
第2页 / 共39页
c语言超市管理系统报告书.docx_第3页
第3页 / 共39页
c语言超市管理系统报告书.docx_第4页
第4页 / 共39页
c语言超市管理系统报告书.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

c语言超市管理系统报告书.docx

《c语言超市管理系统报告书.docx》由会员分享,可在线阅读,更多相关《c语言超市管理系统报告书.docx(39页珍藏版)》请在冰豆网上搜索。

c语言超市管理系统报告书.docx

c语言超市管理系统报告书

1需求分析:

随着现代生活质量的提高,超市这种便利的服务开始走进我们的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题,本程序运用C语言程序设计了一个超市管理系统。

关系系统的的功能主要有新购物品入库、物品信息删除、物品信息修改、物品信息查询、物品信息浏览功能,在相应的硬盘上面进行存盘以防止部分数据的丢失。

为了更加人性化使用此管理系统,还在MENU选项总添加了系统颜色设置功能,使用户可以根据自己的喜好修改操作界面。

2概要设计

(1)数据结构

依据给定的物品信息和数据形式,数组必须用结构体实现。

结构类型的层次结构:

structima

{

intid;

charname[20];

charproduce[30];

intnumber;

floatprice;

};

(2)模块划分

依据程序的结构反和功能,遵照“自顶而下”的原则,描述该程序的层次结构图一显示了该程序的层次结构,共5层:

如下图:

图一

图一的层次结构

(3)原函数清单:

1、创建函数

voidchushihua()

2、增加物品函数

Tianjia();

3、删除物品信息函数

Shanchu();

4、修改物品信息函数

Xiugai();

5、查询物品信息函数

Chazhao();

6、浏览物品信息函数

Liulan();

7、系统颜色设置函数

yanseshezhi();

8、应用程序退出函数

Jieshu();

3运行环境:

Win2003,WinXP,Win2000,NT,WinME,Win9X

4开发工具和编程语言:

编程语言:

C语言

开发工具:

microsoftvisualC++6.0

5详细设计:

1、结构体变量的定义:

structima

{

intid;

charname[20];

charproduce[30];

intnumber;

floatprice;

};

3、文件的初始化:

voidchushihua()

{

FILE*fp;

structimai={1,"花生牛奶","湖北武汉",1200,2.5};

fp=fopen("ima.dat","w");

if(fp==NULL)

{

printf("\t\t\t系统错误,请重试........");

exit(0);

}

fwrite(&i,sizeof(structima),1,fp);

fclose(fp);

}

4、欢迎菜单(主函数):

voidmain()

{

printf("\n\n");

system("color1a");

printf("\t\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3欢迎使用\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3超市库存管理系统\3\n");

printf("\t\3按任意键继续\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\n");

printf("\t\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3");

getch();

system("cls");

menu();

chushihua();

menu();

}

5、选择菜单

voidmenu()

{

intchoice;

printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【超市库存管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");

printf("--------------------------------系统菜单显示如下--------------------------------");

printf("\n\t①=====================【新购物品入库】\n");

printf("\n\t②=====================【物品信息删除】\n");

printf("\n\t③=====================【物品信息修改】\n");

printf("\n\t④=====================【物品信息查询】\n");

printf("\n\t⑤=====================【物品信息浏览】\n");

printf("\n\t⑥=====================【系统颜色设置】\n");

printf("\n\t⑦=====================【应用程序退出】\n");

printf("\n\t请输入您要选择的菜单......");

scanf("%d",&choice);

switch(choice)

{

case1:

Tianjia();

break;

case2:

Shanchu();

break;

case3:

Xiugai();

break;

case4:

Chazhao();

break;

case5:

Liulan();

break;

case6:

yanseshezhi();

break;

case7:

Jieshu();

break;

default:

printf("\n\t\t\t\t\t输入无效,请您重新输入......");

getch();

system("cls");

menu();

}

}

6、新购物品入库函数:

intpanduanID(intid)/*判断所输编号是否已存在*/

{

FILE*fp;

structimai;

fp=fopen("ima.date","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&i,sizeof(structima),1,fp);

while(!

feof(fp))

{

if(i.id==id)

{

fclose(fp);

return1;

break;

}

fread(&i,sizeof(structima),1,fp);

}

fclose(fp);

return0;

}

voidTianjia()

{structimai;

charchoice;

FILE*fp;

fp=fopen("ima.date","ab");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

labID:

printf("\n\t请您输入要入库物品的信息...\n");

printf("\t\t\t\t物品的编号:

");

scanf("%d",&i.id);

if(panduanID(i.id)==1)

{

printf("\t\t\t\t此编号已被使用,请您重新输入......");

gotolabID;

}

printf("\t\t\t\t物品的名称:

");

scanf("%s",i.name);

printf("\t\t\t\t物品的生产地:

");

scanf("%s",i.produce);

printf("\t\t\t\t物品的数量:

");

scanf("%d",&i.number);

printf("\t\t\t\t物品的单价:

");

scanf("%f",&i.price);

fwrite(&i,sizeof(structima),1,fp);

fclose(fp);

printf("\t\t\t\t\t\t物品信息已入库成功!

!

!

\n");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Tianjia();

}

else

{

system("cls");

menu();

}

}

7、物品信息删除函数:

voidShanchu()

{structimai[1000];

structimatemp;

intdelID;

charchoice;

intindex=0;

intj=0;

FILE*fp;

fp=fopen("ima.date","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&temp,sizeof(structima),1,fp);

while(!

feof(fp))

{

i[index]=temp;

index++;

fread(&temp,sizeof(structima),1,fp);

}

fclose(fp);

printf("\n\t请输入要删除的物品的编号:

");

scanf("%d",&delID);

fopen("f:

\\ima.date","w");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

for(j=0;j

{

if(i[j].id!

=delID)

{

fwrite(&i[j],sizeof(structima),1,fp);

}

}

fclose(fp);

printf("\t\t\t\t\t物品信息已清除!

!

!

\n");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Shanchu();

}

else

{

system("cls");

menu();

}

}

8、物品信息修改函数:

voidXiugai()

{intindex=0;

intID,j;

charchoice;

structimai[1000];

structimatemp;

FILE*fp;

fp=fopen("ima.dat","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请您重试........");

exit(0);

}

fread(&temp,sizeof(structima),1,fp);

while(!

feof(fp))

{

i[index]=temp;

index++;

fread(&temp,sizeof(structima),1,fp);

}

fclose(fp);

fp=fopen("ima.dat","w");

if(fp==NULL)

{

printf("\\t\t\t系统错误,请您重试........");

exit(0);

}

printf("\n\t请输入要修改的信息的物品的编号:

");

scanf("%d",&ID);

for(j=0;j<=index-1;j++)

{

if(i[j].id!

=ID)

{

fwrite(&i[j],sizeof(structima),1,fp);

}

else

{

printf("\t\t物品名称修改为:

");

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

printf("\t\t物品生产地修改为:

");

scanf("%s",i[j].produce);

printf("\t\t物品数量修改为:

");

scanf("%d",&i[j].number);

printf("\t\t物品单价修改为:

");

scanf("%f",&i[j].price);

}

}

fclose(fp);

printf("\t\t\t\t物品信息已修改......");

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Xiugai();

}

else

{

system("cls");

menu();

}

}

9、物品信息查询函数:

voidChazhao()

{

FILE*fp;

intfindID;charchoice;structimai;

fp=fopen("ima.date","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请你重试........");

exit(0);

}

finID:

printf("\n\t请输入要查询的物品的编号..");

scanf("%d",&findID);

fread(&i,sizeof(structima),1,fp);

while(!

feof(fp))

{

if(i.id==findID)

{

printf("\n\n\t***************物品信息******************");

printf("\n\t物品编号...%30d\n",i.id);

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

printf("\n\t物品名称...%30s\n",i.name);

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

printf("\n\t生产厂家...%30s\n",i.produce);

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

printf("\n\t进口数量...%30d\n",i.number);

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

printf("\n\t批发价格...%30.3f\n",i.price);

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

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Chazhao();

}

else

{

system("cls");

menu();

}

}

fread(&i,sizeof(structima),1,fp);

}

fclose(fp);

printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");

gotofinID;

}

10、物品信息浏览函数:

voidLiulan()

{structimai;

intindex=0;

charchoice;

FILE*fp;

fp=fopen("ima.date","r");

if(fp==NULL)

{

printf("\t\t\t系统错误,请你重试........");

exit(0);

}

fread(&i,sizeof(structima),1,fp);

while(!

feof(fp))

{

index++;

printf("\n\n\t****************物品信息%d*****************",index);

printf("\n\t物品编号...%30d\n",i.id);

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

printf("\n\t物品名称...%30s\n",i.name);

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

printf("\n\t生产厂家...%30s\n",i.produce);

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

printf("\n\t进口数量...%30d\n",i.number);

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

printf("\n\t批发价格...%30.3f\n",i.price);

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

getch();

fread(&i,sizeof(structima),1,fp);

}

fclose(fp);

printf("\n您想继续吗?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

Liulan();

}

else

{

system("cls");

menu();

}

}

11、系统颜色设置函数:

voidyanseshezhi()

{inta;

charchoice;

system("cls");

printf("\n\n\t\t选择以下方案\n");

printf("\n\n\t\t1**************红底黑字\n");

printf("\n\n\t\t2**************白底黑字\n");

printf("\n\n\t\t3**************黑底红字\n");

printf("\n\n\t\t4**************绿底蓝字\n");

printf("\n\n\t\t5**************黄底紫字\n");

printf("\n\n\t\t6**************系统默认\n");

printf("\n\n\t\t\t\t\t请挑选您喜爱的颜色<1-5>......");

scanf("%d",&a);

switch(a)

{

case1:

system("color40");

break;

case2:

system("color70");

break;

case3:

system("color04");

break;

case4:

system("color21");

break;

case5:

system("color65");

break;

case6:

system("color1a");

break;

default:

printf("\n\n\t\t\t\t\t输入无效,重新输入......");

getch();

yanseshezhi();

}

printf("\n选择的颜色您还满意吗?

(y返回主菜单/n继续选择)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

system("cls");

menu();

}

else

{

yanseshezhi();

}

}

12、应用程序退出函数:

voidJieshu()

{charchoice;

system("cls");

printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?

\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");

scanf("%c",&choice);

if(choice=='Y'||choice=='y')

{

system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢您的使用!

!

!

");

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

}

else

{

system("cls");

menu();

}

}

6调试分析:

在此程序的编程前,我上网搜集了一些关于超市管理系统的资料,然后大体决定了编程的大致算法,即利用函数贯穿整个程序,通过SWITCH函数进行各个函数的选择;同时,进过查阅,我添加了系统颜色设置功能,同是应用了清屏函数,课下讲程序大致写好后,我上机进行了调试;但却出现了80几处错误,大都是提示miss“;”beforetybe;经过分析,程序算法并无错误;后来询问老师,才发现原来在我所编的程序中,有需要变量时,都是用的时候才定义,但正确的方法是应该在函数的开头就应该将所要用的变量进行生命,否则就出现了编译错误。

7测试结果:

1、欢迎界面

2、系统选择界面:

3、新购物品入库:

4、物品信息删除:

5、物品信息修改:

6、物品信息查询

7、物品信息浏览:

8、系统颜色设置:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1