C语言程序设计实验个人物品管理程序

合集下载

cC语言物品管理-设计报告

cC语言物品管理-设计报告

《C 语言物品管理》课程设计报告题目:C 语言物品管理 专业:网络工程 班级:16级(3)班 姓名:代应豪 指导教师:代美丽成绩:计算机学院2017 年 4月 27 日2016-2017学年 第2学期目录1设计内容及要求 (2)1.1概述 (2)1.2主要功能 (2)1.3设计目的及具体要求 (2)2 概要设计 (2)2.1系统的功能简介 (2)2.2 总体程序框图 (3)2.3各个模块之间的主要关系 (3)3设计过程及程序代码 (3)3.1定义结构体及宏定义 (4)3.2主函数 main() (4)3.3输入物品信息函数................................................... (5)3.4输出显示物品函数 (5)3.5将物品写入磁盘 (6)3.6插入物品记录函数 (7)3.7 删除一个物品记录函数 (7)3.8按照物品编号进行递增排序函数 (8)3.9按照物品总价进行递增排序函数 (8)3.10对物品记录进行排序函数 (9)3.11输出头部信息函数 (10)3.12输出一条物品信息函数....................................... .. (10)3.13判断该编号物品是否存在函数 (10)3.14根据物品编号进行查找函数 (10)3.15根据物品名字进行查找函数 (10)3.16对物品记录进行查找函数 (11)4设计结果与分析 (12)4.1各个模块的程序流程图 (12)1)①主函数程序(N-S)流程图及运行界面 (12)2)①输入物品记录信息的(N-S)流程图及程序运行界面.......... .. (13)5设计心得 (21)6参考文献 (22)7源程序代码(物品管理系统) (23)1.设计内容及要求1.1概述《物品管理系统》主要根据课程设计要求进行设计,从对物品的简单处理着手设计一份物品管理系统。

1.2主要功能物品管理系统是一个针对物品管理的系统。

商品管理系统设计c语言课程设计

商品管理系统设计c语言课程设计

商品管理系统设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握商品管理系统的设计与实现方法,培养学生运用C语言进行软件开发的实际能力。

具体目标如下:1.知识目标:使学生了解商品管理系统的功能和结构,掌握C语言的基本语法和编程技巧,了解数据结构的基本概念。

2.技能目标:培养学生能够使用C语言编写程序,实现商品管理系统的功能,培养学生解决实际问题的能力。

3.情感态度价值观目标:培养学生对软件开发的兴趣,增强学生的团队合作意识和创新精神。

二、教学内容本课程的教学内容主要包括三部分:商品管理系统的需求分析、商品管理系统的软件设计、商品管理系统的实现与测试。

具体安排如下:1.商品管理系统的需求分析:介绍商品管理系统的功能和结构,培养学生分析问题和需求的能力。

2.商品管理系统的软件设计:讲解C语言的基本语法和编程技巧,使学生能够使用C语言进行程序设计。

3.商品管理系统的实现与测试:介绍数据结构的基本概念,培养学生使用C语言实现和测试商品管理系统的能力。

三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。

具体方法如下:1.讲授法:通过讲解商品管理系统的需求分析、软件设计和实现与测试等方面的知识,使学生掌握课程的基本概念和原理。

2.案例分析法:通过分析实际案例,使学生了解商品管理系统的实际应用,培养学生分析问题和解决问题的能力。

3.实验法:通过上机实验,使学生掌握C语言的编程技巧,培养学生实现和测试商品管理系统的能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。

具体资源如下:1.教材:选用《C语言程序设计》作为教材,系统地介绍C语言的基本语法和编程技巧。

2.参考书:推荐《数据结构》等参考书,帮助学生深入了解数据结构的基本概念。

3.多媒体资料:制作课件和教学视频,生动形象地展示课程内容,提高学生的学习兴趣。

c语言程序设计_超_市_管_理_系_统

c语言程序设计_超_市_管_理_系_统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以便随时更新商品信息。

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

以满足不同的需要。

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

c语言课程设计物品管理

c语言课程设计物品管理

c语言课程设计物品管理一、教学目标本课程旨在通过C语言编程实现物品管理系统,让学生掌握C语言基本语法、数据结构、函数及文件操作等相关知识,培养学生具备一定的编程能力和问题解决能力。

具体目标如下:1.知识目标:–掌握C语言基本语法和编程规范。

–理解并运用数据结构(如数组、链表、栈和队列)进行编程。

–学会使用函数实现模块化编程。

–熟悉文件操作,能实现数据的读写操作。

2.技能目标:–能够运用C语言进行简单的程序设计。

–能够独立完成物品管理系统的编码和调试。

–具备查找和解决编程过程中遇到问题的能力。

3.情感态度价值观目标:–培养学生的团队合作意识和沟通表达能力。

–培养学生对编程的兴趣,激发创新精神。

–培养学生的自主学习能力,养成良好的学习习惯。

二、教学内容本课程以C语言编程实现物品管理系统为主线,教学大纲安排如下:1.C语言基础:介绍C语言的基本语法、数据类型、运算符、控制语句等。

2.数据结构:学习数组、链表、栈和队列等基本数据结构,并应用于物品管理系统的实现。

3.函数与模块化编程:学习函数的定义和调用,掌握模块化编程的方法。

4.文件操作:学习文件的基本操作,包括文件的打开、读写、关闭等。

5.项目管理:学习如何进行项目管理,包括需求分析、设计、编码、测试等。

6.物品管理系统实现:以小组为单位,分工合作完成物品管理系统的编码和调试。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解C语言基础知识和相关概念。

2.案例分析法:分析实际编程案例,让学生更好地理解知识点。

3.实验法:让学生动手实践,完成物品管理系统的编码和调试。

4.小组讨论法:分组合作完成项目,培养团队合作意识和沟通能力。

四、教学资源1.教材:选用权威、实用的C语言教材,如《C程序设计语言》(K&R)、《C Primer Plus》等。

2.参考书:提供相关的C语言编程参考书籍,如《C专家编程》、《C 陷阱与缺陷》等。

实验设备管理系统-c语言实现

实验设备管理系统-c语言实现

一、设计目的1.1 设计题目:设计实现一个实验设备管理系统。

实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

