软件基础通讯录管理系统.docx
- 文档编号:9268628
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:745.40KB
软件基础通讯录管理系统.docx
《软件基础通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《软件基础通讯录管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
软件基础通讯录管理系统
《软件基础》大作业
项目名称:
学生通讯录管理系统
班级:
测控1001班
学号:
20104877
姓名:
学号:
20104877
姓名:
学号:
20104877
姓名:
完成时间:
2012-5-30
指导老师:
目录
一、需求分析
1.1.开发背景——————————————(3)
1.2.项目目标——————————————(3)
1.3.运行环境——————————————(4)
1.4.项目任务书————————————(4)
二、技术路线
2.1.总体方案——————————————(5)
2.2、开发平台——————————————(9)
2.3、详细设计——————————————(9)
2.4.运行结果———————————————(16)
三、工程进度————————————(17)
四、个人小结—————————————(19)
五、参考文献—————————————(20)
六、指导教师评语——————————(20)
一、需求分析
1.1.开发背景
随着信息时代的步伐加快,越来越多得数据库管理需要我们去处理,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
我们此次用vc语言编写一个学生通讯录管理系统为了完成这项工作,我们在书上及网络上搜索了许多,经过我和队友的一番努力探讨,我们的工作正式开始了。
1.2.项目目标
一、设计目的
1、进一步掌握和利用vc语言进行程设计的能力;
2、进一步理解和运用结构化程设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程设计开发文档的能力(书写课程设计报告);
1.2.运行环境
Vc++6.0是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序开发人员提供了一系列灵活而先进的工具。
我开发的这个学生通讯录管理系统就是在Vc++6.0环境下运行的,因为c++具有代码稳定可读性好,编译速度快,效率高等优点,并将
面向对象的概念得到充分的发挥。
1.3.项目任务书
1.项目名称:
学生通讯录管理系统
2.整体描述和目的:
利用自己所学的vc++语言知识,开发研究一个学生通讯录管理系统,让它在vc++6.0中能够正常的运行。
通过具体的实践检验所学的知识,加强对理论知识的掌握,同时能够在操作中体会软件开发的艰辛与快乐。
3.项目团队成员:
孙磊磊、李伟成、崔振楠
4.任务下达人:
鲁可
二、技术路线
2.1.总体方案
(一)本程序包含10大模块
1.密码保护系统
2.主程序
3.主菜单函数
4.进入函数
5.显示函数
6.查找函数
7.增加函数
8.删除函数
9.保存函数
10.导入函数
11.终止函数
(二)结构图
读入菜单函数返回值n
1
2
3
4
5
0
/进入
input
函数
进入
display
函数
进入
research
函数
进入
add
函数
进入
delet
函数
进入
exit
函数
1)密码保护系统
正确错误
超过三次
2)主菜单
3)输入函数
inti,b;
输入要输入的学生个数b
b<100
成立
b>100
不成立
如果i
输入学生数据
1、姓名,
2、学号,
3、电话号码,
4、邮编
5、地址
输出
太大了!
受不了了!
直到i>=b
建立并打开存放通信录的文件,文件名为“addrbook.txt”
把通信录存放到文件“addrook.txt”
关闭文件“addrbook.txt”
4)显示函数
inti;
打开文件“addrbook.txt”
for(i=1;i 显示通信录信息 关闭文件 5)查找函数 inti; charname[20] 输入要查找的名字到name[20]中 打开文件“addrbook.txt” 比较是否有名字与要查循的相同 有相同 没有相同 调用函数display() 该函数显示所查找该通信录信息; 打印: 查找不到,请添加! 关闭文件 6) 添加函数 打开存放通讯录的文件“addrbook.txt” 使用该文件的方式是“r flag++ 把学号输入到st[flag].num中 把姓名输入到st[flag].name中 把电话号码输入到st[flag].tel中 把邮编输入到st[flag].youbian中 把地址输入到st[flag].address中 关闭文件 7)删除函数 打开文件“addrbook.txt” chardelname[20] 输入删除的姓名给delname[20] 比较是否有姓名与要删除的相同 不成立 成立 删除该信息 显示: 您要删除的名字不存在 for(;i strcpy(st[i].num,st[i+1].num); strcpy(st[i].name,st[i+1].name); strcpy(st[i].phone,st[i+1].phone); strcpy(st[i].youbian,st[i+1].youbian); strcpy(st[i].address,st[i+1].address); 把下一条的记录向上移动 显示删除成功 2.2、采用的软件及开发平台是vc++6.0. 2.3、详细设计: voiddisplay();/*学生通讯录管理系统*/ #include #include #include #include #include #defineN101 structstudent/*定义数组*/ { charnum[20]; charname[20]; charphone[20]; charyoubian[20]; charaddress[20]; }st[N]; voidmanage(); voidinput(); voidresearch(); voidadd(); voiddel(); intflag; charpassword[10]="tongxunlu"; charmima[10]="000000"; FILE*fp; //**************************************************** voidmain()/*主函数*/ {system("title通讯录管理系统"); chars[10];/*密码保护系统*/ chars1[10]; intm=0,k; intn=3; system("colorce"); printf("\n\t\t\t\t通讯录密码保护系统"); printf("\n\n\t\t\t\t\设计制作——\n\t\t\t\t\李伟成、孙磊磊、崔正楠"); printf("\n\t\t\t\t\t\t201048770107/04/13\n"); do {printf("\n\n\n\t\t请输入用户名: "); scanf("%s",s); printf("\n\t\t请输入密码: "); for(k=0;k<6;k++) { s1[k]=getch(); if(s1[k]=='x0d')break;; printf("*"); } s1[k]='\0'; if((strcmp(s,password)==0)&&(strcmp(s1,mima)==0)) {printf("\n密码验证通过\n按任意键进入"); getch(); break; } else { printf("\n\t\t\t密码错误! 请从新输入! \n"); n--; m++; } } while((n>0)&&(flag<4)); if(m==3) {printf("输入用户名超过了三次! ! "); exit(0); } system("cls"); system("colora0"); intchoicemanage;/*进入通讯录主菜单*/ do { printf("\t\t\t欢迎使用通讯录系统\n"); printf("\t\t\t\t*******\n"); printf("\t\t\t\t*****\n"); printf("==========================\n"); printf("\t\t输入总数\n"); printf("\t\t1输入学生信息\n"); printf("\t\t2显示学生信息\n"); printf("\t\t3查找学生信息.\n"); printf("\t\t4增加一个信息.\n"); printf("\t\t5删除一个学生信息.\n"); printf("\t\t0退出.\n"); printf("==================================\n"); scanf("%d",&choicemanage); switch(choicemanage)/*选择语句*/ { case1: input(); display(); break; case2: display(); break; case3: research(); display(); break; case4: add(); display(); break; case5: del(); display(); break; case0: display(); printf("\n\n\t\t\t感谢使用通讯录系统! \n"); printf("\n\n\t\t\t天天好心情! \n"); fp=fopen("addrbook.txt","w"); fwrite(&st[1],sizeof(structstudent),flag,fp); system("cls"); exit (1); default: {printf("请输入一个正确的数据.\n"); printf("按任意键返回"); getch(); system("cls"); } } }while (1); } //**************************************************** voidsave()/*保存函数*/ { FILE*fp1; if((fp1=fopen("ad.dat","w"))==NULL) return; fwrite(&flag,sizeof(int),1,fp1); rewind(fp1); fclose(fp1); } //**************************************************** voidload()/*导入函数*/ {FILE*fp1; if((fp1=fopen("ad.dat","r"))==NULL) return; fread(&flag,sizeof(int),1,fp1); rewind(fp1); flag=getw(fp1); fclose(fp1); } //**************************************************** voidinput()/*输入函数*/ {system("color9b"); FILE*fp; inti; intb; printf("输入你想输入的学生数: "); scanf("%d",&b); if(b>100) { printf("太大了! 受不了了! \n"); printf("按任意键返回"); getch(); system("cls"); return; } flag=0; load(); i=flag; b=b+flag; if((fp=fopen("addrbook.txt","ab"))==NULL) return; while(i { i++; printf("第%d学生\n",i); printf("\n"); printf("学号: "); scanf("%s",&st[i].num); printf("姓名: "); scanf("%s",&st[i].name); printf("电话: "); scanf("%s",&st[i].phone); printf("邮编: "); scanf("%s",&st[i].youbian); printf("地址: "); scanf("%s",&st[i].address); printf("\n"); }; rewind(fp); flag=b; save(); fclose(fp); system("cls"); return; } //**************************************************** voiddisplay()/*显示函数*/ {system("colord0"); system("cls"); FILE*fp; inti; if((fp=fopen("addrbook.txt","r"))==NULL) return; printf("------------通讯录----------------\n"); printf("学号\t\t姓名\t\t电话\t\t邮编\t\t地址\n"); load(); fread(&st[1],sizeof(structstudent),flag,fp); for(i=1;i {printf("%-17s%-17s%-17s%-17s%-17s\n",st[i].num,st[i].name,st[i].phone,st[i].youbian,st[i].address); } printf("按任意键返回\n"); getch(); fclose(fp); system("cls"); return; } //****************************************************** voidresearch()/*查询函数*/ {system("colora3"); FILE*fp; inti; charchname[20]; printf("请输入你想要查找的名字: \n"); scanf("%s",&chname); if((fp=fopen("addrbook.txt","r+"))==NULL) { printf("不能打开文件\n"); printf("按任意键返回\n"); getch(); system("cls"); return; } load(); for(i=1;i { if(strcmp(chname,st[i].name)==0) {system("cls"); printf("你所查询的学生信息\n\n\n"); printf("学号%s\n姓名%s\n电话%s\n邮编%s\地址: %s\n",st[i].num,st[i].name,st[i].phone,st[i].youbian,st[i].address); break; } if(strcmp(chname,st[i].name)! =0) {system("cls"); printf("查找不到,请添加! \n");} } fclose(fp); printf("按任意键返回\n"); getch(); system("cls"); return; } //***************************************************** voidadd()/*添加函数*/ {system("colorb4"); FILE*fp; if((fp=fopen("addrbook.txt","r"))==NULL) { printf("不能打开\n"); getch(); return; } load(); flag++; printf("请输入一个新的学生信息: \n"); printf("请输入学号: "); scanf("%s",&st[flag].num); printf("请输入名字: "); scanf("%s",&st[flag].name); printf("请输入电话: "); scanf("%s",&st[flag].phone); printf("请输入邮编"); scanf("%s",&st[flag].youbian); printf("请输入地址"); scanf("%s",&st[flag].address); fwrite(&st[flag],sizeof(structstudent),1,fp); rewind(fp); save(); printf("输入完成\n按任意键返回\n"); getch(); fclose(fp); system("cls"); return; } //***************************************************** voiddel()/*删除函数*/ {system("color70"); inti; chardelname[20]; FILE*fp; if((fp=fopen("addrbook.txt","w"))==NULL) { printf("不能打开\n"); printf("按任意键返回\n"); getch(); system("cls"); return; } load(); printf("\n\t\t敬告: \t请谨慎操作,防止误删! \n"); rintf("请输入你想删除的学生姓名: "); scanf("%s",delname); for(i=1;i { if(strcmp(delname,st[i].name)==0) { for(;i { strcpy(st[i].num,st[i+1].num); strcpy(st[i].name,st[i+1].name); strcpy(st[i].phone,st[i+1].phone); strcpy(st[i].youbian,st[i+1].youbian); strcpy(st[i].address,st[i+1].address); system("cls"); printf("删除成功\n"); }continue; } else system("cls"); printf("您要删除的名字不存在\n"); } fwrite(&st[1],sizeof(structstudent),flag-1,fp); save(); rewind(fp); fclose(fp); printf("按任意键返回"); getch(); system("cls"); return; } 2.4.运行结果 三、工程进度、 时间计划完成的工作实际完成的工作 5月4日了解软件开发的背景顺利完成 及其开发环境 5月9日完成项目规划书顺利完成 通过课本和搜索相关知识 完善规划书 5月16日阅读有关学生通讯录 管理系统程序编经过努力学习, 写的资料及容易出错的地方开始编写 利用七天的不懈努力,经过努力, 5月20日我们要把程序写好,初成果出, 5月28日对程序进行检验,运行程序可用,和修改,使其完善可用工作完成 四、个人小结 一、总结 此程序设计完成了通讯录的主要功能,实现了存取、显示、删除记录、查询记录、自动保存等功能,程序的人性化设计较多,如自动保存,自动导入功能简化了操作过程;在程序中提供了人性化的提示,在输入不能执行的数据时提示用户;采用了不同的背景、字体颜色界面,增加了程序的视觉效果,同时,还特别添加了密码保护系统,可以保护个人的信息安全。 在程序中还存在一些不足,需要改进。 如: 程序的编写不够简洁,在实际操作中,密码保护设置中的用户名和密码的改动比较麻烦,对操作者的要求较高。 当通讯录中的人数较多时,查询信息和删除不存在的信息时,需要的反应时间较长。 二、个人心得体会 1、个人心得体会——李伟成 这次vc课程设计,让我体会到了很多很多。 首先就是要有一个认真的态度,编程是一个需要严谨、细心的工作,在编程的过程中,稍微不细心就会产生错误,而往往一个小错误就会影响到整个程序的运行。 在长时间的连续工作中更是需要耐心与毅力。 在课程设计之前对vc程序的认识仅停留在看的阶段,而且对软件编程设计的知识很模糊,不知道具体的实施步骤。 在课程设计期间通过对各方面知识的深入了解及具体应用,对软件编程制作有了更深入的了解,并且更充分的理解了以前所学的知识,特别是在文件的操作部分。 同时在编程过程中遇到了很多问题,而在解决问题的过程中,学到了很多的知识和技巧是课本上学不到的,同时增强了自己解决实际问题的能力。 在课程设计期间,很多问题自己一时解决不了,此时体现出团队精神的重要性,特别是在做
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 基础 通讯录 管理 系统