收藏 分销(赏)

C淘宝标准管理系统及专业课程设计.doc

上传人:天**** 文档编号:2727332 上传时间:2024-06-05 格式:DOC 页数:17 大小:370.04KB 下载积分:8 金币
下载 相关 举报
C淘宝标准管理系统及专业课程设计.doc_第1页
第1页 / 共17页
C淘宝标准管理系统及专业课程设计.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
面向对象程序设计(C++)课程设计 题 目: 我淘宝购物系统 系 别: 专业(含班级): 学 号: 姓 名 指导老师 职称 填表日期: 年 月 日 选题依据及意义: 伴随电脑越来越普及,大家已经不满足于往常店铺购物,现在大多数人全部喜爱网络购物,网络购物方便,快捷,给我们带来了许很多多惊喜,所以我选择现在越来越多人喜爱在淘宝上购置自己喜爱东西,设计了一个简单网上购物系统。 本课程设计内容 使用系统实现达成增加信息,输出信息,修改信息,删除信息功效。然后用到淘宝购物系统。 研究目标 对C++课程设计进行初步了解,设计出一个自己独立未完成系统,来检验自己对C++面向对象了解愈加深刻,从而提升自己学习激情,对C++应用了解愈加多。 C++面向对象程序设计实现方案 一、项目要求 1.项目描述 储存,查询,修改,宝贝信息,关键信息为宝贝编号、买家姓名、发货时间、收货地址、预定详情。 2. 运行界面 3.功效说明 我要淘宝:逐步显示涛宝信息如宝贝编号,购置者姓名,发货时间,收获地址,预订性情,各数据间用”\t”格式分隔 输出购置信息:逐步输出宝贝编号,购置信息等。 修改订单信息:从键盘上读取要修改数据类型,基础信息全部能够进行修改,修改以后交易信息数目会自动进行统计,这关键采取是静态组员函数实现。 删除订单信息:能够对订单信息进行修改,然后在文件夹里面进行空格删除方法,使需要删除信息进行消失处理。 推出我淘宝信息:结束程序。 二、设计分析 1.首先做这个系统是没有自带文件夹,但系统进行运行以后,全部会产生对应文件夹,文件夹里面会存放每次操作以后数据,数据关键是宝贝编号,购置者姓名,发货时间,收获地址,预订性情等五项基础信息,这五项基础信息全部存放在文件同一行,这么能够存放多行数据信息。 2. 定义每条信息为: class Yage { public: void getdetail();//获取信息 void print();//输出单个订单信息 void display();//显示初始化化信息 char*getnumber();//获取作为号使用指针 void setorder();//修改订单信息 void setdelete();//删除订单信息 static void statistics(); private: char number[20];//宝贝编号 char name[40];//购置者姓名 char time[20];//发货时间 char address[40];//收货地点 char statue;//预定详情 static int sum; }; 3.每个公有组员函数全部在类定义中有所提及,并在后面全部有备注,每行代码几乎全部有备注,这么有利于函数可读性操作。 具体设计 1.我要淘宝信息用getdetail()设计 获取信息方法是逐步提醒下操作,这么有利于操作方便性,逐步是在"请输入您要预定宝贝编号:" "请输入您姓名:";"请输入您要发货时间: ""请输入收货地点:""您确定要预定吗?(f/t):"这五个单独信息组成,最终一步才是是否要订购,这么不会造成纠纷,使购置者赶到迷惑设计要求。 2. 输出购置信息是用print()设计 首先调用函数display();显示出"宝贝编号""购置者姓名""发货时间""收获地点""预定详情";这五个基础购物信息,然后使用指针 分别找出已经在文件夹里面信息,然后逐一输出,再每组数据输出完以后,再调用静态组员函数统计函数,对此次次操作交易数目进行动态全局输出,这么使得函数使用统计是每次操作正确数据。 3. 想修宝贝信息是调用setorder()函数,即重新已经存放数据进行动态修改。 首先使用采取动态数据查找到所需修改数据宝贝编号,然后问询用户是不是要确定修改订单信息,假如用户确定要修改订单信息,则使用 “请选择要修改内容:" "假如想修改宝贝编号,请按1" "假如想修购置者姓名,请按2" "假如想修改发货时间,请按3" "假如想修改收获地点,请按4" "假如想修改预定详情,请按5" 选定需要修改信息,并按数字键来确定,然后再输入需要修改内容,最终在返回函数,现在函数采取二进制编码进行读写,让后关闭文件,这么就就能够实现文件信息查找,修改,和存放了。 4. 使用setdelete()函数进行数据删除操作. 这个函数使用很简单,只是将其它数据替换掉不能显示数据,在屏幕中是不能显示。这个函数和setorder()函数内容调用差不多,在这里我就不反复说了。 5.就是退出系统,使用exit(0);就能够实现退出系统功效了。 C++面向对象程序设计课程设计小结 这个课程设计专题全部是自己逐步调试功效并运行出来,开始想到这个系统时是借用了老师飞机售票系统,然后有联想到淘宝购物,最终决定写一个淘宝购物系统。 在最开始时候就要整体布局,系统有那多个功效,需要那些函数使用。我初步确定是五个操作大致,每个购物信息包含五个子信息。五个主体操作是" 1.)我要淘宝信息"、"2.)输出购置信息"、" 3.)修改订单信息"、" 4.)删除订单信息"、" 5.)退出雅阁淘宝"。首先我想到是对数据输出操作,感觉这个应该会比较简单,然后在做时候发觉了很多问题,字符串读取开始准备用string实现,但用时候发觉了很多问题,最终没措施,只有选择用字符串数组来实现数据处理。在前面专题布局完场以后,现在开始实现每一个比较小共能模板块,我要淘宝信息这个板块比较简单,很快就做好,输出信息这个模板块是使用指针实现,在后面基础上是把飞机售票系统部分类容拿来借鉴使用,定位,查找,这些全部比较难,然后全部是借鉴,在修改信息时候就用到了定位,查找功效函数,这个只是对内容修改,这个最终完成还是比较快。关键是灾后一个删除信息,因为我在开始用是指针定位,和查找,但在用到删除信息时候,就不知道该怎么用了。然后又把原来师生管理系统拿来看,因为里面有删除师生,看时候发觉里面是用数组进行存放,然后再删除时候,数组下标实现前移,这么就掩盖了要删除信息,这么方法让我没措施,我最终准备将全部数据进行数组存放时候,发觉了很多不能修改问题,没措施,就在网上找资料,看有什么好措施是删除文件夹数据,最终还是没找到,最终,在实在没措施时候,就想到了替换,将那些要删除信息。这就是这个课程设计最大缺憾,因为时间用了很长,十多个小时就为了这个系统设计。不过最终整体功效还是实现了,基础要求也达成了。 实施方案包含: 一、项目要求 1.项目描述(描述项目标关键内容) 2.交互效果(键盘输入前提醒,及输入后效果等,能够用截图) 3.功效说明(每个功效区作用) 二、设计分析(标题是什么设计就写什么设计,内容是关键设计部分说明,尤其要分析数据存放。) 三、具体设计(能写多少就多少,可直接附上VC项目文件(夹)) 成绩确定 基础分60分(各项约10分):能进行文件输入和输出,有一定功效,对数据能查询、添加、删除、更改,有必需文档资料。项目必需能够运行(不可运行项目总分0分)。 知识利用分:类、对象、结构函数、string类、继承派生、多态性、运算符重载、模板、异常处理等各加5分。 设计分满分10分:有实际意义,有良好交互性。 其它10分:学习主动性、上课表现、文档资料写作情况等。 源代码 #include<iostream> #include<fstream> #include<string> #include"iomanip" #include<stdlib.h> using namespace std; class Yage { public: void getdetail();//获取信息 void print();//输出单个订单信息 void display();//显示初始化化信息 char*getnumber();//获取作为号使用指针 void setorder();//修改订单信息 void setdelete();//删除订单信息 static void statistics(); private: char number[20];//宝贝编号 char name[40];//购置者姓名 char time[20];//发货时间 char address[40];//收货地点 char statue;//预定详情 static int sum; }; int Yage::sum=0; void Yage::statistics() { cout<<"此次操作需要交易数目:"<<sum<<endl; } void Yage::getdetail()//接收预定信息 { cout<<"请输入您要预定宝贝编号:"; cin.ignore(); cin.getline(number,20,'\n');//宝贝编号 cout<<"请输入您姓名:"; cin.getline(name,40,'\n'); cout<<"请输入您要发货时间: "; cin.getline(time,20,'\n');//发货时间 cout<<"请输入收货地点:"; cin.getline(address,40,'\n'); cout<<"您确定要预定吗?(f/t):"; cin>>statue; if(statue=='t') sum++; } void Yage::display()//显示初始化化信息 { cout<<"宝贝编号"<<"\t"<<"购置者姓名"<<"\t"<<"发货时间"<<"\t"<<"收获地点"<<"\t"<<"预定详情"<<endl; } void Yage::print()//输出预定信息 { cout<<number<<"\t\t"<<name<<"\t\t"<<time<<"\t\t"<<address<<"\t\t"<<statue<<endl; } char *Yage::getnumber()//获取作为号使用指针 { return number; } void Yage::setorder()//取消订单信息 { char c;int n;char xinxi[20];char t; cout<<"你想修改订单信息吗?:(y/n)"; cin>>c; if(c=='y'||c=='Y') { cout<<"请选择要修改内容:"<<endl; cout<<"假如想修改宝贝编号,请按1"<<endl; cout<<"假如想修购置者姓名,请按2"<<endl; cout<<"假如想修改发货时间,请按3"<<endl; cout<<"假如想修改收获地点,请按4"<<endl; cout<<"假如想修改预定详情,请按5"<<endl; cin>>n; cout<<"请输入修改后类容:"<<endl; if(n==1) {cin>>xinxi;strcpy(number,xinxi);} if(n==2) {cin>>xinxi;strcpy(name,xinxi);} if(n==3) {cin>>xinxi;strcpy(time,xinxi);} if(n==4) {cin>>xinxi;strcpy(address,xinxi);} if(n==5) {cin>>t;if(statue=='f'&&t=='t'){sum++;};if(statue=='t'&&t=='f'){sum--;}statue=t;} } } void Yage::setdelete() { char c;char xinxi[20]={'\t'}; cout<<"你想删除订单信息吗?:(y/n)"; cin>>c; if(c=='y'||c=='Y') { strcpy(number,xinxi); strcpy(name,xinxi); strcpy(time,xinxi); strcpy(address,xinxi); statue=' '; sum--; } } void main() { int choice; while(true) { Yage baobei; cout<<endl; cout<<"*****请让输入真确操作:*****"<<endl; cout<<"********雅阁淘宝欢迎您********"<<endl; cout<<"------------------------------"<<endl; cout<<" 1.)我要淘宝信息"<<endl; cout<<" 2.)输出购置信息"<<endl; cout<<" 3.)修改订单信息"<<endl; cout<<" 4.)删除订单信息"<<endl; cout<<" 5.)退出雅阁淘宝"<<endl; cout<<"请选择:"; cin>>choice; switch(choice) { case 1: { //定义对象 ofstream out("cilent.dat",ios::app);//以输入方法打开,写入数据添加到文件尾部 baobei.getdetail();//调用获取具体信息函数 out.write((char*)&baobei,sizeof(baobei));//用二进制方法写入文本文件 out.close();//关闭文件夹 break; } case 2: { ifstream in("cilent.dat");//读取信息 baobei.display();//调用显示初始化化信息函数 while(in.read((char*)&baobei,sizeof(baobei)))//采取循环二进制读取数据,将每组储存数据全部进行读取 { baobei.print();//输出宝贝预定信息 } Yage::statistics(); in.close();//关闭文件夹 break; } case 3: { char number1[20]; cout<<"请输入您要预定宝贝编号:"; cin>>number1; cin.ignore(); fstream fs("cilent.dat",ios::in|ios::out);//输入输出全部包含函数,进行数据修改 while(fs.read((char*)&baobei,sizeof(baobei)))//采取循环二进制读取数据,将每组储存数据全部进行读取 { int p=fs.tellg(); //返回输入文件读指针目前位置 if(strcmp(number1,baobei.getnumber())==0)//输入宝贝编号和文件中编号相同 { fs.seekg(p-sizeof(baobei),ios::beg);//表示输入流开始位置 baobei.setorder();//调用取消订单信息 fs.write((char*)&baobei,sizeof(baobei));//将修改了以后信息写入文本文件中 fs.close();//关闭文本文件 break; } } break; } case 4: { char number1[20]; cout<<"请输入您要预定宝贝编号:"; cin>>number1; cin.ignore(); fstream fs("cilent.dat",ios::in|ios::out);//输入输出全部包含函数,进行数据修改 while(fs.read((char*)&baobei,sizeof(baobei)))//采取循环二进制读取数据,将每组储存数据全部进行读取 { int p=fs.tellg(); //返回输入文件读指针目前位置 if(strcmp(number1,baobei.getnumber())==0)//输入宝贝编号和文件中编号相同 { fs.seekg(p-sizeof(baobei),ios::beg);//表示输入流开始位置 baobei.setdelete();//调用取消订单信息 fs.write((char*)&baobei,sizeof(baobei));//将修改了以后信息写入文本文件中 fs.close();//关闭文本文件 break; } } break; } case 5:exit(0);//退出系统 } } system("pause"); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服