1.2 设计要求(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的破损耗费和遗损处理(4)设备的查询(5)采用二进制文件方式存储数据,系统以菜单方式工作1.3 系统功能需求分析系统功能需求:设备信息的录入、修改;设备分类统计;设备破损耗费和遗损处理;设备信息查询;二进制文件方式存储数据;菜单方式工作;用户操作流程:运行程序后会弹出菜单界面,根据菜单界面的提示选择需要完成的相应功能即可完成操作。

数据处理流程:通过input函数将用户输入的各信息以二进制文件方式存储数据,后续可根据需要调用change函数、sort函数、search函数以及del函数进行数据的相应处理,最后通过output函数实现数据的输出显示。

二、总体设计实验设备管理系统功能结构图如下所示:三、详细设计3.1 结构体struct equipment_infor//定义结构体包含各设备信息{char ID[20]; //设备编号int sort; //设备种类(1代表微机 2代表打印机 3代表扫描机)char name[20]; //设备名称float price; //设备价格char buy_date[20]; //设备购买日期int state; //设备状态(报废为1,未报废为0)char scrap_date[20]; //设备报废日期}device[NUM];定义结构体数组,其中包含设备所有信息,方便数据信息的录入、输出等。

3.2 主要函数3.2.1 void load()加载已有数据函数void load() //加载已有数据{count=0;FILE* fp_5=fopen("binary.txt","rb");if(fp_5==NULL){return;}for(int i=0;;i++,count++){if(feof(fp_5)!=0){count--;break;}fread(&device[i], sizeof(struct equipment_infor),1,fp_5);}fclose(fp_5);}此函数实现了加载已有信息的功能,能够使得下次运行时上次的数据得以保留,同时计算出了count的值,可提供后续函数for循环的循环条件,一举两得。

C语言课程设计---个人消费管理系统

C语言课程设计---个人消费管理系统

C语言课程设计---个人消费管理系统目录1 需求分析 (1)1.1 问题描述1.2输入数据要求 (1)1.2 输出数据要求 11.3 开发环境和工具 21.4 成员分工22总体设计 (3)2.1 总体设计思路 (3)2.2 模块结构图 32.3 模块说明43详细设计 (5)3.1 数据类型定义 53.2 算法思想 63.3具体实现7A 读入及保存文件模块7B 信息插入、删除模块7C 查找及显示信息模块9D 排序模块:按时间,类别,金额11E 统计模块154测试结果及分析 (21)5总结 (23)参考文献 (25)附录 (26)1 需求分析1.1问题描述当代大学生有着旺盛的消费需求,消费观念的超前和消费实力的滞后决定了他们特殊的消费心理和消费行为。

大学生科学消费观的建立和合理消费规划不仅关系到大学生健康消费心理的形成,还影响到大学生迈入社会后社会经济生活的适应能力,本系统将提供一个日常消费记录,统计,分析的平台,帮助大学生合理的管理自己的日常消费。

1.2输入数据要求消费表信息:时间,类别,品名,单价,数量,金额消费信息存放在文件中,以编号的先后顺序存放用户从键盘读入消费时间,类别,品名,单价,数量,金额,保存到文件中例如:sum:40.000000index:1 time:2009-8-4 type:1 name:hzw price:0.700000 num:5 sum:3.500000index:0 time:2010-8-9 type:1 name:hzw price:0.900000 num:41.3输出数据要求打开:显示文件中的所有消费记录,提供分页显示保存:将消费表的更新结果存入文件更新:可插入、删除、修改各消费记录查找:按时间,类别、品名查找消费记录排序:按时间,类别,金额统计:求各类别消费品的总金额,求各月的消费总金额,求各年的消费总金额例如:1.4开发环境和工具开发环境:Windows 2000开发工具:C Free5.01.5成员分工超人(郭振兴):系统测试、主调模块、、总体设计……蜘蛛侠(林莉莎):、查询模块、排序模块、更新模块……2总体设计2.1总体设计思路本设计主要包括数据录入模块,信息删除模块,查询显示模块,数据排序模块, 数据统计模块.2.2模块结构图根据需求将系统划分为五个功能模块如图所示2.3模块说明1.数据录入模块. 本模块的设计主要包括三个函数,struct Time (消费时间),enum TYPE(消费类型)struct ConsumeRecord (完整的消费记录)struct ConsumeRecord 函数主要实现程序的初始建库,把数据添加到文件中,其主要过程是打开文件,调用Time ,TYPE函数,将需要录入的数据从键盘输入,添加到文件中。

《C语言程序设计》实验报告(实验1-12)

《C语言程序设计》实验报告(实验1-12)

《C语言程序设计》实验报告(实验1-12)《C语言程序设计》实验报告20XX~20XX学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 一、实验目的:1.了解在Visual C++ 环境下如何xx、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C 源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1. 在Visual C++ 环境下输入并运行下面的程序:#include int main( ) {printf("This is a C program.\\n"); return 0; }2. 在Visual C++ 环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include int main( ) {int a,b,sum a=3; b=4; sun=a+b;print(“%d+%d=%d\\n”,a,b,sum); return 0; }四、实验结果:1. 运行结果(或截图):This is a C program.Press any key to continue- 1 -2. (1) 改正后的源程序:#include int main( ) {int a,b,sum; a=3; b=4; sum=a+b;printf(\ return 0; }(2) 运行结果(或截图):3+4=7五、思考题:1. 一个C程序上机的步骤有哪些?答:上级输入与xx源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。

2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:一个函数包括两部分:分别为函数头或函数首部和函数体。

成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。

《C语言程序设计》实验报告(实验1-11) 2013.3

《C语言程序设计》实验报告(实验1-11) 2013.3

《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:教材《C语言程序设计教程》第2章。

三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。

C语言课程设计--物资管理系统

C语言课程设计--物资管理系统

C语言课程设计--物资管理系统C语言程序设计报告——物资管理系统实习成员:姓名学号贡献率(%)e-mail 组长吴江099074337 34% 282800463@成员韩艺超099074321 33% yichcao80@ 黄杨洋099074323 33% 451250157@专业: 网络工程班级: 网092班指导教师: 程泽凯2010/12/12课题: 物资管理系统问题描述:建立物资管理信息系统,包括仓库内的物资信息、入库信息、车库信息等,物资信息为物资编号、物资名称、规格类型、类别、计量单位等;入库信息为物资编号、物资名称、规格型号、类别、计量单位、数理、单价、金额、入库时间、经办人、保管人等;出库信息为物资编号、物资名称、规格型号、类别、计量单位、数理、单价、金额、领用时间、经办人、领用人等;物资余额信息为物资编号、物资名称、规格类型、类别、计量单位、数量、金额等。

功能要求:(1)各种物资管理信息需要利用文件的形式进行存储。

(2)输入功能:可以从键盘或文件中一次性输入多条信息;(3)输出功能:可将入库、出库等信息打印输出或显示;(4)查找功能:根据物资信息、或经办人、保管人等查找出所需信息;(5)增加、删除、修改功能:完成物资信息的多种更新;(6)统计功能:完成入库、出库、库存等信息的统计功能。

总体设计:根据上面的分析及题目要求可以分为以下六个模块(系统模块如下图1。

)程序实现:(一)主函数一般设计简洁,用switch结构实现对各功能函数的调用,其中包括input()、load()、output ()、search()、count()、save()、quit()。

(所有函数中用链表实现数据的传递)printf("\n*************************************** *************************\n");printf(" input ");printf("\n*********************************** *****************************\n");memset(new_addr,0,sizeof(addr_product));new_addr->next=NULL;if(first==NULL){first=new_addr;}else{last=get_last(first);last->next=new_addr;}scanf_product(&(new_addr->pro));getchar();printf("\n>continue?(Y/N)");flag=getchar();if(flag=='Y'||flag=='y'){input();}printf("\n************************************* ************************\n\n");}Show():显示所有入库物资信息,通过遍历链表的每一个节点实现。

