车辆管理销售系统.docx

上传人:b****5 文档编号:12012850 上传时间:2023-04-16 格式:DOCX 页数:28 大小:106.85KB
下载 相关 举报
车辆管理销售系统.docx_第1页
第1页 / 共28页
车辆管理销售系统.docx_第2页
第2页 / 共28页
车辆管理销售系统.docx_第3页
第3页 / 共28页
车辆管理销售系统.docx_第4页
第4页 / 共28页
车辆管理销售系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

车辆管理销售系统.docx

《车辆管理销售系统.docx》由会员分享,可在线阅读,更多相关《车辆管理销售系统.docx(28页珍藏版)》请在冰豆网上搜索。

车辆管理销售系统.docx

车辆管理销售系统

******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2012年春季学期

 

C程序设计课程设计

题目:

车辆管理销售系统

专业班级:

姓名:

人才v

学号:

指导教师:

成绩:

摘要

本汽车销售管理系统是完全自主开发的汽车销售管理软件,以汽车销售企业中的各部门和其只能为基础,利用c语言编程来实现汽车销售的办公自动化和销售统计。

它能够对汽车销售业务进行详细的管理,对采购和销售的配件情况进行详细记录,包括采购信息录入、按名字和编号等进行查询、修改录入错误的信息和处理退回配件等功能。

 

关键词:

软件工程销售管理c语言

目录

一前言1

1.1编写目的1

1.2项目背景:

1

1.2.2工程产品的名称:

汽车销售管理系统1

二系统分析1

2.1系统现状1

2.2用户需求1

2.3系统功能需求2

2.4数据采集2

2.5概要设计2

三系统总体设计4

3.1系统的顶层数据流图:

4

四详细设计4

4.1.功能函数的调用关系图4

4.2主要设计及编码5

五测试数据及运行结果6

5.1.正常测试数据和运行结果6

5.2.异常测试数据及运行结果7

六设计总结7

参考文献8

致谢8

附录-1-

一前言

1.1编写目的

1课程设计通过本次,强化上级动手能力,在理论和实践的基础上进一步巩固C语言程序设计课程的学习内容,掌握工程软件设计的基本方法。

2学会将知识应用与实际的方法,提高分析和解决问题的能力,增加综合能力。

3为后续各门计算机课程的学习打下坚实基础。

为毕业设计和以后工作打下必要基础。

4通过本次课程设计基本掌握C语言的实际应用基础与技巧。

5本程序的预期使用者为客户、测试人员、用户文档编写者、项目管理人员,本程序的使用对象为使用此汽车销售系统软件的用户。

1.2项目背景:

1.2.1工程的名称:

C语言课程设计(汽车销售管理系统)

1.2.2工程产品的名称:

汽车销售管理系统

二系统分析

2.1系统现状

本软件的目标是使企业的销售管理能够更正规,管理简单化,电子化,节省企业管理的不必要资源浪费。

汽车销售管理系统的最终用户为企业的管理者。

2.2用户需求

用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。

需求分析:

包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。

模块的独立性:

是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。

2.3系统功能需求

本软件可对登录的用户类型权限进行分类,不同的用户的类型对应的操作功能不同。

车辆采购部门:

可实现对车辆的采购入库单,车辆附加单的添加,对以存在的入库单可根据车辆采购时间,车辆入库编号,车辆编号和采购业务员查询;可对已采购的车辆进行统计,统计的方式分为按采购日期统计和采购业务员统计。

仓库管理部门:

可对所有当前在库的车辆信息进行查询查看,查看移库单和入库单的信息,并可查询当前在库的车辆信息,对车辆可进行进销存统计,并可对库存的车辆进行移库处理,并进行保存。

销售管理部门:

查看当前仓库中的所有库存车辆信息,供用户选择要购买的车辆,操作员可对新售出的车辆售出信息添加至车辆售出信息表中;当仓库中没有客户所要求的汽车时,销售人员可将客户要求的车辆信息和客户信息添加至预售信息表中;在该模块,操作员可已销售的车辆信息进行统计,销售统计的方式分为按业务员统计和按销售日期统计,分别统计出销售的车辆数目,采购总额,销售总额和利润.销售人员在该模块可对库存的车辆按厂商编号进行统计.对于销售单信息可按业务员和销售时间的方式进行统计。

人员管理模块:

