班级通讯录管理系统-课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1.程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。【基本要求】1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3.还需要保存记录已进行修改,删除,查找的操作:4.另外还需提供键盘式选择菜单实现功能的选择。【总体设计】图1系统功能模块图通讯录管理系统数据输入数据修改删除数据添加查找浏览-2-【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch();do{puts(\t*******菜单**************\t\n\n);puts(\t\t\t\t1.新建联系人);puts(\t\t\t\t2.添加联系人);puts(\t\t\t\t3.修改);puts(\t\t\t\t4.删除);puts(\t\t\t\t5.浏览);puts(\t\t\t\t6.查找);puts(\t\t\t\t7.退出);puts(\n\n\t*****信息1002班通讯录*************\t\n);printf(请选择服务种类(1-7):[]\b\b);scanf(%d,&n);if(n1||n7)显示一系列功能选项输入n,判断n是否是1~7?根据n的值调用各功能模块函数结束开始n-3-{w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/【模块流程图】main函数enter函数显示一系列功能选项输入n,判断n是否是1~7?根据n的值调用各功能模块函数结束开始n输入选择服务类型1输入要新建学生数量n(nN)输入第一个,第二个.......第n个学生信息记录1.浏览所有2...返回Whatdoyouwanttodo?-4-modify函数browse函数delete函数输入选择服务类型3输入要修改学生姓名,选择修改选项1.姓名2..电话3..QQ号4..宿舍号5..所有数据6..取消返回是否确定修改?1..是2..不,重新修改3..保存并返回浏览所有学生基本通讯信息输入浏览服务号5返回主菜单输入要删除学生的姓名输入服务选项4是否删除1..是2..否,返回-5-search函数【程序使用方法】1.执行程序,按照界面提示进行选择。输入“1”,进入新建联系人。2.按照程序提示,分别输入信息1002班所有同学的通讯基本信息。(注:这里默认为信息1002班有30名同学,可以通过宏定义进行修改。)3.输入成功后,自动返回主界面。输入“5”,进入通讯录预览,程序自动将各个已录入同学的基本通讯信息输出到屏幕上。4.输入“2”返回主界面。输入“3”,进入基本通讯信息修改,按照提示进行输入。5.输入成功后,输入“1”浏览输入信息,输入“2”返回主界面。输入“4”,进行删除根据提示操作。6.输入“6”进行查找,根据提示“1”按姓名查找,“2”按电话号码查找。7.输入“1”浏览所查找信息,“2”返回主界面。输入“7”退出程序。2.程序上机调试报告【语法错误及其排除】1、单词拼写错误,导致出现没有定义的变量。2、宏定义时在末尾处加上了分号,应该不加分号。3、菜单输出时不整齐。【算法错误及其排除】1、逐个检查,用查找替换等。2、在修改个人通讯信息时,不小心将姓名删除。3.程序测试结果1.新建联系人;图一2.添加联系人;图二3.修改,删除联系人信息;图三4.浏览,查找。图四选择服务类型6选择查找类别1..姓名2..QQ号查看已查找到地通讯信息1.继续2..返回-6-图一-7-图二-8-图三-9-图四【收获及体会】通过为期十多天的课程设计,我对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。4.源程序代码-10-#defineN30//(宏定义)学生人数#includestdio.h//预编译命令#includestring.h//预编译命令structstudent//定义学生基本通讯信息的结构体{charname[20];charphone[50];charQQnum[15];chardorm[20];}stu[N];voidprintf_face(){printf(\n\t姓名\t电话号码\tQQ号\t宿舍号\n);}voidprintf_one(inti){printf(\t%s\t%s\t%s\t%s\n,stu[i].name,stu[i].phone,stu[i].QQnum,stu[i].dorm);}voidprintf_n(intn){intj;for(j=0;jn;j++){if((j!=0)&&(j%10==0)){printf(\n\nPressanykeytocontinue...:);getchar();puts(\n\n);}printf_one(j);}getchar();}intload(){FILE*fp;inti;if((fp=fopen(file,rb))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(structstudent),1,fp);fclose(fp);return(i-1);}intmodify_data(inti,intn){intc,w1;voidinput(inti);voidmenu();do{puts(\n修改选项=\n\n1).姓名2).电话号码3).QQ号4).宿舍号5).所有数据6).取消并返回);printf(请选择?:[]\b\b);scanf(%d,&c);-11-if(c6||c1){puts(\nChooseerror!Pleaseagain!);getchar();}}while(c6||c1);do{switch(c){case1:printf(name:);scanf(%s,stu[i].name);break;case2:printf(phone:);scanf(%s,stu[i].phone);break;case3:printf(QQnum:);scanf(%s,stu[i].QQnum);break;case4:printf(dorm:);scanf(%s,stu[i].dorm);break;case5:input(i);break;case6:menu();}puts(\nNow:\n);printf_face();printf_one(i);printf(\n确定?\n\n\t1).是2).不,重新修改3).返回不保存[]\b\b);scanf(%d,&w1);}while(w1==2);return(w1);}voidinput(inti){printf_face();printf(\t);scanf(%s\t%s\t%s\t%s,stu[i].name,stu[i].phone,stu[i].QQnum,stu[i].dorm);}voidsave(intn){FILE*fp;inti;if((fp=fopen(file,wb))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;in;i++)if(stu[i].name[0]!='\0')if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf(filewriteerror\n);fclose(fp);}voidprintf_back(){intw;voidbrowse();voidmenu();printf(\n\n\t^_^.Successful.^_^\n\n);printf(Whatdoyouwanttodo?\n\n\t1).浏览所有\t2).返回:[]\b\b);-12-scanf(%d,&w);if(w==1)browse();elsemenu();}voidmain(){voidmenu();//主菜单函数menu();}voidmenu(){intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch();doputs(\t*************欢迎进入信息1002班通讯录菜单***********);puts(\n\t\t*******************1.新建联系人*******************);puts(\t\t*******************2.添加联系人*******************);puts(\t\t*******************3.修改*******************);puts(\t\t*******************4.删除*******************);puts(\t\t*******************5.浏览*******************);puts(\t\t*******************6.查找*******************);puts(\t\t*******************7.退出*******************);puts(\n\n\t**************信息1002班通讯录*********************);printf(请选择服务种类(1-7):[]\b\b);scanf(%d,&n);if(n1||n7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;case2:add();break;case3:modify();break;case4:delete();break;case5:browse();break;case6:search();break;case7:exit(0);}}-13-voidenter()//新建联系人函数{inti,n;printf(Howmanystudent(0-%d)?:,N-1);scanf(%d,&n);printf(请输入数据:\n);for(i=0;in;i++){printf(\n

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功