C语言程序设计实验的个人物品管理系统程序

C语言程序设计实验的个人物品管理系统程序

《程序设计与算法综合实习I》题目: 班级: 学生学个人物品管理程序号: 学生姓名:指导老师: 提交时间:成绩:华南农业大学信息学院《个人物品管理程序》1. 问题描述1.1问题描述设计一个个人物品管理程序,该程序具有以下功能:(1 )用户登录:输入用户名和密码,密码正确才允许登录。

(2)录入个人物品信息;(3)给定物品名或编号,修改该个人物品信息;(4)给定物品名或编号,删除该个人物品信息;(5)根据输入的物品名或编号,显示查找到的相应物品信息;(6 )根据输入的分类,显示该分类的所有物品信息;(7)根据输入的时间,查询过期或3月内将过期的物品信息;(8)统计功能:统计各分类的物品。

(9)新功能:导出个人物品信息至Excel表格。

1.2系统功能分析(1)登录功能:这是一个个人物品管理程序,具有很大的开放性,已经注册的用户可以直接输入密码登陆系统,没有注册的用户可以根据自己的需要注册账户,并输入个人物品信息。

(2 )录入个人物品信息:这个系统设置录入的物品信息主要包括物品的名称、编号、价格、分类、生产日期和过期日期。

(3)给定物品名或编号,修改个人物品信息:要修改物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以选择对应的物品信息进行修改。

(4)给定物品名或编号,删除个人物品信息:要删除物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以删除该物品信息。

(5)根据输入的物品名或编号,显示查找到的相应物品信息:输入你想查找的物品名或编号,若找到对应物品信息,则显示;否则提示用户查找的物品不存在,请重新输入想要查找的物品名或编号。

(6 )根据输入的分类,显示该分类的所有物品信息:若找到则显示该分类的物品信息,否则提示用户该分类不存在。

(7)根据输入的时间,查询已过期或3个月内将过期的物品信息:将物品的过期时间与输入时间作比较,若过期时间与输入时差小于3个月则输出对应物品信息。

(8 )统计功能:统计各分类的物品信息。

c语言课程设计物资管理系统

c语言课程设计物资管理系统

c语言课程设计物资管理系统一、教学目标本节课的教学目标是使学生掌握C语言在物资管理系统中的应用。

具体来说,知识目标要求学生了解物资管理系统的基本概念和C语言的基本语法;技能目标要求学生能够使用C语言进行简单的物资管理系统的开发;情感态度价值观目标则是使学生认识到C语言在实际应用中的重要性,激发他们对计算机编程的兴趣。

二、教学内容本节课的教学内容主要包括三个部分:首先是物资管理系统的基本概念,包括物资管理系统的定义、功能和分类;其次是C语言的基本语法,包括数据类型、变量、运算符和控制语句;最后是C语言在物资管理系统中的应用,包括物资信息的添加、删除、修改和查询等功能。

三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法相结合的方式。

首先是讲授法,教师将讲解物资管理系统的基本概念和C语言的基本语法;其次是讨论法,学生将分组讨论如何使用C语言实现物资管理系统的功能;接着是案例分析法,教师将展示一个简单的物资管理系统案例,学生将分析并模仿实现;最后是实验法,学生将在实验室环境中动手编写和测试C语言程序。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:教材《C语言程序设计》、参考书《C语言实战》、多媒体资料《C语言编程入门》和实验设备(计算机、编程环境等)。

这些资源将帮助学生更好地理解物资管理系统和C语言的基本概念,提高他们的编程技能。

五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与度、提问和回答问题的积极性等;作业主要评估学生的编程实践能力,如编写和调试C语言程序;考试则主要评估学生对物资管理系统和C语言基本概念的理解和掌握程度。

通过这些评估方式,我们可以全面了解学生的学习情况,及时发现和解决问题。

六、教学安排本节课的教学安排将分为五个课时,每个课时45分钟。

物品管理系统 C语言代码

物品管理系统 C语言代码

#include "stdio.h"#include "string.h"#define NAME_MAX_LEN 20#define Prod_MAX_NUM 50typedef struct{int num;char name[NAME_MAX_LEN];double unitprice;int amount;double totalprice;}prodNode;typedef struct sequence{prodNode data[Prod_MAX_NUM];int len;}seq;seq product;/*输入物品记录*/void inputGoods(){int i,n;printf("请输入物品个数:\n");scanf("%d",&n);if (n<0)return;for (i=0;i<n;i++){printf("请输入第%d个物品记录。

\n",i+1);printf("输入物品的编号:\n");scanf("%d",&product.data[i].num);printf("输入物品的名字:\n");scanf("%s",product.data[i].name);printf("输入物品的单价:\n");scanf("%lf",&product.data[i].unitprice);printf("输入物品的数量:\n");scanf("%d",&product.data[i].amount);product.data[i].totalprice=product.data[i].unitprice*product.data[i].amount;}product.len=n;}/*输出物品记录*/void outputGoods(){int i;if (product.len==0){printf("\n无数据!\n");return;}printf("\n物品的记录为:\n");printf("编号\t名字\t单价\t数量\t总价\n");for (i=0;i<product.len;i++){printf("%d\t%s\t%lf\t%d\t%.2lf",product.data[i].num,product.data[i].name,product.data[i].unitpric e,product.data[i].amount,product.data[i].totalprice);printf("\n");}}/*将物品记录写入文件*/void saveGoods(){int i;FILE *fp;if (product.len==0){printf("\n无数据!\n");return;}fp=fopen("C:\\Users\\admin\\Desktop\\goods.txt","w");if (fp==NULL){printf("文件打开失败!\n");return;}fprintf(fp,"%s\t","编号");fprintf(fp,"%s\t","名称");fprintf(fp,"%s\t ","单价");fprintf(fp,"%s\t","数量");fprintf(fp,"%s","总价");for (i=0;i<product.len;i++){ fprintf(fp,"\n");fprintf(fp,"%d\t",product.data[i].num);fprintf(fp,"%s\t",product.data[i].name);fprintf(fp,"%lf\t",product.data[i].unitprice);fprintf(fp,"%d\t",product.data[i].amount);fprintf(fp,"%.2lf",product.data[i].totalprice);}fclose(fp);printf("已成功存盘!\n");}/*插入一个物品记录*/void insertOneGoods(){prodNode G;int i,pos;if (product.len==Prod_MAX_NUM){printf("表已满!\n");return;}printf("请输入插入位置:");scanf("%d",&pos);if (pos<0||pos>product.len){ printf("插入位置出错!\n");return;}printf("请输入要插入的物品记录:\n");printf("请输入编号:");do {scanf("%d",&G.num);if (G.num<=0)printf("输入的编号不合理,请重新输入。

C语言程序课程设计商品进销存管理程序文件

C语言程序课程设计商品进销存管理程序文件

C语言程序课程设计商品进销存管理程序文件在当今商业活动日益频繁的时代,对于企业来说,有效地管理商品的进、销、存情况至关重要。

