电脑仓库管理系统 - 范文中心

电脑仓库管理系统

08/05

C 语言课程设计

电脑仓库管理系统

学 院: 计算机与信息科学学院

学生姓名: xx

指导教师: xxx 职称 老师

专 业: 网络工程

班 级: xxx

完成时间: xxxxx

目 录

1 问题要求及任务描述 …………………………………………………………1

1.1 题目要求……………………………………………………………………1

1.2 主要任务……………………………………………………………………1 2 解决问题的主要思路和方法 …………………………………………………1

2.1 关键问题……………………………………………………………………1

2.2 拟采用解决问题的方法……………………………………………………1

2.3主要算法……………………………………………………………………1 3 程序实现 ………………………………………………………………………1

3.1 程序实现时应考虑的问题…………………………………………………1

3.2 主要源代码及说明…………………………………………………………1 4 测试或调试 ……………………………………………………………………1 5 小结 ……………………………………………………………………………1

5.1问题解决方法及程序实现小结 ……………………………………………1

5.2 尚未解决的问题及下一步工作思路 ………………………………………1 6 参考文献 ………………………………………………………………………1 7 附录 ……………………………………………………………………………1

1 问题要求及任务描述

1.1 题目要求

编写出便于电脑销售商家管理电脑信息的程序。

1.2 主要任务

程序功能可实现登录用户系统、输入密码、添加电脑信息(包括电脑品牌、电脑型号、电脑尺寸、电脑颜色)、修改电脑信息、删除电脑信息及查看所有电脑信息等。

图1.1 登录界面(五号黑体)

图1.2 输入密码界面(五号黑体)

图1.3 功能界面 (五号黑体)

2 解决问题的主要思路和方法

2.1 关键问题

如何让程序实现输入密码登录以及添加、修改、删除、查看信息的功能并实现界面的转换。

2.2 拟采用解决问题的方法

充分使用c 语音中的各种函数来解决问题。

2.3 主要算法

使用strcmp 函数实现输入密码登录,既比较输入的字符是否与原字符相同,(如图2.1);使用数组来实现添加信息,并创建文件夹使用文件指针将信息保存,(如图2.2、2.3);使用fopen 来打开文件使用fread 来读取信息(如图2.4);使用findALL 来读取所有信息(如图2.5);使用update 来修改信息(如图2.6);使用del 来删除信息(如图2.7);界面的转换则使用cls 来清空控制台(如图2.8、2.9),并使用多个do 循环和for 循环来实现界面的返回。

图2.1 strcmp函数实现输入密码

图2.2 add函数实现添加信息

图2.3saveMessage 保存信息

图2.4readMessage 读取信息

图2.5findALL 查找信息

图2.6update 修改信息

图2.7del 删除信息

图2.8清出控制台之前

图2.9清楚控制台之后完成转换界面

3 程序实现

3.1 程序实现时应考虑的问题

是否能够实现所以功能,实现过程中是否有错误。

3.2 主要源代码及说明

#include//标准化的输入输出 #include //通用工具函数

#include //控制台的输入输出

#include//包含一些字符串通用的函数 #define MAX 20 //定义一个常量

void add();

int login();

void showMainMenu();

void saveMessage();

int sum;

int readMessage();

void findALL();

void update();

void del();

struct computer{

int id;

char name[10];

int type;

char size[20];

int color;

}computer[MAX]; //数组长度 20

void main()

