C++课程设计-失物招领系统

C++课程设计-失物招领系统

  • 求点赞关注
  • 功能描述
  • 程序设计功能图
  • 详细设计
    • 拾物登记
      • 流程图
      • 代码
    • 失物寻找
      • 流程图
      • 代码
  • 程序运行界面
    • 程序功能选择界面
    • 功能运行界面
      • 拾物登记功能
      • 失物查找功能
    • 循环判断界面
  • 调试与分析
    • 问题一:描述模糊
    • 问题二:关键字干扰
    • 问题三:页面信息冗余

LabVIEW课程设计-失物招领系统可参考LabVIEW课程设计

完整程序代码进入C++课程设计-失物招领系统查看
也可以进入我的GitHub仓库进行代码下载GitHub-失物招领系统/C++

求点赞关注

如果觉得这篇文章对你有帮助请点赞收藏加关注啊,真的很谢谢大家!大家可以进入我的CSDN主页查看其它文章,都是我在进行课后题目与课程设计时遇到的一些问题,如果你正在学习人工智能,一定会有所收获,并且可以在我的GitHub仓库主页下载相关代码,后续我也会根据需求不断完善。

lazyn的CSDN_blog_codel

同时如果想要系统化的学习人工智能,可以进入下面的网站进行学习

通俗易懂,风趣幽默的人工智能学习网站-床长人工智能教程

作为人工智能专业的学生,我认为该网站的课程设置足够专业与完整,由浅入深,基本涵盖了当前人工智能的热门领域并且在不断完善,目录简洁明了,大家可以对照目录进行查漏补缺,作为读者,我发现课程内容通俗易懂,风趣幽默,可以激发大家的学习兴趣。

功能描述

在人口大量聚集的校园里,丢失物品的现象难以避免,而这些物品丢失的地点其实就可以锁定在校园这个固定的大地点,所以要想找回这个物品其实并不困难。程序的目的就是为捡到物品的人进行登记和丢失物品的人进行失物寻找提供一个平台,实现校友间的互帮互助,提高丢失物品找回的成功率,同时在一定程度上提高效率,让帮助他人和寻求帮助不再困难。

程序设计功能图

C++课程设计-失物招领系统_第1张图片

详细设计

拾物登记

流程图

拾物登记

代码

信息录入部分

case 1:
		{SYSTEMTIME sys;
		GetLocalTime(&sys);
		ofstream outfile("f.txt",ios::app);
		outfile<< sys.wYear << "年" << sys.wMonth << "月" << sys.wDay
		<< "日" << sys.wHour << ":" << sys.wMinute<<"  ";//将系统时间录入到本地 
		outfile.close();
		int select;
		cout<<"请选择捡到物品的区域:"<<endl;
		cout<<"1.西区生活区"<<endl; 
		cout<<"2.中心教学区"<<endl;
		cout<<"3.东区生活区"<<endl;
		cin>>select;
		cin.sync();
		switch(select)
		{
			int select;
			case 1: 
				cout<<"请选择捡到物品的位置:"<<endl;
				cout<<"1.兰园食堂  ";
				cout<<"2.竹园食堂  "; 
				cout<<"3.宿舍  ";
				cout<<"4.超市  ";
				cout<<"5.道路上  ";
				cout<<"6.大学生活动中心  "<<endl;
				cin>>select;
				cin.sync();
				switch(select)
				{
					char s[80];
					case 1:
						strcpy(s,"西区生活区兰园食堂"); 
						Note(s);//调用定义的Note函数
						break;
					case 2:
						strcpy(s,"西区生活区竹园食堂");
						Note(s);
						break; 
					case 3:
						strcpy(s,"西区生活区宿舍");
						Note(s);
						break;
					case 4:
						strcpy(s,"西区生活区超市");
						Note(s);
						break;
					case 5:
						strcpy(s,"西区生活区道路上");
						Note1(s);//调用定义的Note1函数
						break;
					case 6:
						strcpy(s,"西区生活区大学生活动中心");
						Note(s);
						break;
				}
				break;
			case 2: 
				cout<<"请选择捡到物品的位置:"<<endl;
				cout<<"1.图书馆  ";
				cout<<"2.教学楼  ";
				cout<<"3.会堂  ";
				cout<<"4.道路上  "<<endl;
				cin>>select;
				cin.sync();
				switch(select)
				{
					char s[80];
					case 1:
						strcpy(s,"中心教学区图书馆") ;
						Note(s);
						break;
					case 2:
						strcpy(s,"中心教学区教学楼");
						Note(s);
						break;
					case 3:
						strcpy(s,"中心教学区会堂");
						Note(s);
						break;
					case 4:
						strcpy(s,"中心教学区道路上");
						Note1(s);
						break; 
				}
				break;
			case 3:
				cout<<"请选择捡到物品的位置:"<<endl;
				cout<<"1.梅园食堂  ";
				cout<<"2.菊园食堂  "; 
				cout<<"3.宿舍  ";
				cout<<"4.超市  ";
				cout<<"5.道路上  ";
				cout<<"6.大学生活动中心  "<<endl; 
				cin>>select;
				cin.sync();
				switch(select)
				{
					char s[80];
					case 1:
						strcpy(s,"东区生活区梅园食堂"); 
						Note(s);
						break;
					case 2:
						strcpy(s,"东区生活区菊园食堂");
						Note(s);
						break; 
					case 3:
						strcpy(s,"东区生活区宿舍");
						Note(s);
						break;
					case 4:
						strcpy(s,"东区生活区超市");
						Note(s);
						break;
					case 5:
						strcpy(s,"东区生活区道路上");
						Note1(s);
						break;
					case 6:
						strcpy(s,"东区生活区大学生活动中心");
						Note(s);
						break;
				}
				break;
		}
		break;}