一个高效、准确的商品进销存管理系统能够帮助企业更好地掌握库存状况、优化采购策略、提高销售效率,并最终实现经济效益的最大化。

而在 C 语言程序设计课程中,设计一个商品进销存管理程序文件,不仅能够锻炼我们的编程能力,还能让我们深入理解程序设计在实际问题解决中的应用。

一、需求分析首先,我们需要明确商品进销存管理程序的功能需求。

它应该能够实现以下基本功能:1、商品信息的录入,包括商品名称、编号、进价、售价、库存数量等。

2、进货操作,能够记录每次进货的商品数量和进价,并更新库存数量和成本。

3、销售操作,记录每次销售的商品数量和售价,并更新库存数量和销售额。

4、库存查询,能够实时查询每种商品的库存数量和成本。

5、销售统计,能够统计一段时间内的销售总额和利润。

二、设计思路在明确了需求之后,我们来考虑程序的设计思路。

1、数据结构的选择我们可以使用结构体来表示商品信息,包括商品的各种属性。

为了存储多个商品的信息,可以使用数组或链表。

2、功能模块的划分商品信息录入模块,负责接收用户输入的商品信息并进行存储。

进货模块,处理进货相关的操作。

销售模块,处理销售相关的操作。

库存查询模块,提供库存信息的查询功能。

销售统计模块,计算和展示销售的统计数据。

3、输入输出的设计使用标准输入输出函数(如`scanf` 和`printf`)与用户进行交互。

三、代码实现以下是一个简单的 C 语言商品进销存管理程序的示例代码:```cinclude <stdioh>include <stdlibh>//定义商品结构体typedef struct {char name50;int id;float purchase_price;float selling_price;int stock_quantity;} Commodity;//商品信息录入函数void inputCommodity(Commodity commodity) {printf("请输入商品名称:");scanf("%s", commodity>name);printf("请输入商品编号:");scanf("%d",&commodity>id);printf("请输入商品进价:");scanf("%f",&commodity>purchase_price);printf("请输入商品售价:");scanf("%f",&commodity>selling_price);printf("请输入商品库存数量:");scanf("%d",&commodity>stock_quantity);}//进货函数void purchaseCommodity(Commodity commodity, int quantity, float purchase_price) {commodity>stock_quantity += quantity;//更新成本//}//销售函数void sellCommodity(Commodity commodity, int quantity) {if (commodity>stock_quantity >= quantity) {commodity>stock_quantity = quantity;//更新销售额//} else {printf("库存不足,无法销售!\n");}}//库存查询函数void queryStock(Commodity commodity) {printf("商品名称:%s\n", commodity>name);printf("商品编号:%d\n", commodity>id);printf("库存数量:%d\n", commodity>stock_quantity);//}//销售统计函数void salesStatistics(Commodity commodity) {//计算和打印销售总额、利润等统计信息//}int main(){Commodity commodity;int choice, quantity;float purchase_price;while (1) {printf("1、商品信息录入\n");printf("2、进货\n");printf("3、销售\n");printf("4、库存查询\n");printf("5、销售统计\n");printf("6、退出\n");printf("请选择操作:");scanf("%d",&choice);switch (choice) {case 1:inputCommodity(&commodity);break;case 2:printf("请输入进货数量:");scanf("%d",&quantity);printf("请输入进货单价:");scanf("%f",&purchase_price);purchaseCommodity(&commodity, quantity, purchase_price);break;case 3:printf("请输入销售数量:");scanf("%d",&quantity);sellCommodity(&commodity, quantity);break;case 4:queryStock(&commodity);break;case 5:salesStatistics(&commodity);break;case 6:exit(0);default:printf("无效的选择,请重新输入!\n");}}return 0;}```在上述代码中,我们定义了商品结构体来存储商品的相关信息,并实现了商品信息录入、进货、销售、库存查询和销售统计等功能。

个人物品信息管理系统C语言

个人物品信息管理系统C语言

#incl‎u de <‎s tdio‎.h>#‎i nclu‎d e <s‎t ring‎.h>#‎i nclu‎d e <m‎a th.h‎>#in‎c lude‎<std‎l ib.h‎>typ‎e def ‎s truc‎t z1 ‎/*定义数‎据结构*/‎{c‎h ar n‎a me[2‎0]; /‎*名称*/‎cha‎r num‎b er[6‎]; /*‎编号*/‎char‎cate‎g oty[‎10]; ‎/*分类*‎/ch‎a r en‎t er[9‎]; /*‎生产日期*‎/ch‎a r ou‎t[9];‎/*过期‎时间*/‎char‎time‎[5]; ‎/*保质期‎*/c‎h ar a‎d dres‎s[20]‎; /*生‎产地址*/‎str‎u ct z‎1 *ne‎x t;}‎G OODS‎;/*以‎下是函数原‎型*/G‎O ODS ‎*init‎(); /‎*初始化函‎数*/G‎O ODS ‎*crea‎t e();‎/*创建‎链表*/‎v oid ‎s ave(‎G OODS‎*h);‎/*保存‎*/GO‎O DS *‎d elet‎e(GOO‎D S *h‎); /*‎删除记录*‎/voi‎d cha‎n ge(G‎O ODS ‎*h); ‎/*修改记‎录*/v‎o id p‎r int(‎G OODS‎*h);‎/*显示‎记录*/‎v oid ‎s earc‎h1(GO‎O DS *‎h); /‎*按照物品‎名或编号查‎找记录*/‎void‎sear‎c h2(G‎O ODS ‎*h); ‎/*按照分‎类查找记录‎*/vo‎i d se‎a rch3‎(GOOD‎S *h)‎; /*按‎照输入时间‎查找记录*‎/GOO‎D S *i‎n dex(‎G OODS‎*h);‎/*索引‎*/GO‎O DS *‎l oad(‎); /*‎读入记录*‎/voi‎d tot‎a l(GO‎O DS *‎h); /‎*分类合计‎*/vo‎i d ap‎p end(‎); /‎/追加记录‎到文件中‎i nt m‎e nu_s‎e lect‎();i‎n t pa‎s swor‎d();‎/****‎*****‎**主函数‎开始***‎*****‎***/‎m ain ‎(){ ‎GOO‎D S *h‎e ad; ‎/*链表定‎义头指针*‎/he‎a d=in‎i t ()‎;‎syst‎e m("c‎l s");‎if(‎p assw‎o rd()‎){‎ f‎o r(;;‎)‎{‎‎ swi‎t ch(m‎e nu_s‎e lect‎()) /‎*调用主菜‎单函数,返‎回值为整数‎,作为开关‎语句的条件‎*/‎{‎case‎0:he‎a d=in‎i t();‎b reak‎; /*初‎始化链表*‎/‎‎case‎1:he‎a d=cr‎e ate(‎);bre‎a k; ‎/*创建‎链表*/‎‎‎ cas‎e 2:h‎e ad=i‎n dex(‎h ead)‎;brea‎k; /*‎索引*/‎‎case‎3:sa‎v e(he‎a d);b‎r eak;‎‎/*保存记‎录*/‎‎ ca‎s e 4:‎h ead=‎d elet‎e(hea‎d);br‎e ak; ‎/*删除记‎录*/‎cas‎e 5:c‎h ange‎(head‎);bre‎a k; /‎*修改记录‎*/‎case‎6:pr‎i nt(h‎e ad);‎b reak‎; /*显‎示全部记录‎*/‎‎c ase ‎7:sea‎r ch1(‎h ead)‎;brea‎k; /*‎按照物品名‎或编号查找‎记录*/‎ca‎s e 8:‎s earc‎h2(he‎a d);b‎r eak;‎/*按照‎分类查找记‎录*/ ‎cas‎e 9:s‎e arch‎3(hea‎d);br‎e ak; ‎/*根据输‎入时间查找‎记录*/ ‎‎case‎10:h‎e ad=l‎o ad()‎;brea‎k; /*‎读文件*/‎‎c‎a se 1‎1:tot‎a l(he‎a d);b‎r eak;‎/*分类‎合计*/‎ca‎s e 12‎:appe‎n d();‎b reak‎; /*追‎加记录*/‎‎‎c ase ‎13:ex‎i t(0)‎; /*如‎果菜单返回‎值为12,‎则程序结束‎*/‎}‎ }‎}}‎/*登录‎函数*/‎i nt p‎a sswo‎r d()‎{‎c har ‎p assw‎o rd[7‎]="12‎3456"‎;ch‎a r s1‎[10];‎cha‎r s2[‎8];‎i nt f‎l ag=0‎;in‎t n=3‎;pr‎i ntf(‎"‎ ***‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎***\n‎");‎p rint‎f(" ‎用‎户可以自己‎输入用户名‎,但密码已‎经确定,输‎入错\n"‎);p‎r intf‎(" ‎误并‎超过三次,‎将退出系统‎。

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

