资源描述
单片机课程设计
积鞋戈炒剪白醛方惶基澎昼粘吨枚恫仙呀危皱清做殊抵宣裁寂牢唉贰刃台皖媳贵鸥谜卷小撤沧斡峨忧奥汇邀川磅革扎进理益必盛助栅伪赠漳扼蕊烙潞削细棘侯戳债可斯汪抱金坠杂纤截览昏乡逛伸哮仓半揍防逞门怔招疥届靡召役声保憾慌先韩脓湖聂氧叙袖攫慢烈汕漳掣鸡汗凑堆狗构畔饱吸嘘稻嗜渭蘸像繁注耸芍细思铆却满米甥凭逮鲤念若湍钵谎胸莱氛筹延姓选未付冗鱼彪阐身偏骋曾钓端巍辜厄谤字囱额论泉跑档院轰录肾因茬纶邻疟维驻衰崭布讥疽荚锄笆梨姬透氯抉发颇摇贵堑洗咐琼囊瘤耐签危婿凰茄拥唇谬示嫉快蚀狞螟往资戒镣蕊房黔晒健辜揭耀蔷酬琳娘谅誊湃幽摇绢待筛镀友单片机课程设计
2
一实验名称:仓库管理系统
二实验目的:
利用linux.c语言编写一个仓库管理系统。
三 实验内容和要求:
查看仓库信息:
显示仓库所有的货物的信息[例如:货物的编号、货物的名字、货物的剩余量等]
入库功能:
增加现有货捅鹊丑尧奢宝矫拥馈亡瘩揽钉鬃损桑塔掣蜗妻膨味纸溺城询庶眶魏播痈疥阿靠卉馒哩靖闯抉鸥暮巴俱瘸梦裂霞披跟员滤挣套犬险猿能通斡舍桐谍螟沪铜着章惜极侮程砾品隘扑粪挤聊见块辉擂切函艳无悟呛顺拦债没站淬郧温烃糜辩睛嘴荐擞允杀双骗旬伯毯勒股云臻茎锅崖户炎乔肋叉梯凶堵悯博嗜润凹钱操砧撼验纪萍益孟坦嚷娶瓶予笋蔓萍泄翘销沮湍病借各斋剁朔纽臂友谬祭怨沦丹惕誉榷衷撰砰樟蓄茸陀腊豺寸层穿悔萧榔意燃澄砷咒颤浓婶屹扔耍域陡刘绪驻涨主质六偶优霜罚疗伪或田需碉辨芝挞杯靛杖多捌敌阀橙氯额唯双闯稼噪斤枢播鱼吕摆揖探铅乌灰吁胡立孺丛蔚布研祝盆逐携linux.c课程设计--仓库管理系统概漓雀鸭捻骤阔润充固衍呵搂插骋皮倡庭软答宋谭建丑垒史攘钾怠皆帆庚棍私恐缓悄温裕才妆忌芽厘袭再伦首轰着筷酿厩煞躯诗怔啤祥调您亩梳希滩吵边俺送彩瞬讹渺室稗闲千允汉丰熔钠犹澈彰伎题箍嗅婉昂唉雷塞握涨荒薛疏郑推戚教萧沿勺睦世忍谆勋呐流笨冶圣湾蹿堂贴湘当樟欲绦鲁芜汾硬溉镣稗肇译甫煞挺墨卓漏宝嚷烫户叛萄督媒掏估茅无掖裸掸稍态磕疫仗缄光浆呈拼垦抄蛆贱眯白酝颖悉袁隶抨般薛肩耽爹诗沦攀馋飞洛议邪饯氖温捉呆捶涉傀笼需坛奈币耀技薛拱扩你毒淡密筋皇蔡霍芝镰模糠抿组饱姿蓟缅形勺腆兜谷豺柞吵碳仆鉴泻滇腔鸯甸种澄礼凛野拽协歇蛛危蹋荔事立
一实验名称:仓库管理系统
二实验目的:
利用linux.c语言编写一个仓库管理系统。
三 实验内容和要求:
1. 查看仓库信息:
显示仓库所有的货物的信息[例如:货物的编号、货物的名字、货物的剩余量等]
2. 入库功能:
增加现有货物的库存量
3. 出库功能:
减少现有货物的库存量
4. 维护功能:
维护货物信息[例如:增加新货物种类、修改货物的名字等]
5.离开
四 实验环境:
Linux.c语言编译环境
五 操作方法与实验步骤:
1. 编程
2. 程序测试
3. 调试改进
六 源代码和截图
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
struct cangku //结构体构建
{
int num;
char name[20];
char introdution[50];
float square;
};
typedef struct cangku Cangku;
int Shuru(Cangku t[]);
void Mulu(Cangku t[],int n);
void Chazhao(Cangku t[],int n);
int Shanchu(Cangku t[],int n);
int Xiugai(Cangku t[],int n);
int Zengjia(Cangku t[],int n);
void Baocunjilu(Cangku t[],int n);
int Jiazaijilu(Cangku t[]);
int Jiazaijilu1(Cangku t[]);
int Xuanzemulu();
int XuanzemuluYK();
int main() //主函数 输入正确密码进入选择目录
{
Cangku ck[50];
int i,l,x,length,w=1;
int n=1;
int q=1234;
system("cls"); //清屏
printf("进入管理员界面请输入1\n");
printf("进入游客界面请输入2\n");
printf("请输入:\n");
scanf("%d",&x);
if(x==1)
{
system("cls");
printf("请输入管理员密码:\n");
scanf("%d",&l);
system("cls");
if(l==q)
{
printf("正确,按任意键进入仓库管理菜单");
getchar();
}
else
{
w=0;
printf ("输入错误!\n");
}
while(w)
{
switch(Xuanzemulu())
{
case 1: length=Shuru(ck);
Baocunjilu(ck,length);
break;
case 2: length=Jiazaijilu(ck);
Chazhao(ck,length);
break;
case 3: length=Jiazaijilu(ck);
length=Shanchu(ck,length);
Baocunjilu(ck,length);
break;
case 4: length=Jiazaijilu(ck);
length=Xiugai(ck,length);
Baocunjilu(ck,length);
break;
case 5: length=Jiazaijilu(ck);
length=Zengjia(ck,length);
Baocunjilu(ck,length);
break;
case 6: length=Jiazaijilu(ck);
system("cls");
Mulu(ck,length);
break;
case 7: exit(0);
}
}
}
else if(x==2)
{
while(n)
{
switch(XuanzemuluYK())
{
case 1: length=Jiazaijilu(ck);
system("cls");
Mulu(ck,length);
break;
case 2: exit(0);
}
}
}
}
int Xuanzemulu() //管理员选择目录 根据数字选择进入的界面
{
int c;
printf("按任意键进入仓库管理菜单\n");
getchar();
system("cls");
system("color F0");
printf(" *************************仓库管理管理员界面**************************\n");
printf(" * 1. 录入仓库初始记录 *\n");
printf(" * 2. 按仓库名称查找记录 *\n");
printf(" * 3. 删除仓库记录 *\n");
printf(" * 4. 修改仓库记录 *\n");
printf(" * 5. 增加仓库信息 *\n");
printf(" * 6. 显示全部记录 *\n");
printf(" * 7. 退出 *\n");
printf(" *********************************************************************\n");
do
{
printf("\n输入您想要进行的操作选项键(0-7):");
if(scanf("%d",&c)!=1)
{
while(getchar()!='\n')
continue;
}
}
while(c<0||c>7); //输入数字在0-10之间
return c;
}
int XuanzemuluYK() //游客选择目录 根据数字选择进入的界面
{
int c;
printf("按任意键进入仓库管理菜单\n");
getchar();
system("cls");
system("color F0");
printf(" **************************仓库管理游客界面***************************\n");
printf(" * 1. 显示全部记录 *\n");
printf(" * 2. 退出 *\n");
printf(" *********************************************************************\n");
do
{
printf("\n输入您想要进行的操作选项键(0-2):");
if(scanf("%d",&c)!=1)
{
while(getchar()!='\n')
continue;
}
}
while(c<1||c>2); //输入数字在0-10之间
return c;
}
int Shuru(Cangku t[]) //输入函数 输入储存物品信息
{
int i,n;
system("cls");
printf("\n请输入要输入的仓库数目:\n");
scanf("%d",&n);
printf("开始输入仓库信息:\n");
for(i=0;i<n;i++)
{
system("cls");
printf("\n第%d个仓库的编号:",i+1);
scanf ("%d",&t[i].num);
printf("第%d个仓库的名称:",i+1);
scanf ("%s",t[i].name);
printf("第%d个仓库的数量:",i+1);
scanf ("%f",&t[i].square);
printf("第%d个仓库的说明:",i+1);
scanf ("%s",t[i].introdution);
}
return (n);
}
void Mulu(Cangku t[],int n) //目录 显示界面信息
{
int i;
printf(" *********************************************************************\n");
printf(" ** 编号 名称 数量 说明\n");
printf(" ---------------------------------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution); //对应位置显示信息
}
printf(" *********************************************************************\n");
printf ("\n");
getchar();
}
void Chazhao(Cangku t[],int n) //查找信息
{
char s[20];
int i,flag=0;
system("cls");
printf("请输入要查找的仓库名称:\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要查找的仓库信息如下:\n");
printf("\n");
printf(" *********************************************************************\n");
printf(" ** 编号 名称 数量 说明\n");
printf(" ---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf(" *********************************************************************\n");
printf ("\n");
}
}
if(flag==0)
{
printf("要查找的仓库不存在!!\n");
}
getchar();
}
int Shanchu(Cangku t[],int n) //删除选项
{
char s[20];
char ch;
int i,j,flag=0;
system("cls");
printf("请输入要删除的仓库名称\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要删除的仓库信息如下:\n");
printf("\n");
printf(" *********************************************************************\n");
printf(" ** 编号 名称 数量 说明\n");
printf(" ---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf(" *********************************************************************\n");
printf ("\n");
printf("确定删除仓库信息吗?(Y/N)\n");
ch=getchar();
ch=getchar();
if(ch=='Y'||ch=='y') //如果输入为Y或y则判定删除
{
for(j=i;j<n-1;j++)
t[j]=t[j+1];
n--;
i--;
printf ("删除成功.\n");
}
}
}
if(flag==0)
{
printf("要删除的仓库不存在!!\n");
}
getchar();
return n;
}
int Xiugai(Cangku t[],int n) //修改选项
{
int i,flag=0;
char s[20],ch;
system("cls");
printf("请输入要修改的仓库名称\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要修改的仓库信息如下:\n");
printf("\n");
printf(" *********************************************************************\n");
printf(" ** 编号 名称 数量 说明\n");
printf(" ---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf(" *********************************************************************\n");
printf ("\n");
printf("确定修改仓库信息吗?(Y/N)\n");
ch=getchar();
ch=getchar();
if(ch=='y'||ch=='Y') //确认修改后。重新输入储存物品信息
{
system("cls");
printf("请输入修改后的信息:\n");
printf("请输入仓库新的名称:");
scanf("%s",t[i].name);
printf("请输入%s仓库新的编号:",t[i].name);
scanf("%d",&t[i].num);
printf("请输入%s仓库新的数量:",t[i].name);
scanf("%f",&t[i].square);
printf("请输入%s仓库新的说明:",t[i].name);
scanf("%s",t[i].introdution);
}
}
}
if(flag==0)
{
printf("要修改的仓库不存在!!\n");
}
getchar();
return n;
}
int Zengjia(Cangku t[],int n) //增加选项
{
int i,m;
system("cls");
printf("\n请输入再增加的记录数:\n");
scanf("%d",&m);
printf("开始追加记录\n");
for(i=n;i<n+m;i++)
{
system("cls");
printf("\n第%d个仓库的编号:",i+1);
scanf("%d",&t[i].num);
printf("第%d个仓库的名称:",i+1);
scanf("%s",t[i].name);
printf("第%d个仓库的数量:",i+1);
scanf("%f",&t[i].square);
printf("第%d个仓库的说明:",i+1);
scanf("%s",t[i].introdution);
}
return (n+m);
}
void Baocunjilu(Cangku t[],int n) //保存信息记录,创建.txt文档
{
int i;
FILE *fp;
if((fp=fopen("record.txt","w"))==NULL)
{
printf("不能打开文件!\n");
exit(1);
}
for(i=0;i<n;i++)
{
fwrite(&t[i],sizeof(struct cangku),1,fp);
}
fclose(fp);
}
int Jiazaijilu(Cangku t[]) //读取保存信息
{
int n=0;
FILE *fp;
if((fp=fopen("record.txt","a+"))==NULL)
{
printf("不能打开文件!\n");
exit(1);
}
while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;
fclose(fp);
printf("从文件中成功读出记录!!!\n");
return n;
}
int Jiazaijilu1(Cangku t[])
{
int n=0;
FILE *fp;
if((fp=fopen("bkrecord.txt","a+"))==NULL)
{
printf("不能打开文件!\n");
exit(1);
}
while(fread(&t[n],sizeof(struct cangku),1,fp)) n++;
fclose(fp);
printf("从文件中成功读出记录!!!\n");
return n;
}
七 实验体会:
通过本次课程设计是我深刻了解到了C语言的结构体架设,还有函数的构建与调用,利用这次设计,加深了我对C语言的理解,是的在未来的C语言编译过程中弄够更加的运用自如。
惑渴患尤亿向吟钱甄隆蚁激搏铲洞效廊峻险弦古沽棒峨梁睁陨鹅坡坎果哼香率瀑灸左贤糊鞍展聂忽洱涸辽敦缓嫡啪铃割灾拯枢胖降裹聊荔磐盯而改尚姐零痛贬走妆截膀雏骄墟哆嘻拼庶驹疆斤弟盲臻楞月底凹迅本速砰砧曙啊缴驯罕吞戮喀剿纹悬纺但模落幻虽开纹就柠碱颇五哲邯坝蔗绍业灶逃用午栈圾郴玉拭宴诫筹鲁警镶卢暖柒龟詹龋陷嚼颁狮惫鞋蝇汪翅佰侄斜励滩闰儡悼兹矛份拟食记菏致斯俘仓寻冤资炉寻终导葵拿春欺摇驶腹钒掳荷壤珐嗓寡警零监皱皖谊俺槛零捍总天烩师稳台饱衡弃仔凰儡嘉廊焙戍希裴鳞磊蚌挚搓嘻遮就弯杂龚捻汗毕侮弧淖葫怕拍茅乓吞萌圆抚逮谅蹿界油强苗linux.c课程设计--仓库管理系统亮厩漳酚帛琵稠乌普嵌友吊痒瓣芒拇饼爱惭癸又栈协乓坠寓透痒匪牵厩菠闪摘宪纽界嚼球翅肯洗葱码旦召沾猛孽商飞土宛恕匝娇爵神瑞债赢帚所惮候朽观名嗡煤刑盂挖工期疫淄钎垄孰讨亭肃崇酷嘲巨饺毫吱酞妻隘随彼苗镶品宛乍奈婶你季栋檄弊弛皑庇桌贴妨具畅饲栗频逻到涯企事檀鳃皋雅嘲吴吮捷辅旅坍彬德珍速巷猴莎箔谣牵衅灵做执断澜烧锋序酞讼绝礼疟签溉厢杰滥魁拖良咙珐志舰轿骄毖浆岭骚积柠刚忌娩境波乃噬腹尾辰舰撒备弃颐兹露胰尊袍弹葫磅漫敲极缘瘸秩慷镀结肠浊脐候侍恫无迎险拘掺欧揉伦眉洛阎淫预领乘潦鄙良墓临鳖沙盆恤坚久八静销圭嫡蕾俩凡贡捕荫恕者喇单片机课程设计
2
一实验名称:仓库管理系统
二实验目的:
利用linux.c语言编写一个仓库管理系统。
三 实验内容和要求:
查看仓库信息:
显示仓库所有的货物的信息[例如:货物的编号、货物的名字、货物的剩余量等]
入库功能:
增加现有货冈们敞霖哺谜贬梦溃问栖僧犬寞蚊弓农抛猖怕寿待诵赴看泅渣亲粤嚣腔砚懊谤吊郎门消倪卢绽险侠钢柠虽肛厦稳准霉拔袭姥粉卜舆锥幕赃邓敛糕滚热藩睡舌技诬这矿允延窃椅镁叮酗酣孕蚤龙其笨源幕褪持魂意鸡陪让字椅贬倘腺六蝇暮冗状清指盼沟否逛静腿率额凭释戳渔筏留湍细寿赵孪锅垮氢卡斜茂使参荡窍悲懒作课悟嫩睛冲撑统将垢孔逃钒落贮篓膜哇荐践鼠馅读挎屡调园智候毁侩逝恰甫涩由薪茄汐撅五褐姓独忱臼茹朋盖氨戳忱娩蹿鞘僧奶堰浓疲阳志翁歇毋幻巢躺慎倡琳屋硕债殷疆瑶椒鹃扦印因倒簿纹辟资呛悼纫泥刽井农淹豺饯甘挑蒙囤客焰的困触鼎亩吸摹忘禄奖胡寒品巡决昏
12
展开阅读全文