(店铺管理)超市商品信息系统设计报告及程序C语言.

合集下载

超市食品管理系统c语言实验报告

超市食品管理系统c语言实验报告

超市食品管理系统c语言实验报告摘要本实验设计和实现了一个基于c语言的超市食品管理系统。

通过该系统,用户可以方便地管理超市中的食品信息,包括货物进货、商品管理、库存统计、价格计算以及销售管理等功能。

通过对系统的设计和实现过程的详细分析,本报告介绍了系统的功能需求、设计思路、算法实现、界面展示和测试结果等内容。

从整体上来说,该系统实现了对超市食品的全方面管理,提高了工作效率,减少了人力成本。

1. 引言随着社会的发展,超市业已成为人们购买日常用品的主要场所之一。

在超市中,食品是其中的主要组成部分,对于超市来说,合理管理食品的进货、售卖和库存等是非常重要的。

因此,本实验设计和实现了一个基于c语言的超市食品管理系统,旨在提高超市工作效率,减少人力成本,方便管理。

2. 系统功能需求为了满足超市食品管理的需求,本系统应具备以下功能: 1. 货物进货管理:超市管理员可以通过系统进行食品的进货管理,包括进货数量、进货价格、进货时间等信息的记录和管理。

2. 商品管理:超市管理员可以通过系统进行商品的管理,包括商品名称、商品分类、商品价格等信息的维护和更新。

3. 库存统计:系统可以自动统计和更新食品的库存信息,方便管理员进行库存的掌控。

4. 价格计算:系统可以根据商品的数量和单价进行价格计算,方便管理员和顾客进行价格核算。

5. 销售管理:系统可以记录和管理超市的销售信息,包括销售数量、销售额等信息的统计和查询。

3. 系统设计思路本系统的设计思路主要包括数据结构设计、算法设计和界面设计三个方面。

3.1 数据结构设计为了方便对超市食品的管理和操作,本系统采用了以下数据结构: - 商品信息结构体:包括商品名称、商品分类、商品价格等字段,用于存储每个商品的信息。

-进货信息结构体:包括进货数量、进货价格、进货时间等字段,用于存储每次进货的信息。

- 销售信息结构体:包括销售数量、销售额等字段,用于存储每次销售的信息。

(完整word版)c语言程序设计超市管理系统

(完整word版)c语言程序设计超市管理系统

实验题目:超市管理系统一、实验目的1.熟悉 c 语言的编译连接和运行过程。

2.掌握 c 语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。

3.掌握if 语句及switch 语句的运用方法及嵌套应用方法。

4.掌握实现循环结构的三种语句while 、do-while. 、for 的使用。

5.掌握函数的定义方法和调用方法。

6.能够采用模块化思想调试程序。

二.实验内容1.编写程序并进行调试运行。

2.输入商品资料,并保存于文件。

每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。

3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。

4.通过按商品名、商品种类、商品进货量的方式查询商品信息。

5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。

6 对商品的库存量和利润进行排序。

7.最后输出商品信息,供需要时打印。

二、需求分析1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。

2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。

以便随时更新商品信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。

以满足不同的需要。

四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:超市管理管理系统查询模块排序模块退出系统退出系统查询模块排序模块统计模块*更新模块*输出信息¥录入信息按商品名查询利润排行库存量排行退出系统第二类商品第一类商品退出系统2 •功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

超市商品管理系统 实验报告

超市商品管理系统 实验报告

电子科技大学信息与软件工程学院实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告学生姓名:学号:指导教师:实验地点:实验时间:一、实验室名称:通用计算机软件实验室二、实验项目名称:超市商品信息管理系统三、实验学时:8学时四、实验原理:使用Visual Studio等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。

通过上机练习掌握在C编译器中编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的:掌握C语言中函数、结构体、指针数组、指针、字符串、文件操作等重点知识点,并且能够熟练运用。

掌握用C语言实现小型交互式软件的技术方法。

理解模块化编程的思路,学会用模块化的思想分解实际问题。

六、实验内容:以文本形式建立一个超市商品的基本信息库,其中包括商品序号,名称,价格,折扣,总数,余数等;编写C程序,读入文件并用结构存储商品信息,其中序号,名称,价格,折扣等结构成员采用字符串数组存储信息,而总数及余数则采用整型变量存储;编写函数,实现软件界面控制,商品信息初始化,商品信息的查找,修改,增删等操作;其中info_search函数实现用名称查找商品并调用info_output函数输出商品信息,info_insert函数和info_dele函数则实现商品信息的插入和删除,info_change调用info_search函数确认商品存在并实现对商品信息的修改;最后,退出系统,并将商品信息写入到商品信息文件,释放所有已分配的内存。

