数据库课程设计选择 查询 更新功能的实现_第1页
数据库课程设计选择 查询 更新功能的实现_第2页
数据库课程设计选择 查询 更新功能的实现_第3页
数据库课程设计选择 查询 更新功能的实现_第4页
数据库课程设计选择 查询 更新功能的实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE5 课程设计说明书设计题目:数据库课程设计电话簿_专业:计算机科学与技术班级:09级1班_设计人:贾建波_山东科技大学2011年12月6日山东科技大学学生课程设计课程设计任务书学院信息科学与工程学院专业计算机科学与技术班级09级1班姓名贾建波课程设计题目:SELECT语句的实现表的插入、删除更新操作用C++实现一个简单的DBMS类似DOS命令的窗口界面课程设计主要参考资料:数据库系统概论(第四版),王珊、萨师煊等编著,高等教育出版社杨冬青,唐世渭,徐其钧等译.数据库系统实现.北京:机械工业出版社,2001谭浩强.C语言程序设计.清华大学出版社,2000课程设计应解决的主要问题:表属性如何赋值如何实现物理输出(输出至txt文件中)实现数据的查询、修改、更新操作课程设计相关附件(如:图纸、软件等):VC++6.0EXE主程序TXT文件输出任务发出日期:2011.10.16课程设计完成日期:2011.11.06指导教师签字:系主任签字:一.程序功能简介一个基本的电话簿管理程序,具有插入、删除、修改和查询联系人电话码的功能。每个菜单项功能如下:1.增加记录菜单:请输入用户姓名,如果该用户已经存在则添加失败,否则,输入用户的电话号码,进行添加。2.修改某条记录:请输入用户姓名,如果没有该用户显示“该用户不存在”信息,否则,输出原电话号码,然后输入新的电话号码,进行修改。3.删除记录:输入用户姓名,进行删除(删除时要进行确认)。查询:输入用户姓名,进行查找。二.课程设计要求1-增加记录2-修改记录3-删除记录4-查找(按姓名)1.用汉化菜单实现。2.提供按姓名查询电话号码的功能。3.删除和修改时要进行确认。4.将电话簿记录以文件的形式存在磁盘上;每次操作时将电话簿调出,操作完毕后存盘。三.参考数据结构1.“电话簿”称为用户信息表,用数组实现。用户信息表由若干用户信息构成,每个用户信息是一个数组元素。2.“user.txt”是一个文件,用于保存“用户信息表”中的信息。当系统启动时,从该文件中读入信息,当退出系统时,将“用户信息表”中的信息写到该文件中。该文件中信息存放形式如下:zhangsan16753852lisi84891112wangqiang5221498四.程序流程图:开始开始输入要建的表名及各属性的名称输入要建的表名及各属性的名称在给出的功能中选择操作在给出的功能中选择操作五、退出四、查找元组二、删除元组资料三、修改元组资料一、增加元组资料五、退出四、查找元组二、删除元组资料三、修改元组资料一、增加元组资料五.主要原程序:#include<fstream.h>#include<iostream.h>#include<iomanip.h>#include<string.h>#include<stdlib.h>#defineM20#defineN12#defineMAX100classFphone //用户信息类的定义{ charname[M]; //姓名 charphone_num[N]; //电话号码public: Fphone(char*na="",char*ph="") { strcpy(name,na); strcpy(phone_num,ph); } char*getname(); //获取姓名 char*getphone_num(); //获取电话号码 voidsetname(char*a); //设置姓名 voidsetphone_num(char*a); //设置电话号码 voiddisp(); //显示用户信息};char*Fphone::getname() { returnname;}char*Fphone::getphone_num(){ return(phone_num);}voidFphone::setname(char*a){ strcpy(name,a);}voidFphone::setphone_num(char*a){ strcpy(phone_num,a);}voidFphone::disp(){ cout<<"姓名:"<<name<<'\t'<<"电话号码:"<<phone_num<<endl;}classUserDatabase //用户信息表类的定义{ intnElem; //用户信息表中的元素个数,即当前记录总数 intMaxu; //最多的用户 Fphone*user; //指向用户信息表的指针 public: UserDatabase() //构造函数,初始化用户信息表,将user.txt文件中数据读到User[]中 { nElem=0; Maxu=50; user=newFphone[Maxu]; fstreamin; in.open("user.txt",ios::in|ios::nocreate); //打开文件 for(inti=0;(!in.eof());i++) { in>>user[i].getname();in>>user[i].getphone_num(); nElem++; } in.close(); } ~UserDatabase() //析构函数,将user[]写入user.txt文件中 { fstreamout; Fphone*p=NULL; p=user; out.open("user.txt",ios::out,filebuf::sh_none); for(inti=0;i<nElem;i++) { out<<setw(20)<<((p+i)->getname())<<setw(15) <<((p+i)->getphone_num())<<endl; }delete[]user; out.close(); } voidclear() //删除所有用户信息 { charord; cout<<"确定删除吗?(选择:[y]是;[n]否)\a\a"<<endl; do { cin>>ord; if(ord=='N'||ord=='n')return; elseif(ord=='Y'||ord=='y') { delete[Maxu]user; user=0; cout<<"删除成功啦!"<<endl; nElem=0; return; } elsecout<<"请重新输入(选择:[y]是;[n]否)\a\a"<<endl; }while(ord!='n'||ord!='N'||ord!='y'||ord!='Y'); } voidadd_record(char*na,char*ph_num) //添加用户信息,插入用户后仍按升序排列 { if(nElem==0) { nElem++; user->setname(na); user->setphone_num(ph_num); } elseif(nElem<Maxu) { for(inti=nElem-1;i>=0;i--) { if(strcmp((user+i)->getname(),na)>0) { (user+i+1)->setname(((user+i)->getname())); (user+i+1)->setphone_num(((user+i)->getphone_num())); } elsebreak; } (user+i+1)->setname(na); (user+i+1)->setphone_num(ph_num); nElem++; } else cout<<"空间不足,无法添加!"<<endl; } Fphone*getuser() //返回user指针 { return(user); } voiddelete_record(Fphone*p,intk) //删除用户信息 { charcon; cout<<"确认删除?(Y/N)"; cin>>con; if(con=='N'||con=='n')return; elseif(con=='Y'||con=='y') { for(inti=k;i<nElem;i++) { user[i]=user[i+1]; } nElem--; cout<<"已删除!"<<endl; return; } else { cout<<"输入错误!"<<endl; system("pause"); return; } } voidmodify_record(Fphone*p,char*ph_num)//修改用户信息 { p->setphone_num(ph_num); } Fphone*query(char*na) //按姓名查找顺序查找,这里也可以用折半 { Fphone*p=user; inti=0; while(1) { if(strcmp(p->getname(),na)==0) returnp; p++; if(i++==nElem) break; } returnNULL; } voiddisp() { inti,n=0; cout<<setw(22)<<"姓名"<<setw(14)<<"电话号码"<<endl; for(i=0;i<nElem;i++) { cout<<setw(22)<<(user+i)->getname() <<setw(14)<<(user+i)->getphone_num()<<endl; n++; if(n%10==0) { system("pause"); system("cls"); } } cout<<endl; }};voidmenu(){ cout<<" 请选择以下功能:"<<endl; cout<<" 1-增加记录"<<endl; cout<<" 2-修改记录"<<endl; cout<<" 3-删除记录"<<endl; cout<<" 4-查找(按姓名)"<<endl; cout<<" 0-退出"<<endl; cout<<" 输入选择:"<<endl;}voidmain(){ cout<<"**************************************************"<<endl; cout<<" "<<endl; cout<<" 欢迎使用电话簿管理系统 "<<endl; cout<<" 祝您使用愉快 "<<endl; cout<<" "<<endl; cout<<"***************************************************** "<<endl; system("pause"); while(1) { UserDatabases; system("cls"); menu(); intk; cin>>k; switch(k) { case1: { system("cls") ; cout<<"*****************************************"<<endl; cout<<" 增加记录 "<<endl; charna[20],ph_num[12]; Fphone*t=NULL; charw; do { cout<<"请输入您要增加的用户的姓名"; cin>>na; t=(s.query(na)); if(t) { cout<<"用户已经存在,添加失败!!!"<<endl; } else { cout<<"请输入用户的电话号码"; cin>>ph_num; s.add_record(na,ph_num);cout<<"您添加的信息为:";cout<<"姓名:"<<na<<'\t'<<"电话号码:"<<ph_num<<endl; cout<<"成功添加"<<endl; } cout<<"是否继续?(YorN)"<<endl; cin>>w; } while(w=='Y'); break; } case2:{ system("cls"); cout<<"***************************************"<<endl;cout<<" 修改记录 "<<endl;cout<<"***************************************"<<endl; charna[M],ph_num[N]; Fphone*t=NULL; charw; do { cout<<"请输入您要修改的用户的姓名"; cin>>na; t=s.query(na); if(!t) cout<<"没有该用户!"<<endl; else { cout<<"该用户原号码为:"<<t->getphone_num()<<endl; cout<<"请输入新的电话号码"; cin>>ph_num; s.modify_record(t,ph_num); cout<<"成功修改"<<endl; } cout<<"是否继续?(YorN)"<<endl; cin>>w; } while(w=='Y'); break; } case3:{ system("cls"); cout<<"********************************************"<<endl;cout<<" 删除记录 "<<endl; cout<<"************** ***************************"<<endl; charw; charna[M]; intk; Fphone*p; do { cout<<"请输入您要删除的用户的姓名"; cin>>na; p=s.query(na); if(p==0) cout<<"没有该用户!"<<endl; else { (*p).disp(); k=p-s.getuser(); s.delete_record(p,k); } cout<<"是否继续?(YorN)"<<endl; cin>>w; } while(w=='Y'); break; } case4: { system("cls"); cout<<"*********************************"<<endl; cout<<" 查询记录 "<<endl; cout<<"**********************************"<<endl; charna[M]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论