《程序设计与算法综合实习I》题目:个人物品管理程序班级:学生学号:学生姓名:指导老师:提交时间: 2015.05.16成绩:华南农业大学信息学院《个人物品管理程序》1.问题描述1.1问题描述设计一个个人物品管理程序,该程序具有以下功能:(1)用户登录:输入用户名和密码,密码正确才允许登录。

(2)录入个人物品信息;(3)给定物品名或编号,修改该个人物品信息;(4)给定物品名或编号,删除该个人物品信息;(5)根据输入的物品名或编号,显示查找到的相应物品信息;(6)根据输入的分类,显示该分类的所有物品信息;(7)根据输入的时间,查询过期或3月内将过期的物品信息;(8)统计功能:统计各分类的物品。

(9)新功能:导出个人物品信息至Excel表格。

1.2系统功能分析(1)登录功能:这是一个个人物品管理程序,具有很大的开放性,已经注册的用户可以直接输入密码登陆系统,没有注册的用户可以根据自己的需要注册账户,并输入个人物品信息。

(2)录入个人物品信息:这个系统设置录入的物品信息主要包括物品的名称、编号、价格、分类、生产日期和过期日期。

(3)给定物品名或编号,修改个人物品信息:要修改物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以选择对应的物品信息进行修改。

(4)给定物品名或编号,删除个人物品信息:要删除物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以删除该物品信息。

(5)根据输入的物品名或编号,显示查找到的相应物品信息:输入你想查找的物品名或编号,若找到对应物品信息,则显示;否则提示用户查找的物品不存在,请重新输入想要查找的物品名或编号。

(6)根据输入的分类,显示该分类的所有物品信息:若找到则显示该分类的物品信息,否则提示用户该分类不存在。

(7)根据输入的时间,查询已过期或3个月内将过期的物品信息:将物品的过期时间与输入时间作比较,若过期时间与输入时差小于3个月则输出对应物品信息。

(8)统计功能:统计各分类的物品信息。

(9)导出个人物品信息至Excel表格:每个人都可以将自己的物品信息导出至Excel 表格,可以对自己的个人物品信息一目了然。

1.3开发平台及工具介绍我这个程序是使用Code::Blocks10.05编写的,它是一个开放源码的全功能的跨平台C/C++集成开发环境,它使用了著名的的图形界面库wxWidgets版。

它还提供了许多工程模板,包括控制台应用、DirectX应用和动态链接库等,另外它还支持用户自定义模板;它支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试;它还具有灵活而强大的配置功能。

1.系统设计2.1系统总体结构设计(1)运行程序时,一开始我设置了对系统进行操作的选择界面,包括3个功能,一是登录系统,二是创建新账户,三是退出程序。

用户可以根据自己的实际情况进行选择,输入对应的操作数从而选择不同的功能。

我在这里使用了switch-case语句。

当用户选择了登陆系统或创建新账户操作时,程序会要求输入账号(20个字符以内),以及密码(10个字符以内),在输入密码时我使用了getch()函数(在头文件conio.h中)隐藏用户密码信息,当用户登陆成功或创建新用户成功时程序就会进入功能选择界面;如果用户选择退出程序,程序运行停止。

(2)功能选择界面,我提供了九个功能选择,分别是录入个人物品信息、给定物品名或编号,修改该个人物品信息、给定物品名或编号,删除该个人物品信息、根据输入的物品名或编号,显示查找到的相应物品信息、根据输入的分类,显示该分类的所有物品信息、根据输入的时间,查询已过期或3个月内将过期的物品信息、统计功能:统计各分类的物品信息、导出个人物品信息至Excel表格、退出到登陆界面。

根据用户输入的操作数,我使用了switch语句实现相应功能。

(3)录入个人物品信息:录入的物品信息包括物品的名称、编号、价格、分类、生产日期和过期日期。

我首先将信息录入链表中,之后用自定义的保存函数Save()将信息存入文件中。

(4)给定物品名或编号,删除个人物品信息:先输入要删除的物品名或编号,之后再通过文件指针在文件中找到相应物品信息并输出,用户确定无误后可以自行选择删除与否,若删除再调用Save函数,否则退回到功能选择界面。

(5)给定物品名或编号,修改个人物品信息:与删除个人物品信息一样,根据输入的物品名或编号,通过文件指针找到物品信息并输出,用户可以根据自己的需要选择修改对应的信息,在确认修改后,通过Save函数保存信息,放弃修改则退回功能选择界面。

(6)根据输入的物品名或编号,显示查找到的相应物品的所有信息,这也是通过文件指针实现的查找。

(7)根据输入的分类,显示该分类的所有物品信息:输入想查找的分类,使用一个字符数组记录输入的分类,使用文件指针对文件进行只读操作,将输入的分类与fgets()读出的分类比较,若相同则输出对应物品所有信息,直到文件指针为空。

(8)根据输入的时间,查询已过期或3个月内将过期的物品信息:按照固定的时间输入格式(如2015年1月1日则写成20150101)输入时间,再与文件中的过期时间比较,通过比较,输出输入时间与过期时间之差小于3个月的物品信息。

