C语言课程设计一个快递管理系统

C语言课程设计一个快递管理系统,第1张

设该快递公司有N个同规格的存货柜(编号为1 -- N),柜子共有ROW层(从上到下编号为1 -- ROW),每层有COLMN个格子(从左往右编号为1 -- COLNM)。假定手机尾号为7168的客户快件存放在第二个柜子的第五层、第三个格子中,则输入信息为2 5 3 7168,若该格子中有物品,则显示提示息,并要求管理员重新输入数据,直到存放成功为止。取物品时,只需输入7168即可,如找到了则显示存放位置(柜子编号、层编号和格子编号),否则提示管理员未找到该客户的快件。

#include <stdio.h>

#include <conio.h>  // for _getch()

#include <stdlib.h> // for system()

#include <memory.h> // for memset()

const int N = 13

const int ROW = 10

const int COLMN = 10

const int MAXSIZE = 15

int deposit(int a[][ROW][COLMN],int cabinet,int row,int colmn,int client) {

if(cabinet < 1 || cabinet > N) {

printf("对不起,没有编号为:%d的柜子。\n",cabinet)

return 0

}

if(row < 1 || row > ROW) {

printf("对不起,%d柜没有%d层。\n",cabinet,row)

return 0

}

if(colmn < 1 || colmn > COLMN) {

printf("对不起,%d柜%d层没有%格。\n",cabinet,row,colmn)

return 0

}

a[cabinet - 1][row - 1][colmn - 1] = client

return 1

}

int draw(int a[][ROW][COLMN],int client) {

int i,j,k

for(i = 0 i < N ++i) {

for(j = 0 j < ROW ++j) {

for(k = 0 k < COLMN ++k) {

if(a[i][j][k]) {

printf("存放位置:%d柜 第%d层 第%d格\n",i + 1, j + 1, k + 1)

a[i][j][k] = 0

return 1

}

}

}

}

printf("对不起,没有找到手机尾号为%d客户的快件。\n")

return 0

}

int main() {

int cabinet,row,colmn,client

int op

FILE *fp

char filename[] 滑宏= "storeroom.bin"

int storeroom[N][ROW][COLMN]

if((fp = fopen(filename,"rb")) == NULL) {

memset(storeroom,0,sizeof(storeroom))

fp = fopen(filename,"wb")

}

else {

fread(storeroom,sizeof(storeroom),1,fp)

fclose(fp)

fp = fopen(filename,"wb")

}

do {

printf("┌─────────────────┐\n")

printf("│          快递管滚让枝理程序            │\n")

printf("├─────────────────┤\n")

printf("│          1、快件存放             │\n")

printf("│          2、快件领取             │\n")

printf("├─────────────────┤\n")

printf("│          0、退出            大敏     │\n")

printf("└─────────────────┘\n")

printf("请选择:")

op = _getch()

if(op < '0' || op > '2') {

system("cls")

continue

}

printf("%c\n",op)

fflush(stdin)

switch(op - '0') {

case 1 : printf("柜 层 格 尾号:")

scanf("%d%d%d%d",&cabinet,&row,&colmn,&client)

deposit(storeroom,cabinet,row,colmn,client)

break

case 2 : printf("手机尾号:")scanf("%d",&client)

draw(storeroom,client)

break

case 0 : break

default : printf("错误的选择。\n") break

}

}while(op - '0')

fwrite(storeroom,sizeof(storeroom),1,fp)

fclose(fp)

return 0

}

1.客户调研及定向

对于第三方物流公司,专线公司,普通货运部进行调研,以便确定流程,并且根据市场切入点确定开发软件的方向,一个软件无论如何无法适应全部的物流公司,蔽搭不同类型的物流公司的对于软件的要求侧重点不同,流程也不同,又因流程是决定软件架构及设计的主要因素,故此前期的工作应该是确定软件适应的客户群体,并根据该客户群体的共性来定制软件的流程。

2.系统设计及数据库关宏皮拿系

系统设计的面比较广,在整个软件开发的时间占用也比较长,几乎可以达到三分之一之重。主要是先根据软件的流程,设计主要的静态页面,在不关联数据库的前提下,先分析一下软件的静态页面对于目标群物流公司流程的符合程度,包括一些细节的输入项,显示项,是否满足目标客户群需要,是否方便理解和 *** 作,这个过程还需要目标客户群代表进行评价,以便确定最终的静态页面流程及要素内容。

确定以上内容之后就是网页设计,这个就比较简单,主要是在页面布局及配色方面。同时会兼顾一些小的技巧的工具附加。

页面及流程确定之后,数据库的设计及关系也就呼之欲出。这里面最重要的是数据库之间、网页程序之间的关联关系的确定。也比较费时费力。另外一点,数据库的字段名称必须规范化。

所有的以上开发文档必须进行造册备份,并且在今后的升级或维护过程中,对于已经更改的内容进行详细的记录。这是让一个软件持续化改进的最最必要的过程。少了这个,一旦有人辞职,或者出现不同客户不同的定制需求,这个软件最终会被自己搞乱。

3.开发程序的确定及代码的编写

为了避免今后维护升级及人员流动带来的代码方面的维护不便,故此,开发之前必须就语言、函数、代码等内容进行规范化。

程序代码的编写可以交由不同的人员进行开发,但必须是开发一个模块,测试一个模块,不能等到程序全部开发完毕再统一测试,因为这样最容易在初级阶段发现程序的错误,甚至是流程中考虑不清楚的部分,在开发过程中其实流程重建是最头痛的事情,故此在上文提到的第二点中就更加显得重要。

程序的测试内部通过之后,必须经由客户群代表进行实际的测试,然后再不伤害握纤程序骨架的前提下,进行易用化的修改。

4.培训文件的撰写及培训的流程

这个属于售后的部分,但必须是经由销售、开发人员、目标客户群共同努力才能形成一个真正行之有效的培训文档。

一套非定制的物流信息系统必须达到三个要求

1.易用

如果让一帮只有高中文化的人能够经过不超过3天的培训就能使用。其中所用的语言应该是他们平时所使用的。

2.适用

流程的符合程度,报表的符合程度

3.实用

这些公司的老板要满意,可以提供他们的信息透明度和共享度,让老板有省心的感觉。

首先建立一个结构体,包含以下属性:物品名称、物品编号、物品出厂地、物品配送地、配送方式、配送个数、配送金额、配送日期(年、月、日)等

然后调用STL中的list(链表),简单点的可以用结构体数组,在内存中建立所有的节点信息

添加就直接对上述数据结构进行 *** 作即可

显示的话轮询上述结构,依次输出

存储则调用文件读写接口依次写到文件里去

查询就是查找数据结构,根据关键字找到后进行输出

更改首先也是找到该节誉正点,然后庆册悔对结构体节点进行修改

删除则直接抹掉该节点,前后指针连起来即可

程序设计的作业吧? 亲,我们就算帮你写出来了,用到的东西可能是超出姿慎你们现在学习程度的,你保证你们老师看不出来?

自己老老实实写吧,思路都给你提供了,照着一步步做就行了

写完一个这样的东西之后,以后就简单了,我们当时也是这么写代码过来的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12552033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存