当前位置:首页 > 代码 > 正文

c课程设计车辆管理系统源代码(c++车辆管理系统设计)

admin 发布:2022-12-19 23:22 169


本篇文章给大家谈谈c课程设计车辆管理系统源代码,以及c++车辆管理系统设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

◆C语言课程设计----车辆交通违章管理程序◆

//VC++6.0下调试通过

#include stdio.h

#include stdlib.h

#include malloc.h

#include string.h

#include time.h

typedef enum {s_park=1, s_speed, s_signal, s_other} SheetType;

typedef enum {f_id, f_car, f_driver, f_police} FindType;

typedef struct Sheet

{

signed long id;//罚单号

char carNo[20];//车牌号

char driver[20];//司机名

char police[20];//警察编号

SheetType type;//罚单类型

tm time;//出单日期

}Sheet;

typedef struct Node

{

Sheet data;

Node* next;

}Node;

static Node* begin=NULL;//哨兵结点

static signed long len=0;//链表长度

void printMenu();//打印菜单

void printBye();//打印退出界面

void printList(Node* bg);//打印所有罚单信息

void printNode(Sheet sheet);//打印单条罚单

Node* lookupSheet(void* pInfo, signed short* n,

FindType type=f_id);//根据类型查询罚单。成功返回结点。失败NULL

int addNode(Node* bg, Sheet sheet);//添加罚单。成功返回链表长度。内存分配失败0

int deleteNode(signed short stid);//根据罚单号删除罚单。

int total(char* driver, tm date1, tm date2, signed short* icar,

signed short* ispeed, signed short* isignal, signed short* iother);//统计

int getListlen(Node* bg);

void freeList(Node* bg);//释放链表

void main()

