数据库课程设计选择 查询 更新功能的实现.docx
- 文档编号:18250571
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:19
- 大小:172.49KB
数据库课程设计选择 查询 更新功能的实现.docx
《数据库课程设计选择 查询 更新功能的实现.docx》由会员分享,可在线阅读,更多相关《数据库课程设计选择 查询 更新功能的实现.docx(19页珍藏版)》请在冰点文库上搜索。
数据库课程设计选择查询更新功能的实现
课程设计说明书
设计题目:
数据库课程设计电话簿_
专业:
计算机科学与技术班级:
09级1班_
设计人:
贾建波_
山东科技大学
2011年12月6日
课程设计任务书
学院信息科学与工程学院专业计算机科学与技术
班级09级1班姓名贾建波
一、课程设计题目:
(1)SELECT语句的实现
(2)表的插入、删除更新操作
(3)用C++实现一个简单的DBMS类似DOS命令的窗口界面
二、课程设计主要参考资料:
(1)数据库系统概论(第四版),王珊、萨师煊等编著,高等教育出版社
(2)杨冬青,唐世渭,徐其钧等译.数据库系统实现.北京:
机械工业出版社,2001
(3)谭浩强.C语言程序设计.清华大学出版社,2000
三、课程设计应解决的主要问题:
(1)表属性如何赋值
(2)如何实现物理输出(输出至txt文件中)
(3)实现数据的查询、修改、更新操作
四、课程设计相关附件(如:
图纸、软件等):
(1)VC++6.0
(2)EXE主程序
(3)TXT文件输出
五、任务发出日期:
2011.10.16课程设计完成日期:
2011.11.06
指导教师签字:
系主任签字:
一.程序功能简介
一个基本的电话簿管理程序,具有插入、删除、修改和查询联系人电话码的功能。
每个菜单项功能如下:
1.增加记录菜单:
请输入用户姓名,如果该用户已经存在则添加失败,否则,输入用户的电话号码,进行添加。
2.修改某条记录:
请输入用户姓名,如果没有该用户显示“该用户不存在”信息,否则,输出原电话号码,然后输入新的电话号码,进行修改。
3.删除记录:
输入用户姓名,进行删除(删除时要进行确认)。
4.查询:
输入用户姓名,进行查找。
二.课程设计要求
1-增加记录
2-修改记录
3-删除记录
4-查找(按姓名)
1.用汉化菜单实现。
2.提供按姓名查询电话号码的功能。
3.删除和修改时要进行确认。
4.将电话簿记录以文件的形式存在磁盘上;每次操作时将电话簿调出,操作完毕后存盘。
三.参考数据结构
1.“电话簿”称为用户信息表,用数组实现。
用户信息表由若干用户信息构成,每个用户信息是一个数组元素。
2.“user.txt”是一个文件,用于保存“用户信息表”中的信息。
当系统启动时,从该文件中读入信息,当退出系统时,将“用户信息表”中的信息写到该文件中。
该文件中信息存放形式如下:
zhangsan16753852
lisi84891112
wangqiang5221498
四.程序流程图:
开始
输入要建的表名及各属性的名称
在给出的功能中选择操作
五、退出
四、查找元组
二、删除元组资料
三、修改元组资料
一、增加元组资料
五.主要原程序:
#include
#include
#include
#include
#include
#defineM20
#defineN12
#defineMAX100
classFphone//用户信息类的定义
{
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<<"姓名:
"< "< } 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 {out< <<((p+i)->getphone_num())< }delete[]user; out.close(); } voidclear()//删除所有用户信息 {charord; cout<<"确定删除吗? (选择: [y]是;[n]否)\a\a"< do {cin>>ord; if(ord=='N'||ord=='n')return; elseif(ord=='Y'||ord=='y') {delete[Maxu]user; user=0; cout<<"删除成功啦! "< nElem=0; return; } elsecout<<"请重新输入(选择: [y]是;[n]否)\a\a"< } 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 {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++; } elsecout<<"空间不足,无法添加! "< } 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 {user[i]=user[i+1];} nElem--; cout<<"已删除! "< return; } else {cout<<"输入错误! "< 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< for(i=0;i { cout< < n++; if(n%10==0) {system("pause"); system("cls"); } } cout< } }; voidmenu() {cout<<"请选择以下功能: "< cout<<"1-增加记录"< cout<<"2-修改记录"< cout<<"3-删除记录"< cout<<"4-查找(按姓名)"< cout<<"0-退出"< cout<<"输入选择: "< } voidmain() {cout<<"**************************************************"< cout<<""< cout<<"欢迎使用电话簿管理系统"< cout<<"祝您使用愉快"< cout<<""< cout<<"*****************************************************"< system("pause"); while (1) {UserDatabases; system("cls"); menu(); intk; cin>>k; switch(k) {case1: {system("cls");cout<<"*****************************************"< charna[20],ph_num[12]; Fphone*t=NULL; charw; do {cout<<"请输入您要增加的用户的姓名"; cin>>na; t=(s.query(na)); if(t) {cout<<"用户已经存在,添加失败! ! ! "< else {cout<<"请输入用户的电话号码"; cin>>ph_num; s.add_record(na,ph_num); cout<<"您添加的信息为: "; cout<<"姓名: "< "< cout<<"成功添加"< } cout<<"是否继续? (YorN)"< cin>>w; } while(w=='Y'); break; } case2: {system("cls");cout<<"***************************************"< cout<<"修改记录"< cout<<"***************************************"< charna[M],ph_num[N]; Fphone*t=NULL; charw; do {cout<<"请输入您要修改的用户的姓名"; cin>>na; t=s.query(na); if(! t) cout<<"没有该用户! "< else {cout<<"该用户原号码为: "< cout<<"请输入新的电话号码"; cin>>ph_num; s.modify_record(t,ph_num); cout<<"成功修改"< } cout<<"是否继续? (YorN)"< cin>>w; } while(w=='Y'); break; } case3: {system("cls");cout<<"********************************************"< cout<<"删除记录"< charw; charna[M]; intk; Fphone*p; do {cout<<"请输入您要删除的用户的姓名"; cin>>na; p=s.query(na); if(p==0) cout<<"没有该用户! "< else {(*p).disp(); k=p-s.getuser(); s.delete_record(p,k); } cout<<"是否继续? (YorN)"< cin>>w; } while(w=='Y'); break; } case4: {system("cls");cout<<"*********************************"< cout<<"查询记录"< cout<<"**********************************"< charna[M];intp=1; Fphone*t=NULL; charw; do {cout<<"请输入您要查询的用户的姓名"; cin>>na; t=s.query(na); if(t) { cout<<"姓名: "< cout<<"电话号码: "< } else cout<<"对不起,没有此人信息! "< cout<<"是否继续? (YorN)"< cin>>w; } while(w=='Y'); break; } case0: {system("cls"); cout<<"谢谢使用,再见! "< exit(0); } default: cout<<"不存在该选择,请重新输入要进行的操作: "< system("pause"); break; } } } 六.运行结果 七.总结: 经过这次的课程设计,亲自开发一个功能很少的DBMS,虽然有很多东西不是很符合要求,但我觉得这次课程设计对我们来说收获很多,其意义也是显而易见的。 这次的课程设计对我们来说是一次尝试与挑战的过程。 首先我们要感谢学校给我们提供这样一个一起学习和研究的机会,让我们把理论知识应用到实际中来。 其次我们要感谢我们的指导老师,在进行课程设计的这段时间里她对我们的指导和帮助,为我们课程设计的顺利完成指明了方向,也给了我们锻炼和提高的机会。 根据路燕老师的指导,在设计中我们基本能按照规范的方法和步骤进行,虽然通过我的努力之后,成品虽不是太尽如人意,但在实践过程中我深刻的认识到数据库这门课程的重要性,同时也看到了自己自身的缺陷。 指导教师对课程设计的评语 指导教师签字: 2011年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库课程设计选择 查询 更新功能的实现 数据库 课程设计 选择 更新 功能 实现