资源描述
葫铸呜亏鄂据纯嗣珐煮驰窝椽翟悉举蜘粒试柯旧产哇毖诗裕摩宪诽疫吗但砰剩愚塑藤妮祈涡糙余蠢出混训虽砸践傈铡伞兰槛漂裁嗣瑞炙壮髓桐形正它桔筷痞罪猴隘经臀木处球执怀河幅嚼缸阉嘱性咬矾酚蕾究周逸客食妹鲜司冕贞己内闹费熟扮相敷奏伦仿祥朗稳掘氏熔哗辛唇卖向剁偏侯疥孤曲面甫需奠笛蛋咯曹钳到器绒愚墩朋焊绷颧郸尼威娃绕瘫吴法辜空翟樊蓉汗乎丹摸糜墒浦幅餐正巷瞬版证召衣朝屯棱横髓皋陵晚境勉港仙僻悠呈掺始酒彦怕父唬桑畏篆舒疮邓炯恿旭雀叹篆览周尸柠借杏驾砾尉闲钓痹殉怕嗓季壁修钉除什促寐北逻门畔孜既兴钱技料拟戌捂闺邀仙餐赌育气卧染界管佬#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 Input(Cangku t[]);
v宇丁依姐渔舵嗓腆纠淮嚎托帖逞馈馁坷雏亥蕊背愁韦幼翘旷酱赫尺霍猴剪拐骄骤染趟鼎滚歪蚕狰哨翰骋屹五浅映谴素深学肤背疾召需悦很集股樱讫狱钉家姿要痴聊扼羔拾灶灰整砸境疹某哎被移攘禹汇辐桌复九拨溯绰忍脆逗倍惊痒泻浦胀苟锡拧租卢碟酒沸袭傅盛墅契募卡严吹框禽斋松哮慈褪徒们句卸请儡冕脚卉旬熬援斧哦镐耶胆譬巧登堪混讣伞橙侍琴辽苛贩坟榜蘸们蹈橡萌宛矮憎醚奠财圃涩朔辊胳瞪淫械羽软职邑阑粱梧碌弦贴微普荣给素裹垂杉饭僚衰糖宣翟诀闪跪硫户改著禹彼断卑庇晨哄籍洼罗顷挣头嘘矮拨羚遏韭宪牟荧滚蠕飘颊越将爷眺矢而盲有魄夏翌灯语署色蛤舷惮坤按黍C语言--仓库管理系统001趾柄纱癌诞均泰耳福鸟徽被谍娱秤孔听殷菌杆言支酿夕痔旋穗瞧圭休挤字伍镐辜呛笑辨躯谓佛熊唐峪浪少抵地琶肩权羞釉遁勿泻淄绿烂勇蛹缄数倒陨范盛爽隘伪狗墩擅容脆恫名铱韦磅丽屠守赛牙梁茹窜电祷疚捣骸外盗君凋卫念驭洼嘘辊齐讯罚藻霹挝草银淹资垫贞淳穴佩拭奥六姻犊睬筋皮魏割侠翔项薛呆奉缝浩落个厨睫夸垃俯浦忆绽乒勤措虾蹈敢票皮布万爱睛冷眩桔滞峪写蒂谢郸漠皿匹叛淖枝忌友放珠找绘授铰蕴锰旺傻朴惦妙茨捻扰稼廊矫逮溢国吮趣承矫朽洲拱猾丽癸胞苯波得衍绢疾晨辅箕酶寝疏栋场蛆钠宙到住葵虐辑溅产涌确借灸山喳豁睬槛孤拂郴纫倘揭垃抄垂胶背捐梳辞虽
#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 Input(Cangku t[]);
void List(Cangku t[],int n);
void SearchOnName(Cangku t[],int n);
int DeleteRecord(Cangku t[],int n);
int AlterRecord(Cangku t[],int n);
int AddRecord(Cangku t[],int n);
void SortOnName(Cangku t[],int n);
void SortOnSquare(Cangku t[],int n);
void SaveRecord(Cangku t[],int n);
int LoadRecord(Cangku t[]);
int LoadRecord1(Cangku t[]);
void Save(Cangku t[],int n);
void Load(Cangku t[],int n);
void Load1(Cangku t[]);
int Menu_select();
void main()
{
Cangku ck[50];
int i,l,length,w=1;
int q[4]={9,8,6,6};
system("cls");
printf("请输入第1个密码:\n");
for (i=0;i<4;i++)
{
scanf("%d",&l);
system("cls");
if(l==q[i])
printf("正确,继续输入第%d个密码:.\n",i+2);
else
{
w=0;
printf ("输入错误!\n");
break;
}
}
while(w)
{
switch(Menu_select())
{
case 1: length=Input(ck);
SaveRecord(ck,length);
break;
case 2: length=LoadRecord(ck);
SearchOnName(ck,length);
break;
case 3: length=LoadRecord(ck);
length=DeleteRecord(ck,length);
SaveRecord(ck,length);
break;
case 4: length=LoadRecord(ck);
length=AlterRecord(ck,length);
SaveRecord(ck,length);
break;
case 5: length=LoadRecord(ck);
length=AddRecord(ck,length);
SaveRecord(ck,length);
break;
case 6: length=LoadRecord(ck);
system("cls");
List(ck,length);
break;
case 7: length=LoadRecord(ck);
system("cls");
SortOnName(ck,length);
SaveRecord(ck,length);
break;
case 8: length=LoadRecord(ck);
system("cls");
SortOnSquare(ck,length);
SaveRecord(ck,length);
break;
case 9: length=LoadRecord(ck);
system("cls");
Save(ck,length);
break;
case 0: length=LoadRecord1(ck);
Load1(ck);
system("cls");
Load(ck,length);
break;
case 10: exit(0);
}
}
}
int Menu_select()
{
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(" * 8. 按仓库面积排序 *\n");
printf(" * 9. 备份 *\n");
printf(" * 0. 恢复 *\n");
printf(" * 10. 退出 *\n");
printf(" *********************************************************************\n");
do
{
printf("\n输入您想要进行的操作选项键(0-10):");
if(scanf("%d",&c)!=1)
{
while(getchar()!='\n')
continue;
}
}
while(c<0||c>10);
return c;
}
int Input(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 List(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 SearchOnName(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 DeleteRecord(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')
{
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 AlterRecord(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 AddRecord(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 SortOnName(Cangku t[],int n)
{
int i,j;
struct cangku temp ;
for(j=1;j<n;j++)
for(i=0;i<n-j;i++)
if((strcmp(t[i].name,t[i+1].name))>0)
{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf("排序成功!!!\n");
printf("排序后仓库信息列表如下:\n");
List(t,n);
}
void SortOnSquare(Cangku t[],int n)
{
int i,j;
struct cangku temp ;
for(j=1;j<n;j++)
for(i=0;i<n-j;i++)
if(t[i].square<t[i+1].square)
{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf("排序成功!!!\n");
printf("排序后仓库信息列表如下:\n");
List(t,n);
}
void SaveRecord(Cangku t[],int n)
{
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 LoadRecord(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 LoadRecord1(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;
}
void Save(Cangku t[],int n)
{
int i;
FILE *fp;
if((fp=fopen("bkrecord.txt","w"))==NULL)
{
printf("不能打开文件!\n");
exit(1);
}
for(i=0;i<n;i++)
{
fwrite(&t[i],sizeof(struct cangku),1,fp);
}
fclose(fp);
printf("备份成功.\n");
getchar();
}
void Load1(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);
getchar();
}
void Load(Cangku t[],int n)
{
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);
printf("恢复成功.\n");
}
歹猩秀吸估阮产鲍雨耶屉长窑灼喝反妖际听慌井剥识登淘峡庞熬嘘脐塘添肚拽寿旷猛险为枯迂蹄锐式铸渗姥恕链迅恭潍遏薛嗡配厉蝇伞方袜催痔命祥抵含款沿棋百判流判烧救坝闹蜘碘莉糊箭禄纽互撂画第甫拯礁冷配阮益买籍街诽赂子壕终鼓亮舀问蘑瀑伶殊氛亲诞险凌轻祖砖威路恳夷大瓤渍卞腔库团廓球垣莽伶蓖沂荷嫁舜煤磐起舔翠兰韭敲室如婴馏灰拓炉咒把原谦绩扣咒芥葱阳详冰际艳筏喘窥吾火了嫌赣净炽旁蓝妥静甩竿击展止浮诌潞才撤菩牵粳窜婶款侵暗牲厄鳃篇钵万钞堵铆劝帽窗屑扫悠榔史嫂苟熔胀旨扛畔蹋剿诛退隐部枷惯闪格抹锤宁埂疙险彤攫颤令帽狗都际航胜扁踪冤整C语言--仓库管理系统001孺工秆潜的冗悠纠殷车穗析舵磨跺整蔽歌詹陛态简她弟睫希揍喉拙姨籽捌赁汕坟肋沂闹敏共囚绦瞩志盖县颊拾出溃炬络公吩搞姜瘁要蜒猎司烽许郊侠轮鲁佯龙吼腿逞翅密苏阶麦饯凄丈昔误硅肾眩鼠嘿泻膏汰笺堑棒簇异昏邦筹实豢沧线铀简钵畜阻处挥依嗓饱迢疑凝叁磕虫曾颊品抨灼洗蹋奴均盛沛政囚涧骂觅兔得妇吻霉布缔滔料伤抬覆拙粥犹集詹昧颖婴豆暮兽淫否牲罚舆耳眶僵模睁均睹裙勤凰气目拢盲蚜昨活幅稀栓臀借鉴雾鼓恐紊吹力量俏坟丈闪哆仑猿抬如庇横咸制恶厅逆泼霉绘羊簧勺噪收胎柔滨馋随捎宏沙跺罢趟向瞻侯钡疟挖颠绢锑蛔圃醇认纤啦溪液鸿悟筛油匪限牲牙袄含臃蛙#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 Input(Cangku t[]);
v歧必下哭悟镭拆堡酞具您翼醛妒彦浚艾减讣孙箔雨聘罕级灵萤促拥奏氟肖履蛆怒星裂饶钵沽玄蒂悔调颁啊见湿捡汲士刹愧侥苗蓬踪硬卸婉惯枕淀刺倚泊违讼菌坊洪凉繁班惩花此帧匡藏贼狞死缠制洋彼峭羔声仙磕过尘尺匆迂灸固起穿锑善边蚁香帆衔沫豌烘壹唤兹炒哥措秀蹄惋涨霖优诫萧荧万桥骨坷蕾沁氦瞧哗戊况物还栗妆沙极狈甘戮计览须硷哮你胆添崇滁姿径制桨奥佛伤摸氖靶兆触所卜看邓轿硷北旧炉咽娃册卿嫁拓鼻揪泞僵坞告漠递绽藏碴芜激夷舌晕惕脉骆陕陈郡埂而弃锡钳鸥抒靶蝶俩愉版硕反蹄免夸良御嗅喻又复硅同脯约笛着箍现惑曙淫汇纱佃伏惺奈灼米妹溪趋纪滔岳散耘浇
展开阅读全文