{

//初始化链表。

begin=(Node*)malloc(sizeof(Node));

begin-next=NULL;

printf("----------------------------------------------------------------------------\n");

printf("--- 《交通罚单管理系统》 ---\n");

printf("--- 沙支夸依 2007-12-24 ---\n");

printf("----------------------------------------------------------------------------\n");

printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");

printMenu();

while (1)

{

fflush(stdin);

char cmd=getchar();

Sheet sheet;

memset(sheet, 0, sizeof(Sheet));

switch (cmd)

{

case '1':

printf("---添加交通处罚单信息。(车牌号为 0 结束)\n");

while (1)

{

printf("请输入违章车辆号: ");

fflush(stdin);

gets(sheet.carNo);

if (!strcmp(sheet.carNo,"0"))

break;

printf("请输入违章司机姓名: ");

fflush(stdin);

gets(sheet.driver);

printf("请输入开单交警编号: ");

fflush(stdin);

gets(sheet.police);

printf("请选择违章类型(1-违章停车 2-超速 3-不按信号灯行使 4-其它):");

scanf("%d", sheet.type);

printf("请输入开单日期(例 2007-12-24): ");

scanf("%d-%d-%d", sheet.time.tm_year, sheet.time.tm_mon, sheet.time.tm_mday);

int succ=addNode(begin, sheet);

if (!succ)

{

printf("内存错误!请重新输入!\n");

}

else

printf("添加成功!当前记录数: %d\n", len);

printf("\n");

}

printMenu();

break;

case '2':

printf("---删除交通处罚单信息。(罚单号为 0 结束)\n");

while (1)

{

signed short stid=0;

printf("请输入要删除的罚单号:");

scanf("%d", stid);

if (!stid)

break;

Node* delNode=lookupSheet(stid, NULL);

if (!delNode)

printf("对不起!你要删除的记录不存在。\n");

else

{

printNode(delNode-data);

printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n");

fflush(stdin);

char cDelete=getchar();

if ('n'==cDelete)

continue;

printf("删除成功!剩余记录数: %d\n",deleteNode(stid));

}

printf("\n");

}

printMenu();

break;

case '3':

printf("---查询交通处罚单信息。(输入 0 结束)\n");

while (1)

{

printf("请选择查询类型: 1-车辆号 2-司机 3-交警 4-退出\n");

Node* findNode=NULL;

int findtype=0;

scanf("%d", findtype);

if (4==findtype)

break;

char findInfo[20];

signed short findcout=0;

switch (findtype)

{

case 1:

printf("请输入车辆号: ");

fflush(stdin);

gets(findInfo);

findNode=lookupSheet(findInfo, findcout, f_car);

if (getListlen(findNode)=5)

{

printf("---该车辆违章超过5次。建议重罚。\n");

}

break;

case 2:

printf("请输入司机姓名: ");

fflush(stdin);

gets(findInfo);

findNode=lookupSheet(findInfo, findcout, f_driver);

if (getListlen(findNode)=5)

{

printf("---该司机违章超过5次。建议重罚。\n");

}

break;

case 3:

default:

printf("请输入交警编号: ");

fflush(stdin);

gets(findInfo);

findNode=lookupSheet(findInfo, findcout, f_police);

}

if (!findNode)

printf("对不起!你要查询的记录不存在。\n");

else

{

printList(findNode);

freeList(findNode);

}

printf("\n");

}

printMenu();

break;

case '4':

printf("---统计司机处罚单信息。(输入 0 结束)\n");

while (1)

{

printf("请输入司机姓名: ");

char driver[20];

fflush(stdin);

gets(driver);

if (!strcmp(driver, "0"))

break;

printf("请输入起始日期(如 2007-12-24): ");

tm date1;

memset(date1, 0, sizeof(tm));

scanf("%d-%d-%d", date1.tm_year, date1.tm_mon, date1.tm_mday);

printf("请输入终止日期(如 2007-12-24): ");

tm date2;

memset(date2, 0, sizeof(tm));

scanf("%d-%d-%d", date2.tm_year, date2.tm_mon, date2.tm_mday);

signed short car, speed, signal, other;

int sum=total(driver, date1, date2, car, speed, signal, other);

printf("司机姓名:%-10s 违章停车:%2d 超速:%2d 不按信号灯行使:%2d 其它:%2d 共计:%2d\n",

driver, car, speed, signal, other, car+speed+signal+other);

printf("\n");

}

printMenu();

break;

case '5':

printList(begin);

printMenu();

break;

case '6':

printf("---修改交通处罚单信息。(输入 0 结束)\n");

while (1)

{

signed short stid=0;

printf("请输入要修改的交通处罚单号:");

fflush(stdin);

scanf("%d", stid);

if (!stid)

break;

Node* updataNode=lookupSheet(stid, NULL);

if (!updataNode)

printf("对不起!你要修改的记录不存在。\n");

else

{

printNode(updataNode-data);

memset(sheet, 0, sizeof(Sheet));

sheet.id=stid;

printf("请修改违章车辆号: ");

fflush(stdin);

gets(sheet.carNo);

printf("请修改违章司机姓名: ");

fflush(stdin);

gets(sheet.driver);

printf("请修改开单交警编号: ");

fflush(stdin);

gets(sheet.police);

printf("请修改违章类型(1-违章停车 2-超速 3-不按信号灯行使 4-其它):");

scanf("%d", sheet.type);

printf("请修改开单日期(例 2007-12-24): ");

scanf("%d-%d-%d", sheet.time.tm_year, sheet.time.tm_mon, sheet.time.tm_mday);

updataNode-data=sheet;

printNode(updataNode-data);

}

printf("\n");

}

printMenu();

break;

case '7':

printBye();

freeList(begin);

exit(0);

break;

default:

printMenu();

}

}

}

void printMenu()

{

printf("----------------------------------------------------------------------------\n");

printf("--- 1、添加交通处罚单信息。 2、删除交通处罚单信息。 ---\n");

printf("--- 3、查询交通处罚单信息。 4、统计司机处罚单信息。 ---\n");

printf("--- 5、浏览交通处罚单信息。 6、修改交通处罚单信息。 ---\n");

printf("--- 7、退出。 ---\n");

printf("----------------------------------------------------------------------------\n");

printf("");

}

void printBye()

{

printf("----------------------------------------------------------------------------\n");

printf(" 感谢您使用交通罚单管理系统 \n");

printf(" 再 见 \n");

printf("----------------------------------------------------------------------------\n");

}

void printNode(Sheet sheet)

{

char* type=NULL;

switch (sheet.type)

{

case s_park:

type="违章停车";

break;

case s_speed:

type="超速";

break;

case s_signal:

type="不按信号灯行使";

break;

case s_other:

default:

type="其它";

}

printf("罚单号:%-6d 车牌号:%-10s 司机名:%-10s 交警名:%-10s\n"

"罚单类型:%-15s 开单日期:%d-%d-%d\n",

sheet.id, sheet.carNo, sheet.driver, sheet.police,

type, sheet.time.tm_year, sheet.time.tm_mon, sheet.time.tm_mday);

printf("--------------------------------------------------------------------------\n");

}

