服装销售管理系统C语言课程设计.docx
《服装销售管理系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《服装销售管理系统C语言课程设计.docx(58页珍藏版)》请在冰豆网上搜索。
服装销售管理系统C语言课程设计
服装销售管理系统—C语言课程设计
C语言课程设计实验报告
C语言课程设计实验报告
一、目的,本次课程设计所涉及并要求掌握的知识点。
用户与商品信息要采用文件存储,因而要提供文件的输入输出操作;实现用户的添加、修改、删除;商品信息的添加、修改、删除、查找等功能;实现商品浏览功能的实现,需要实现显示操作;另外还要提供键盘式选择菜单以实现功能选择。
二、使用环境,本次上机实践所使用的平台和相关软件。
MicrosoftVisualC++
三、内容与设计思想
1(设计思路2(主要数据结构3(主要代码结构4(主要代码段分析。
1、设计思路
服装销售系统
管理员模块店长模块销售员模块商品模块
用户添加商品添加
用户删除商品删除
用户修改商品修改
商品查找
商品浏览
商品出售2、主要数据结构
/**系统用户结构**/
typedefstructSystemUser{
charuserName[20];//用户名,主键
charpassword[20];//用户密码
intuserType;//用户类型(1:
管理员,2:
店长,3:
销售员)
structSystemUser*next;//指向下一个用户的指针}SystemUser;
/**服装商品信息**/
typedefstructProducts{
intproductId;//商品编号,主键
charproductName[20];//商品名称
charproductType[20];//商品型号
charproductCompany[20];//商品厂家
第1页共37页
C语言课程设计实验报告
floatproductPrice;//商品价格
intproductCount;//商品数量
charmemo[50];//商品附加信息
structProducts*next;//指向下一个商品的指针}Products;
/**销售记录信息结构**/
typedefstructSellInfoRecord{
intsaleId;//销售编号,主键
charuserName[20];//销售商品的用户名
intproductId;//销售的商品编号
intsellCount;//销售数量
intyear;//销售商品年份
intmonth;//销售商品月份
intday;//销售商品日期
charmemo[50];//销售的附加信息
structSellInfoRecord*next;//下一条销售记录}SellInfoRecord;
3、主要代码结构
一,添加
打开文件~从键盘输入要添加的信息~若添加的信息与文件里的信息重复~则调用系统暂停函数~返回界面,若添加的信息在文件里没有找到~则将添加的信息输入到文件~调用系统暂停函数~返回界面。
二,查询
打开文件~从键盘输入要查询的信息~若在文件里找到要查询的信息~则在界面输入信息~并调用系统暂停函数~返回界面,若没有找到查询的信息~调用系统暂停函数~返回界面。
第2页共37页
C语言课程设计实验报告
三,删除
打开文件~从键盘输入要删除的信息~若在文件里找到要删除的信息存在~则把文件里要删除的那条信息删除掉~并调用系统暂停函数~返回界面,若没有找到删除的信息~调用系统暂停函数~返回界面。
四,修改
打开文件~从键盘输入要修改的信息~若在文件里找到要修改的信息存在~则按照提示信息依次输入要修改的信息~写入文件~并调用系统暂停函数~返回界面,若没有找到修改的信息~调用系统暂停函数~返回界面。
第3页共37页
C语言课程设计实验报告
4、主要代码段分析
/**对系统进行初始化,建立用户记录和商品记录**/
voidInitSystem(){
FILE*fp;
SystemUseradminUser,bossUser,sellUser;//管理员,店长,销售员三个角色信息
Productsproducts[2];//初始化两件服装商品信息
SellInfoRecordsellInfo[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;
//添加第二条商品信息
第4页共37页
C语言课程设计实验报告
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=2008;
//添加第二条销售报表记录
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=2008;
AddSellInfo(&sellInfo[0]);
AddSellInfo(&sellInfo[1]);};
//添加商品信息
voidInputAndAddProduct(){
Productsproduct;
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");
第5页共37页
C语言课程设计实验报告
system("pause");
};
//修改商品信息
voidModifyProduct(){
intproductId;//待修改的商品编号
Products*tmpProduct;
printf("亲爱的%s朋友,你好,你现在进入的商品信息修改功
能:
\n",currentUser);
printf("请输入要修改的商品编号:
");
scanf("%d",&productId);//将从键盘接收到的商品编号赋值给变量productId
tmpProduct=pProductHead;
if(NULL==tmpProduct)return;
while(NULL!
=tmpProduct){
if(productId==tmpProduct->productId){
若从键盘输入的商品编号与文件中的一致~则修改商品信息//
\n",productId);printf("商品编号%d的商品信息如下:
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;}};//商品删除
voidDeleteProduct(){
intproductId=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==
第6页共37页
C语言课程设计实验报告
NULL){//如果系统只有一条商品信息
free(pProductHead);
pProductHead=NULL;
\n");printf("商品信息删除成功!
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("对不起~不存在该商品编号的信息!
");};
//商品查询
voidProductFind(){
Products*tmpProduct;
intfindWay,productId;
charproductName[20];
printf("亲爱的%s朋友,你好,你现在进入的商品查询功
能:
\n",currentUser);
printf("请选择查询方式:
1--按商品编号查询2--按商品名称查询:
");
scanf("%d",&findWay);
tmpProduct=pProductHead;
switch(findWay){
case1:
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");
case2:
printf("请输入查询的商品名称:
");
scanf("%s",productName);//输入要查询的商品名称
while(NULL!
=tmpProduct){
if(0==strcmp(tmpProduct->productName,productName)){
//若输入查询的商品名称与文件中的一致~则输出商品信息
printf("你要查询的商品名称为%s的商品信息如下:
\n",productName);
第7页共37页
C语言课程设计实验报告
printf("商品名称:
%s\n",tmpProduct->productName);
printf("商品型号:
%s\n",tmpProduct->productType);
printf("商品厂家:
%s\n",tmpProduct->productCompany);
\n",tmpProduct->productPrice);printf("商品价格:
%f
printf("商品数量:
%d\n",tmpProduct->productCount);
printf("商品附加信息:
%s\n",tmpProduct->memo);
system("pause");
return;}
tmpProduct=tmpProduct->next;}
printf("对不起,不存在该商品编号的商品!
\n");
system("pause");
default:
break;}}
四、调试过程,1(测试数据设计2(测试结果分析,
初始化用户名与密码
管理员:
adminadmin店长:
bossboss销售员:
sellsell,一,主界面
二,以管理员方式登陆系统~输入正确的用户账号admin和密码admin
若登陆名或密码错误~则提示用户不存在
第8页共37页
C语言课程设计实验报告
登陆成功~进入管理员界面
选择“,1,自身密码修改”~修改管理员密码
选择“,2,用户信息管理”~进行用户的增、删、改、查功能
选择“用户信息查看”~查看当前用户信息
选择“用户信息添加”~添加用户信息
第9页共37页
C语言课程设计实验报告
选择“用户信息删除”~删除用户
返回管理员界面~选择“,3,商品信息管理”~进行商品的增、删、改、查功能。
选择“用户信息查看”~查看当前商品信息。
选择“商品信息查找”~根据商品编号及商品名称进行查找。
首先~选择“按商品编号查询”~若查询的编号存在~则显示查询的信息
第10页共37页
C语言课程设计实验报告
若查询的商品编号不存在~则提示信息“对不起~不存在该商品编号的商品”
选择“按商品名称查询”~输入正确的商品名称~显示查询信息
若查询的商品名称不存在~则提示信息“对不起~不存在该商品编号的商品”
选择“商品信息添加”~添加商品信息
选择“商品信息修改”~修改商品信息
第11页共37页
C语言课程设计实验报告
选择“商品信息删除”~删除商品
返回管理员界面~选择“商品报表显示”~进行销售报表功能
选择“所有商品销售情况”~显示商品信息
第12页共37页
C语言课程设计实验报告选择“商品日销售报表”~查看符合条件的销售商品
若查询的信息不符合条件~则显示没有符合条件的记录
选择“商品月销售报表”~查看符合条件的销售商品
选择“销售员销售报表”~查看符合条件的销售商品
第13页共37页
C语言课程设计实验报告
三,以店长方式登录系统
选择“自身密码修改”~修改店长密码
店长其他功能,商品信息管理~销售报表显示,与管理员类似。
四,以销售员登陆系统
第14页共37页
C语言课程设计实验报告
选择“商品销售”功能~进行产品销售
若销售产品大于库存~则提示销售失败。
销售员商品浏览、查询、及报表查看功能与管理员功能类似
五、总结
1(设计中遇到的问题及解决过程2(设计中产生的错误及原因分析3(设计体会和收获。
六、附录
1、原代码
#include//标准输入输出函数#include//Windows头文件#include//日期和时间头文件
第15页共37页
C语言课程设计实验报告
#defineADMIN_USER_TYPE1
#defineBOSS_USER_TYPE2
#defineSELL_USER_TYPE3
#defineFUNCTION_FAILED-1
#defineFUNCTION_SUCCESS0//如果函数成功执行~将返回0/**系统用户结构**/
typedefstructSystemUser{
charuserName[20];//用户名,主键
charpassword[20];//用户密码
intuserType;//用户类型(1:
管理员,2:
店长,3:
销售员)
structSystemUser*next;//指向下一个用户的指针}SystemUser;
/**服装商品信息**/
typedefstructProducts{
intproductId;//商品编号,主键
charproductName[20];//商品名称
charproductType[20];//商品型号
charproductCompany[20];//商品厂家
floatproductPrice;//商品价格
intproductCount;//商品数量
charmemo[50];//商品附加信息
structProducts*next;//指向下一个商品的指针}Products;
/**销售记录信息结构**/
typedefstructSellI