本地txt文件录入

void Note(char s[])//定义的往本地txt文件录入信息的函数1 
{ 
	char s1[80],s2[80],s4[80];
	int select; 
	cout<<"请输入具体位置:"<<endl;
	cin>>s1;
	strcat(s,s1);
	strcat(s,"捡到") ; 
	cout<<"请选择捡到的物品:"<<endl;
	cout<<"1.耳机  ";
	cout<<"2.饭卡  ";
	cout<<"3.优盘  "<<endl;
	cout<<"4.课本  ";
	cout<<"5.钥匙  ";
	cout<<"6.雨伞  "<<endl;
	cout<<"7.其他物品"<<endl;
	cin>>select;
	cin.sync();
	switch(select)
	{
		case 1:
			strcpy(s2,"耳机");
			break;
		case 2:
			strcpy(s2,"饭卡");
			break;
		case 3:
			strcpy(s2,"优盘");
			break;
		case 4:
			strcpy(s2,"课本");
			break;
		case 5:
			strcpy(s2,"钥匙");
			break;
		case 6:
			strcpy(s2,"伞");
			break;
		case 7:
			cout<<"请输入捡到的物品:"<<endl;
			cin>>s2;
			strcat(s2,"(其他物品)"); 
			break;	
	}
	strcat(s,s2); 
	char s3[]=" QQ:";
	strcat(s,s3);
	cout<<"请输入QQ,便于失主联系:"<<endl;
	cin>>s4;
	strcat(s,s4);
	cout<<s<<endl;
	ofstream outfile("f.txt",ios::app);
	outfile<<s;
	outfile<<endl;
	outfile.close();
}

失物寻找

流程图

失物查找

代码

丢失物品选择

case 2:
		cout<<"请选择丢失的物品:"<<endl;
		cout<<"1.耳机  ";
		cout<<"2.饭卡  ";
		cout<<"3.优盘  "<<endl;
		cout<<"4.课本  ";
		cout<<"5.钥匙  ";
		cout<<"6.雨伞  "<<endl;
		cout<<"7.其他物品"<<endl;
		cin>>select;
		cin.sync();
		string s;
		switch(select)
		{
			case 1:
				s="耳机";
				Find(s);//定义的Find函数
				break;
			case 2:
				s="饭卡";
				Find(s);
				break;
			case 3:
				s="优盘";
				Find(s);
				break;
			case 4:
				s="课本";
				Find(s);
				break;
			case 5:
				s="钥匙";
				Find(s);
				break;
			case 6:
				s="伞";
				Find(s);
				break;
			case 7:
				s="(其他物品)";
				Find(s); 
				break;	
		}	
		break;

查找函数

void Find(string s)//定义的查找函数 
{
	int n;
	char s1[80];
	string s2,s3;
	ifstream infile("f.txt",ios::in);
	infile.getline(s1,80);
	while(!infile.eof())
	{
		s2=s1;
		n=s2.find(s);
		if(n!=-1)
			cout<<s2<<endl; 
		infile.getline(s1,80);
	}
}

程序运行界面

程序功能选择界面

C++课程设计-失物招领系统_第2张图片

功能运行界面

拾物登记功能

运行前本地信息文件

C++课程设计-失物招领系统_第3张图片

运行界面

C++课程设计-失物招领系统_第4张图片

运行后本地信息文件

C++课程设计-失物招领系统_第5张图片

失物查找功能

C++课程设计-失物招领系统_第6张图片

循环判断界面

C++课程设计-失物招领系统_第7张图片

调试与分析

问题一:描述模糊

问题:对丢失同一物品不同的人有不同的描述方式,如饭卡有人描述为校园卡,U盘有人描述为优盘,这样查找时就会存在困难,造成程序运行结果出错。
分析:为避免对丢失同一物品有不同的描述方式,我用菜单数据显示出常见的丢失物品,用户可以直接选择,同时,将不常见的丢失物品归为其他物品一项,在存储数据时写入“(其他物品)”,从而可以通过关键词的匹配进行查找。

问题二:关键字干扰

问题:初始版本中物品关键字存在干扰,比如失主查找丢失的物品是“书”,但第一行捡到物品的人登记的物品是“优盘”。
C++课程设计-失物招领系统_第8张图片

分析:地点中图书馆中的“书”字对查询结果产生了干扰,所以将代码中的书改为课本,更改后运行结果如下。
C++课程设计-失物招领系统_第9张图片

问题三:页面信息冗余

问题:在进行完一次程序后,用户如果选择继续进行,下一轮循环的内容直接显示在上次程序显示内容的下方,如果用户多次循环程序,程序运行界面会显示的内容会杂乱无章。
C++课程设计-失物招领系统_第10张图片

分析:在进行下一次循环之前清空上次循环的内容,会使界面简洁有序,故调用清屏这个系统函数,修改后代码如图。
C++课程设计-失物招领系统_第11张图片

你可能感兴趣的:(课程设计,c++,课程设计,失物招领系统)