void printList(Node* bg)

{

Node* temp=bg-next;

if (!temp)

{

printf("暂时无记录可供浏览!\n");

}

while (temp)

{

printNode(temp-data);

temp=temp-next;

}

}

Node* lookupSheet(void* pInfo, signed short* n, FindType type)

{

Node* result=NULL;

if (type)

{

result=(Node*)malloc(sizeof(Node));

result-next=NULL;

*n=0;

}

Node* temp=begin-next;

switch (type)

{

case f_id:

while (temp)

{

if (temp-data.id==*(signed long*)pInfo)

{

if (n)

*n=1;

return temp;

}

temp=temp-next;

}

break;

case f_car:

while (temp)

{

if (!strcmp(temp-data.carNo,(char*)pInfo))

{

addNode(result, temp-data);

(*n)++;

}

temp=temp-next;

}

break;

case f_driver:

while (temp)

{

if (!strcmp(temp-data.driver,(char*)pInfo))

{

addNode(result, temp-data);

(*n)++;

}

temp=temp-next;

}

break;

case f_police:

while (temp)

{

if (!strcmp(temp-data.police,(char*)pInfo))

{

addNode(result, temp-data);

(*n)++;

}

temp=temp-next;

}

break;

}

return result;

}

int addNode(Node* bg, Sheet sheet)

{

Node* temp=(Node*)malloc(sizeof(Node));

if (!temp)

return 0;

if (bg==begin)

{

if (bg-next)

{

sheet.id=bg-next-data.id+1;

}

else

sheet.id=1;

}

temp-data=sheet;

temp-next=bg-next;

bg-next=temp;

return ++len;

}

int deleteNode(signed short stid)

{

Node* temp=begin;

Node* pos=NULL;

while (temp-next)

{

if (temp-next-data.id==stid)

{

pos=temp-next;

temp-next=pos-next;

free(pos);

return --len;

}

temp=temp-next;

}

return -1;

}

int getListlen(Node* bg)

{

Node* temp=bg;

int i=0;

while (temp-next)

{

i++;

temp=temp-next;

}

return i;

}

void freeList(Node* bg)

{

Node* temp=NULL;

while (bg)

{

temp=bg-next;

free(bg);

bg=temp;

}

}

int total(char* driver, tm date1, tm date2, signed short* icar,

signed short* ispeed, signed short* isignal, signed short* iother)

{

signed short result=0;

*icar=0;

*ispeed=0;

*isignal=0;

*iother=0;

Node* findNode=lookupSheet(driver, result, f_driver);

if (!findNode)

{

free(findNode);

return 0;

}

time_t o,n,nw;

date1.tm_year-=1900;

date2.tm_year-=1900;

o=mktime(date1);

n=mktime(date2);

if (on)

{

time_t tp=o;

o=n;

n=tp;

}

Node* temp=findNode-next;

while (temp)

{

tm t=temp-data.time;

t.tm_year-=1900;

nw=mktime(t);

if (nwo||nwn)

{

temp=temp-next;

continue;

}

switch (temp-data.type)

{

case 1:

(*icar)++;

break;

case 2:

(*ispeed)++;

break;

case 3:

(*isignal)++;

break;

case 4:

default:

(*iother)++;

}

temp=temp-next;

}

freeList(findNode);

return result;

}

用c语言编写一个课程设计,题目是《车辆租凭管理系统》。

这种程序难度不大 先定义结构体

struct car

{

char number[10];//车牌号

............

}

然后用结构体定义一个数组

其他各个功能都对这个数组进行操作

如果楼主拿不下它 可以see see 我 name,我help you

C++的一个课程设计,车辆登记管理系统,有人知道怎么编吗?

强烈建议用C#写,也就是用VS平台写,C++虽然是面向对象的语言,但是由于是基于C语言发展而来,面向对象的思想并不彻底,很多方法需要自己写,这正是C++的难点,也是C++的优势。更进一步说,所有的管理系统都需要有一个后台数据库的支撑,而C#自带与SQL的连接语句,作为一个毕业设计拿优的人,真的建议你,用C#写,个人感觉,C#最大的市场优势,就是做企业系统软件了

c课程设计车辆管理系统源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++车辆管理系统设计、c课程设计车辆管理系统源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/29945.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载