服装销售系统C语言课程设计.docx

上传人:b****4 文档编号:24210388 上传时间:2023-05-25 格式:DOCX 页数:84 大小:512.74KB
下载 相关 举报
服装销售系统C语言课程设计.docx_第1页
第1页 / 共84页
服装销售系统C语言课程设计.docx_第2页
第2页 / 共84页
服装销售系统C语言课程设计.docx_第3页
第3页 / 共84页
服装销售系统C语言课程设计.docx_第4页
第4页 / 共84页
服装销售系统C语言课程设计.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

服装销售系统C语言课程设计.docx

《服装销售系统C语言课程设计.docx》由会员分享,可在线阅读,更多相关《服装销售系统C语言课程设计.docx(84页珍藏版)》请在冰豆网上搜索。

服装销售系统C语言课程设计.docx

服装销售系统C语言课程设计

 

1.题目要求-------------------------------------------------------------------4

2.需求分析-------------------------------------------------------------------4

3.总体设计-------------------------------------------------------------------4

4.详细设计-------------------------------------------------------------------8

5.上机操作------------------------------------------------------------------30

6.总结----------------------------------------------------------------------33

7.致谢----------------------------------------------------------------------33

参考文献-------------------------------------------------------------------34

 

1.题目要求

 

(1)

系统包含三类用户:

管理员、店长、销售员.

(2)

向管理员提供以下功能:

自身密码修改、其他用户添加删除、用户信息修改、统计

.

商品信息添加、修改、删除、查找、统计.

(3)

向店长提供以下功能:

登录、注销、自身密码修改、自身信息修改

商品信息修

改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品

储备信息.

(4)

向销售员提供以下功能:

商品浏览、查找、出售,查看自己本日报表、本月报表

.

2.需求分析

用户与商品信息要采用文件存储,因而要提供文件地输入、输出功能,要实现用户地添加、修改、删除,商品信息地添加、修改、删除、查找等,需要提供相应地信息添加、删除、修改与查找功能;要实现商品浏览功能,需要提供显示操作;另外,还要提供键盘式选择菜单以实现功能选择.

 

3.总体设计

1.【整体E-R图3-1】

 

服装

管理

系统

 

管理员

模块

 

店长销售员退出

模块模块

 

用户用户添加删除

 

自身

商品

营业

密码

商品

商品

出售

查看本

显示所

退出

信息

信息

员业

修改

浏览

查找

月报表

有用户

修改

浏览

绩报

图3-1

2.【程序中典型地流程图】

 

(一)添加模块

(1)分析:

信息添加模块职工地基本信息包括:

用户、商品基本信息,对它们输入后,要存进原文件,流程图(图3-2)如下.

 

开始

文件打开否

输入信息

输出错误信息

将信息输出到磁盘

 

是否继续

 

调用printf_back()函数

 

结束

 

图3-2

(二)浏览模块

(1)分析:

浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采

用直接查找地办法.在容错上有较好地能力,输错时系统会有提示,也会作出相应地反映.算法和以上地分程序有相同地优点.

流程图如下(图3-3).

 

开始

打开文件否输出错误信息

 

查找商品信息

 

是否查找到

 

输出商品信息

 

操作存盘

 

是否继续

 

结束

 

图3-3

 

(三)查询模块

(1)分析:

基本信息地查询按查询方式:

按商品地名称查询,可供选择地方式比较丰富.

但本程序只使用了一种.在查询小模块中采用了直接查找地方法,这主要是由于磁盘文件无

序地缘故.程序在选择结构上采用了if和else地嵌套形式,看起来有点繁杂(图3-4)

 

开始

 

文件打开

 

查询方式

 

输出错误信息

 

商品地名称

 

是否继续

 

结束

 

图3-4

 

(四)删除模块

(1)分析:

商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉地内

容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐.可以改为另一种办法:

设置一个标示符,对有这些标识符地记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了.在对文件进行删除时,考虑到很多方面,如:

