C设计.docx
《C设计.docx》由会员分享,可在线阅读,更多相关《C设计.docx(45页珍藏版)》请在冰豆网上搜索。
![C设计.docx](https://file1.bdocx.com/fileroot1/2023-2/2/1736fbe6-4df2-4861-a9c7-7a71519e5c44/1736fbe6-4df2-4861-a9c7-7a71519e5c441.gif)
C设计
#include
#include
#include
#include
#include
#defineLENsizeof(structdevice)
structdevice
{
charnum[10];
charkind[20];
chartype[15];
intamount;
charfen[10];
charfact[20];
charprice[8];
chardate[10];
struct*next;
};
structdevicee[23]={{"A00001","IC","LM324",100,"SOP-8","国半","¥1.00","2005-1"},
{"A00002","三极管","9013",1000,"TO-92","松下","¥0.50","2006-3"},
{"A00003","二极管","BYV30-200",450,"SOD80","PH","¥0.01","2004-3"},
{"A00004","电容器","KMH450V",980,"1206","三洋","¥0.10","2009-10"},
{"A00005","继电器","SDT-SH-106DM",98,"DIP-4","TYCO","¥20.00","2009-5"},
{"A00006","电感器","CD32-15",67,"DIP-2","村田","¥0.10","2006-06"},
{"A00007","电阻器","10k",1000,"0805","三星","¥0.10","2006-07"},
{"A00008","电位器","9032-103",500,"DIP-3","宝石","¥0.80","2009-10"},
{"A00009","石英晶体器件","SE84.7842",460,"5032","LINK","¥0.60","2005-9"},
{"A00010","光电子器件","C171CKT",500,"0805","光宝","¥0.10","2009-10"},
{"A00011","二极管","BYV30-300",450,"SOD80","PH","¥0.01","2004-3"},
{"A00012","三极管","9012",1000,"TO-92","松下","¥0.50","2006-3"},
{"A00013","继电器","SDT-SH-107DM",198,"DIP-4","TYCO","¥20.00","2009-5"},
{"A00014","电感器","CD32-17",67,"DIP-2","村田","¥0.10","2006-6"},
{"A00015","电感器","CD32-55",67,"DIP-2","村田","¥0.10","2006-6"},
{"A00016","石英晶体器件","SE18",460,"5032","LINK","¥0.60","2005-9"},
{"A00017","石英晶体器件","SE12",460,"5032","LINK","¥0.60","2005-9"},
{"A00018","石英晶体器件","SE25",460,"5032","LINK","¥0.60","2005-9"},
{"A00019","IC","LM138",100,"SOP-8","国半","¥1.00","2005-1"},
{"A00020","IC","LM356",100,"SOP-8","国半","¥1.00","2005-1"},
{"A00021","IC","LM244",100,"SOP-20","国半","¥1.00","2005-1"},
{"A00022","其他","DC-20",111,"DIP-31","无","¥1.90","2009-12"},
{"A00023","其他","DC-40",112,"DIP-32","无","¥2.90","2009-10"}};
structdevice*p;
structdevice*zhi;/*改指针在所有子函数中均能用*/
/*以下是函数原型的说明*/
voidInputData();
voidmydisplay();
voidmyadd();
voidmydelete();
voidmydelete1();
voidmysearch();
voidmysort();
voidmymodify();
voidmyall();
voidwe();
voidprint();
voidmycount();
/*统计里面在定义按不同方式统计的函数*/
voidmy1();
voidmy2();
voidmy3();
voidmy4();
voidmy5();
voidmy6();
intx=0;/*统计添加的个数*/
voidmain()//主程序
{
intchoose;
charyes_no;
we();
printf("请按回车进入下一页\n");
getchar();
system("cls");
do
{
system("cls");
mydisplay();/*调用显示主菜单的函数*/
printf("请输入操作代码的序号:
");
scanf("%d",&choose);
system("cls");/*清屏函数*/
switch(choose)
{
case1:
myadd();break;/*调用添加元器件的函数,在添加函数里还要调用保存的函数*/
case2:
mydelete();break;/*调用删除元器件的函数*/
case3:
mysearch();break;/*调用查找元器件的函数*/
case4:
mysort();break;/*调用排序的函数*/
case5:
mycount();break;/*调用统计的函数*/
case6:
myall();break;/*调用显示所有元器件的函数*/
case7:
mymodify();break;
case8:
exit(0);break;
case0:
break;
default:
printf("\n%c为非法选项!
\n",choose);
}
printf("\n要继续选择吗(Y/N)?
\n");
do
{
yes_no=getchar();
}
while(yes_no!
='Y'&&yes_no!
='y'&&yes_no!
='N'&&yes_no!
='n');
}
while(yes_no!
='N'&&yes_no!
='n');
}
voidmyall()//定义显示所有元件的函数
{
intn,i,m=0,a;
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
do
{
for(i=m;i{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",e[i].num,e[i].kind,e[i].type,e[i].amount,e[i].fen,e[i].fact,e[i].price,e[i].date);
printf("\n");
}
printf("按1进入下一页2上一页\n");
scanf("%d",&a);
system("cls");
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
if(a==1)
{
m=m+6;
continue;
}
if(a==2)
{
if(m==0)
break;
m=m-6;
continue;
}
}
while(m<20);
system("cls");
printf("__________________________________________________\n");
printf("是否显示用户之前添加的原件?
按数字1键选是,数字0否\n");
printf("__________________________________________________\n");
scanf("%d",&n);
system("cls");
if(n==1)
print(zhi);
else
;
}
/***********************************************************/
voidwe()//定义显示主界面的函数
{
printf("*********************************************************************\n");
printf("C语言课程设计之电子元器件信息管理系统\n");
printf("**********************************************************************\n");
printf("指导教师:
*大宇*\n");
printf("\n");
printf("组长:
梅奥\n");
printf("\n");
printf("小组成员:
\n");
printf("\n");
printf("______________________________________\n");
printf("排|梅奥(查找)\n");
printf("名|\n");
printf("不|李岿然(删除)\n");
printf("分|\n");
printf("先|李建邦,吕博文(排序)\n");
printf("后|\n");
printf("!
|石文强,胡基鹏(添加)\n");
printf("|\n");
printf("|马力,刘彪(统计)\n");
printf("|\n");
printf("|许峥,汪朝鹏(修改)\n");
printf("----------------------------------------\n");
printf("制作时间:
\n");
printf("2010-06-08\n");
printf("\n");
}
voidmydisplay()//定义显示主菜单的函数
{
printf("欢迎进入电子元器件信息管理系统!
\n");
printf("\n");
printf("\n");
printf("\n");
printf("***********************请输入你要操作的代号(从以下序号中选取)*******************\n");
printf("1添加元器件2删除元器件3查找元器件\n");
printf("4排序5统计元器件6显示所有元器件的信息\n");
printf("7修改8退出\n");
}
/****************************************************/
voidmysearch()//定义查找的函数
{
structdevice*p1;
intcount1=0,count2=0;
intn,d;
charb[10],r[10],f[10],m[15];
printf("欢迎进入查找操作系统!
\n");
printf("\n");
printf("请输入操作序号\n");
printf("\n");
printf("_____________________________________________________________\n");
printf("1按编号查找2按生产日期查找3按封装查找4按名称查找\n");
printf("_____________________________________________________________\n");
scanf("%d",&n);
if(n==1)
{
p1=zhi;
printf("请输入元器件的编号,提示:
器件编号范围从A00001开始.请勿输错!
\n");
do
{
printf("编号:
");
scanf("%s",&b);
printf("\n");
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
for(p=e;p{
if(strcmp(b,p->num)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p->num,p->kind,p->type,p->amount,p->fen,p->fact,p->price,p->date);
count1++;
}
else
;
}
while(p1!
=NULL)
{
if(strcmp(b,p1->num)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p1->num,p1->kind,p1->type,p1->amount,p1->fen,p1->fact,p1->price,p1->date);
count2++;
}
else
;
p1=p1->next;
}
if(count1==0&&count2==0)
{
printf("******************************************\n");
printf("你所查找的器件不存在,请重新输入!
\n");
printf("******************************************\n");
printf("\n");
printf("按数字1键重新输入编号数字0键退出查找!
\n");
scanf("%d",&d);
}
else
break;
}
while(d!
=0);
}
elseif(n==2)
{
p1=zhi;
printf("请输入你要查询器件的生产日期\n");
printf("注意:
日期的输入格式为:
年份-月份\n");
do
{
printf("日期:
");
scanf("%s",&r);
printf("\n");
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
for(p=e;p{
if(strcmp(r,p->date)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p->num,p->kind,p->type,p->amount,p->fen,p->fact,p->price,p->date);
count1++;
}
else
;
}
while(p1!
=NULL)
{
if(strcmp(r,p1->date)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p1->num,p1->kind,p1->type,p1->amount,p1->fen,p1->fact,p1->price,p1->date);
count2++;
}
else
;
p1=p1->next;
}
if(count1==0&&count2==0)
{
printf("******************************************\n");
printf("你所查找的器件不存在,请重新输入!
\n");
printf("******************************************\n");
printf("\n");
printf("按数字1键重新输入时间数字0键退出查找!
\n");
scanf("%d",&d);
}
else
break;
}
while(d!
=0);
}
elseif(n==3)
{
p1=zhi;
printf("请输入你要查询器件的封装\n");
printf("封装型号中字母要大写\n");
do
{
printf("封装:
");
scanf("%s",&f);
printf("\n");
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
for(p=e;p{
if(strcmp(f,p->fen)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p->num,p->kind,p->type,p->amount,p->fen,p->fact,p->price,p->date);
count1++;
}
else
;
}
while(p1!
=NULL)
{
if(strcmp(f,p1->fen)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p1->num,p1->kind,p1->type,p1->amount,p1->fen,p1->fact,p1->price,p1->date);
count2++;
}
else
;
p1=p1->next;
}
if(count1==0&&count2==0)
{
printf("******************************************\n");
printf("你所查找的器件不存在,请重新输入!
\n");
printf("******************************************\n");
printf("\n");
printf("按数字1键重新输入封装数字0键退出查找!
\n");
scanf("%d",&d);
}
else
break;
}
while(d!
=0);
}
elseif(n==4)
{
p1=zhi;
printf("请输入您要查找元器件的名称\n");
printf("名称:
\n");
do
{
scanf("%s",&m);
printf("\n");
printf("编号\t类型\t\t\t型号\t数目\t封装\t厂家\t价格\t生产日期\n");
for(p=e;p{
if(strcmp(m,p->kind)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p->num,p->kind,p->type,p->amount,p->fen,p->fact,p->price,p->date);
count1++;
}
else
;
}
while(p1!
=NULL)
{
if(strcmp(m,p1->kind)==0)
{
printf("%6s\t%8s\t%12s\t%d\t%4s\t%6s\t%4s\t%4s\n",p1->num,p1->kind,p1->type,p1->amount,p1->fen,p1->fact,p1->price,p1->date);
count2++;
}
else
;
p1=p1->next;
}
if(count1==0&&count2==0)
{
printf("******************************************\n");
printf("你所查找的器件不存在,请重新输入!
\n");
printf("******************************************\n");
printf("\n");
printf("按数字1键重新输入封装数字0键退出查找!
\n");
scanf("%d",&d);
}
else
break;
}
while(d!
=0);
}
}
/**************************************/
voidmycount()//定义统计的函数
{
inti;
printf("\n");
printf("**************欢迎进入统计界面***************\n");
printf("\n");
printf("\n");
printf("请输入你要统计的类型\n");
printf("\n");
printf("1,类型2,型号3,厂家0,退出统计\n");
scanf("%d",&i);
switch(i)
{
case1:
my1();break;
case2:
my2();break;
case3:
my3();break;
case0:
break;
default:
printf("error\n");
}
}
voidmy1()
{
structdevice*p1;
inti;
structdevice*t[5];
charkind[10];
intcount1=0,count2=0;
printf("请输入你统计的类型:
");
scanf("%s",kind);
for(p=e;p{
if(strcmp(p->kind,kind)==0)
{
count1++;
t[count1-1]=p;
}
else
;
}
p1=zhi;
while(p1!
=NULL)
{
if(strcmp(p1->kind,kind)==0)
count2++;
else
;
p1=p1->next;
}
printf("%s共有%d种:
\n",kind,count1+count2);
for(i=0;i{
pri