c语言编程车辆信息管理,车辆信息管理.cpp
#include
#include
#include
#include
#include
using namespace std;
struct Infocar
{
char type[30];// 車輛型號
char industry[30];// 廠商
char rate[30];// 車型級別
char seats[30];// 座位數
char displacement[20]; // 排量
char speedbox[20]; // 變速箱
char color[20]; // 顏色
double price; // 價格
};
int totalcars; //記錄車輛總數
struct Infocar infocar[1001];
void fun01(){
printf("車輛型號 廠商 車型級別 座位數 排量 變速箱 車身顏色 車輛價格\n");
for(int i = 0; i < totalcars; i++){
if(infocar[i].price == 0){
continue;
}
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
}
printf("車輛總數為: %d\n", totalcars);
}
void fun02(){
printf("請輸入待錄入車輛型號,廠商,車型級別,座位數,排量,變速箱,車身顏色,車輛價格,以空格間隔\n");
scanf("%s %s %s %s %s %s %s %lf", infocar[totalcars].type, infocar[totalcars].industry, infocar[totalcars].rate, infocar[totalcars].seats, infocar[totalcars].displacement, infocar[totalcars].speedbox, infocar[totalcars].color, &infocar[totalcars].price);
printf("錄入成功!錄入車輛信息為:\n");
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[totalcars].type, infocar[totalcars].industry, infocar[totalcars].rate, infocar[totalcars].seats, infocar[totalcars].displacement, infocar[totalcars].speedbox, infocar[totalcars].color, infocar[totalcars].price);
totalcars++;
}
void fun03(){
printf("--1.廠商--2.車輛級別--3.車輛價格--\n");
printf("請輸入編號(1-3),按編號指定字段查詢:");
int pos;
scanf("%d", &pos);
char str[100];
double max, min; //價格范圍
switch (pos){
case 1: {
//遍歷數組,查詢到符合要求的就輸出
printf("請輸入字段值\n");
scanf("%s", str);
printf("查詢到的結果為:\n");
for(int i = 0; i < totalcars; i++){
if(strcmp(str, infocar[i].industry) == 0){
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
}
}
}; break;
case 2: {
//遍歷數組,查詢到符合要求的就輸出
printf("請輸入字段值\n");
scanf("%s", str);
printf("查詢到的結果為:\n");
for(int i = 0; i < totalcars; i++){
if(strcmp(str, infocar[i].rate) == 0){
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
}
}
}; break;
case 3: {
printf("請輸入最小價格以及最大價格,以空格間隔:\n");
scanf("%lf %lf", &min, &max);
printf("查詢到的結果為:\n");
for(int i = 0; i < totalcars; i++){
//查找符合價格區間車輛
if(infocar[i].price <= max && infocar[i].price >= min){
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
}
}
}; break;
default:printf("error\n");
}
}
void fun04(){
int i;
printf("請輸入待修改的車輛型號以便查詢車輛信息:\n");
char str01[50];
scanf("%s", str01);
for(i = 0; i < totalcars; i++){
if(strcmp(str01, infocar[i].type) == 0){
printf("查詢到的車輛為:\n");
//找到符合要求的車輛直接打印出來
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%.1lf\n", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
break;
}
}
printf("--1.車輛型號--2.廠商--3.車輛級別--4.座位數--5.排量--6.變速箱--7.顏色--8.車輛價格\n");
printf("請輸入編號(1-8),按編號修改指定字段:");
int pos;
scanf("%d", &pos);
char str[100];
double price;
switch (pos){
case 1: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].type, str);
printf("修改成功!\n");
}; break;
case 2: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].industry, str);
printf("修改成功!\n");
}; break;
case 3: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].rate, str);
printf("修改成功!\n");
}; break;
case 4: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].seats, str);
printf("修改成功!\n");
}; break;
case 5: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].displacement, str);
printf("修改成功!\n");
}; break;
case 6: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].speedbox, str);
printf("修改成功!\n");
}; break;
case 7: {
printf("請輸入字段值\n");
scanf("%s", str);
strcpy(infocar[i].color, str);
printf("修改成功!\n");
}; break;
case 8: {
printf("請輸入修改后的價格\n");
scanf("%lf", &price);
infocar[i].price = price;
printf("修改成功!\n");
}; break;
default:printf("error\n");
}
}
void fun05(){
printf("請輸入要刪除的車輛型號:\n");
char type[20];
scanf("%s", type);
for(int i = 0; i < totalcars; i++){
if(strcmp(type, infocar[i].type) == 0){
//查到了符合要求的就整體前移一位
for(int j = i + 1; j < totalcars; j++){
infocar[j - 1] = infocar[j];
}
totalcars--;
printf("刪除成功!\n");
return ;
}
}
printf("輸入有誤,車輛不存在!\n");
}
void fun06(){
printf("--1.車輛價格--2.座位數--3.排量--\n");
printf("請輸入編號(1-3),按編號指定字段排序:");
int pos;
scanf("%d", &pos);
Infocar tmp;
switch (pos){
case 1: {
for(int i = 0; i < totalcars; i++){
for(int j = 0; j < totalcars - i - 1; j++){
if(infocar[j].price > infocar[j + 1].price){
tmp = infocar[j+1];//結構體允許整體賦值
infocar[j+1] = infocar[j];
infocar[j] = tmp;
}
}
}
fun01();
}; break;
case 2: {
for(int i = 0; i < totalcars; i++){
for(int j = 0; j < totalcars - i - 1; j++){
if(strcmp(infocar[j].seats, infocar[j+1].seats) < 0){
tmp = infocar[j+1];//結構體允許整體賦值
infocar[j+1] = infocar[j];
infocar[j] = tmp;
}
}
}
fun01();
}; break;
case 3: {
for(int i = 0; i < totalcars; i++){
for(int j = 0; j < totalcars - i - 1; j++){
if(strcmp(infocar[j].displacement, infocar[j+1].displacement) < 0){
tmp = infocar[j+1];//結構體允許整體賦值
infocar[j+1] = infocar[j];
infocar[j] = tmp;
}
}
}
fun01();
}; break;
default:printf("error\n");
}
}
void fun07(){
FILE *fp;//文件指針
int i;
fp=fopen("C:\\Users\\larry\\Desktop\\111.txt","w");/*以只在文件末尾寫的方式打開文件*/
for(i = 0; i < totalcars; i++)
{
fprintf(fp, "%s %s %s %s %s %s %s %.1lf", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, infocar[i].price);
if(i != totalcars -1){
fprintf(fp, "\n");
}
}
fclose(fp);
printf("已完成保存!\n");
}
void fun08(){
int a;
printf("即將退出系統,是否保存(1/0)?\n");
scanf("%d", &a);
if(a == 1){
fun07();
printf("歡迎下次使用!\n");
exit(0);
}else{
printf("數據未保存,已成功退出,歡迎下次使用!\n");
exit(0);
}
}
int main(){
printf("********************************************\n");
printf("********************************************\n");
printf("**************車輛信息管理系統**************\n");
printf("********************************************\n");
printf("******1.記錄瀏覽*********2.錄入車輛*********\n");
printf("********************************************\n");
printf("******3.查詢車輛*********4.修改信息*********\n");
printf("********************************************\n");
printf("******5.刪除車輛*********6.車輛排序*********\n");
printf("********************************************\n");
printf("******7.保存記錄*********0.退出系統*********\n");
printf("********************************************\n");
printf("********************************************\n");
printf("********************************************\n");
printf("********************************************\n");
int i = 0, j, flag;
FILE *fp;
if((fp=fopen("C:\\Users\\larry\\Desktop\\111.txt","r")) == NULL)// 打開文件并且讓fp指向 文件
{
printf("Can not open file\n");
exit(1);
}
while(!feof(fp))
{
fscanf(fp, "%s %s %s %s %s %s %s %lf", infocar[i].type, infocar[i].industry, infocar[i].rate, infocar[i].seats, infocar[i].displacement, infocar[i].speedbox, infocar[i].color, &infocar[i].price);
i++;
}
totalcars = i;
fclose(fp);//關閉文件;
while(true){
printf("請輸入操作編號,回車鍵結束:");
scanf("%d", &flag);
switch (flag){
case 1: fun01(); break;
case 2: fun02(); break;
case 3: fun03(); break;
case 4: fun04(); break;
case 5: fun05(); break;
case 6: fun06(); break;
case 7: fun07(); break;
case 0: fun08(); break;
default:printf("error\n");
}
}
return 0;
}
一鍵復制
編輯
Web IDE
原始數據
按行查看
歷史
總結
以上是生活随笔為你收集整理的c语言编程车辆信息管理,车辆信息管理.cpp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pr 视频效果:颜色校正
- 下一篇: IDEA如何开启远程调试