(9)统计功能:统计各分类的物品信息,使用文件指针对文件进行读操作,分别记录不同分类的物品个数,之后输出分类信息和对应的物品个数。

(10)导出个人物品信息至Excel表格:创建新的文件指针,将链表里的信息写入名为“goods.xls”的Excel文件里,输出的时候包括跳格符‘\t’和换行符‘\n’符号,保证输出格式的正确性。

(11)退出到登陆界面,其他用户可以继续使用该系统。

2.2数据结构设计我主要定义了用户信息结构user和物品信息结构Goods,还有使用了3个文件,分别用于存放用户信息和物品信息。

用户信息结构体struct user{char username[20];char password[8];};username是账号,password是密码。

物品信息结构体typedef struct wp //定义数据结构{char name[20]; /*名称*/char number[6];/*编号*/char price[6];/*价格*/char categoty[10]; /*分类*/char MFG[9]; /*生产日期*/char EXP[9]; /*过期时间*/struct wp *next;}Goods;2.3系统各个函数及函数之间关系设计开始登陆系统2.4界面设计(1)开始界面(2)功能选择界面(3)查找物品界面(4)录入新物品(5)删除物品信息界面(6)修改物品信息界面(7)输出物品分类界面(8)查询过期物品界面(9)统计分类信息界面(10)导出物品信息到Excel表格界面3.系统实现①登陆模块登录系统欢迎使用个人物品管理系统创建新账户退出系统选择对应操作,登陆时用户名或密码错误会提示输入账号或密码错误,并退回到本界面;创建新账户成功后会提示创建成功,并退到本界面,只需用刚创建的用户名和密码登陆即可,只有用户和密码都正确,才会提示登陆成功并跳转到功能选择界面。

②录入个人物品信息物品名称物品编号物品价格录入物品信息物品分类生产日期过期时间按照提示输入相应的物品信息。

③输入物品名或编号之后,程序会输入对应物品信息,确认删除后才会删除对应物品信息并保存。

物品名称物品编号物品价格删除物品信息物品分类生产日期过期时间④修改物品信息:输入物品名或编号之后,程序会输入对应物品信息,可以选择对应信息进行修改。

列出要修改物品所有信息修改物品信息选择对应信息进行修改⑤查找物品信息输入物品名或编号查找物品信息列出对应物品信息⑥根据输入的分类,显示该分类的所有物品信息输入物品分类根据输入分类显示物品信息列出对应物品信息⑦根据输入的时间,查询已过期或3个月内将过期的物品信息输入查询时间查询过期物品或三个月内过期物品比较输入的时间和过期时间输出对应物品信息⑧统计功能:统计各分类的物品信息用不同变量记录不同分类的物品个数统计各分类的物品信息用文件指针对文件进行读写输出物品分类及对应物品个数⑨导出个人物品信息至Excel表格输出物品存储信息项目名称导出物品信息到Excel表格1.系统测试(1)设计测试用例:登陆账号名称:2 密码:123456名称编号价格(元)分类生产日期过期时间钢笔1100文具笔芯210文具尺子35文具铅笔410文具可乐55饮料雪碧65饮料加多宝75饮料水壶850日常用品书910生活用品手表1150用具物品信息:录入个人物品信息:名称:水杯编号:10 价格:50 分类:日常用品生产日期:20140101过期时间:20160101删除物品信息:名称:钢笔编号:01修改个人物品信息:修改编号为11的物品名称为灯查找物品信息:查找编号为10的物品信息根据输入分类输出该分类所有物品:输入文具过期物品查询:输入时间为20160101统计各分类物品个数;导出物品信息到Excel表格;预期结果:全都符合要求。

1.系统运行界面:①登录系统②录入个人物品信息③删除物品信息④修改个人物品信息⑤查找物品信息⑥根据输入分类输出该分类所有物品⑦过期物品查询⑧统计各分类物品个数⑨导出物品信息到Excel表格(3)运行结果与预期结果相同。

1.总结刚开始设计时毫无头绪,代码也是写得一团糟,感觉自己对上学期的内容好陌生,所以决定还是先把有关内容看一遍。

后来我看了课本和上网查了有关资料,然后再仔细地看了一遍题目要求:信息要求必须存在文件里面,而且数据操作要用链表,所以我将程序设计为开始时读取文件信息到链表,退出时再把链表信息全部覆盖写回文件里面。

但是在实际操作中发现自己对链表这一块还是不太熟悉,所以又去找了一些和链表有关的资料。

最后自己就边摸索着尝试了一下,最后发现原来也不是特别难,其实最大的欠缺就是动手能力差。

这次的程序设计,我觉得不仅是让我复习了上学期学过的内容,更是发现了自己在学习上的许多缺点和不足,也是给了自己一个反省的机会,我觉得自己在以后的学习中必须要将理论与实际相结合,在巩固理论知识的基础上一定要将其付诸实践,要敢于尝试,不要让一次的失败就让自己士气全无。

