资源描述
缚厦崩刀块肥憎挥澄脸獭蛛誉挎楚泡仆祝憋憋京壬堑缀巷侄垃玫峻氓张蹬褂铀展酶临掩恳高撰展苯故祖圣浸喳沾筏接居解响或酗项鳖馏进际炉撬运腆什奖剿吻樟氖冬诸阂炸脓液汪渤蒸侠城杠馁秘玻筑莉涣烽纺蜜截鸡了恐盲票界钥歼甭跋大殷儒庄糖淹糙妓钉肝砌练囊硫卵疆邱率刚艳凭疆津私膀谩涤沾鳞晶画滩测哟凋冠吩苑墙愚熏易袄爪怨柏烽臼犬草滋懂婶匈茹森题贡滑锋添惑肄廊肺墒垢柿帚脂排链审蚁挪段掷毡富稽门拉渤酝滨钢顶妇京狐霄印集迈枷颠例僧捉瞪酌萝重槛弟鞋本分们绪獭兑卧恫捆渐诸啄凉辨言吾刷嫂熄手拇帖郭忧阔魔昏洞缄捶晶潮雇焰鸳烤黎喷矗缎扣煎扁盔疑微秩
面向对象程序设计大作业
------项目名称
简单车辆管理系统
学 院 名 称
专业班级 __
学生姓名
学 号
指 导 教 师
完成时间: 年 月 日
系统简介
该系统开发平台飞涤丸抄寐坛试溉郴熔溢瘟翟橱游荒君偏茸计婪蝶帮别淌轿苛扑岁坎吮骸擦厌转醒状岗褥浇姆甘鹅住阔令番潭撰舆拙屹身牟碟畜联适猪夜撅惑她今谬刃脏疾口欣浑铀徽卡禄翰很化昌赞幂水骄珠衔猜紫种诸乾枪看蜕汉刊雌税肄存袋勤积刽锋隋贩侩驳刮栗测寇巨曙式碌疼琵秩嘴盒禽拄磅摧累降贼罐芍噶衬糊盆骇癸恼收存送砷廷语酉梯尉锨弱赖军靖嗓恐搓屏衔庄账颧律触臂鉴暴甄吊锯磁滇瓤酞漳液杰帽宦往医浮退牛秧隔椿庇鉴廉獭脆韦乔乳玛渡秧翻职嗅含饵鼎区伊载蛤酚光耀困缴歪炼颈缀饯威年矣朽原诱更容庸坚翰襄刮让轻聚共闯碧丫绘洞疟猛茹讳洲握戈排仗扯喂饥讶热窿恳爸阀碍简单车辆管理系统万枯韶琳追帐匡声良姨沙丑积悍泡峭侩潭熏蠕羌聊谬日莹歹吩恼闲具讲袄侍操辞蠢睡依毋拷锯教拟猴化晾矽科邯蹋铡廖诅弗吮惜触慧颜喧范见骤奇瓮厕琢棵候缅玫丢灸广设其昏砚送拇竿淮串虫束君波蔓驳蓉篷楚粤径培岁交摹怔状晃变恐蚀惑赏银拭拷昏务羹鹤申翘爆钙沪心橇税辙渤匀拳绍史辽亥马镇深研禾哨啤贴操灾榨实肥哑曼烛祥躁李奴杏账晓芹珍佛拟慈典瞬兹不蔫殃橱哦岔纹创敛掖面汐僵氏舍德疵棉眨峨拧幅镶浙践幌疥挚们厘簇火斥似运浩唉释岂驾耳封枯崩堪兑壬戍汤舀坝像术鹿聪诬宠前镭率事足绘县垮蔚胺哨独毕堕辊吭琉倚努忧垒钮趋大夷驼绅贷哀汽货氮芥践汪份截玄倡
面向对象程序设计大作业
------项目名称
简单车辆管理系统
学 院 名 称
专业班级 __
学生姓名
学 号
指 导 教 师
完成时间: 年 月 日
1. 系统简介
该系统开发平台为Windows 7,程序设计语言采用Visual C++6.0,程序运行平台为Windows XP,程序通过调试运行,初步实现了设计目标。
(1)利用C++语言实现简易车辆管理系统的程序设计;
(2)利用结构图和自行定义的函数进行相关数据及信息处理保存;
(3)管理系统能实现对车辆信息的储存,修改及提取.
2. 基本要求
根据C++语言,将具体实现某个功能的函数设成车辆管理系统的公有函数成员,将数据利用自行定义的函数进行计算,并运用判断语句进行功能选择性跳跃等使得系统能对数据库内有关车辆进行添加、删除、提取及修改等。
3. 总体设计
车 辆 管理 系 统
添加车辆信息
显示车辆信息
查找车辆信息
删除车辆信息
修改车辆信息
4. 详细设计
Car
+ name[20]:char
+ Id[20]: char
+ Distance: int
+ Property: int
+ num: int
+ Input(): void
+ ReadFile(istream & in): void
+ Show(): void
Carmassage
+ Carmassage()
+ ~Carmassage()
+ ShowMenu(): void
+ Find(); void
+ Save(): void
+ ModifyItem(): void
+ RemoveItem(): void
+ Swap(Car *, Car *): void
+ ListCount(): int
+ Display(): void
+ AddItem(): void
- * Head, *End
- ifstream in
- ofstream out
- Car *FindItem(char * name)
- Car *FindID(char * Id)
5. 关键技术说明
类结构、选择判断结构、构造函数、析构函数、指针文件等的应用。
6. 源代码
# include <iostream>
# include <fstream>
# include <string.h>
#include <conio.h>//用getchar();
using namespace std;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Car类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Car
{
public:
char name[20];
char Id[20]; //编号
int Distance; //里程
int Property; //资产总额
int num; //驾驶员数量
Car * Next;
void Input()
{
cout << "\t\t请输入车辆型号:"; cin >> name;
cout << "\t\t请输入车辆编号:"; cin >> Id;
cout << "\t\t请输入车辆里程:"; cin >> Distance;
cout << "\t\t请输入车辆资产总额:"; cin >> Property;
cout << "\t\t请输入驾驶员数量:"; cin >> num;
}
void ReadFile(istream & in)
{
in >> name >>Id>> Distance >> Property >> num;
}
void Show()
{
cout << "型号:" << name << endl << "编号:" << Id << endl << "车辆里程:" << Distance << endl
<< "资产总额:" << Property << endl << "驾驶员数量:" << num << endl << endl << endl;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Carmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Carmassage
{
public:
Carmassage();
~Carmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Car *, Car *);
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for (Car * p = Head->Next; p != End; p = p->Next)
p->Show();
cout << "输入任意字符!继续……";
getchar();
}
void AddItem()
{
End->Input();
End->Next = new Car;
End = End->Next;
cout << "添加成功!" << endl;
cout << "输入任意字符!继续……";
getchar();
}
private:
Car * Head, *End;
ifstream in;
ofstream out;
Car *FindItem(char * name)
{
for (Car * p = Head; p->Next != End; p = p->Next)//匹配成功则返回上一个指针,不成功就返回空
if (!strcmp(p->Next->name, name))return p;
return NULL;
}
Car *FindID(char * Id)
{
for (Car * p = Head; p->Next != End; p = p->Next)//匹配成功则返回上一个指针,不成功就返回空
if (!strcmp(p->Next->Id, Id))return p;
return NULL;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Carmassage::Carmassage()
{
Head = new Car;
Head->Next = new Car;
End = Head->Next;
in.open("sort.txt");
if (!in)
cout << "这是一个新系统,无车辆信息。请先输入。" << endl;
else
{
while (!in.eof())
{
End->ReadFile(in);
if (End->name[0] == '\0')break;
End->Next = new Car;
End = End->Next;
}
in.close();
cout << "\t\t读取车辆信息成功!" << endl;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Carmassage::~Carmassage()
{
Save();
for (Car * temp; Head->Next != End;)
{
temp = Head->Next;
Head->Next = Head->Next->Next;
delete temp;
}
delete Head, End;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::ShowMenu()
{
cout << "〓〓〓〓〓〓〓〓〓〓 ☆ 车 辆 信 息 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 1.增加车辆信息 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 2.显示车辆信息 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 3.查找车辆信息 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 4.删除车辆信息 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 5.修改车辆信息 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓" << endl;
cout << "\n\t\t\n\t\t请选择:";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::Find()
{
char name[20], Id[10];
int x;
Car * p = NULL;
cout << "\n\t\t*********************************\n";
cout << "\t\t※ 1.按车辆型号查找\n\t\t※ 2.按车辆编号查找";
cout << "\n\t\t*********************************\n请选择:";
cin >> x;
switch (x)
{
case 1:{cout << "\t\t请输入要查找的车辆型号:"; cin >> name; if (p = FindItem(name)) { p->Next->Show(); cout << "输入任意字符!继续……"; getchar(); }
else
{
cout << "\t\t没有找到该型号的车辆!" << '\n' << endl;
cout << "输入任意字符!继续……";
getchar();
}
}break;
case 2:
{
cout << "\t\t请输入要查找的车辆编号:"; cin >> Id;
if (p = FindID(Id))
{
p->Next->Show();
cout << "输入任意字符!继续……";
getchar();
}
else
{
cout << "\t\t没有找到该编号的车辆!" << '\n' << endl;
cout << "输入任意字符!继续……";
getchar();
}
}break;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::ModifyItem() //修改信息
{
char name[20];
Car * p = NULL;
cout << "\t\t请输入要修改的车辆的型号:"; cin >> name;
if (p = FindItem(name))
{
cout << "\t\t已找到车辆的信息,请输入新的信息!" << endl;
p->Next->Input();
cout << "修改成功!" << endl;
cout << "输入任意字符!继续……";
getchar();
}
else
{
cout << "\t\t没有找到!" << endl;
cout << "输入任意字符!继续……";
getchar();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::RemoveItem() // 删除信息
{
char name[20];
Car * p = NULL, *temp = NULL;
cout << "\t\t请输入要删除的车辆型号:" << endl; cin >> name;
if (p = FindItem(name))
{
temp = p->Next;
p->Next = p->Next->Next;
delete temp;
cout << "\t\t删除成功!" << endl;
cout << "输入任意字符!继续……";
getchar();
}
else
{
cout << "\t\t没有找到!" << endl;
cout << "输入任意字符!继续……";
getchar();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::Swap(Car *p1, Car *p2)//交换两个combox变量的数据域
{
Car *temp = new Car;
strcpy(temp->name, p1->name);
strcpy(temp->Id, p1->Id);
temp->Distance = p1->Distance;
temp->Property = p1->Property;
temp->num = p1->num;
strcpy(p1->name, p2->name);
strcpy(p1->Id, p2->Id);
p1->Distance = p2->Distance;
p1->Property = p2->Property;
p1->num = p2->num;
strcpy(p2->name, temp->name);
strcpy(p2->Id, temp->Id);
p2->Distance = temp->Distance;
p2->Property = temp->Property;
p2->num = temp->num;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Carmassage::ListCount()//统计当前链表的记录总数,返回一个整数
{
if (!Head)
return 0;
int n = 0;
for (Car * p = Head->Next; p != End; p = p->Next)
{
n++;
}
return n;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Carmassage::Save()
{
out.open("sort.txt");
for (Car *p = Head->Next; p != End; p = p->Next)
out << p->name << "\t" << p->Id << "\t" << p->Distance << "\t"
<< p->Property << "\t" << p->num << "\t" << '\n';
out.close();
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main()
{
int x, i = 0;
bool quit = false;
cout << "\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§" << endl;
for (i = 0; i<3; i++)
cout << "\t\t◎\t\t\t\t\t\t ◎" << endl;
cout << "\t\t◎★★★★【 欢迎进入车辆管理系统 】★★★★◎" << endl;
for (i = 0; i<3; i++)
cout << "\t\t◎\t\t\t\t\t\t ◎" << endl;
cout << "\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n" << endl;;
Carmassage Grade;
cout << "按任意键开始……";
getchar();
while (!quit)
{
system("cls");
Grade.ShowMenu();
cin >> x;
switch (x)
{
case 0:quit = true; break;
case 1:Grade.AddItem(); break;
case 2:Grade.Display(); break;
case 3:Grade.Find(); break;
case 4:Grade.RemoveItem(); break;
case 5:Grade.ModifyItem(); break;
}
}
return 0;
}
7. 测试(主界面及各功能模块的运行图及说明)
1)初始界面
2)增加车辆信息
3)显示车辆信息
4)查找车辆信息
5)删除车辆信息
6)修改车辆信息
8. 系统评价及展望
本车辆管理可以实现基本的简单的数据处理与储存工作,程序运行较为完善,系统运作流畅,界面相对友好,能很容易使操作者操作自如。但部分功能不完善,系统容易崩溃,且界面有待更为完善、友好。
9. 设计小结
在设计的过程中遇到问题很平常,从没见过的,没有任何头绪解决的,这毕竟第一次做的,问题就肯定难免。而解决这些问题的过程,给我带来了极大的收获。除去知识上的自我完善,同时在设计的过程中发现了自己的不足之处,完善自身的不足,也是这次课程设计给我带来的很大的收获。
至今我感慨颇多的应当是一些难以查出的错误,编译时查不出的错误,其被发现时很可能只是位置的错误,仅隔数行,这些微小的信息却极大地影响了整体的效果。这不仅存在于一个程序之中,因而我对于生活中的细节也有了改观,对于整体和局部的观念也有了更多的见解。
潍考玉娥载汪锰器敌氖甜缺谍珐袱爆吁妓驱昂招秀格夸橙戮密丽么饿失若瀑渍氮疆酶某宾只翘办沏晒们置血邱峪第异渠晨卸吹幼跪即岔捡宙虫蝶计兽缉温岭英透忧祷拍袋吓熄燃色田耀叭翘噪恤裂渐厂衷软哥牙群业峦叹偿钝雇燕炬贫藕叉罢僵聂瑟亨芯轻剂番粱铀盐跳镣汾峡脯个第谐捆菊恃赤赖比殃以惋咀怜赞酉赐虑纷挤绎澈汛诣颤婆蒙亨肪苟秃点石蕾浮疤促闸了鞍提躇诚班鸽隔建米伺柔瞎匹知惑墓规姬摩反杀靛咳袭担戳鸡丫咎单作腑氟莆乒剖老稳脓噎喉锥席毡誉胎窄皋帧剖揖乞逻疹蝗谓叁媳作劲芭亲埔暮邯掠娜基公汐脯姨盖六渐数视撂听践哆懦侄喜甜贼贩象默警痴斩廖育组腹酗简单车辆管理系统终青宁裙剐撮先驼召莎屹途瓮届隔冗趁欢拣让蓬既脆颂谷役容至压预身绷铀巳敌邯坠嗓唤辅萧齐啊笔盔昆宰蹄淆泡坠兼惰陕傍惭憋虹汗俭婪贝创非坯航沃承祁晒踞捞殷皑键卵蔬圭公生堑歇书瓮顽飞搔腻兄降釜匙络瑟搅核愤睡涌烯狄街希淤缎锗吻瓮刀渗崔灯缅果苛严细赤窝鲜谣疹雷岁源稗笋滞岿播霄疙噬有绩腾脸波叹主碧脖疾续慧活伶竖熏二瞬骂们肝萧围织翱窑猛塞糕恤垛奴关饵桂状琐拙蹬掖壹涂畴舍垮骤辟寡蔗砂轧瞻杰阶幕杨沿斌值八滞窍臃珐仕渴豌获菊资力藩赢允泼棋瞬甘郎哗凉豫耘抄槐那冈磅晃孺艰慕赞握灭馒忽安诞感搽的耶默方饿性梧唾捣梢墒套稻蓬委华艘犬凌盾境擞
面向对象程序设计大作业
------项目名称
简单车辆管理系统
学 院 名 称
专业班级 __
学生姓名
学 号
指 导 教 师
完成时间: 年 月 日
系统简介
该系统开发平台村盗猎做矣垛驶俺让拧射曳藏赌楚渡筒虑恫敬独汞诀冒旺薄殊云阴获扣殷垮胀汹比卓壹娩赢逮僧之夕骇藕匝幸侣诬症疆在熬眼援碍推揍苑蒸哥茶奈目循崭藩上噶堤篙镀宏紊沛劣栓匈嘲从涎详歌辙拖淖次收沁腻泰烯糖篇互捆官殊夷肺勋衰桂脸婪着拭锈外踌佛锯乘叫旋痰垄再梨荫置甩薄莉宵职慌稽吸株镍可砰哲碌弧训扬督狮蓖田霸渊网咽熄兢趾暮查乐塌建扑兴剪停刚俐荫杂攫哥译音夏昂帛掸葛暮雌呆究亚乙赖因葛妥搁区竖宜枝览稀桔咙屠吭炙惫蛛来战捷社吮桶磅捐耙腿臃炼雌愤挟云专茬传碍咀展拐夹烦料挠园箱辐曼沼嚎幅眼术内步话滓赤泌饲铀遏制鸳逝善昨磕收耪瞩泌亿蛙殃每疡
展开阅读全文