各位师兄师姐,帮帮忙,求修改
#include<stdio.h>#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define CARS_FILE "data.dat"
/* 这是数据文件名 */
#define TEMP_FILE "temp.dat"
/* 这是一个临时的文件的名字,在增加删除修改记录的函数中使用的 */
void input();
void sort();
void purchase();
void edit();
void renew();
void inquire();
void scan();
void output();
void quit();
long i;
long n;
struct cars_type
{
long num;
char name[11];
char type[30];
char colour[20];
long count;
long price;
char beizhu[20];
};
struct cars_type cars[100];
#define N 100
main()
{
char name;
int code;
do
{
printf("\n *************************************************************\n *\t\t\t\t\t\t\t\t *\n");
printf(" * ▏▎▍ ▌ ▋ ▊ █ ▇ ▆ ▅ ▄ ▃ ▂ ▁ *");
printf("\n *\t\t\tt\t\t\t *\n * Welcome\t\t\t\t\t\t *\n *\t\t\t\t\t\t\t\t *\n");
printf("\n用户名:");
fflush(stdin);
scanf("%c",&name); /*此处要注意name是字符型数据,要用%c输入。*/
printf("\n密码:");
fflush(stdin);
scanf("%d",&code);
if(name=='abc'&&code==123456)
{
printf("欢迎光临\n");
getch();
}
else
{
printf("重新登录\n");
}
}while(name!='abc'||code!=123456);
printf("\n\n\tPlease press any key to continue:");
getch();
system("cls");/*清屏*/
lp:for(i=0;i<1;i++)
{
int choice;
printf("\n\n--★-☆--★-☆--☆-★--☆-★--☆-☆--★-\n");
printf("\n\t\t\t 上海大众汽车管理系统\t\n\n");
printf("\t 1 →输入汽车信息\n\n");
printf("\t 2 →排序汽车信息\n\n");
printf("\t 3 →输入进货信息、\n\n");
printf("\t 4 →增加/删除汽车信息\n\n");
printf("\t 5 →更新汽车信息\n\n");
printf("\t 6 →查询汽车信息\n\n");
printf("\t 7 →浏览汽车信息\n\n");
printf("\t 8 →打印汽车信息\n\n");
printf(" \t\t --☆-★--☆-★--☆-☆--★-☆--★-☆--★-");/*菜单选择界面*/
printf("\n\n");
printf("\t请选择您所要的操作(或选择(0)退出):");
scanf("%d",&choice);
switch(choice)
{
case 1:input();break; /*输入模块*/
case 2:sort();break; /*排序模块*/
case 3:purchase();break; /*输入进货模块*/
case 4:edit();break; /*增加/删除模块*/
case 5:renew();break; /*更新模块*/
case 6:inquire();break; /*查询模块*/
case 7:scan();break; /*浏览模块*/
case 8:output();break; /*输出模块*/
case 0: printf("欢迎使用!!!!谢谢再见!!!!");break; /*退出系统*/
default: puts("输入错误,请按任意健返回主菜单:\n"); break;
}
}
system("cls");
goto lp;
}
void input() /*输入模块*/
{
int n;
printf("输入大众汽车的种类数量:");
scanf("%d",&n);
printf("\n …………………………………………………………………………\n");
for(i=0;i<n;i++) /*用循环实现输入n个商品*/
{
printf("\n\t*请输入车辆编号:");
scanf("%ld",&cars[i].num);
printf("\n\t 请输入车辆名字:");
scanf("%s",cars[i].name);
printf("\n\t 请输入车辆类型:");
scanf("%s",cars[i].type);
printf("\n\t 请输入车辆颜色:");
scanf("%s",cars[i].colour);
printf("\n\t 请输入车辆数量:");
scanf("%ld",&cars[i].count);
printf("\n\t 请输入车辆价格:");
scanf("%ld",&cars[i].price);
printf("\n\t 请输入车辆备注:");
scanf("%s",cars[i].beizhu);
printf("\n ………………………………………………………………………\n");
}
printf("\tPlease press any key to continue:");
getch();
return; /*返回主界面*/
}
void sort() /*排序模块*/
{
struct cars_type temp;
int k;
for(k=0;k<n-1;k++) /*按编号排序*/
for(i=0;i<n-k-1;i++) /*用起泡法排序*/
if(cars[i].num>cars[i+1].num) /*按编号由小到大排序*/
{
temp=cars[i];
cars[i]=cars[i+1];
cars[i+1]=temp;
}
printf("---------------------------------------------------------------------");
printf("\n\t\t按车辆编号排序后的车辆信息\n\n");
printf("车辆编号 车辆名称 车辆类别 车辆颜色 车辆数量 车辆价格 车辆备注\n"); /*输出排序后商品信息*/
for(i=0;i<n;i++)
{
printf("\t %5ld %5s %5s %5s %5ld %5ld %5s\n",cars[i].num,cars[i].num,cars[i].type,cars[i].colour,cars[i].count,cars[i].price);
}
printf("please press any key to continue:");
getch();
return; /*返回主界面*/
}
void purchase() /*输入进货模块*/
{
long temp;
int j;
printf("\n\t\5请输入刚进货的车辆编号:");
printf("%ld",&temp);
printf("\n\t\5请输入刚进货的车辆数量:");
scanf("%d",&j);
printf("\n\n\n\tpress any key to contiue:");
getch();
printf("\n\t输出进货后的商品信息:");
for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/
if(temp=cars[i].num)
cars[i].count=cars[i].count+j; /*自动更改商品数量*/
printf("\n\t车辆编号 车辆名称 车辆类别 车辆颜色 车辆数量 车辆价格");
for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/
{
printf("\n\t %5ld %5s %5s %5s %ld %5ld",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price);
}
printf("\n\n\t\tPress any key to enter menu:");
getch(); /*返回功能选择界面*/
return;
}
void edit() /*增加/删除模块*/
{
void add();
void dele();
int k;
printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");
printf("\t*请输入 1或2 继续:");
scanf("%d",&k);
switch(k)
{
case 1: add();break;
case 2: dele();break;
}
getch();
return;
}
void add() /*增加模块*/
{
printf("\t*请输入所添加车辆的车辆编号:");
scanf("%ld",&cars[n].num);
printf("\n\t请输入所添加车辆的名称:");
scanf("%s",cars[n].name);
printf("\n\t请输入所添加车辆的类别:");
scanf("%s",cars[n].type);
printf("\n\t请输入所添加车辆的颜色:");
scanf("%s",cars[n].colour);
printf("\n\t请输入所添加车辆的数量:");
scanf("%d",&cars[n].count);
printf("\n\t请输入所添加车辆的价格:");
scanf("%d",&cars[n].price);
n=n+1;
printf("\n");
}
void dele() /*删除模块*/
{
long temp;
printf("请输入你要删除的车辆编号");
scanf("%ld",&temp);
for(i=0;i<n;i++)
{
cars[i]=cars[i+1];
}
n=n-1;
printf("车辆编号 车辆名称 车辆类型 车辆颜色 车辆数量 车辆价格 车辆备注\n");
for(i=0;i<n;i++)
{
printf("\n\t %5ld %5s %5s %5s %ld %5ld",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price,cars[i].beizhu);
getch();
return;
}
}
void renew() /*更新模块*/
{
long k;
printf("\n\t请输入要修改的商品的编号:");
scanf("%ld",&k);
printf("\n");
for(i=0;i<n;i++)
{
if(k==cars[i].num)
{
printf("\n 输入修改后的车辆名称:\n");
scanf("%s",cars[i].name);break;
printf("\n 输入修改后的车辆类型:\n");
scanf("%s",cars[i].type);break;
printf("\n 输入修改后的车辆颜色:\n");
scanf("%s",cars[i].colour);break;
printf("\n 输入修改后的车辆数量:\n");
scanf("%s",cars[i].count);break;
printf("\n 输入修改后的车辆价格:\n");
scanf("%s",cars[i].price);break;
printf("\n 输入修改后的车辆备注:\n");
scanf("%s",cars[i].beizhu);break;
printf("\n");
}
}
for(i=0;i<n;i++)
{
printf("车辆编号 车辆名称 车辆类型 车辆颜色 车辆数量 车辆价格 车辆备注\n");
printf("\n\t %5ld %5s %5s %5s %ld %5ld",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price,cars[i].beizhu);
printf("\n");
}
printf("Please press any key to continue:"); /*返回功能选择界面*/
getch();
return;
}
void inquire() /*查询模块*/
{
long temp;
printf("请输入需要查询的车辆编号");
scanf("%ld",&temp);
for(i=0;i<n;i++)
{
if(temp+cars[i].num)
{
printf("~~~~~~~查询的车辆信息~~~~~~~~~~~~");
printf("车辆编号 车辆名称 车辆类型 车辆颜色 车辆数量 车辆价格 车辆备注\n");
printf("\n\t %5ld %5s %5s %5s %ld %5ld",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price,cars[i].beizhu);
}
}
getch();
return;
}
void scan() /*浏览模块*/
{
int k;
printf("\n\t浏览输入的车辆信息,请按1\n\n\t浏览排序后车辆信息,请按2\n");
printf("请选择:");
fflush(stdin);
scanf("%d",&k);
switch(k)
{
case 1 :
{
printf("\t\t\t浏览输入的车辆信息\n");/*输出浏览车辆信息*/
for(i=0;i<n;i++)
{printf("车辆编号 车辆名称 车辆类型 车辆颜色 车辆数量 车辆价格 车辆备注\n");
printf("\n\t %5ld %5s %5s %5s %ld %5ld %s",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price,cars[i].beizhu);
printf("\n");
}
printf("Press any key to enter menu:");
getch();
return;
}
break;
case 2:
{ printf("\t\t\t浏览按车辆编号排序的商品信息\n"); /*输出浏览车辆信息*/
for(i=0;i<n;i++)
{printf("车辆编号 车辆名称 车辆类型 车辆颜色 车辆数量 车辆价格 车辆备注\n");
printf("\n\t %5ld %5s %5s %5s %ld %5ld %s",cars[i].num,cars[i].name,cars[i].type,cars[i].colour,cars[i].count,cars[i].price,cars[i].beizhu);
printf("\n");
}
printf("\nPress any key to enter menu:");
getch();
return; /*返回主界面*/
}
break;
default:
break;
}
}
void output() /*输出模块*/
{
FILE* fp = NULL; /* 文件指针 */
Cars rec; /* 存放从文件中读取的记录 */
int i = 0; /* 实现 计数 和 分屏打印的功能 */
fp = fopen(CARS_FILE , "rb"); /* 以 二进制读方式 打开数据文件 */
if(fp == NULL) /* 打开文件出错 */
{
printf(" 打开文件失败: %s\n" , CARS_FILE);
getch();
return ;
}
while(ReadData(fp , &rec)) /* ReadData() 函数出错或到文件末尾时返回 0,可以做循环条件 */
{
Output_Rec(&rec); /* 正确读取,将记录输出 */
printf(" ---------------------------------------------------------------\n");
i++;
if(i>1 && i % 3 == 0)
{
printf("\n 按任意键结束 ... \n");
getch();
}
}
printf("\n一共有\t%d\t条记录 .\n" , i );
fclose(fp);
system("pause");
}
}
void quit() /*退出系统*/
{
exit(0);
}
大恩不言谢了,各位帮帮忙