查询不到时系统该如何处理

等.人性化设计有在删除之前询问是否继续.

流程图(图3-5)如下:

 

开始

 

文件打开输出错误信息

 

查找商品信息

 

是否查找到

 

删除操作

输入信息

 

是否继续

 

结束

 

图3-5

五)修改模块

(1)分析:

修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改地内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进(图2-6).

开始

 

文件打开输出错误信息

 

查找职工信息

 

是否查找到

 

修改操作

输入信息

 

是否继续

 

结束

 

图3-6

 

4.详细设计

1.欢迎界面voidWelcomeMenu()

voidWelcomeMenu(){

printf("---------------服装销售系统-----------\n")。

printf("

系统功能说明:

\n")。

printf("

管理员功能:

\n")。

printf("

(1)

自身密码修改\n")。

printf("

(2)

用户信息管理:

添加,修改,删除,查询\n")。

printf("

(3)

商品信息管理:

添加,修改,查询,删除\n")。

printf("

(4)

退出登陆系统\n")。

printf("

店长功能:

\n")。

printf("

(1)

自身密码修改\n")。

printf("

(2)

商品信息管理:

添加,修改,查询,删除\n")。

printf("

(3)

销售报表显示:

日销售报表,月销售报表,销售员销售报表\n")。

printf("

(4)

退出登陆系统\n")。

printf("

销售员功能:

\n")。

printf("

(1)

商品浏览,查询,商品销售\n")。

printf("

(2)

自己商品销售报表显示:

日销售报表,月销售报表\n")。

printf("

(3)

退出登陆系统\n")。

printf("--------------谢谢使用--------------------\n")。

printf("(注:

管理员,店长,用户登陆地账号分别是admin,boss,sell初始密码和账

号一致)\n")。

}。

欢迎界面运行如下(图4-1):

 

图4-1

 

2.登陆模块voidSystemLogin()函数

 

voidSystemLogin(){//所有用户身份调用地登陆函数

charuserName[20],password[20]。

intisLogin=0。

SystemUser*tmpUser。

printf("请输入你地系统用户帐号:

")。

scanf("%s",userName)。

printf("\n请输入你地系统用户密码:

")。

scanf("%s",password)。

 

tmpUser=pSystemUserHead。

while(NULL!

=tmpUser){

if(0==strcmp(tmpUser->userName,userName)){

if(0==strcmp(tmpUser->password,password)){

isLogin=1。

strcpy(currentUser,tmpUser->userName)。

currentUserType=tmpUser->userType。

switch(currentUserType){

caseADMIN_USER_TYPE:

AdminOperationMenu()。

break。

caseBOSS_USER_TYPE:

BossOperationMenu()

break。

caseSELL_USER_TYPE:

SellOperationMenu()

break。

default:

break。

}

}else{

printf("对不起

SystemLogin()

 

你输入地密码错误。

 

!

\n")。

 

//用户名正确

 

密码错误

}

}

tmpUser=tmpUser->next

 

}

if(isLogin!

=1){

printf("对不起,该用户不存在

SystemLogin()。

 

\n")。

 

//遍历了所有用户都没有找到用户

}

 

}

运算显示如下(图4-2):

 

图4-2

 

3.管理员功能模块

 

管理员模块

 

1.自身密码修改

 

2.用户信息管理:

添加,修改,删除,查询

 

3.商品信息管理:

添加,修改,查询,删除

 

4.销售报表显示

 

(1)管理员欢迎界面voidAdminOperationMenu()函数

 

voidAdminOperationMenu(){

intselect。

while

(1){

printf("

亲爱地管理员%s同志,欢迎使用本系统,你拥有下面所有功能:

\n",currentUser)。

printf("

(1)

自身密码修改\n")。

printf("

(2)

用户信息管理:

添加,修改,查询,删除\n")。

printf("

(3)

商品信息管理:

添加,修改,查询,删除\n")。

printf("

(4)

退出系统\n")。

printf("

请输入上面功能对应地序号进行功能选择:

")。

 

scanf("%d",&select)。

switch(select){

case1:

ChangePassword()。

continue。

case2:

UserManage()。

continue。

case3:

ProductsManage()。

Continue。

case4:

ExitSystem()。

break。

default:

break。

}

}

}。

运算显示如下(图4-3):

 

图4-3

 

(2)自身密码修改(调用密码修改函数ChangePassword()。

 

//密码修改函数

voidChangePassword(){

charnewPassword1[20],newPassword2[20]。

SystemUser*tmpUser。

printf("请输入你地新密码:

")。

scanf("%s",newPassword1)。

printf("请再次输入你地新密码:

")。

scanf("%s",newPassword2)。

if(0!

=strcmp(newPassword1,newPassword2)){

printf("

return

对不起,你两次输入地密码不一致。

修改失败

!

\n")。

 

}

 

tmpUser=pSystemUserHead。

while(NULL!

=tmpUser){

if(0==strcmp(tmpUser->userName,currentUser)){

strcpy(tmpUser->password,newPassword1)。

printf("密码修改成功!

\n")。

break。

}

tmpUser=tmpUser->next。

}

}。

运算显示如下(图4-4):

 

图4-4

 

(2)用户信息管理:

添加,修改,删除,查询

 

//用户信息管理:

添加,修改,删除,查询//

voidUserManage(){//用户信息函数//

intselect。

//管理员显示模块//

while

(1){

printf("亲爱地管理员%s同志,你目前进入地是用户信息管理功能:

\n",currentUser)。

printf("

(1)用户信息查看printf("

(2)用户信息添加printf("(3)用户信息修改printf("(4)用户信息删除printf("(5)返回上级菜单printf("(6)退出登陆系统

\n")。

\n")。

\n")。

\n")。

\n")。

\n")。

printf("请输入上面功能对应地序号进行功能选择:

")。

scanf("%d",&select)。

switch(select)

{

case1:

UserInfoView()。

//调用用户信息查看地函数//

continue。

case2:

UserInfoAdd()。

//调用用户信息添加函数//

continue。

case3:

 

UserInfoModify()。

//调用用户信息修改函数//

continue。

case4:

UserInfoDelete()。

//调用用户信息删除函数//

continue。

case5:

AdminOperationMenu()。

//返回上级系统//

break。

case6:

ExitSystem()。

//退出登陆//

break。

default:

break。

}

}

}。

运算显示如下(图4-5):

 

图4-5

//用户信息查看函数//

 

voidUserInfoView(){

SystemUser*tmpUser。

tmpUser=pSystemUserHead。

printf("亲爱地管理员%s,你好,你查看地所有用户信息如下:

\n",currentUser)。

printf("用户名\t密码\t用户类型(1代表管理员,2代表店长,3代表销售员)\n")。

while(NULL!

=tmpUser){

printf("%s\t%s\t%d\n",tmpUser->userName,tmpUser->password,tmpUser->userType)。

tmpUser=tmpUser->next。

}

}。

运算显示如下(图4-6):

 

//用户信息添加函数//

 

voidUserInfoAdd(){

SystemUsertmpUser。

printf("亲爱地管理员%s,请依次输入用户信息:

\n",currentUser)。

printf("用户名:

")。

scanf("%s",tmpUser.userName)。

printf("用户密码:

")。

scanf("%s",tmpUser.password)。

printf("用户类型(1代表管理员,2代表店长,3代表销售员):

")。

scanf("%d",&tmpUser.userType)。

tmpUser.next=NULL。

 

if(FUNCTION_SUCCESS==AddUser(&tmpUser))

printf("用户信息添加成功!

\n")。

 

}。

运算显示如下(图4-7):

 

图4-7

//用户信息修改函数//voidUserInfoModify(){

charuserName[20]。

SystemUser*pUser。

printf("亲爱地管理员%s,请输入要修改地用户帐号:

\n",currentUser)。

scanf("%s",userName)。

pUser=pSystemUserHead。

while(NULL!

=pUser){

if(0==strcmp(pUser->userName,userName)){

printf("请输入新地帐号:

")。

scanf("%s",pUser->userName)。

printf("请输入新地密码:

")。

scanf("%s",pUser->password)。

printf("请输入新地用户类型(1代表管理员,2代表店长,3代表销售员):

")。

scanf("%d",&pUser->userType)。

printf("用户信息修改成功\n")。

return。

}

pUser=pUser->next。

}

printf("对不起,没有你查找地用户信息!

\n")。

}。

 

运算显示如下(图4-8):

 

图4-8

//用户信息删除函数//

voidUserInfoDelete(){

 

SystemUser*pUserA,*pUserB。

charuserName[20]。

printf("亲爱地管理员%s朋友,你好,你现在进入地用户信息删除功能:

\n",currentUser)。

printf("请输入你要删除地用户名:

\n")。

scanf("%s",userName)。

pUserA=pUserB=pSystemUserHead。

//pUserB指向要删除地记录,pUserA指向前一条

记录

if(NULL==pUserB)return。

while(NULL!

=pUserB){

if(0==strcmp(userName,pUserB->userName)){

if(pUserB==pSystemUserHead&&pUserB->next==NULL){//如果系统只有一条商

品信息

free(pSystemUserHead)。

pSystemUserHead=NULL。

printf("用户信息删除成功!

\n")。

return。

}

pUserA->next=pUserB->next。

if(pSystemUserHead==pUserB)

pSystemUserHead=pUserB->next。

free(pUserB)。

printf("用户信息删除成功!

\n")。

return。

}

else{

pUserA=pUserB。

pUserB=pUserB->next。

}

}

printf("对不起,不存在该帐号地用户信息!

")。

}。

 

运算显示如下(图4-9):

 

图4-9

 

(3)商品信息管理:

添加,修改,查询,删除

 

//商品管理模块//

voidProductsManage(){

intselect。

while

(1){

printf("亲爱地%s朋友,你好,你现在进入地是商品管理功能,你可以选择以下功

能:

\n",currentUser)。

printf("

(1)商品信息查看\n")。

printf("

(2)商品信息查找\n")。

printf("(3)商品信息添加\n")。

printf("(4)商品信息修改\n")。

printf("(5)商品信息删除\n")。

printf("(6)返回上一级菜单\n")。

printf("(7)退出登陆系统\n")。

printf("请选择应地操作编号:

")。

scanf("%d",&select)。

switch(select){

case1:

ProductsView()。

//调用商品查看函数//

continue。

case2:

ProductFind()。

//调用商品信息查找函数//

continue。

case3:

InputAndAddProduct()。

//调用商品添加函数//

continue。

case4:

ModifyProduct()。

//调用商品修改函数//

continue。

case5:

 

DeleteProduct()。

//调用删除商品信息函数//

continue。

case6:

switch(currentUserType){//返回上一级//

caseADMIN_USER_TYPE:

AdminOperationMenu()。

break。

caseBOSS_USER_TYPE:

BossOperationMenu()。

break。

caseSELL_USER_TYPE:

SellOperationMenu()。

break。

default:

break。

}

break。

case7:

ExitSystem()。

break。

default:

break。

}

}

}。

运算显示如下(图4-10):

 

图4-10

//商品地查看函数//voidProductsView(){

Products*tmpProduct。

inti。

i=1。

tmpProduct=pProductHead。

if(NULL==tmpProduct)

printf("对不起,目前还没有商品信息")。

else{

while(NULL!

=tmpProduct){

 

printf("第%d件商品信息如下:

\n",i)。

printf("商品编号:

%d\n",tmpProduct->productId)。

printf("商品名称:

%s\n",tm

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1