附(源代码):#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#include<conio.h>struct user//用户信息{char username[20];char password[8];};typedef struct wp //定义数据结构{char name[20]; /*名称*/char number[6];/*编号*/char price[6];/*价格*/char categoty[10]; /*分类*/char MFG[9]; /*生产日期*/char EXP[9]; /*过期时间*/struct wp *next;}Goods;void Newuser(void)//创建新账户{printf(" 欢迎创建新账户!\n"); FILE *fp;char p[10];int i=0;void encrypt(char *mima);//加密算法struct user su;if((fp=fopen("f:\\usermessage","a+"))==NULL){printf("文件打开失败!\n");exit(0);}printf("请输入新账号:");scanf("%s",ername);printf(" 请输入密码:");while((p[i]=getch())!='\r'){printf("*");i++;}p[i]='\0';strcpy(su.password,p);encrypt(su.password);fprintf(fp,"%s %s\n",ername,su.password);if(fclose(fp)){printf("文件无法关闭!\n");exit(0);}printf("\n 恭喜你成功创建新账户!\n"); }void encrypt(char *mima)//加密程序{int i,j;j=strlen(mima);for(i=0;i<j;i++)mima[i]=mima[i]^15;;}int Login(char *mark)//用户登录{system("color 0A");struct user su;FILE *fp;int i=0;char usr[30],usr1[30],mima[10],p[10];int check=0;printf("请输入账号名称:");scanf("%s",ername);printf("请输入登录密码:");while((p[i]=getch())!='\r'){printf("*");i++;}p[i]='\0';strcpy(su.password,p);strcpy(usr,ername);strcpy(mima,su.password);encrypt(mima);strcat(usr," ");strcat(usr,mima);strcat(usr,"\n");if((fp=fopen("f:\\usermessage","r"))==NULL){printf(" error!\n");exit(0);}while(!feof(fp)){fgets(usr1,30,fp);if(strcmp(usr,usr1)==0){check=1;break;}}if(fclose(fp)){printf("Can not close the file\n");exit(0);}if(check==1){printf("\n 恭喜你,登陆成功!\n");//登陆成功strcpy(mark,ername);return 1;}else{printf("\n 用户名或密码错误,请重新登陆\n");return 0;}}void Save(Goods *h,char *mark)//保存记录{FILE *fp;Goods *p;char wp[20];strcpy(wp,mark);strcat(wp,".dat");if((fp=fopen(wp,"wb"))==NULL){printf(" Can't open the file!\n");exit(0);}printf("\n Save succefully!\n");p=h;while(p!=NULL){fwrite(p,sizeof(Goods),1,fp);p=p->next;}fclose(fp);.}Goods *Load(char *mark)//读入记录{Goods *p,*q,*h=NULL;char ch;FILE *fp;char wp[20];strcpy(wp,mark);system("cls");strcat(wp,".dat");if((fp=fopen(wp,"ab+"))==NULL){printf(" Can't open the file!\n");exit(1);}p=(Goods *)malloc(sizeof(Goods));if(!p){printf(" Memory overflow!\n");return h;}h=p;ch=fgetc(fp);if(ch==EOF){h=NULL;p->next=NULL;return h;}rewind(fp);while(!feof(fp)){if(1!=fread(p,sizeof(Goods),1,fp))break;p->next=(Goods *)malloc(sizeof(Goods));if(!p->next){printf(" Memory overflow!\n");return h;}q=p;p=p->next;}q->next=NULL;fclose(fp);return h;}void Excel(char *mark)//新功能,将物品信息导出至Excel表格{system("cls");Goods *p,*head=Load(mark);p=head;FILE *fpex;int i=0;if((fpex=fopen("goods.xls","w"))==NULL){system("color 04");printf("文件导出失败!");exit(0);}fprintf(fpex,"名称编号价格(元)分类生产日期过期时间\n");while(p!=NULL){fprintf(fpex,"%s %s %s %s %s %s\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);p=p->next;i++;}if(fclose(fpex)){printf("Can't close the file!\n");exit(0);}if(i){printf("\n");printf(" ┏━━━━━━━━━━━━━━┓\n");printf(" ┃文件成功导出至“goods.xls”.┃\n");printf(" ┗━━━━━━━━━━━━━━┛\n");}else{system("color 04");printf("\n┏━━━━━━━━━━━━━━━┓\n");printf("┃导出至文件“goods.xls”失败!┃\n");printf("┗━━━━━━━━━━━━━━━┛\n");}}void DeleteGoods(char *mark){//给定物品名或编号,删除该个人物品信息system("cls");char s[10];int i=0,a=1,j=0;int k;Goods *p,*q,*head=Load(mark);p=head;while(a==1){printf("输入要删除物品名或编号:");scanf("%s",s);while(p!=NULL){i++;if(strcmp(s,p->name)==0)break;if(strcmp(s,p->number)==0)break;p=p->next;};if(p!=NULL){printf("########################################################################### #####");printf(" 要删除物品名:");printf("%s\n",p->name);printf(" 要删除物品编号:");printf("%s\n",p->number);printf(" 要删除物品价格:");printf("%s\n",p->price);printf("要删除物品生产日期:");printf("%s\n",p->MFG);printf(" 要删除物品分类:");printf("%s\n",p->categoty);printf("要删除物品过期时间:");printf("%s\n",p->EXP);printf("########################################################################### #####");a=2;}else{printf("您要删除的物品不存在!请重新输入!\n");}}printf("你确定要删除该物品的信息吗?\n1.是 2.否\n");scanf("%d",&k);if(k==1){if(i==1)head=head->next;else{p=head;while(p->next&&j<i-2){p=p->next;++j;}if(!(p->next)||j>i-1)exit(0);q=p->next;p->next=q->next;free(q);}Save(head,mark);printf(" 你已成功删除该物品信息!\n"); }else printf("你已取消删除操作!\n");}void AddNewGoods(char *mark)//录入个人物品信息{system("cls");Goods *p,*head,*s,*q;head=Load(mark);p=q=head;int a=1;s=(Goods*)malloc(sizeof(Goods));printf("┌┬┬┬┬┬┬┬┬┬┐\n");printf("├ 请输入新物品信息┤\n");printf("└┴┴┴┴┴┴┴┴┴┘\n");printf(" 输入物品名称:");scanf("%s",s->name);while(a==1){while(q!=NULL){if(strcmp(s->name,q->name)==0)break;q=q->next;};if(q!=NULL){printf("该物品名已存在,请重新输入物品名:");scanf("%s",s->name);q=head;}else{a=2;q=head;}}printf(" 输入物品编号:");scanf("%s",s->number);while(a==2){while(q!=NULL){if(strcmp(s->number,q->number)==0)break;q=q->next;};if(q!=NULL){printf("该物品编号已存在,请重新输入物品编号:");scanf("%s",s->number);q=head;}else{a=3;q=head;}}printf(" 输入物品价格(元):");scanf("%s",s->price);printf(" 日期输入格式(例:20150101)\n");printf(" 输入物品生产日期:");scanf("%s",s->MFG);printf(" 输入物品过期日期:");scanf("%s",s->EXP);printf(" 输入物品分类:");scanf("%s",s->categoty);s->next=NULL;if(p==NULL){Save(s,mark);}else{while(p->next!=NULL){p=p->next;}p->next=s;Save(head,mark);}}void SearchGoods(char *mark)//根据输入的物品名或编号,显示查找到的相应物品信息{system("cls");char s[10];printf("输入物品名或编号:");scanf("%s",s);Goods *head,*q;head=Load(mark);q=head;while(q!=NULL){if(strcmp(s,q->name)==0)break;if(strcmp(s,q->number)==0)break;q=q->next;};if(q!=NULL){printf(" 物品名:");printf("%s\n",q->name);printf(" 物品编号:");printf("%s\n",q->number);printf(" 物品价格:");printf("%s\n",q->price);printf(" 物品生产日期:");printf("%s\n",q->MFG);printf(" 物品过期日期:");printf("%s\n",q->EXP);printf(" 物品分类:");printf("%s\n",q->categoty);}else printf("没有找到该物品!\n");}void ChangeGoods(char *mark)//给定物品名或编号,修改该个人物品信息{system("cls");char s[10];int choice=0;int i=1;int k;printf("输入要修改物品名或编号:");scanf("%s",s);Goods *head,*p,*q;Goods w;head=Load(mark);p=q=head;while(p!=NULL){if(strcmp(s,p->name)==0)break;if(strcmp(s,p->number)==0)break;p=p->next;};if(p!=NULL){printf("########################################################################### #####");printf(" 修改物品基本信息:\n");printf(" 物品名:");printf("%s\n",p->name);printf(" 物品编号:");printf("%s\n",p->number);printf(" 物品价格:");printf("%s\n",p->price);printf(" 物品生产日期:");printf("%s\n",p->MFG);printf(" 物品过期时间:");printf("%s\n",p->EXP);printf(" 物品分类:");printf("%s\n",p->categoty);printf("########################################################################### #####");printf(" 请输入要修改的物品信息:\n");printf("1.物品名");printf(" 2.物品编号\n");printf("3.物品价格");printf(" 4.物品生产日期\n");printf("5.物品过期时间");printf(" 6.物品分类\n");scanf("%d",&choice);switch(choice){case 1:printf(" 请输入修改后物品名:");scanf("%s",);while(i==1){while(q!=NULL){if(strcmp(,q->name)==0)break;q=q->next;};if(q!=NULL){printf("该物品名已存在,请重新输入物品名:"); scanf("%s",);q=head;}else{i=2;q=head;strcpy(p->name,);}}break;case 2:printf("请输入修改后的物品编号:");scanf("%s",w.number);{while(q!=NULL){if(strcmp(w.number,q->number)==0)break;q=q->next;};if(q!=NULL){printf("该物品名已存在,请重新输入物品名:");scanf("%s",w.number);q=head;}else{i=2;q=head;strcpy(p->number,w.number);}}break;case 3:printf("请输入修改后的物品价格:");scanf("%s",p->price);case 4:printf("请输入修改后的物品生产日期:");scanf("%s",p->MFG);case 5:printf("请输入修改后的物品过期时间:");scanf("%s",p->EXP);case 6:printf("请输入修改后的物品类别:");scanf("%s",p->categoty);default: printf("输入错误!请重新输入要修改的物品信息:"); scanf("%d",&choice);break;}}else printf("没有找到该物品!\n");printf("你确定修改信息?\n1.是 2.否\n");scanf("%d",&k);if(k==1){Save(head,mark);printf("物品信息已完成修改!\n");}else printf("你已取消修改物品信息!\n");}void Sort(char *mark)//根据输入的物品名或编号,显示查找到的相应物品信息{system("cls");Goods *head,*p,*q,*k;int i=1;head=Load(mark);q=p=k=head;char s[10];system("cls");while(i==1){printf("请输入需要查找的该分类:");scanf("%s",s);while(q!=NULL){if(strcmp(s,q->categoty)==0)break;q=q->next;};printf("|名称 |编号 |分类 |\n");if(q!=NULL){for(;;){if((strcmp(p->categoty,s)==0)&&p!=NULL){printf("|%-10s|%-6s|%-10s|\n",p->name,p->number,p->categoty); }p=p->next;if(p==NULL){i=2;break;}}}else {printf("您输入的分类不存在,请重新输入!\n");q=k;}}}void AllSort(char *mark)//根据输入的分类,显示该分类的所有物品信息{system("cls");Goods *head,*p,*q;char b[10];int i=0;head=Load(mark);p=q=head;typedef struct lb{char categoty[20];struct lb *next;}lb;lb *k,*l,*m,*s,*j;k=(lb*)malloc(sizeof(lb));k->next=NULL;l=(lb*)malloc(sizeof(lb));s=(lb*)malloc(sizeof(lb));j=(lb*)malloc(sizeof(lb));s=k;l=k;if(head==NULL){printf("不存在任何物品!\n");}else{while(p!=NULL){while(l->next!=NULL){j=l->next;if(strcmp(j->categoty,p->categoty)==0){l=s;p=p->next;}else l=l->next;}m=(lb*)malloc(sizeof(lb));strcpy(b,p->categoty);strcpy(m->categoty,b);m->next=k->next;k->next=m;k=m;l=s;p=p->next;}}printf("物品各分类数目:\n");while(s->next!=NULL){printf("%s:",s->next->categoty);strcpy(b,s->next->categoty);while(q!=NULL){if(strcmp(b,q->categoty)==0)i++;q=q->next;};if(q==NULL){printf("%d\n",i);i=0;q=head;}s=s->next;}}int atoi(const char *s)//把字符窜转换成整型数{int a,b,c,d;a=strlen(s);c=s[a-2]-'0';b=s[a-1]-'0';d=c*10+b;return d;}void SearchTime(char *mark)//根据输入的时间,查询过期或3月内将过期的物品信息{system("cls");char t[9],t1[5],t2[7],t3[9],t4[5],t5[7],t6[9];int a1,a2,a3,a4,a5,a6;int x,y,z,n,m;Goods *p;system("cls");printf("输入要查找的时间:");scanf("%s",t);memcpy(t1,t,4);memcpy(t2,t,6);memcpy(t3,t,8);t1[4]='\0';t2[6]='\0';t3[8]='\0';a1=atoi(t1);a2=atoi(t2);a3=atoi(t3);p=Load(mark);if(p==NULL){printf("你尚未存储任何物品信息!\n");}else{printf("|名称 |编号 |价格 |分类 |生产日期 |过期时间 |\n");while(p!=NULL){memcpy(t4,p->EXP,4);memcpy(t5,p->EXP,6);memcpy(t6,p->EXP,8);t4[4]='\0';t5[6]='\0';t6[8]='\0';a4=atoi(t4);a5=atoi(t5);a6=atoi(t6);if(a1>a4){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if(a1==a4){x=a2-a5;if(x>=-2){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if(x==-3){y=a3+30;z=y-a6;if(z>=0){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}}}}else{n=a4-a1;if(n==1){m=a5-12;if((m+a2)<=2){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}else{if((m+a2)==3){if(a6<=a3){printf("|%-10s|%-6s|%-6s|%-10s|%-9s|%-9s|\n",p->name,p->number,p->price,p->categoty,p->MFG,p->EXP);}}}}}}p=p->next;}}}int Inputchoice()//输入操作数{system("color 0B");int mychoice;printf("--------------------------------------------------------------------------------");printf("请选择你的操作:\n");printf(" 1.查找物品信息. 2.增加新物品.\n");printf(" 3.删除物品信息. 4.修改物品信息.\n");printf(" 5.输出分类信息. 6.查询过期物品.\n");printf(" 7.显示所有分类信息. 8.导出物品信息至Excel表格.\n");printf(" 9.退出到登陆界面.\n");printf("--------------------------------------------------------------------------------");scanf("%d",&mychoice);return mychoice;}int Operation(char *mark)//操作选择{system("color 02");int choice;while((choice=Inputchoice())!=0){switch(choice){case 1:SearchGoods(mark);break;case 2:AddNewGoods(mark);break;case 3:DeleteGoods(mark);break;case 4:ChangeGoods(mark);break;case 5:Sort(mark);break;case 6:SearchTime(mark);break;case 7:AllSort(mark);break;case 8:Excel(mark);break;case 9: system("cls");return 0;default:printf("输入有误!");break;}}return 0;}int main()//主函数{system("color 02");int choice,i=1;char mark[20];printf(" ╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf(" ╠欢迎使用个人物品管理系统!╣\n");printf(" ╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n");while(i){printf("*************************************************************************** *****");printf(" 请选择你的操作:\n");printf(" 1.登陆系统\n");printf(" 2.创建新账户\n");printf(" 3.退出程序\n");printf("*************************************************************************** *****");printf(" ");scanf("%d",&choice);switch(choice){case 1:if(Login(mark)==1)Operation(mark);//登陆个人用户管理系统break;case 2:Newuser();break;case 3:exit(0);default:break;}}return 0;}。

相关文档
最新文档