交通信息管理系统(c语言课设,大作业)

// 详情请咨询qq 3233963554
#include<stdio.h>
#include<string.h>
#define MAXS 1000

struct jiaotong
{
    char bNumber[10];
    char carNumber[10];
    char Name[10];
    char Sex[5];
    char wState[20];
    char wTime[20];
    char Where[20];
};


struct jiaotong traffic[MAXS];

int flag = 0;
int choice=0;
void input()
{

    int i = 0;
    while(1)
    {
    printf("请输入车主的编号\n");
    scanf("%s",traffic[i].bNumber);
    printf("请输入车主的车牌号\n");
    scanf("%s",traffic[i].carNumber);
    printf("请输入车主的姓名\n");
    scanf("%s",traffic[i].Name);
    printf("请输入车主的性别\n");
    scanf("%s",traffic[i].Sex);
    printf("请输入车主的违章状态\n");
    scanf("%s",traffic[i].wState);
    printf("请输入车主的违章时间\n");
    scanf("%s",traffic[i].wTime);
    printf("请输入车主的违章地点\n");
    scanf("%s",traffic[i].Where);
    printf("是否继续输入\n");
    printf("1-继续输入\t2-停止输入\n");

    flag++;
    scanf("%d",&choice);
    if(choice == 1)
        i++;
    else
        break;
    }

}


void output()
{
    int i = 0;
    FILE *fp;
    fp = fopen("wenjian.txt","w+");
    for(;i < flag; i++)
    {
        fprintf(fp,"%s %s %s %s %s %s %s\n",traffic[i].bNumber,traffic[i].carNumber,traffic[i].Name,traffic[i].Sex,traffic[i].wState,traffic[i].wTime,traffic[i].Where);
    }
    printf("录入完毕");
    fclose(fp);
}


void read()
{
    int i = 0;
    FILE *fp;
    fp = fopen("wenjian.txt","r");
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%s%s%s%s%s",traffic[i].bNumber,traffic[i].carNumber,traffic[i].Name,traffic[i].Sex,traffic[i].wState,traffic[i].wTime,traffic[i].Where);
        i++;
    }
    flag = i - 1;
    fclose(fp);
}


void showAll()
{
    int i = 0;
    for(;i < flag;i++)
    {
        printf("%s,%s,%s,%s,%s,%s,%s\n",traffic[i].bNumber,traffic[i].carNumber,traffic[i].Name,traffic[i].Sex,traffic[i].wState,traffic[i].wTime,traffic[i].Where);

    }
    printf("显示完毕");
}


void caidan()
{
    while(1)
    {
        int choice = 0;
        printf("\n\n\n\n\t\t\t\t欢迎使用交通管理系统\n");
        printf("\t\t\t\t\t1-录入系统\n");
        printf("\t\t\t\t\t2-显示系统\n");
        printf("\t\t\t\t\t3-删除系统\n");
        printf("\t\t\t\t\t4-查询系统\n");
        printf("\t\t\t\t\t5-修改系统\n");
        printf("\t\t\t\t\t6-统计系统\n");
        printf("\t\t\t\t\t7-退出程序");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:
                input();
                output();
                break;
            case 2:
                read();
                showAll();
                break;
            case 3:
                read();
                del();
                output();
                break;
            case 4:
                read();
                searchAll();
                break;
            case 5:
                read();
                change();
                output();
                break;
            case 6:
                read();
                tAll();

        }
        if(choice == 7)
            break;
    }
}


void tAll()
{
    char twTime[20];
    int count = 0;
    printf("请输入违章日期\

车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、 耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等 信息。 每台车辆当月总费用=油价*耗油量/公里+基本维护费用。 基本维护费用:客车:2000 元/月,小轿车:1000 元/月,卡车:1500 元/月 功能要求: (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再 添加新的数据。 (2)查询车辆:可按照三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”; (3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删 除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。 (6)统计信息 输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。 (7)车辆信息存盘:将当前程序中的车辆信息存入文件中。 (8)读出车辆信息:从文件中将车辆信息读入程序。
C语言车辆违章管理系统可以通过使用结构体和数组来实现。以下是一个简单的示例: ```c #include <stdio.h> #include <string.h> #define MAX_SIZE 100 typedef struct { char id[MAX_SIZE]; // 编号 char carId[MAX_SIZE]; // 车牌号 char name[MAX_SIZE]; // 车主姓名 char sex[MAX_SIZE]; // 性别 char violateTime[MAX_SIZE]; // 违章时间 char address[MAX_SIZE]; // 违章地点 char situation[MAX_SIZE]; // 违章情况 char punish[MAX_SIZE]; // 处罚情况 } CarInfo; typedef struct { char carId[MAX_SIZE]; // 车牌号 char driverName[MAX_SIZE]; // 驾驶员姓名 char policeName[MAX_SIZE]; // 交警姓名 char policeId[MAX_SIZE]; // 交警编号 char ticketId[MAX_SIZE]; // 交通处罚单编号 char punishDate[MAX_SIZE]; // 处罚日期 } PunishInfo; int main() { CarInfo carInfos[MAX_SIZE]; PunishInfo punishInfos[MAX_SIZE]; int carCount = 0; int punishCount = 0; // 添加车辆信息 strcpy(carInfos[carCount].id, "001"); strcpy(carInfos[carCount].carId, "粤A12345"); strcpy(carInfos[carCount].name, "张三"); strcpy(carInfos[carCount].sex, "男"); strcpy(carInfos[carCount].violateTime, "2021-01-01"); strcpy(carInfos[carCount].address, "广州市"); strcpy(carInfos[carCount].situation, "闯红灯"); strcpy(carInfos[carCount].punish, "罚款100元"); carCount++; // 添加处罚单信息 strcpy(punishInfos[punishCount].carId, "粤A12345"); strcpy(punishInfos[punishCount].driverName, "张三"); strcpy(punishInfos[punishCount].policeName, "李四"); strcpy(punishInfos[punishCount].policeId, "001"); strcpy(punishInfos[punishCount].ticketId, "20210101001"); strcpy(punishInfos[punishCount].punishDate, "2021-01-01"); punishCount++; // 查询车辆违章情况 char searchCarId[MAX_SIZE]; printf("请输入要查询的车牌号:"); scanf("%s", searchCarId); for (int i = 0; i < carCount; i++) { if (strcmp(carInfos[i].carId, searchCarId) == 0) { printf("车辆违章情况:\n"); printf("车牌号:%s\n", carInfos[i].carId); printf("违章时间:%s\n", carInfos[i].violateTime); printf("违章地点:%s\n", carInfos[i].address); printf("违章情况:%s\n", carInfos[i].situation); printf("处罚情况:%s\n", carInfos[i].punish); break; } } // 统计车辆罚款总金额 char searchCarId2[MAX_SIZE]; printf("请输入要统计罚款总金额的车牌号:"); scanf("%s", searchCarId2); int totalFine = 0; for (int i = 0; i < carCount; i++) { if (strcmp(carInfos[i].carId, searchCarId2) == 0) { int fine = atoi(strtok(carInfos[i].punish, "罚款")); totalFine += fine; } } printf("车辆罚款总金额:%d元\n", totalFine); return 0; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五弦奏南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值