{

int choice;

system("color FC");

int login_num; //用来接收登录返回的结果

do

{

system("cls"); //system:用来调用我们的DOS 操

作系统 cls清空控制台

printf("▁▁▂▃▄▅▆▇██▉▉欢迎使用电脑仓库管

理系统▉██▇▆▅▄▃▂▁▁\n");

printf(" 1、登录 \n");

printf(" 2、关于我们 \n");

printf(" 0、退出系统 \n");

printf(" 2015 03 21 \n");

printf("▁▁▂▃▄▅▆▇██▉▉□□□□□□□□□

□□□▉██▇▆▅▄▃▂▁▁\n");

printf("请输入您的选择:");

scanf("%d",&choice);

switch(choice)

{

case 1:

login_num=login();

if(login_num==1)

{ //表示登录成功

sum=readMessage();

showMainMenu();

}

break;

case 2:

system("cls");

printf("版权所有:第六小组\n");

printf("技术支持:QQ :1003769711\n");

printf("按任意键继续");

getch(); //getch()和scanf 效果差不多 区别在于

scanf 能看到我们输入的东西 getch则不能看到

break;

}

}while(choice!=0);

}

int login()

{

int balance; //表示还可以输入几次密码

int i;

char realpwd[8]="123"; //定义系统登录的密码

char pwd[8];

system("cls");

for(i=0;i

{

printf("请输入密码:\n");

scanf("%s",&pwd); //取出我们控制台输入的密

//strcmp 比较两个字符串 如果相等 则返回0. 如

果大于的话,则返回1,否则,返回-1

if( (strcmp(realpwd,pwd))==0 )

{

printf("登录成功\n");

return 1; //1:代表登录成功

}

else

{

balance=2-i;

if(balance==0)

{

printf("你的机会已经用完,系统将自动退出

TAT\n");

exit(0);

}

printf("密码错误,你还有%d次机会O.O",balance);

}

}

return 0; //代表登录失败

}

void showMainMenu()

{

int choice;

system("color F1");

do

{

system("cls");

printf("▁▂▃▄▅▆▇█◣欢迎进入电脑仓库管理系统

◢█▇▆▅▄▃▂▁\n");

printf(" 1、添加电脑信息 \n");

printf(" 2、修改电脑信息 \n");

printf(" 3、删除电脑信息 \n");

printf(" 4、查看电脑信息 \n");

printf(" 0、退出系统 \n");

printf("▁▂▃▄▅▆▇█◤ 请输入你的选择: ◥█▇▆▅▄▃▂▁\n");

scanf("%d",&choice);

switch(choice)

{

case 1:

add();

break;

case 2:

update();

break;

case 3:

del();

break;

case 4:

findALL();

break;

}

}

while(choice!=0); //退出系统

printf("正在保存信息中,系统即将退出\n");

saveMessage();

exit(0);

}

void add()

{

int i=sum;

char choice;

int flag=0;

system("cls");

do

{

printf("添加电脑信息\n"); //对于联系人编号的操作

computer[i].id=sum+1;

printf("添加电脑品牌:\n");

scanf("%s",&computer[i].name); //数组student[1] printf("添加电脑型号:\n");

scanf("%d",&computer[i].type);

flushall(); //回车将残留在缓存去 清空所以的缓存区

printf("添加电脑尺寸:\n");

scanf("%s",&computer[i].size);

printf("添加电脑颜色:\n");

scanf("%d",&computer[i].color);

flushall();

sum++; //代表成功插入数据 sum+1

i++; //如果继续添加的话,则开始插入第i+1条数据,也就是下一条数据

printf("是否继续添加信息:(y/n)\n");

scanf("%c",&choice);

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

{

flag=2;

}

else

{

flag=1;

}

}while(flag==2);

printf("添加信息完毕,请按任意键继续");

getch();

}

void saveMessage()//保存数据到文件当中

{

FILE*fp; //这里,我们是定义了一个文件指针

int i;

//fopen:打开文件 fopen("",""); 文件的文件名是什么 以什么方式打开这个文件

//注意,一定要记得在工程里面创建式一个文本文件

//r:读 w:写 a:追加 b:二进制 t:文本

//r/w/a b/t rb rt wb wt ab at

if( (fp=fopen("computer.txt","wb"))==NULL )

{

printf("打开文件失败,请联系制作人:[1**********]\n"); }

else

{

for(i=0;i

{ //fwriter() 缓存区 大小 一次写多少个 写入的文件

if( (fwrite(&computer[i],sizeof(struct computer),1,fp))!=1 )

{

printf("写入文件失败,请联系制作人:[1**********]");

}

}

} //关闭文件

fclose(fp);

}

//读取数据信息

int readMessage()

{

FILE *fp; //这里,我们是定义了一个文件指针

int i=0;

if( (fp=fopen("computer.txt","rb"))==NULL )

{

printf("打开文件失败,请联系制作人:[1**********]\n");

return 0;

}

//feof 代表的是,检查文件是否到末尾了,如果已经到了末尾,则返回1

while(feof(fp)!=1)

{//开始读取数据

fread(&computer[i],sizeof(struct

computer),1,fp);

if(computer[i].id==0)

{

break;

}

else

{

i++;

}

} //关闭文件

fclose(fp);

return i;

}

void findALL()

{

int i=0,j=0;

int page=0;

system("cls");

printf("\n◆◆◆◆◆◆◆◆◆◆◆◆◆电脑信息◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\n 编号-----品牌-----型号-----尺寸-----颜色 \n");

do

{

if(computer[i].id!=0)

{

j++;

if(j%10!=0)

{

printf("%12d%10s%10d%8s%8d\n",computer[i].id,computer[i].name,computer[i].type,computer[i].size,computer[i].color);

}

else

{

page++;

printf("这是第%d页,请按任意键查看下一页\n",page);

getch();

system("cls");

printf("\n◆◆◆◆◆◆◆◆◆◆◆◆◆电脑信息◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\n 编号-----品牌-----型号-----尺寸-----颜色 \n");

printf("%12d%10s%10d%8s%8d\n",computer[i].id,computer[i].name,computer[i].type,computer[i].size,computer[i].color);

}

}

i++;

}

while(computer[i].id!=0);

printf("\n\t\t查询结束,请按任意键继续\n");

getch();

}

void update()

{

int sid;

int i;

int choice;

int flag=0;

system("cls");

do

{

printf("请输入你想修改的电脑编号:");

scanf("%d",&sid);

flushall();

//判断输入进来的联系人到底存不存在

for(i=0;i

{ //查找编号

if(computer[i].id==sid)

{ //数据已经找到

printf("该电脑的信息如下:\n");

printf("\n◆◆◆◆◆◆◆◆◆◆◆◆◆电脑信息◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\n 编号-----品牌-----型号-----尺寸-----颜色 \n");

printf("%12d%10s%10d%8s%8d\n",computer[i].id,computer[i].name,computer[i].type,computer[i].size,computer[i].color);

printf("1、修改电脑品牌\n");

printf("2、修改电脑型号\n");

printf("3、修改电脑尺寸\n");

printf("4、修改电脑颜色\n");

printf("请输入你的选择:\n");

scanf("%d",&choice);

switch(choice)

{

case 1:

} printf("请输入修改后的品牌"); scanf("%s",computer[i].name); break; case 2: printf("请输入修改后的型号"); scanf("%d",computer[i].type); break; case 3: printf("请输入修改后的尺寸"); scanf("%s",computer[i].size); break; case 4: printf("请输入修改后的颜色"); scanf("%d",computer[i].color); break; } } else if(i==sum-1) { printf("对不起,没有找到相应的信息\n"); } } printf("修改信息成功,是否继续修改信息:(y/n)\n"); scanf("%c",&choice); if(choice=='y'||choice=='Y') { flag=2; } else { flag=1; }

while(flag==2);

printf("修改信息完毕,请按任意键继续");

getch();

}

void del()

{

int sid;

int i;

char choice;

int k;

int m=0;

int flag=0;

system("cls");

printf("请输入你想删除的电脑编号:");

scanf("%d",&sid);

flushall();

for(i=0;i

{ //查找编号

if(computer[i].id==sid)

{ //数据已经找到

printf("该电脑的信息如下:\n");

printf("\n◆◆◆◆◆◆◆◆◆◆◆◆◆电脑信息◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("\n 编号-----品牌-----型号-----尺寸-----颜色 \n");

printf("%12d%10s%10d%8s%8d\n",computer[i].id,computer[i].name,computer[i].type,computer[i].size,computer[i].color);

printf("确定删除该条信息吗?(y/n)\n");

scanf("%c",&choice);

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

{

//删除这里,我们是使用了一个函数 memcpy(xxxxxx ,xxxx ,xxx )

// 定义目标对象 原对象 大小

for(k=0;k

{ //已经找到我们要删除的数据 这里 sum=3 k:2 m:1 i:1

if(k==i)

{

}

else

{

memcpy(&computer[m],&computer[k],sizeof(computer));

m++;

}

}

}

}

}

printf("删除成功,是否继续删除信息:(y/n)\n");

getch();

}

4 测试或调试

经多次测试,程序已经能够正常运行。使用者能够简单便捷的使用此系统,进行对电脑仓库信息的查看、添加、修改和删除等操作。

5 小结

5.1问题解决方法及程序实现小结

充分使用c 语言的知识来解决问题。

在程序实现的过程中我们遇到的许多问题,但在老师的指导下我们团结一致,一一解决了所遇到的问题,并且收获了许多,学习到了一些编写程序时常见的问题及解决方法。

电脑仓库管理系统界面简洁清爽,简单明了,便于管理者操作管理信息,但也存在实用性不太强等问题。

5.2尚未解决的问题及下一步工作思路


相关内容

  • 超市库存管理系统需求分析
    超市库存管理系统 需求分析 1. 组织结构图: 超市 采购部门库存部门销售部门财务部门 图1超市组织结构图 进库管理部门 库存管理部门经理 货物管理部门 出库管理部门 图2超市库存管理部门组织结构图 表1超市管理系统各单位职责说明 2业务流 ...
  • [认识"我的电脑"]教学设计
    <认识"我的电脑">教学设计 <认识"我的电脑">教学设计 一.教学目标 1.知识目标 (1)认识"我的电脑"窗口组成. (2)学习窗口的基本操作,并能熟练 ...
  • 服装公司岗位说明书(大全)20**年
    销售AD岗位说明书 岗位名称:销售AD 所属部门:销售部 直接上级:销售部经理 直接下属:无 工作目标:维护好客户和终端店铺,货源调控合理及时,确保资金安 全回笼. 岗位职责: 1. 负责对分管区域销售市场各销售网点的货品配发和调控,及时对 ...
  • 连锁超市配送中心业务规划书
    覅一部分 配送中心整体规划方案 一.订货.库存和销售 1.销售和利润是物流产生的动力 商业企业要求最好的销售和利润的最大化,就要求有高效的供应链的保证,连锁商业因为其地域广大.利润微薄.所以对于供应链能力的要求大大超过了传统零售业.为了保证 ...
  • 物流实验室实训报告
    物流实验室实践报告 课题名称:物流实验室参观报告 学院系别: 指导老师: 专业:工商管理 班级:12级工商2班 组号:1组 成员: 时间:2014年12月12日(第15周)上午9.30-10.20 地点:七系教学楼A201物流实验室 一.序 ...
  • 代理商团队建设方案
    某内衣品牌团队建设方案 一. 团队构架: 共24人 二.团队人员分工 职位 主要工作范围及业务技能 主要业务报表 代理商 助理 总监 主要工作: 1.制定销售计划:销售.网络.形象柜 进行任务分解(区域客户.月度.岗位) 2.合理布局网络: ...
  • 海尔物流运作模式分析
    海尔物流运作模式分析 作 者:&&& 指导老师:&&& 摘要:近年来,伴随家电行业领域竞争的日益加剧,越来越多的企业将目光投向了另一个利润源泉--物流领域竞争.如何有效地加强物流管理,充分发挥 ...
  • 电脑销售技巧盘点
    电脑销售技巧盘点[电脑销售技巧] 2011-07-26 15:01:09 来源:互联网 电脑销售技巧,经验,心得,体会,分享,策略,诀窍,绝招,宝典,指南,总结了一些电脑销售技巧供大家分享,有不足之处请大家补充! 电脑销售技巧,经验,心得, ...
  • 仓库管理员述职报告
    大家好,我叫xxx,三个月的时间真快,在这三个月当中在领导和同事的关心.支持下,本人尽职尽责做好各项工作.具体总结如下: 一.熟悉样品 我们样品分布在四个地方存放: 1.样品仓,xx年入库的,从0923开始 0968止,0969至09108 ...
  • 浅析海尔集团信息系统
    浅 析 海 尔 集 团 的 信 息 系 统 摘要 本文是对海尔集团的信息系统进行一个总体的分析.随着企业信息化对企业未来发展的重要性日益增加,海尔集团从80年代开始不断改进企业的组织结构和管理方式,90年代建立了"事业部制&quo ...