七、实验器材(设备、元器件):硬件要求:pc机,CPU PII 以上,64M 内存,100M 硬盘空间即可。

软件要求:Windows 7/XP/2003等,包括C编译器的IDE。

八、实验步骤、实验编程与运行结果:实验代码见文件2014220701027-陈家浩.c步骤一、打开程序,运行:(运行程序成功则表明商品信息文件被成功读入,失败会有提示)步骤二、实现商品信息的修改过程:输入要删除的商品的名字,然后info_change函数调用info_search函数查找到商品信息,然后进行修改;未查找到则提示“该商品不存在!”。

C语言课程设计_超市管理系统

C语言课程设计_超市管理系统

图6 程序主界面这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch 语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。

②键盘输入1,进入商品详细目录用以显示全部商品详细信息图7 显示信息界面该页面用printf输出,在利用指针读出链表中数据并利用合理计算计算出净利润等数据,再用while语句进行循环输出部数据③输入2按回车进入商品买卖页面。

如图8所示图8 买卖信息界面用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据④输入3按回车会进入商品登陆页面,此页面用来登陆商品。

如图9所示图9 登录信息界面将数据登陆入链表个变量中⑤输入4按回车进入商品修改模块如图10所示图10修改信息界面6输入5按回车进入商品删除模块如图11所示使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。

其中用到了while 循环语句,实现对链表中个数据的重写功能。

运行完后退出该函数图11删除信息界面4.设计体会原文已完。

下文为附加文档,如不需要,下载后可以编辑删除,谢谢!施工组织设计本施工组织设计是本着“一流的质量、一流的工期、科学管理”来进行编制的。

编制时,我公司技术发展部、质检科以及项目部经过精心研究、合理组织、充分利用先进工艺,特制定本施工组织设计。

一、工程概况:西夏建材城生活区27#、30#住宅楼位于银川市新市区,橡胶厂对面。

本工程由宁夏燕宝房地产开发有限公司开发,银川市规划建筑设计院设计。

本工程耐火等级二级,屋面防水等级三级,地震防烈度为8度,设计使用年限50年。

本工程建筑面积:27#楼3824.75m2;30#楼3824.75 m2。

室内地坪±0.00以绝对标高1110.5 m为准,总长27#楼47.28m;30#楼47.28 m。

总宽27#楼14.26m;30#楼14.26 m。

设计室外地坪至檐口高度18.6 00m,呈长方形布置,东西向,三个单元。

精编(市场营销店铺管理)超市商品信息系统设计报告及程序C语言

精编(市场营销店铺管理)超市商品信息系统设计报告及程序C语言

(市场营销店铺管理)超市商品信息系统设计报告及程序C语言苏州科技学院二○一三~二○一四学年第一学期电子仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一三年十二月1.题目《超市商品信息管理系统》的设计仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;实现2.功能(1)每一条记录包括一个商品的ID、名称、价格、保质日期。

(2)信息录入功能:仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;完成信息记录的追加仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;插入。

(3)信息排序功能:按商品ID、商品价格进行排序。

(4)信息查询功能:完成按商品ID、商品名称查找商品记录,仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;显示。

(5)读取功能:将保存在文件中的商品记录读取出来。

(6)修改信息功能:按商品的ID进行读取未修改前的数据,输入新信息,保存。

(7)删除功能:按商品ID删除商品信息记录,仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;保存。

(8)退出:退出主菜单,退出程序。

3.系统流程图4.设计内容整个系统除了主函数外,另外仍;之上;且;当下;和;可是;能够;俩;见;某公司;运营;有13个函数,实现八大功能:录入功能(追加、插入)、显示功能、查询功能、排序功能、删除功能、保存功能、读取功能。

各个函数的详细设计说明分别如下:4.1主函数main()利用无限次循环while(select!='0')和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

4.2菜单选择函数voidDisMainMenu();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!4.3信息录入函数intInformationInput(GOODSgoo[],intcn)这是一个含参函数,用来执行商品信息的追加、插入。

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

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

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

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

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

2 概要设计(1)数据结构依据给定的物品信息和数据形式,数组必须用结构体实现。