查看销售公司中的员工信息,按部门进行分类;并可按员工姓名,员工编号,员工身份证号的方式分别对员工得分信息进行查询.同时可对员工的信息进行添加,更新,注销的操作。

系统管理模块:

可对登录系统的用户进行添加,用户根据不同的用户类型赋予不同的操作权限,分为:

采购部门,仓库部门,销售部门,系统管理。

在该模块可查看当前所有的用户名和用户类型,并可按照用户类型的统计方式对当前的所有用户进行统计.系统管理员并可在知道用户密码的情况下对用户进行修改密码和删除用户的操作。

2.4数据采集

通过键盘、鼠标向软件系统输入数据。

2.5概要设计

本软件将辅助管理人员完成全公司汽车入库、出库、库存等方面的管理,可以进行查询、统计等工作,提高公司对汽车的管理效率,使企业的销售管理能够更正规,管理简单化,电子化,节省企业管理的不必要资源浪费。

本节我们将对系统的硬件环境作简要介绍,并对待开发系统作概要设计。

三系统总体设计

3.1系统的顶层数据流图:

四详细设计

4.1.功能函数的调用关系图

4.2主要设计及编码

system("cls");

p1=head;

p0=(structGOODS*)malloc(sizeof(structGOODS));

putitem_inf("所需要添加的汽车信息是:

\n\n\n");

printf("请输入所要添加的汽车编号:

");

scanf("%d",&p0->num);

printf("\n请输入所要添加的汽车名称:

");

scanf("%s",p0->name);

printf("\n请输入所要添加的汽车数量:

");

scanf("%d",&p0->count);

printf("\n请输入所要添加的汽车价格:

");

scanf("%d",&p0->price);

printf("\n请输入所要添加的汽车出厂日期(yyyy-mm-dd):

");

scanf("%d-%d-%d",&p0->year,&p0->month,&p0->day);

for(p1=p1->next;p1!

=NULL;p1=p1->next)

if(p1->next==NULL)

{

p1->next=p0;

p1=p0;

p1->next=NULL;

}

printf("\n\n");

putitem_inf("**添加信息为**");

printf("\n\n");

printf("编号:

%ld名称:

%s数量:

%ld价格:

%ld出场日期:

%ld年%d月%d日\n\n\n",p0->num,p0->name,p0->count,p0->price,p0->year,p0->month,p0->day);

printf("\n\n");

putitem_inf("添加信息已结束,按任意键继续!

");

getch();

returnhead;

}

五测试数据及运行结果

5.1.正常测试数据和运行结果

5.2.异常测试数据及运行结果

六设计总结

紧张而有序的c语言课程设计结束了,可以说这是一次c语言在实践中的重要应用,将课本上学到的c语言知识系统地应用到了解决实际问题当中。

当今社会的发展越来越快,而信息时代的计算机网络加快了这一过程。

人们越来越体会到互联网及计算机的强大作用。

如今,它已成为人们生活中不可缺少的一部分。

此次课程设计立足于实际,对我们刚接触c语言的学生来说不仅是对语言本身学习的一种深入,更是推动了我学习c语言的极大兴趣,原来书本上枯燥的讲述能在现实中带来如此大的方便。

设计中我深刻地认识到一名程序员的辛苦,稍不留意就有可能前功尽弃,重头再来。

缜密的思考、严谨的设计态度至关重要。

设计程序是一项艰苦而又费神的脑力劳动。

只有用心去做,用系统工程的思想去总体规划,不仅要独立思考,还得树立起团队意识,集合多人的思考成果,在精通理论的基础上一步步深入,逐个解决设计中遇到的各种问题。

相信这次课程设计会为我今后学习程序设计做一个引子,指导我在程序设计这条路上走的更远。

参考文献

1.姜灵芝,余健.C语言课程设计案例精编.北京:

清华大学出版社,2008

2.王新,孙雷.C语言课程设计.北京:

清华大学出版社,2009

3.游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:

清华大学出版社,2011

4.王连相.C/C++程序设计上机指导与测试.北京:

中国铁道出版社,2006

5.C语言函数手册,机械工业出版社,1999

6.《C语言实例解析精粹》(人民邮电出版社)

7.《C语言程序设计》(电子科技大学出版社)

 

致谢

对于此次课程设计,我首先得感谢我的指导老师,给了我一次接触专业应用的机会,通过此次设计,让我更清楚得认识到程序在现实中各行各业的应用,更加清楚得认识到我学习的方向以及将来要从事的职业。

此次c语言课程设计虽说是我本专业必须具备的素质,但是对于刚接触c语言的我们来说还是有一定难度,不知道如何去总体规划,以及设计的细节。

在设计之初得到了专业老师悉心的指导,并在设计过程中给了我讲解了设计的要点和帮助。

对于此次完成作业我对老师衷心地说一声谢谢!

其次,我得感谢和我一起参与这次设计的伙伴王同学、成同学。

在遇到困难的时候我们都会想办法去解决,充分发挥了团队的力量。

让我明白了什么是集体,什么是合作,真的很感谢你们。

相信在以后的学习中我们会团结的更好。

附录

源代码

#include

#include

#include

#include

structGOODS

{

intnum;/*编号*/

charname[10];/*名称*/

intcount;/*销售数量*/

intprice;/*销售价格*/

intyear;

intmonth;

intday;/*销售日期*/

structGOODS*next;

};

 

voidsave_inf(structGOODS*head)//将单链表种信息保存到指定的磁盘文件中

{

structGOODS*p;

FILE*fp;

charfilename[40];

system("cls");

printf("\n\n");

printf("请输入要保存的文件名:

");

scanf("%s",filename);

if((fp=fopen(filename,"wt"))==NULL)

{

printf("文件出错,按任意键退出!

\n");

getch();

exit

(1);

}

for(p=head->next;p!

=NULL;p=p->next)

fprintf(fp,"%d%s%d%d%d%d%d\n",p->num,p->name,p->count,p->price,p->year,p->month,p->day);

printf("\n\n");

printf("文件已保存成功,按任意键返回!

");

printf("\n\n");

getch();

fclose(fp);

}

structGOODS*read_inf()//从制定磁盘文件中读取信息并存入单链表中

{

structGOODS*head,*r,*car;

FILE*fp;

charfilename[40];

system("cls");

printf("\n\n");

printf("请输入要打开的文件名:

");

scanf("%s",filename);

if((fp=fopen(filename,"rt"))==NULL)

{

printf("读文件错误,按任意键退出!

");

getch();

exit

(1);

}

head=(structGOODS*)malloc(sizeof(structGOODS));

head->next=NULL;

r=head;

while(!

feof(fp))

{

car=(structGOODS*)malloc(sizeof(structGOODS));

fscanf(fp,"%d%s%s%d%d%d\n",&car->num,car->name,&car->count,&car->price,&car->year,&car->month,&car->day);

r->next=car;

r=car;

}

r->next=NULL;

fclose(fp);

printf("\n\n");

printf("文件中信息以正确读出,按任意键返回!

!

!

!

");

printf("\n\n");

getch();

returnhead;

}

voidputitem_inf(char*item)//辅助

{

char*bank="";

printf("%s%s",bank+strlen(item)/2,item);

}

 

structGOODS*get_inf(structGOODS*head)//录入(建立链表)

{

structGOODS*p1,*p2;

charresult;

inti=1;

head->next=NULL;

p2=head;

p2=head;

do

{

system("cls");

putitem_inf("汽车录入信息:

\n");

p1=(structGOODS*)malloc(sizeof(structGOODS));

printf("\n\n请输入第%d辆车的信息:

\n\n",i++);

printf("编号/名称/数量/价格/销售日期(yyyy-mm-dd)\n");

scanf("%d%s%d%d%d-%d-%d",&p1->num,p1->name,&p1->count,&p1->price,&p1->year,&p1->month,&p1->day);

p2->next=p1;

p2=p1;

printf("\n\n");

printf("是否继续?

(Y/N)");

result=getch();

}while(result=='Y'||result=='y');

p2->next=NULL;

returnhead;

}

structGOODS*append_inf(structGOODS*head)//添加

{

structGOODS*p0,*p1;

system("cls");

p1=head;

p0=(structGOODS*)malloc(sizeof(structGOODS));

putitem_inf("所需要添加的汽车信息是:

\n\n\n");

printf("请输入所要添加的汽车编号:

");

scanf("%d",&p0->num);

printf("\n请输入所要添加的汽车名称:

");

scanf("%s",p0->name);

printf("\n请输入所要添加的汽车数量:

");

scanf("%d",&p0->count);

printf("\n请输入所要添加的汽车价格:

");

scanf("%d",&p0->price);

printf("\n请输入所要添加的汽车出厂日期(yyyy-mm-dd):

");

scanf("%d-%d-%d",&p0->year,&p0->month,&p0->day);

for(p1=p1->next;p1!

=NULL;p1=p1->next)

if(p1->next==NULL)

{

p1->next=p0;

p1=p0;

p1->next=NULL;

}

printf("\n\n");

putitem_inf("**添加信息为**");

printf("\n\n");

printf("编号:

%ld名称:

%s数量:

%ld价格:

%ld出场日期:

%ld年%d月%d日\n\n\n"

p0->num,p0->name,p0->count,p0->price,p0->year,p0->month,p0->day);

printf("\n\n");

putitem_inf("添加信息已结束,按任意键继续!

");

getch();

returnhead;

}

 

voidremove_inf(structGOODS*head)//修改

{

intn,chioce,i=0;

structGOODS*p;

system("cls");

printf("\n\n");

putitem_inf("请输入要修改的汽车编号:

");

scanf("%d",&n);

printf("\n\n");

for(p=head->next;p!

=NULL;p=p->next)

{if(p->num==n)

{

system("cls");

putitem_inf("**要修改汽车信息为:

**");

printf("\n\n");

printf("编号:

%ld\n1.名称:

%s2.数量:

%ld3.价格:

%ld4.销售日期:

%ld年%d月%d日\n"

p->num,p->name,p->count,p->price,p->year,p->month,p->day);

printf("\n");

putitem_inf("请选择要修改的信息:

");

printf("\n\n");

printf("\n1.名称:

");

printf("\n2.数量:

");

printf("\n3.价格:

");

printf("\n4.销售日期(yyyy-mm-dd):

");

printf("\n请选择(1-4):

");

scanf("%d",&chioce);

if(chioce==1)

{

printf("\n请输入修改后的车辆名字:

");

scanf("%s",p->name);

}

elseif(chioce==2)

{

printf("\n请输入修改后的车辆数量:

");

scanf("%d",&p->count);

}

elseif(chioce==3)

{

printf("\n请输入修改后的车辆价格:

");

scanf("%d",&p->price);

}

else

{

printf("\n请输入修改后的车辆出厂日期(yyyy-mm-dd):

");

scanf("%d-%d-%d",&p->year,&p->month,&p->day);

}

printf("\n\n");

putitem_inf("**修改后的信息为:

**");

printf("\n");

printf("编号:

%ld名称:

%s数量:

%ld价格:

%ld出场日期:

%ld年%d月%d日\n\n\n"

p->num,p->name,p->count,p->price,p->year,p->month,p->day);

putitem_inf("修改以完成,按任意键继续!

");

}

else

{

printf("\n\n");

printf("数据不存在,请核实后在进行!

");

}

}

getch();

}

structGOODS*delete_inf(structGOODS*head)//删除

{

intnum,n=0;

charresult='y';

structGOODS*p;

system("cls");

p=head->next;

if(p==NULL)

printf("为空文件\\n");

printf("\n\n");

putitem_inf("请输入要删除的编号:

");

scanf("%d",&num);

while(p!

=NULL&&result=='y'||result=='Y')

{

if(p->num==num)

{

n=1;

putitem_inf("应删除的信息为:

\n");

printf("编号:

%ld名称:

%s数量:

%ld价格:

%ld出场日期:

%ld年%d月%d日\n"

p->num,p->name,p->count,p->price,p->year,p->month,p->day);

printf("是否确定删除?

(Y/N)");

result=getch();

if(result=='y'||result=='Y')

{if(p==head)

head=p->next;

else

head->next=p->next;

printf("\n\n");

putitem_inf("**删除的信息为:

**");

printf("\n\n");

printf("编号:

%ld名称:

%s数量:

%ld价格:

%ld出场日期:

%ld年%d月%d日\n\n\n"

p->num,p->name,p->count,p->price,p->year,p->month,p->day);

putitem_inf("删除以完成,按任意键继续!

");

getch();

}

}

head=p;

p=p->next;

}

if(n==0)

{

printf("编号不存在,请核实后再进行删除(并按任意键继续)\n");

getch();

}

returnhead;

}

voidprint_inf(structGOODS*head)//打印

{

structGOODS*p;

system("cls");

putitem_inf("库存数据为:

");

printf("\n\n");

for(p=head->next;p!

=N

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

当前位置:首页 > 工程科技 > 能源化工

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

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