汽车零部件质检管理程序Word文档下载推荐.docx
- 文档编号:22489629
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:37
- 大小:554.26KB
汽车零部件质检管理程序Word文档下载推荐.docx
《汽车零部件质检管理程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《汽车零部件质检管理程序Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
根据系统要求,系统中需要保存的数据信息,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
质检编号
qid
字符串
15
零件名称
qname
生产者
producer
生产部门
pd
质检结果
qresult
质检问题
qproblem
质检员
qpersons
质检日期
time
12
(2)、结构体定义如下:
structinformation
{
charqid[15];
charqname[15];
charproducer[15];
charpd[15];
charqresult[15];
charqproblem[15];
charqpersons[15];
chartime[12];
structinformation*next;
};
(3)、函数声明
voidcreateRec();
/*新建质检信息*/
voidloadRec();
/*从磁盘文件导入质检信息到内存*/
voidsearchRecqid();
/*查询质检信息(根据质检编号)*/
voidsearchRecpro();
/*查询质检信息(根据生产者)*/
voidmodifyRec();
/*修改质检信息*/
voiddeleteRec();
/*删除质检信息*/
voidlistRec();
/*显示所有质检信息*/
voidwriteInfo();
/*保存质检信息*/
voidexit0();
/*退出*/
intmenu_select();
*主菜单*/
intfqid(chara[]);
//判断质检编号是否已被输入//
intcheck(chardate[])//判断日期是否合法//
(4)、定义两个全局变量:
/*链表操作所用结构体指针*/
structstudent*head=NULL,*p1,*p2,*p3,p0;
/*定义结构体指针head为头指针p1为输入数据缓存空间指针p2为尾指针p0为调用链表循环时所用指针*/
/*学生记录保存标志全局变量*/
Intwriteinfo_flag=0;
(5)主函数流程图
(6)添加质检信息函数流程图
查询函数设计(根据质检编号)
查询函数设计(根据生产者)
(6)
修改质检信息函数设计
(7)
删除质检信息函数设计
三、程序测试与运行结果
1、主菜单界面
若输入的数字不是0~7,则会提示输入错误
2、添加信息界面
若输入的质检编号已经存在。
会提示编号以存在,重新输入。
若输入的时间结构不正确,会提示输入不合法,请重新输入。
3、修改界面
4、查询信息界面(学号查询)
若输入的质检编号是不存在的质检编号,在提示找不到该质检编号。
(2)、按生产者查询
6、删除信息界面
若要删除的质检信息不存在,则提示找不到信息。
7、显示全部信息界面
8、保存信息界面
四、课程设计总结
本次C语言课程设计非常有意义,它锻炼了我们解决实际问题的能力。
由于本人对编程感兴趣,在编程方面有一定基础,因此尝试着由自己完成整个系统,在设计的过程里也遇到了很多麻烦,但是通过查询参考书和网络,一个个疑难迎刃而解。
通过这次实践课,不只是强化了我们C语言编程的能力,更重要的是使我们学会了一种工作方法,学会了如何规划、组织、设计、实施项目,从整体到局部,从局部又到整体。
在编程过程中,我尝试将质检结果和质检问题一起输入,但是总是出现错误,没有办法显示正确的结果,最后实在没办法,只能放弃,采取分开输入的方法。
五、源代码
/*所使用的有头文件*/
#include<
stdio.h>
string.h>
malloc.h>
#include<
stdlib.h>
conio.h>
#defineLENsizeof(structinformation)
/*结构体定义*/
{charqid[15];
/*函数声明*/
/*新建质检信息*/
/*从磁盘文件导入质检信息到内存*/
/*查询质检信息(根据质检编号)*/
/*修改质检信息*/
/*删除质检信息*/
/*显示所有质检信息*/
/*保存质检信息*/
/*退出*/
/*主菜单*/
intyear,month,day,i,leap;
//要求格式判断//
for(i=0,year=0;
i<
4;
i++)
year=year*10+(date[i]-'
0'
);
for(i=5,month=0;
7;
month=month*10+(date[i]-'
for(i=8,day=0;
10;
day=day*10+(date[i]-'
if(month<
0||month>
12)
return0;
else//日期存在判断//
{
leap=(year%4==0&
&
year%100!
=0||year%400==0);
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(day<
0||day>
31)
return0;
else
return1;
}
if(month==4||month==6||month==9||month==11)
30)
if(leap==1&
month==2)
29)
if(leap==0&
28)
}
return0;
}
structinformation*head=NULL,*p1,*p2,*p3,*p0;
/*定义结构体指针head为头指针p1为输入数据缓存空间指针p2为尾指针*/
/*质检记录保存标志全局变量*/
intwriteinfo_flag=0;
/*主函数*/
intmain()
{loadRec();
system("
cls"
for(;
;
)
{switch(menu_select())
{case1:
system("
createRec();
break;
case2:
searchRecqid();
case3:
searchRecpro();
case4:
modifyRec();
case5:
deleteRec();
case6:
listRec();
case7:
writeInfo();
case0:
exit0();
return0;
default:
{getchar();
printf("
\n选择错误,请正确输入你的选择(0~7),:
"
\n按任意键返回......\n"
getchar();
system("
/*清屏*/
}
}
}
return0;
/*主菜单*/
intmenu_select()
{intc,flag=1;
charw[10];
printf("
\t\t**************菜单**************\n"
\t\t\t1.新建质检信息\n"
\t\t\t2.查询质检信息(质检编号)\n"
\t\t\t3.查询质检信息(生产者)\n"
\t\t\t4.修改质检信息\n"
\t\t\t5.删除质检信息\n"
\t\t\t6.显示所有信息\n"
\t\t\t7.保存质检信息\n"
\t\t\t0.退出(任何情况下按Ctrl+C退出程序)\n"
\t\t********************************\n"
\n输入你的选择(0~7):
do{
scanf("
%s"
w);
if(strlen(w)!
=1)
{
flag=0;
printf("
\n选择错误,请正确输入你的选择(0~7):
elseif(strcmp(w,"
0"
)<
0||strcmp(w,"
7"
)>
0)
else{
flag=1;
c=atoi(w);
}while(!
flag);
returnc;
/*从磁盘文件导入质检信息到内存*/
voidloadRec()
{FILE*fp;
intn=0;
if((fp=fopen("
LY.txt"
"
r"
))==NULL)/*打开文件*/
{printf("
文件不存在或无法打开!
\n"
pause"
return;
head=p1=(structinformation*)malloc(LEN);
/*开辟一个新单元*/
memset(p1,0,LEN);
p1->
next=NULL;
while(!
feof(fp))
{n++;
fscanf(fp,"
%s%s%s%s%s%s%s%s\n"
p1->
qid,p1->
qname,p1->
producer,p1->
pd,
p1->
qresult,p1->
qproblem,p1->
qpersons,p1->
time);
p2=(structinformation*)malloc(LEN);
p1->
next=p2;
p3=p1;
p1=p2;
free(p2);
p3->
next=NULL;
\n%d项信息输入完毕,按任意键返回......\n"
n);
getch();
/*清屏*/
writeinfo_flag=0;
/*设置保存记录标志*/
if(fclose(fp))/*关闭文件*/
{
printf("
Cannotclosethefile!
);
exit(0);
return;
/*新建质检信息*/
voidcreateRec()
if(head!
=0){p3=head;
while(p3->
next!
=NULL)
p3=p3->
next;
printf("
\n质检信息数据库已存在,新建质检信息将接续在信息库的后面,按任意键继续......:
getchar();
system("
p3->
next=p1=(structinformation*)malloc(LEN);
/*开辟一个新单元*/
else
head=p1=(structinformation*)malloc(LEN);
\n请输入质检编号:
p1->
qid);
while(fqid(p1->
qid)==1)
\n您输入的质检编号已存在,请重新输入:
//验证是否存在//
printf("
\n请输入零部件名称:
qname);
\n请输入生产者:
producer);
\n请输入生产部门:
pd);
\n请输入质检结果(合格/不合格):
qresult);
\n请输入质检问题(无/设计缺陷/装配质量/加工质量):
qproblem);
\n请输入质检员:
qpersons);
\n请输入质检日期(形如2015-06-20):
while((p1->
time[4]!
='
-'
)||(p1->
time[7]!
)||strlen(p1->
time)!
=10||check(p1->
time)==0)/*判断开始统计的时间输入是否合法*/
入住时间输入不合法,请重新输入:
getchar();
/*开辟一个新单元*/
\n信息输入完毕,按任意键返回......\n"
writeinfo_flag=1;
return;
/*查询质检信息(根据质检编号)*/
voidsearchRecqid()
{
charqid[10];
p1=head;
if(p1==NULL)
{printf("
\n\n质检信息数据库为空\n"
getch();
/*清屏*/
\n\n请输入质检编号以便查证:
scanf("
qid);
\n质检编号零件名称生产者生产部门质检结果质检问题质检员质检日期\n"
while(p1!
if(strcmp(p1->
qid,qid)==0)
%-12s%-12s%-12s%-12s%-12s%-12s%-12s%-12s"
break;
else
p1=p1->
next;
\n\n找不到该质检信息\n"
/*查询质检信息(根据生产者)*/
voidsearchRecpro()
inti=0;
charproducer[10];
\n\n请输入生产者以便查证:
producer);
while(p1!
producer,producer)==0)
%-12s%-12s%-12s%-12s%-12s%-12s%-12s%-12s\n"
i++;
continue;
\n\n%d项质检信息输入完毕\n"
i);
/*修改指定质检编号的信息*/
voidmodifyRec()
charqid[19];
if(h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车零部件 质检 管理程序