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站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-08网站设计的好处,设计网站的目的
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06人脸识别源代码pdf的简单介绍[20240506更新]
- 05-06包含超市管理系统java源代码的词条[20240506更新]
- 05-06商城app源代码免费(商城App源码)[20240506更新]
- 05-06包含游戏源代码不同的模式的词条[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接