收藏 分销(赏)

服装销售管理系统—C语言课程设计.doc

上传人:a199****6536 文档编号:9906426 上传时间:2025-04-13 格式:DOC 页数:92 大小:5.27MB
下载 相关 举报
服装销售管理系统—C语言课程设计.doc_第1页
第1页 / 共92页
服装销售管理系统—C语言课程设计.doc_第2页
第2页 / 共92页
点击查看更多>>
资源描述
服装销售管理系统—C语言课程设计 92 2020年5月29日 文档仅供参考 C语言课程设计实验报告 一、 目的(本次课程设计所涉及并要求掌握的知识点。) 用户与商品信息要采用文件存储,因而要提供文件的输入输出操作;实现用户的添加、修改、删除;商品信息的添加、修改、删除、查找等功能;实现商品浏览功能的实现,需要实现显示操作;另外还要提供键盘式选择菜单以实现功能选择。 二、使用环境 (本次上机实践所使用的平台和相关软件。 ) Microsoft Visual C++ 三、内容与设计思想 (1 .设计思路 2 .主要数据结构 3 .主要代码结构 4 .主要代码段分析 。 ) 1、设计思路 服装销售系统 管理员模块 店长模块 销售员模块 商品模块 用户添加 用户删除 用户修改 商品添加 商品删除 商品修改 商品查找 商品浏览 商品出售 2、主要数据结构 /** 系统用户结构 **/ typedef struct SystemUser { char userName[20]; //用户名,主键 char password[20]; //用户密码 int userType; //用户类型(1:管理员;2:店长;3:销售员) struct SystemUser *next; //指向下一个用户的指针 } SystemUser; /** 服装商品信息 **/ typedef struct Products { int productId; //商品编号,主键 char productName[20]; //商品名称 char productType[20]; //商品型号 char productCompany[20]; //商品厂家 float productPrice; //商品价格 int productCount; //商品数量 char memo[50]; //商品附加信息 struct Products *next; //指向下一个商品的指针 } Products; /** 销售记录信息结构 **/ typedef struct SellInfoRecord { int saleId; //销售编号,主键 char userName[20]; //销售商品的用户名 int productId; //销售的商品编号 int sellCount; //销售数量 int year; //销售商品年份 int month; //销售商品月份 int day; //销售商品日期 char memo[50]; //销售的附加信息 struct SellInfoRecord *next; //下一条销售记录 } SellInfoRecord; 3、主要代码结构 (一)添加 打开文件,从键盘输入要添加的信息,若添加的信息与文件里的信息重复,则调用系统暂停函数,返回界面;若添加的信息在文件里没有找到,则将添加的信息输入到文件, 调用系统暂停函数,返回界面。 (二) 查询 打开文件,从键盘输入要查询的信息,若在文件里找到要查询的信息,则在界面输入信息,并调用系统暂停函数,返回界面;若没有找到查询的信息,调用系统暂停函数,返回界面。 (三) 删除 打开文件,从键盘输入要删除的信息,若在文件里找到要删除的信息存在,则把文件里要删除的那条信息删除掉,并调用系统暂停函数,返回界面;若没有找到删除的信息,调用系统暂停函数,返回界面。 (四) 修改 打开文件,从键盘输入要修改的信息,若在文件里找到要修改的信息存在,则按照提示信息依次输入要修改的信息,写入文件,并调用系统暂停函数,返回界面;若没有找到修改的信息,调用系统暂停函数,返回界面。 4、 主要代码段分析 /** 对系统进行初始化,建立用户记录和商品记录 **/ void InitSystem() { FILE *fp; SystemUser adminUser,bossUser,sellUser; //管理员,店长,销售员三个角色信息 Products products[2]; //初始化两件服装商品信息 SellInfoRecord sellInfo[2]; //初始化两条销售记录 //初始化管理员用户名、密码与类型 strcpy(adminUser.userName,"admin"); strcpy(adminUser.password,"admin"); adminUser.userType = ADMIN_USER_TYPE; adminUser.next = NULL; //打开管理员用户信息文件Admin.txt,写入信息,并关闭文件 fp = fopen("Admin.txt", "w"); fprintf(fp, "%s\t%s", adminUser.userName, adminUser.password); fclose(fp); AddUser(&adminUser); AddUser(&bossUser); AddUser(&sellUser); //添加第一条商品信息 strcpy(products[0].productName,"精品男装"); strcpy(products[0].productType,"m001"); strcpy(products[0].productCompany,"精品服装制造厂"); products[0].productPrice = 23.5; products[0].productCount = 100; strcpy(products[0].memo,"精品男装,您的第一选择"); products[0].next = NULL; //添加第二条商品信息 strcpy(products[1].productName,"时尚女装"); strcpy(products[1].productType,"w002"); strcpy(products[1].productCompany,"时尚服装制造厂"); products[1].productPrice = 25.5; products[1].productCount = 150; strcpy(products[1].memo,"时尚女装,您的第一选择"); products[1].next = NULL; AddProduct(&products[0]); AddProduct(&products[1]); //添加第一条销售报表记录 sellInfo[0].day = 16; strcpy(sellInfo[0].memo,"测试数据1"); sellInfo[0].month = 7; sellInfo[0].next = NULL; sellInfo[0].productId = 1; sellInfo[0].sellCount = 8; strcpy(sellInfo[0].userName,"sell"); sellInfo[0].year = ; //添加第二条销售报表记录 sellInfo[1].day = 17; strcpy(sellInfo[1].memo,"测试数据2"); sellInfo[1].month = 7; sellInfo[1].next = NULL; sellInfo[1].productId = 2; sellInfo[1].sellCount = 5; strcpy(sellInfo[1].userName,"sell"); sellInfo[1].year = ; AddSellInfo(&sellInfo[0]); AddSellInfo(&sellInfo[1]); }; //添加商品信息 void InputAndAddProduct() { Products product; printf("亲爱的%s朋友,你好,请依次输入新商品的信息:\n",currentUser); //输入商品名称、型号、制作商、价格、数量、附加信息,并把从键盘输入的值赋值给结构体变量的商品名称型号、制作商、价格、数量、附加信息 printf("商品名称:"); scanf("%s",product.productName); printf("商品型号:"); scanf("%s",product.productType); printf("商品制造商:"); scanf("%s",product.productCompany); printf("商品价格:"); scanf("%f",&product.productPrice); printf("商品数量:"); scanf("%d",&product.productCount); printf("商品附加信息:"); scanf("%s",product.memo); product.next = NULL; //若成功信息添加到结构体变量product里则提示添加成功 if(FUNCTION_SUCCESS == AddProduct(&product)) printf("商品信息添加成功!\n"); system("pause"); }; //修改商品信息 void ModifyProduct() { int productId; //待修改的商品编号 Products *tmpProduct; printf("亲爱的%s朋友,你好,你现在进入的商品信息修改功能:\n",currentUser); printf("请输入要修改的商品编号:"); scanf("%d",&productId); //将从键盘接收到的商品编号赋值给变量productId tmpProduct = pProductHead; if(NULL == tmpProduct) return ; while(NULL != tmpProduct) { if(productId == tmpProduct->productId){ //若从键盘输入的商品编号与文件中的一致,则修改商品信息 printf("商品编号%d的商品信息如下:\n",productId); printf(" 商品名称: %s\n",tmpProduct->productName); printf(" 商品型号: %s\n",tmpProduct->productType); printf(" 商品厂家: %s\n",tmpProduct->productCompany); printf(" 商品价格: %f\n",tmpProduct->productPrice); printf(" 商品数量: %d\n",tmpProduct->productCount); printf(" 商品附加信息: %s\n",tmpProduct->memo); printf("下面请对照修改该商品的相应信息:\n"); printf("新的商品名称: "); scanf("%s",tmpProduct->productName); printf("新的商品型号: "); scanf("%s",tmpProduct->productType); printf("新的商品厂家: "); scanf("%s",tmpProduct->productCompany); printf("新的商品价格: "); scanf("%f",&tmpProduct->productPrice); printf("新的商品数量: "); scanf("%d",&tmpProduct->productCount); printf("新的商品附加信息: "); scanf("%s",tmpProduct->memo); printf("商品信息修改成功!\n"); system("pause"); break; } tmpProduct = tmpProduct->next; } }; //商品删除 void DeleteProduct() { int productId = 0; Products *tmpProductA,*tmpProductB; printf("亲爱的%s朋友,你好,你现在进入的商品删除功能:\n",currentUser); printf("请输入你要删除的商品编号:"); scanf("%d",&productId); tmpProductA = tmpProductB = pProductHead; //tmpProductB指向要删除的记录,tmpProductA指向前一条记录 if(NULL == tmpProductB) return ; while(NULL != tmpProductB){ if(tmpProductB->productId == productId) { if(tmpProductB == pProductHead && tmpProductB->next == NULL){ //如果系统只有一条商品信息 free(pProductHead); pProductHead = NULL; printf("商品信息删除成功!\n"); system("pause"); return ; } tmpProductA->next = tmpProductB->next; if(pProductHead == tmpProductB) pProductHead = tmpProductB->next; free(tmpProductB); printf("商品信息删除成功!\n"); system("pause"); return ; } else { tmpProductA = tmpProductB; tmpProductB = tmpProductB->next; } } printf("对不起,不存在该商品编号的信息!");}; //商品查询 void ProductFind() { Products *tmpProduct; int findWay,productId; char productName[20]; printf("亲爱的%s朋友,你好,你现在进入的商品查询功能:\n",currentUser); printf("请选择查询方式: 1--按商品编号查询 2--按商品名称查询:"); scanf("%d",&findWay); tmpProduct = pProductHead; switch(findWay) { case 1: printf("请输入查询的商品编号:"); scanf("%d",&productId); //输入要查询的商品编号 while(NULL != tmpProduct) { if(productId == tmpProduct->productId) { //若输入查询的商品编号与文件中的一致,则输出商品信息 printf("你查询的商品编号为%d的商品信息如下:\n",productId); printf(" 商品名称: %s\n",tmpProduct->productName); printf(" 商品型号: %s\n",tmpProduct->productType); printf(" 商品厂家: %s\n",tmpProduct->productCompany); printf(" 商品价格: %f\n",tmpProduct->productPrice); printf(" 商品数量: %d\n",tmpProduct->productCount); printf(" 商品附加信息: %s\n",tmpProduct->memo); system("pause"); return ; } tmpProduct = tmpProduct->next; } printf("对不起,不存在该商品编号的商品!\n"); system("pause"); case 2: printf("请输入查询的商品名称:"); scanf("%s",productName); //输入要查询的商品名称 while(NULL != tmpProduct) { if(0 == strcmp(tmpProduct->productName,productName)) { //若输入查询的商品名称与文件中的一致,则输出商品信息 printf("你要查询的商品名称为%s的商品信息如下:\n",productName); printf(" 商品名称: %s\n",tmpProduct->productName); printf(" 商品型号: %s\n",tmpProduct->productType); printf(" 商品厂家: %s\n",tmpProduct->productCompany); printf(" 商品价格: %f\n",tmpProduct->productPrice); printf(" 商品数量: %d\n",tmpProduct->productCount); printf(" 商品附加信息: %s\n",tmpProduct->memo); system("pause"); return ; } tmpProduct = tmpProduct->next; } printf("对不起,不存在该商品编号的商品!\n"); system("pause"); default: break; }} 四、调试过程 (1 .测试数据设计 2 .测试结果分析 ) 初始化用户名与密码 管理员:admin admin 店 长:boss boss 销售员:sell sell (一)主界面 (二)以管理员方式登陆系统,输入正确的用户账号admin和密码admin 若登陆名或密码错误,则提示用户不存在 登陆成功,进入管理员界面 选择”(1)自身密码修改”,修改管理员密码 选择”(2)用户信息管理”,进行用户的增、删、改、查功能 选择”用户信息查看”,查看当前用户信息 选择”用户信息添加”,添加用户信息 选择”用户信息删除”,删除用户 返回管理员界面,选择”(3)商品信息管理”,进行商品的增、删、改、查功能。 选择”用户信息查看”,查看当前商品信息。 选择”商品信息查找”,根据商品编号及商品名称进行查找。首先,选择”按商品编号查询”,若查询的编号存在,则显示查询的信息 若查询的商品编号不存在,则提示信息”对不起,不存在该商品编号的商品” 选择”按商品名称查询”,输入正确的商品名称,显示查询信息 若查询的商品名称不存在,则提示信息”对不起,不存在该商品编号的商品” 选择”商品信息添加”,添加商品信息 选择”商品信息修改”,修改商品信息 选择”商品信息删除”,删除商品 返回管理员界面,选择”商品报表显示”,进行销售报表功能 选择”所有商品销售情况”,显示商品信息 选择”商品日销售报表”,查看符合条件的销售商品 若查询的信息不符合条件,则显示没有符合条件的记录 选择”商品月销售报表”,查看符合条件的销售商品 选择”销售员销售报表”,查看符合条件的销售商品 (三)以店长方式登录系统 选择”自身密码修改”,修改店长密码 店长其它功能(商品信息管理,销售报表显示)与管理员类似。 (四)以销售员登陆系统 选择”商品销售”功能,进行产品销售 若销售产品大于库存,则提示销售失败。 销售员商品浏览、查询、及报表查看功能与管理员功能类似 五、总结 1 .设计中遇到的问题及解决过程 2 .设计中产生的错误及原因分析 3 .设计体会和收获。 六、附录 1、原代码 #include <stdio.h> //标准输入输出函数 #include <windows.h> //Windows头文件 #include <time.h> //日期和时间头文件 #define ADMIN_USER_TYPE 1 #define BOSS_USER_TYPE 2 #define SELL_USER_TYPE 3 #define FUNCTION_FAILED -1 #define FUNCTION_SUCCESS 0 //如果函数成功执行,将返回0 /** 系统用户结构 **/ typedef struct SystemUser { char userName[20]; //用户名,主键 char password[20]; //用户密码 int userType; //用户类型(1:管理员;2:店长;3:销售员) struct SystemUser *next; //指向下一个用户的指针 } SystemUser; /** 服装商品信息 **/ typedef struct Products { int productId; //商品编号,主键 char productName[20]; //商品名称 char productType[20]; //商品型号 char productCompany[20]; //商品厂家 float productPrice; //商品价格 int productCount; //商品数量 char memo[50]; //商品附加信息 struct Products *next; //指向下一个商品的指针 } Products; /** 销售记录信息结构 **/ typedef struct SellInfoRecord { int saleId; //销售编号,主键 char userName[20]; //销售商品的用户名 int productId; //销售的商品编号 int sellCount; //销售数量 int year; //销售商品年份 int month; //销售商品月份 int day; //销售商品日期 char memo[50]; //销售的附加信息 struct SellInfoRecord *next; //下一条销售记录 } SellInfoRecord; static char currentUser[20]; //系统全局变量,保存当前登陆用户名; static int currentUserType; //系统全局变量,保存当前登陆用户的用户类型 static SystemUser *pSystemUserHead = NULL; //保存系统用户信息记录的头指针 static Products *pProductHead = NULL; //保存系统商品信息记录的头指针 static SellInfoRecord *pSellInfoHead = NULL;//保存系统销售记录的头指针 void InitSystem(); //对系统用户信息和商品信息进行初始化 int AddUser(SystemUser *); //向用户信息链表中加入用户信息 int AddProduct(Products *pPro); //向商品信息链表中加入商品信息 int AddSellInfo(SellInfoRecord *); void UserExit(); void WelcomeMenu(); //系统欢迎菜单 void SystemLogin(); //系统登陆 void AdminOperationMenu(); //系统管理员操作菜单 void BossOperationMenu(); //店长操作菜单 void SellOperationMenu(); //销售员操作菜单 void ChangePassword(); //修改密码 void UserManage(); //用户信息管理 void UserInfoView(); //用户信息查看 void UserInfoAdd(); //用户信息添加 void UserInfoModify(); //用户信息修改 void UserInfoDelete(); //用户信息删除 void ProductsManage(); //产品信息管理 void ProductsView(); //商品查看 void ProductFind(); void InputAndAddProduct(); //输入商品信息并添加 void ModifyProduct(); //修改商品信息 void DeleteProduct(); //删除商品信息 void ProductsSell(); //商品销售 void ReportPrint(); //报表显示 void ShowAllSellReport(); //显示所有商品销售情况 void ShowDaySellReport(); //显示某日的销售情况 void ShowMonthSellReport(); //显示某月的销售情况 void ShowEmployeeSellReport(); //显示某个销售员的销售情况 void ExitSystem(); // 退出登陆系统 float getPriceById(int ); //经过商品编号查询商品价格 int getProductNameById(int,char *); //经过商品编号查询商品名称 int getCountById(int); //经过商品编号查询商品库存数量 void ReduceProductCount(int,int); //经过商品编号减少商品数量 /** 对系统进行初始化,建立用户记录和商品记录 **/ void InitSystem() { FILE *fp; SystemUser adminUser,bossUser,sellUser; //管理员,店长,销售员三个角色信息 Products products[2]; //初始化两件服装商品信息 SellInfoRecord sellInfo[2]; //初始化两条销售记录 //管理员 strcpy(adminUser.userName,"admin"); strcpy(adminUser.password,"admin"); adminUser.userType = ADMIN_USER_TYPE; adminUser.next = NULL; fp = fopen("Admin.txt", "w"); fprintf(fp, "%s\t%s", adminUser.userName, adminUser.password); fclose(fp); //店长 strcpy(bossUser.userName,"boss"); strcpy(bossUser.password,"boss"); bossUser.userType = BOSS_USER_TYPE; bossUser.next = NULL; fp = fopen("Shopkeeper.txt", "w"); fprintf(fp, "%s\t%s", bossUser.userName, bossUser.pas
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服