商品销售系统报告.docx
《商品销售系统报告.docx》由会员分享,可在线阅读,更多相关《商品销售系统报告.docx(24页珍藏版)》请在冰豆网上搜索。
商品销售系统报告
实训任务书
一、题目
1、商品销售管理系统
2、基于C的学籍管理系统(以windows系统实现为主,尝试Linux平台下的程序实现)
说明:
题目1、2二选一。
二、实训的性质和任务
1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。
2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。
3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。
三、实训的基本要求
通过本次实训,学生应达到以下几个方面的要求:
1、素质要求
以积极认真的态度对待本次实训,遵章守纪,团队协作。
善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。
2、知识要求
熟练掌握C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。
熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。
3、能力要求
学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。
学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。
通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。
四、实训内容及要求
天/日期
任务描述
通过标准
第1天
说明系统功能,明确课题任务与涉及的要求、分配具体的任务。
分析实训内容,讲解相关知识,引导学生入门。
成立项目小组,选出项目负责人。
学生理解题目
第2天
学生具体分析实训题目,明确思路和任务,并可以查询相关书籍、资料。
各小组组织讨论,确定总体方案,分配具体任务。
确定总体方案
第3天
设计出每一个模块的流程图;理解并设计相关的数据类型定义。
画出相关流程图
第4天
编写各函数功能模块,完成基本功能
代码通过
第5天
建立录入函数系统,小规模数据实验,录入字符,数字,字母,以及三部分内容的混合形式
代码通过
第6天
编写函数main()函数,整合前面的功能模块,完成整个系统
界面建立完毕
第7天
对录入的数据实现修改、还原、删除等功能
通过代码测试
第8天
对系统测试过程中发现的问题进行讨论,确定问题解决方案,对系统进行优化
成功运行系统
第9天
答辩
按照要求完成任务,阐述清楚
第10天
撰写实训报告
内容和格式满足相关文档要求
五、考核指标及成绩评定
实训成绩评定方法:
平时成绩(20%)+验收与答辩(50%)+实训报告(30%)=总评成绩
验收与答辩成绩评定标准:
1、全部完成90-100
2、主要功能完成70-90
3、部分功能完成60-70
4、少部分完成40-60
5、几乎没做0-40
完成期限:
2018年11月16日
指导教师签名:
2018年11月5日
1实训简介
1.1实训任务
1.巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。
2.培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。
3.培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。
1.2题目介绍
1.商品销售管理系统
2.基于C的学籍管理系统(以windows系统实现为主,尝试Linux平台下的程序实现)
1.3主要内容
天/日期
任务描述
通过标准
第1天
说明系统功能,明确课题任务与涉及的要求、分配具体的任务。
分析实训内容,讲解相关知识,引导学生入门。
成立项目小组,选出项目负责人。
学生理解题目
第2天
学生具体分析实训题目,明确思路和任务,并可以查询相关书籍、资料。
各小组组织讨论,确定总体方案,分配具体任务。
确定总体方案
第3天
设计出每一个模块的流程图;理解并设计相关的数据类型定义。
画出相关流程图
第4天
编写各函数功能模块,完成基本功能
代码通过
第5天
建立录入函数系统,小规模数据实验,录入字符,数字,字母,以及三部分内容的混合形式
代码通过
第6天
编写函数main()函数,整合前面的功能模块,完成整个系统
界面建立完毕
第7天
对录入的数据实现修改、还原、删除等功能
通过代码测试
第8天
对系统测试过程中发现的问题进行讨论,确定问题解决方案,对系统进行优化
成功运行系统
第9天
答辩,按照要求完成任务
阐述清楚
第10天
撰写实训报告
内容和格式满足相关文档要求
1.4基本要求
通过本次实训,学生应达到以下几个方面的要求:
1.4.1素质要求
以积极认真的态度对待本次实训,遵章守纪,团队协作。
善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。
1.4.2知识要求
熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。
熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。
1.4.3能力要求
学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。
学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。
通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。
1.5需求分析
1.5.1用户管理
实现客户、采购员、经理三种用户类型,通过系统申请注册这三种用户类型,记录并保存用户账号、密码、姓名、联系方式在本地磁盘,登录时通过识别账号自动进入对应角色功能实现界面。
1.5.2客户模块
实现创建订单发送给采购员及时安排配货的功能,查询自己的订单功能,删除已订购订单功能,修改订单购买数量功能,反馈信息给经理和采购员的功能。
1.5.3采购员模块
实现查看销售订单、查看库存情况、添加商品信息、删除商品信息、添加商品库存、查看客户留言的功能。
1.5.4经理模块
实现查看销售情况、查看库存情况、查看用户资料、删除用户账号、看客户留言的功能。
2总体设计流程
2.1总体设计思路
总体设计客户,采购员和经理三个用户类型,三个用户分别用不同的开头数字来区分用户类型,并根据账号类型,登陆后进入不同的用户界面,每个用户界面都分别设计一些不通过的功能,每个用户分别通过订单,采购等功能分别对库存进行修改,而每个成员对库存修改后先存入内存,每次操作全部结束后再存入文件,而经理可以对成员进行改动。
2.2
设计流程
2.3包含的模块
3系统详细设计
3.1
登录系统流程图
读取存储
是
3.2登录系统源代码
voidPass();//密码验证
voidfound();//建立用户
voidsetpsw(intset);//密码设置
intmain()//登录函数;
{
intset;
printf("欢迎使用商品管理系统V1.0\n");
time_tt;
structtm*lt;
time(&t);//获取Unix时间戳。
lt=localtime(&t);//转为时间结构。
printf("\n%d/%d/%d%02d:
%02d:
%02d\n",lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec);
printf("\n\n\n\n登录【1】新用户注册【2】\n\n\n\n");
scanf("%d",&set);
system("cls");
FILE*fp;//读取用户信息
fp=fopen("e:
\\data.txt","r");
if(fp==NULL)
{
printf("暂无用户,请先注册:
\n");
found();
exit(0);
}
for(i=0;fread(&userdata[i],sizeof(zhanghao),1,fp)!
=0;i++);
fclose(fp);
if(set==1)
Pass();
elseif(set==2)
found();
return0;
}
voidPass()
{
intnum,psw;
printf("请输入账号:
");
scanf("%d",&num);
printf("请输入密码:
");
scanf("%d",&psw);
j=0;
while(userdata[j].num!
=num&&j<=i)
j++;
if(psw==userdata[j].paw)
{
FILE*fp;//读取商品信息
fp=fopen("e:
\\data.txt","r");
if(fp==NULL)
{
printf("暂时没有用户!
\n");
system("pause");
exit(0);
}
for(k=0;;k++)
{
fread(&shangpin[k],sizeof(goods),1,fp);
if(feof(fp))
break;
}
fclose(fp);
if(num/100000==1)
customer(num);
elseif(num/100000==2)
caigou();
elseif(num/100000==3)
manager();
}
else
{
printf("密码错误!
!
!
\n");
main();
}
}
voidfound()
{
intset,rset;
printf("请选择\n【1】客户\n【2】采购员\n【3】经理\n");
scanf("%d",&set);
system("cls");
if(set==1)
{
setpsw(set);
}
elseif(set==2||set==3)
{
printf("请输入最高权限密码\n密码:
");
scanf("%d",&rset);
if(rset==123456)
setpsw(set);
else
{
printf("密码错误!
!
!
\n");
system("pause");
system("cls");
found();
}
}
}
voidsetpsw(intset)//账号设置
{
intrset;
zhanghaouser;
printf("请输入5位数字:
");
scanf("%d",&rset);
if(rset>=100000)
{
printf("账号需设置为5位\n");
system("pause");
setpsw(set);
}user.num=set*100000+rset;
j=0;
while(userdata[j].num!
=user.num&&j<=i)
j++;
if(j<=i)
{
printf("用户名已存在,请更换用户名!
\n");
system("pause");
setpsw(set);
}
system("cls");
printf("您的账号为%d,请牢记\n",user.num);
printf("请输入6位密码:
");
scanf("%d",&set);
printf("请再次输入密码:
");
scanf("%d",&rset);
if(set==rset)
{
printf("请输入您的姓名:
");
scanf("%s",user.name);
printf("请输入您的联系方式:
");
scanf("%s",user.tel);
system("cls");
user.paw=set;
printf("用户注册成功!
\n");
FILE*fp;
fp=fopen("e:
\\data.txt","a");
if(fp==NULL)
{
printf("Can'treaddatafromfile");
exit(0);
}
fwrite(&user,sizeof(zhanghao),1,fp);
fclose(fp);
system("pause");
system("cls");
main();
}
else
{
printf("两次密码不同,请重新操作!
\n");
system("pause");
system("cls");
found();
}
}
3.3客户模块流程图
3.4客户模块部分源代码
voidcustomer(intnum);//这是客户模块
voidbuildlist(intnum);//创建订单
voidchading(intnum);//查询订单
voiddelorder(intnum);//删除订单
voidchangeorder(intnum);//修改订单
voidsaveroder();//保存订单信息
voidbuildlist(intnum)//创建订单
{
dingdanone;
intm,n;
while(seeku2(),printf("请输入产品编号和数量,若想结束,在产品编号输入【0】\n产品编号:
"),scanf("%d",&m),m!
=0)
{
m--;
one.num=num;
strcpy(one.name,shangpin[m].name);
one.price1=shangpin[m].price1;
one.price2=shangpin[m].price2;
printf("数量:
");
scanf("%d",&n);
if(shangpin[m].amount{
printf("存货不足,缺%d个,先卖给您%d个,请反馈信息给我们",n-shangpin[m].amount,shangpin[m].amount);
one.amount=shangpin[m].amount;
shangpin[m].amount=0;
system("pause");
savegoods();
}
else
{
one.amount=n;
shangpin[m].amount-=n;
printf("已添加商品到订单\n");
system("pause");
savegoods();
}
FILE*fp;
fp=fopen("e:
\\dingdan.txt","a");
if(fp==NULL)
{
printf("Can'treaddatafromfile");
exit(0);
}
fwrite(&one,sizeof(dingdan),1,fp);
fclose(fp);
system("cls");
}
}
voidchangeorder(intnum)//修改订单
{
chading(num);
intn,d,m=0,flag;
printf("请输入需要修改的订单的编号,输入【0】退出:
");
scanf("%d",&d);
if(d==0)
customer(num);
for(n=0;n
{
if(num==ding[n].num)
{
m++;voiddelorder(intnum)//删除订单
{
chading(num);
intn,d,m=0,flag=0;
printf("请输入需要删除的订单的编号,输入【0】退出:
");
scanf("%d",&d);
if(d==0)
customer(num);
for(n=0;n
{
if(num==ding[n].num)
{
m++;
if(m==d)
flag=1;
for(j=0;j{
if(!
strcmp(ding[n].name,shangpin[j].name))
shangpin[j].amount+=ding[n].amount;
}
}
if(flag)
ding[n+1]=ding[n+2];
}
p--;
saveroder(num);
savegoods();
system("cls");
printf("删除后订单为:
\n");
delorder(num);
}
if(m==d)
{
printf("请输入修改后的购买数量:
");
scanf("%d",&flag);
for(j=0;j{
if(!
strcmp(ding[n].name,shangpin[j].name))
{
if(shangpin[j].amount>=(flag-ding[n].amount))
{
shangpin[j].amount+=(ding[n].amount-flag);
ding[n].amount=flag;
}
else
{
printf("存货不足,先卖给您%d个,请反馈信息给我们",shangpin[j].amount+ding[n].amount);
shangpin[j].amount=0;
ding[n].amount=shangpin[j].amount+ding[n].amount;
}
}
}
}
}
}
saveroder(num);
savegoods();
system("cls");
printf("修改后订单为:
\n");
changeorder(num);
}
voidsaveroder()//保存订单信息
{
FILE*fp;
fp=fopen("e:
\\dingdan.txt","w");
if(fp==NULL)
{
printf("Can'treaddatafromfile");
exit(0);
}
fwrite(ding,sizeof(ding[0]),p,fp);
fclose(fp);
}
4设计的实现
此界面为程序进入系统后的主欢迎界面,所有用户都可在此登录或注册,系统通过用户账号识别用户类型,登录成功后自动跳转到对应角色的功能菜单。
图4.1主界面
此界面为客户下单后,查询自己已经订购的产品界面。
图4.2查询订单
此界面为客户修改订单,首先为客户列出已订购商品,客户可通过商品编号修改订单。
图4.3修改订单
此界面是经理查看产品销售情况,可以看到每个商品的销售量,利润等信息。
图4.4商品销售情况界面
此界面为查看所有已经注册的用户信息。
图4.5所有用户信息界面
此界面为采购员查看客户的订单,根据订单可以为客户安排货物。
图4.6客户订单界面
5总结
通过这次C语言实训,尝在为期两周的时间中,我们同组的同学共同的感受是:
C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和代码量是平时所无法比拟的。
这就更需要精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。
在这次实训中,我对对C语言有了一个更深的了解认识,也对以前学的知识得到巩固,通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。
这次实训,最令人激动的就是合作做项目,虽然这只算是一个很小的项目。
每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。
通过这次实训,也使我发现了许多问题。
我也认识到自己还有很多的知识没学好,而且许多东西还要去翻书,去上网搜索。
比如说把多行字符串存入文本,然后再调用后多行输出,平时没有这么用过,在本次实训中发现了此问题,解决后又增长了一项新技能。
6参考文献
1.甘勇.C语言程序设计.中国铁道出版社,2014.
2.王正瑄.C语言程序设计.中国计划出版社,2008.
3.夏宝岚.C语言设计[M].华东理工大学出版社,2002.
4.李伦.C语言设计界面大全[M].机械工业出版社,1993.
实训成绩评定表
成绩
采用五级分制:
优、良、中、及格、不及格
指导教师评语:
签名:
年月日