您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > C语言程序设计报告(玩具销售系统)
姓名:学号:课程:C程序设计课程设计报告题目:玩具资料管理系统完成日期:2012/5/3指导老师:目录1.软件功能和模块设计................................................12.各模块详细说明....................................................12.1主程序模块..................................................12.2数据载入模块.................................................32.5玩具资料添加模块.............................................52.6玩具信息查询模块.............................................62.7显示所有玩具信息模块.........................................72.8按价格查询模块...............................................72.9按玩具名称查询模块...........................................82.10删除玩具信息模块............................................92.11数据文件toys.dat..........................................103.软件工作流程....................................................103.1用户登录玩具资料管理系统的主界面............................103.2输入A显示的玩具资料添加界面...............................113.3展示所有玩具资料界面........................................123.4查询指定价格区间内玩具资料..................................133.5查询指定名称的玩具资料......................................143.6错误输入....................................................153.7删除所有玩具资料............................................153.8退出程序....................................................164总结.............................................................1611.软件功能和模块设计设计玩具资料管理系统的目的是,通过模拟玩具店的管理模式,掌握程序设计的基本过程以及基本的方法,提高实际问题的分析能力和C语言程序设计的各种编程技能,此来提高自己的综合能力。玩具资料管理系统涉及到玩具资料的添加、删除和玩具资料的展示(包括所有的玩具资料展示和部分资料的展示),此外,还可以查找在某价格区间的玩具资料,或者按照玩具的名称来查找。本次课程设计中,采用的结构体数据类型Toy_type表示玩具资料具有的名称,代号,适合的年龄组,材料,性质,价格等属性,采用数据文件的方式存储玩具资料,并以菜单结合人机对话的方式完成系统的各项操作。根据上述的系统要求分析,对本软件系统做如下的模块划分:图1-1玩具资料管理系统模块划分2.各模块详细说明对图1.1中各个子模块作详细说明如下:2.1主程序模块模块名称main()参数说明Main()Add_toy()Show_toy()Show_all_toy()List_one_name()Find_a_toy()Delete_all_toys()load_date()Save_date()Toy_count()2Toys——存放玩具资料的数组,数据类型为结构体toy_type型Option——用户的菜单选项,数据类型为字符型Option的选项值以此为:A—玩具资料的添加;S—展示所有玩具的资料;F—按照价格区间寻找特定玩具的资料;L—列出指定名称玩具的资料;D—删除所有玩具的资料;Q—退出系统;case'A':add_toy(toys);break;case'S':show_all_toys(toys);break;case'F':find_a_toy(toys);break;case'L':list_one_name(toys);break;case'D':delete_all_toys(toys);break;case'Q':break;功能介绍该模块为用户开始使用本软件提供了接口,是进行人机对话的窗口,需要用户按菜单的提示输入所选择的功能选项,进入相应的功能模块。编程方法本模块中以一个完整的do循环结构实现主菜单功能,其中:以option=getchar();语句实现用选择项的输入;以if(option96&&option123)option=option-32;实现输入大小写的一致化;以switch(option)多选项结构语句实现语句菜单项选择,其中的default语句对无法识别的选择项进行处理;主程序源代码//主函数voidmain(){structtoy_typetoys[MAX_toys];charoption;//选项do{load_data(toys);/*打开cars.dat文件*//*显示主菜单*/system(cls);/*清屏语句*/printf(\n\n\tWelcometoToyshop);printf(\n\t─────────────);printf(\n\tAddaToy\tA);printf(\n\tShowalltoys\tS);printf(\n\tFindatoy\t\tF);printf(\n\tListtoysofonename\tL);printf(\n\tDeletealltoys\tD);3printf(\n\tQuit\t\t\tQ);printf(\n\t─────────────);printf(\n\tOption:);/*输入选择项*/option=getchar();if(option96&&option123)option=option-32;/*按照选项调用相应函数*/switch(option){case'A':add_toy(toys);break;case'S':show_all_toys(toys);break;case'F':find_a_toy(toys);break;case'L':list_one_name(toys);break;case'D':delete_all_toys(toys);break;case'Q':break;default:{printf(\nUnrecongnisedoption\nPleasepressanykeytocontinue!);getch();}}}while(option!='Q');}2.2数据载入模块模块名称load_date参数说明Cars[]——存放玩具资料的形参数组,数据类型为结构体toy_type型Toys.dat——本模块操作的二进制数据文件,格式为结构体toy_type型功能介绍以只读的形式打开一个二进制文件toys.dat,若文件不存在,则新建该文件,否则读入该文件的内容直结构体数组toys中。调用函数toy_count统计库存量并显示。编程方法定义文件指针in_file;以只读方式rb打开一个二进制文件,以if(in_file==NULL)判断,若文件不存在,以只写方式wb新建一个二进制文件,否则将文件内容读入结构体数组toys中。最后关闭文件。Load_date源代码voidload_data(structtoy_typetoys[])4{intrecord_no;/*定义文件指针*/FILE*in_file;//FILE数据类型的指针变量/*数组price[]清零*/for(record_no=0;record_noMAX_toys;record_no++)toys[record_no].price=0;/*打开toys.dat文件*/in_file=fopen(toys.dat,rb);//rb以只读的形式打开一个二进制文件/*若文件不存在则新建该文件,否则读入该文件内容至结构体数组toys中*/if(in_file==NULL)in_file=fopen(toys.dat,wb);//以只写的方式打开一个二进制文件elsefread(toys,sizeof(structtoy_type),MAX_toys,in_file);/*调用函数toy_count统计库存量并显示*/printf(\nNooftoysinstockis%d,toy_count(toys));fclose(in_file);}2.3数据文件保存模块模块名称save_date参数说明Toys[]——存放玩具资料的形参数组,数据类型为结构体toy_type型功能介绍将添加的数据保存在文件toys.dat中。编程方法定义文件指针*out_file以只写方式打开文件toys.dat中的资料,录入新的资料并保存,关闭文件。save_date源代码/*函数:文件的保存*/voidsave_data(structtoy_typetoys[]){FILE*out_file;out_file=fopen(toys.dat,wb);fwrite(toys,sizeof(structtoy_type),MAX_toys,out_file);fclose(out_file);2.4玩具计数模块函数名称toy_count参数说明5Toys[]——存放玩具资料的形参数组,数据类型为结构体toy_type型Count——统计库存中玩具数量的变量,数据类型为整形int。功能介绍统计库存中玩具资料的数量。编程方法运用for循环,判断玩具资料是否大于系统最大容量,然后判断玩具资料的价格是否大于零,是的话,在count变量上加1,直到所有玩具判断完循环结束。Toy_count源代码/*函数:库存量统计*/inttoy_count(structtoy_typetoys[]){intrecord_no,count=0;for(record_no=0;record_noMAX_toys;record_no++)if(toys[record_no].price0)count++;return(count);}2.5玩具资料添加模块模块名称add_toy参数说明Toys[]——存放玩具资料的形参数组,数据类型为结构体toy_type型。功能介绍在判断实参数组toys[MAX_toys]是否越界的基础上,以人机对话方式完成数据录入并将录入的数据存入数据文件toys.dat中。编程方法以no_of_toys=toy_count(toys);获取库存量;以if(no_of_toysMAX_toys)判断实参数组MAX_toys是否越界;以printf()和scanf()语句进行人机对话,完成数据的输入;以save_date(toys)调用数据文件保存模块,将录入的数据存入文件cars.dat中。add_toy源代码/*函数;添加玩具*/voidadd_toy(structtoy_typetoys[]){intno_of_toys,next_record_no;system(cls);6printf(Addatoy\n\n);no_of_toys
本文标题:C语言程序设计报告(玩具销售系统)
链接地址:https://www.777doc.com/doc-2908174 .html