#include <string.h>
struct info {
char number[15];
int num;
char part_name;
char date;
char buyer_name[4];
int shumu;
float price;
char firm[10];
struct info *next;
};
struct info* list;
void begin();
void menu();
struct info* sousuo(char number, char part_name);
void xsinformation(struct info* p);
void input();
void searchnumber();
void searchpart_name();
void modify();
void delete_info();
void show_all();
void begin() {
list = (struct info*)malloc(sizeof(struct info));
if (list == NULL) {
printf("分配内存空间出错了\n");
exit(-1);
}
list->next = NULL;
}
void menu() {
printf("\t\t汽车零部件采购管理程序\n");
printf("1.录入采购信息\n");
printf("2.零部件编码显示零部件的信息\n");
printf("3.零部件名称显示零部件信息。\n");
printf("4.给定零部件零部件编码、零部件名称,修改零部件信息。\n");
printf("5.定零部件零部件编码、零部件名称,删除零部件信息。\n");
printf("6.显示系统中全部的零部件信息\n");
printf("0.退出系统\n");
}
struct info* sousuo(char number, char part_name) {
int num;
struct info* head = list->next;
num=atoi(head->number);
while (head) {
if (head->num == number && head->part_name == part_name) {
return head;
}
head = head->next;
}
return NULL;
}
void xsinformation(struct info* p) {
if (p == NULL) {
printf("节点并不存在\n");
return;
}
else{
printf("零部件编码: %s \n", p->number);
printf("零部件名称: %s\n", p->part_name);
printf("采购日期: %s\n", p->date);
printf("采购员: %s\n", p->buyer_name);
printf("采购数量: %d\n", p->shumu);
printf("采购单价: %f\n",p->price);
printf("供货单位: %s\n",p->firm);
}
}
void input() {
char number[15];
char part_name;
printf("请输入零部件编码: \n");
scanf("%s", &number);
printf("请输入零部件名称: \n");
scanf("%s", &part_name);
struct info * p =sousuo(number, part_name);
if (p) {
printf("此编码有录入: \n");
xsinformation(p);
printf("无法继续录入\n");
return;
}
p = (struct info*)malloc(sizeof(struct info));
if (p == NULL) {
printf("分配内存空间出错了\n");
exit(-1);
}
p->number[15] = number[15];
p->part_name = part_name;
p->next = NULL;
printf("请输入采购日期: ");
scanf("%s",&p->date);
printf("请输入采购员\n");
scanf("%s",&p->buyer_name);
printf("请输入采购数量\n");
scanf("%s",&p->shumu);
printf("请输入采购单价\n");
scanf("%s",&p->price);
printf("请输入供货单位\n");
scanf("%s",&p->firm);
//return;
struct info* head = list->next;
list->next = p;
p->next = head;
printf("录入成功\n");
}
void searchnumber() {//编码查找
char number[15];
printf("请输入编码: \n");
scanf("%s", &number);
struct info * p = list->next;
while (p) {
if (strcmp(p->number, number) == 0) {
xsinformation(p);
return;
}
p = p->next;
}
printf("没有找到编码为: %s 的记录\n", number);
}
void searchpart_name() {//名称查找
char part_name;
printf("请输入零部件名称:\n");
scanf("%s", &part_name);
int found = 0;
struct info* p = list->next;
while (p) {
if (p->part_name == part_name) {
xsinformation(p);
found++;
}
p = p->next;
}
if (found == 0) {
printf("没有找到零部件编码为: %s 的记录\n", part_name);
return;
}
printf("共找到 %d 条记录.\n", found);
}
void modify() { //修改
char part_name;
printf("请输入零部件名称: \n");
scanf("%s", &part_name);
int number;
printf("请输入零部件编码: \n");
scanf("%d", &number);
struct info* p = sousuo(number, part_name);
if (p == NULL) {
printf("未找到此零部件的信息\n");
return;
}
printf("请输入新的零部件编码:\n");
scanf("%d", p->number);
printf("请输入新的零部件的名称:\n");
scanf("%s", p->part_name);
printf("请输入新的采购日期:");
scanf("%s",&p->date);
printf("请输入采购员\n");
scanf("%s",&p->buyer_name);
printf("请输入采购数量\n");
scanf("%s",&p->shumu);
printf("请输入采购单价\n");
scanf("%s",&p->price);
printf("请输入供货单位\n");
scanf("%s",&p->firm);
printf("修改成功\n");
}
void delete_info() {
printf("\n定零部件零部件编码、零部件名称,删除零部件信息。\n");
char number[15] ;
printf("请输入零部件编码: \n");
scanf("%s", &number);
char part_name;
printf("请输入零部件名称: \n");
scanf("%s", &part_name);
struct info* p = sousuo(number, part_name);
if (p == NULL) {
printf("未找到此零部件的信息\n");
return;
}
struct info* head = list->next;
struct info* pre = list;//前一个
while (head) {
if (head == p) {
pre->next = head->next;
free(head);
printf("删除成功\n");
return;
}
pre = head;
head = head->next;
}
}
void show_all() {
printf("\n显示零部件所有的信息\n");
struct info* head = list->next;
int count = 0;
while (head) {
xsinformation(head);
head = head->next;
count++;
}
printf("共 %d 条记录\n", count);
}
int main() {
begin();
while (1) {
system("cls");
menu();
int sel = 0;
scanf("%d", &sel);
if (sel == 0) {
printf("谢谢使用,再见。\n");
getchar();
getchar();
return 0;
}
if (sel == 1) {
input();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
if (sel == 2) {
searchnumber();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
if (sel == 3) {
searchpart_name();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
if (sel == 4) {
modify();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
if (sel == 5) {
delete_info();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
if (sel == 6) {
show_all();
printf("\n按回车键继续\n");
getchar();
getchar();
continue;
}
printf("无法识别的指令\n");
}
}
就是以上代码。