面向对象程序的设计试验报告.docx
- 文档编号:10158474
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:17
- 大小:149.63KB
面向对象程序的设计试验报告.docx
《面向对象程序的设计试验报告.docx》由会员分享,可在线阅读,更多相关《面向对象程序的设计试验报告.docx(17页珍藏版)》请在冰豆网上搜索。
面向对象程序的设计试验报告
面向对象程序设计
通讯录
(c语言版)
学院:
信息学院
班级:
A0611
学号:
05
:
光斌
指导老师:
吴维勇
2008.11.18
面向对象程序设计报告
———通讯录简析
根据老师的要求和我自己的构想,这个学期的试验课我准备做一个通讯录系统,就是可以实现一个人的信息的输入,查询,浏览,插入,删除等功能,并尽量使界面友好。
下面,我来介绍下我的整个设计过程和编码中遇到的问题和解决方法。
首先是实现什么样的功能,这个我已经在上面介绍过了,那么,现在要实现这样的一个功能,究竟要怎么样的程序才能做到呢?
我们先来画个系统功能图来看下:
通过这个功能图,我们可以清楚的看到这个系统到底是要实现什么样的作用,我们要根据这个图来当做模板,做出自己的系统。
好了,功能都清楚了,现在就是去实现了。
但是在实现之前,我们还要知道如何去实现这个系统。
因为一个系统,要实现有一定的顺序,模块和模块之间的关系都是不同的,要通过不同的手段来实现。
下面我们还是通过系统流程图来观察下:
通过上图,我们应该知道这个系统的大概流程是什么了。
下面我要选择用C语言实现它。
首先,我们要确定一点,我们这个系统的操作对象或者说是研究对象是什么。
这个程序应该有2个操作对象,一个是用户的注册信息,即账号和密码信息,一个是通讯录里成员的信息。
这2个信息是我们在系统里一直使用和修改的。
这2个信息也有不同,用户的注册信息是不能修改的,只能在注册和登陆是使用一次,其他情况下不能调用;而通讯录里用户的信息是可以进行操作的。
这点需要注意。
structtxl//定义一个成员结构体,里面定义了通讯录里成员的信息。
{
charname[15];//定义用户
charsex[5];//定义用户性别
intage;//定义年龄
chartel[13];//定义
charmajor[20];//定义专业
charschool[30];//定义学校
charothers[90];//定义其他信息
};
structzh//定义一个账号结构体,里面定义账号密码信息。
{
charid[15];//定义账号
charmima[10];//定义密码
};
这就是这2个信息的定义,我们要操作的对象。
现在要定义2个函数,来实现对我们操作对象的各种调用和修改方式。
intprint2()
{intm;
printf("\t--------------------------------------------------------------\n");
printf("\t欢迎来到光斌的同学录,请同学们先登陆,若没有注册的,请先注册!
\n");
printf("\t注册请选择6,登陆请选择7,退出请选择8\n");
printf("\t--------------------------------------------------------------\n");
scanf("%d",&m);
returnm;
}
这是对账号密码信息调用的界面,通过这个界面,我们可以通过数字键来实现对账号密码信息的调用和修改。
当然,这只是个空框架,具体实现还要靠主函数来实现。
intprint1()
{intn;
printf("------------------------------------------------------------\n");
printf("\t\t\t\t同学录\n");
printf("\t欢迎来到光斌的同学录,如果有什么不足,请大家提出意见,!
\n");
printf("\n");
printf("\t\t\t1.浏览同学录\n");
printf("\t\t\t2.输入同学信息\n");
printf("\t\t\t3.删除同学信息\n");
printf("\t\t\t4.查询同学信息\n");
printf("\t\t\t5.退出同学录\n");
printf("----------------------------------------------------------\n");
scanf("%d",&n);
returnn;
}
这个是对成员信息的调用和修改的界面,也是我们这个通讯录的主界面,同上,这个也只是空的框架,要具体实现还是要靠主函数的功能实现。
下面就是整个主函数的一些主要实现功能的步骤,我们来仔细分析它是如何实现我们所要的效果的。
main()
{
inti,flag=2;//注意!
!
要实现登陆界面在主界面之前出现,我设置了一个标志变量,当flag为2时实现printf2(),当flag为1时实现printf1(),当flag为0时,实现跳出整个程序。
charstr[15];
charszh[15];
charsmm[8];
structzhstudent[N];
structtxlstu[N];
for(i=0;i { strcpy(stu[i].name,""); strcpy(stu[i].sex,""); stu[i].age=0; strcpy(stu[i].tel,""); strcpy(stu[i].major,""); strcpy(stu[i].school,""); strcpy(stu[i].add,""); strcpy(stu[i].others,""); strcpy(student[i].id,""); strcpy(student[i].mima,""); student[i].conter=0; } for(;flag==2;) { switch(print2()) { case6: for(i=0;student[i].conter! =0;i++){;} printf("请输入你的注册: \n"); scanf("%s",student[i].id); printf("请输入你的密码: \n"); scanf("%s",student[i].mima); break; case7: printf("请输入你的: \n"); scanf("%s",szh); for(i=0;i { if(strcmp(student[i].id,szh)==0) {printf("请输入你的密码: \n"); scanf("%ld",smm); for(i=0;i { if(strcmp(student[i].mima,smm)==0) flag=1; elseif(flag=1) break; elseif(flag=2) printf("密码错误,请检查后输入! "); break; } } elseprintf("账号错误,请检查后再输入! "); break; case8: flag=0; break; } } for(;flag==1;) { switch(print1()) { case1: for(i=0;stu[i].age! =0;i++) { printf(": %s\n性别: %s\n年龄: %d\n: %s\n学校: %s\n专业: %s\n",stu[i].name,stu[i].sex,stu [i].age,stu[i].tel,stu[i].major,stu[i].school,stu[i].add); printf("其他信息: %s\n",stu[i].others); } if(i==0) printf("目前同学录为空,请先输入信息\n"); break; case2: for(i=0;stu[i].age! =0;i++){;} printf("你现在将要进行的是输入同学信息\n"); printf("输入同学的名字: "); scanf("%s",stu[i].name); printf("输入同学的性别: "); scanf("%s",stu[i].sex); printf("输入同学的年龄: "); scanf("%d",&stu[i].age); printf("输入同学的: "); scanf("%s",stu[i].tel); printf("输入同学的学校: "); scanf("%s",stu[i].school); printf("输入同学的专业: "); scanf("%s",stu[i].major); printf("输入同学的其他信息: "); scanf("%s",stu[i].others); break; case3: printf("现在你将进行删除操作! 请输入要删除的同学的名字,按Enter结束.\n"); scanf("%s",str); for(i=0;i { if(strcmp(stu[i].name,str)==0) { strcpy(stu[i].name,""); strcpy(stu[i].sex,""); stu[i].age=0; strcpy(stu[i].tel,""); strcpy(stu[i].major,""); strcpy(stu[i].school,""); strcpy(stu[i].add,""); strcpy(stu[i].others,""); printf("删除操作已完成! \n");} } printf("无该同学数据,请检查后输入! "); break; case4: printf("现在你将进行查询操作! 请输入要查询同学的名字,按Enter结束.\n"); scanf("%s",str); for(i=0;i { if(strcmp(stu[i].name,str)==0) { printf(": %s\n性别: %s\n年龄: %d\n: %s\n学校: %s\n专业: %s\n",stu[i].name,stu[i].sex,stu [i].age,stu[i].tel,stu[i].major,stu[i].school,stu[i].add); printf("其他信息: %s\n",stu[i].others); break; } } if(i==N)printf("\t同学录中没有你要找的同学! \n"); break; case5: flag=0; break; default: printf("你的输入有错误,请重新输入! \n"); 上面是程序的主体,通过switch语句实现对成员信息的输入,查询,删除,浏览,通过printf1()中按键输入的数字,调入模块,来实现功能,当功能完成时,用break语句跳出循环,回到主界面,对成员信息的操作都是通过循环语句来实现的。 } } } } 这个程序的主要过程都完成了,现在我们来实现下,看效果如何。 这是注册和登陆界面的实现。 这是主界面的实现过程。 整个程序就完成了。 总结: 这个程序虽然完成了,但是还有很多缺点,如,没有连接数据库,使得整个程序只能算是一个模型一般的东西,真正在实际运用时,还很不够;界面不够友善,还是纯dos界面。 这些都是由于自己本身所学有限造成的,要想做出真正能实际运用切界面美观的系统,我还有很长的路要走。 但是今天能作出这个程序,我心里还是非常开心的,因为这对我来说,毕竟是一个很大的提高。 第一次作出这个系统,虽然有种种缺憾,但这鼓励了我继续学习软件开发的兴趣和激情,对我以后的道路有这不可估量的作用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序 设计 试验报告