结构类型的层次结构:struct ima{int id;char name[20];char produce[30];int number;float price;};(2)模块划分依据程序的结构反和功能,遵照“自顶而下〞的原那么,描述该程序的层次结构图一显示了该程序的层次结构,共5层:如下列图:图一图一的层次结构1、void chushihua()2、增加物品Tianjia();3、删除物品信息Shanchu();4、Xiugai();Chazhao();6、Liulan();7、yanseshezhi();8、应用程序退出Jieshu();3 运行环境:Win2003, WinXP, Win2000, NT, WinME, Win9X4 开发工具和编程语言:编程语言:C语言开发工具:microsoft visual C++ 6.05 详细设计:1、结构体变量的定义:struct ima{int id;char name[20];char produce[30];int number;float price;};3、void chushihua(){FILE *fp;struct ima i={1,"花生牛奶","湖北武汉",1200,2.5};fp=fopen("ima.dat","w");if(fp==NULL){printf("\t\t\t系统错误,请重试........");exit(0);}fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);}4、void main(){printf("\n\n");system("color 1a");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、选择菜单void menu(){int choice;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){case 1:Tianjia();break;case 2:Shanchu();break;case 3:Xiugai();break;case 4:Chazhao();break;case 5:Liulan();break;case 6:yanseshezhi();break;case 7:Jieshu();break;default:printf("\n\t\t\t\t\t输入无效,请您重新输入......");getch();system("cls");menu();}}6、int panduanID(int id){FILE *fp;struct ima i;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){if(i.id==id){fclose(fp);return 1;break;}fread(&i,sizeof(struct ima),1,fp);}fclose(fp);return 0;}{ struct ima i;char choice;FILE *fp;fp=fopen("ima.date","ab");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}labID:printf("\n\t请您输入要入库物品的信息...\n");scanf("%d",&i.id);if(panduanID(i.id)==1){goto labID;}printf("\t\t\t\t 物品的名称:");scanf("%s",);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(struct ima),1,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、void Shanchu(){ struct ima i[1000];struct ima temp;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)){i[index]=temp;index++;fread(&temp,sizeof(struct ima),1,fp);}fclose(fp);scanf("%d",&delID);fopen("f:\\ima.date","w");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}for( j=0;j<index;j++){if(i[j].id!=delID){fwrite(&i[j],sizeof(struct ima),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、void Xiugai(){ int index=0;int ID,j;char choice;struct ima i[1000];struct ima temp;FILE *fp;fp=fopen("ima.dat","r");if(fp==NULL){printf("\t\t\t系统错误,请您重试........");exit(0);}fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)){i[index]=temp;index++;fread(&temp,sizeof(struct ima),1,fp);}fclose(fp);fp=fopen("ima.dat","w");if(fp==NULL){printf("\\t\t\t系统错误,请您重试........");exit(0);}scanf("%d",&ID);for(j=0;j<=index-1;j++){if(i[j].id!=ID){fwrite(&i[j],sizeof(struct ima),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、void Chazhao(){FILE *fp;int findID;char choice;struct ima i;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请你重试........");exit(0);}finID:scanf("%d",&findID);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){if(i.id==findID){printf("\n\n\t***************物品信息******************");printf("\n\t-----------------------------------------");printf("\n\t物品名称...%30s\n",);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(struct ima),1,fp);}fclose(fp);goto finID;}10、void Liulan(){ struct ima i;int index=0;char choice;FILE *fp;fp=fopen("ima.date","r");if(fp==NULL){printf("\t\t\t系统错误,请你重试........");exit(0);}fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)){index++;printf("\n\n\t****************物品信息%d*****************",index);printf("\n\t-----------------------------------------");printf("\n\t物品名称...%30s\n",);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(struct ima),1,fp);}fclose(fp);printf("\n您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){Liulan();}else{system("cls");menu();}}11、void yanseshezhi(){ int a;char choice;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){case 1:system("color 40");break;case 2:system("color 70");break;case 3:system("color 04");break;case 4:system("color 21");break;case 5:system("color 65");break;case 6:system("color 1a");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、void Jieshu(){char choice;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 调试分析:“;〞before tybe7测试结果:1、欢送界面2、系统选择界面:3、新购物品入库:4、物品信息删除:5、物品信息修改:6、物品信息查询7、物品信息浏览:8、系统颜色设置:9、应用程序退出:8 参考文献:课程设计总结C语言已学习了两个学期了。

c语言超市商品管理系统实训报告

c语言超市商品管理系统实训报告

超市商品管理系统实训报告1. 背景超市商品管理系统是为了提高超市的商品管理效率和服务质量而开发的一款软件系统。

传统的超市商品管理方式通常依赖于人工操作,存在着工作效率低下、易出错、信息不及时等问题。

为了解决这些问题,我们开发了一套基于C语言的超市商品管理系统。

2. 分析2.1 系统需求分析在进行系统设计之前,我们首先对超市商品管理的需求进行了全面的分析。

通过与超市管理员和员工的沟通和访谈,我们得出了以下主要需求:•商品信息管理:包括商品的录入、修改、查询和删除等功能。

•库存管理:包括库存数量的统计、调整和报警等功能。

•销售管理:包括销售记录的录入、查询和报表生成等功能。

•会员管理:包括会员信息的录入、修改、查询和积分计算等功能。

2.2 系统设计思路基于以上需求分析,我们设计了一套简单而实用的超市商品管理系统。

该系统采用模块化设计,分为以下几个模块:•商品信息模块:负责处理商品信息的录入、修改、查询和删除等操作。

•库存管理模块:负责处理库存数量的统计、调整和报警等操作。

•销售管理模块:负责处理销售记录的录入、查询和报表生成等操作。

•会员管理模块:负责处理会员信息的录入、修改、查询和积分计算等操作。

系统采用了文件存储方式,将商品信息、库存信息、销售记录和会员信息保存在不同的文件中,以便于数据的读取和修改。

系统还提供了简单的用户界面,方便管理员和员工进行操作。

3. 结果经过系统设计和开发,我们成功实现了超市商品管理系统。

该系统在测试中表现良好,满足了超市商品管理的基本需求,并具备以下特点:•界面友好:系统采用简洁直观的用户界面,方便用户进行操作。

•功能完善:系统实现了商品信息管理、库存管理、销售管理和会员管理等多个功能模块。

•数据准确:系统通过文件存储方式,保证数据的准确性和可靠性。

•操作简便:系统提供了简单易用的操作方式,降低了用户学习成本。

4. 建议虽然超市商品管理系统已经取得了一定的成果,但仍存在改进空间。

(店铺管理)语言超市管理系统报告书(C语言课程设计)最全版

(店铺管理)语言超市管理系统报告书(C语言课程设计)最全版

(店铺管理)语言超市管理系统报告书(C语言课程设计)课程设计课程设计名称:高级语言程序设计专业班级:计算机科学与技术0802班学生姓名:李旭学号:200848140202指导教师:范艳峰课程设计时间:2009年7月2号计算机科学与技术专业课程设计任务书学生姓名李旭专业班级计科0802 学号200848140202 题目超市管理系统课题性质其它课题来源自拟课题指导教师范艳峰同组姓名无主要内容用《C程序设计》中的链表作数据结构,结合C语言基本知识。

编写一个超市管理系统。

以把所学数据结构知识应用到实际软件开发中去。

本系统应完成一下几方面的功能:1)新购物品入库——Tianjia();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.05详细设计: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",);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();}elsesystem("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<index;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",);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",);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;经过分析,程序算法并无错误;后来询问老师,才发现原来在我所编的程序中,有需要变量时,都是用的时候才定义,但正确的方法是应该在函数的开头就应该将所要用的变量进行生命,否则就出现了编译错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(店铺管理)超市商品信息系统设计报告及程序C语言苏州科技学院二○一三~二○一四学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一三年十二月1.题目《超市商品信息管理系统》的设计与实现2.功能(1)每一条记录包括一个商品的ID、名称、价格、保质日期。

(2)信息录入功能:可以完成信息记录的追加与插入。

(3)信息排序功能:按商品ID、商品价格进行排序。

(4)信息查询功能:完成按商品ID、商品名称查找商品记录,并显示。

(5)读取功能:将保存在文件中的商品记录读取出来。

(6)修改信息功能:按商品的ID进行读取未修改前的数据,输入新信息,保存。

(7)删除功能:按商品ID删除商品信息记录,并保存。

(8)退出:退出主菜单,退出程序。

3. 系统流程图4.设计内容整个系统除了主函数外,另外还有13个函数,实现八大功能:录入功能(追加、插入)、显示功能、查询功能、排序功能、删除功能、保存功能、读取功能。

各个函数的详细设计说明分别如下:4.1主函数main()利用无限次循环while (select!='0')和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

4.2菜单选择函数void DisMainMenu();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!4.3信息录入函数int InformationInput(GOODS goo[],int cn)这是一个含参函数,用来执行商品信息的追加、插入。

其中GOODS goo[]是结构体数组,cn是本次录入商品记录的总数。

信息录入函数的流程图如下:信息录入函数的程序如下:int InformationInput(GOODS goo[],int cn){int number,i,m,n,a1,j,a2=0;char a3;printf("\n请输入本次录入的商品品种的总数: ");scanf("%d",&number);if(number>MAX_NUM-cn){printf("您输入的人数太多,大于%d人!\n",MAX_NUM-cn);system("pause");return(0);}printf("\n****1. 信息的追加****\t****2.信息的插入****\n");scanf("%d",&m);if(m==1){for(i=cn;i<number+cn;i++){printf("\t商品ID :\t");scanf("%d",&goo[i].ID);printf("\t商品名称:\t");fflush(stdin);scanf("%s",goo[i].name);for(j=0;j<i;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y')break;elsereturn(0);}elsecontinue;}printf("\t商品单价:\t");scanf("%f",&goo[i].price);printf("\t商品保质日期:\t");scanf("%d%d%d",&goo[i].guarant.year,&goo[i].guarant.month,&goo[i].guaran t.day);printf("\n");}printf("\n本次输入的信息是:\n");DisplayInformation2(goo,cn,cn+number);printf("\n");return(number+cn);}else if(m==2){printf("该数据插入在商品ID ? 之前: ");scanf("%d",&n);for(i=0;i<cn;i++){if(goo[i].ID==n){a1=i;break;}elsecontinue;}if(i<=cn-1){for(i=cn-1;i>=a1;i--){goo[i+number].ID=goo[i].ID;strcpy(goo[i+number].name,goo[i].name);goo[i+number].price=goo[i].price;goo[i+number].guarant.year=goo[i].guarant.year;goo[i+number].guarant.month=goo[i].guarant.month;goo[i+number].guarant.day=goo[i].guarant.day;}for(i=a1;i<a1+number;i++){printf("\t商品ID :\t");scanf("%d",&goo[i].ID);printf("\t商品名称:\t");fflush(stdin);scanf("%s",goo[i].name);printf("\t商品单价:\t");scanf("%f",&goo[i].price);printf("\t商品保质日期:\t");scanf("%d%d%d",&goo[i].guarant.year,&goo[i].guarant.month,&goo[i].guaran t.day);printf("\n");}for(i=a1;i<a1+number;i++){for(j=0;j<a1;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y'){break;break;}elsereturn(0);}elsecontinue;}for(j=a1+number;j<cn+number;j++){if(goo[j].ID==goo[i].ID || strcmp(goo[j].name,goo[i].name)==0){printf("\n警告:您输入的商品ID或商品名称与已有的数据文件相同,是否继续Y / N ?");fflush(stdin);scanf("%c",&a3);if(a3=='Y'||a3=='y'){break;break;}elsereturn(0);}elsecontinue;}}printf("\n本次输入的信息是:\n");DisplayInformation2(goo,a1,a1+number);printf("\n");return(number+cn);}else{printf("\n输入插入位置有误,请查询数据文件后重新插入!");system("pause");return(0);}}else{printf("输入错误!");return(0);}}4.4信息排序函数void Sort(GOODS goo[],int max);这是一个不返回值的有参函数,形参为max,负责对全部商品信息分别按商品ID、价格运用“冒泡法”进行升序排序。

void Sort(GOODS goo[],int max){int i,j,select;GOODS p;printf("\n***********************请选择排序方式**********************\n"); printf("\n\t1--按商品ID排序方式\t2--按商品价格排序方式\n");printf("\n***********************************************************\n"); printf("请选择(1--2) :");select=getche();getch();switch(select){case '1':printf(" 您选择的是按商品ID排序方式!\n");for(i=0;i<max-1;i++)for(j=0;j<max-1-i;j++)if(goo[j].ID>goo[j+1].ID){p=goo[j];goo[j]=goo[j+1];goo[j+1]=p;}break;case '2':printf(" 您选择的是按商品价格排序方式!\n");for(i=0;i<max-1;i++)for(j=0;j<max-1-i;j++)if(goo[j].price>goo[j+1].price){p=goo[j];goo[j]=goo[j+1];goo[j+1]=p;}break;default:printf("选择错误!\n");}}4.5显示记录函数4.5.1显示记录函数void DisplayInformation(GOODS goo[],int max);这是一个不返回值的有参函数,形参为max,负责对全部商品信息记录的显示。

相关文档
最新文档