通讯录管理.docx
- 文档编号:7320198
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:31
- 大小:238.44KB
通讯录管理.docx
《通讯录管理.docx》由会员分享,可在线阅读,更多相关《通讯录管理.docx(31页珍藏版)》请在冰豆网上搜索。
通讯录管理
一、课程设计的内容
1.主要功能:
(1) 能建立、修改和增删学生通讯录
(2) 能够按多种方式进行查询
2.要求:
界面友好,易于操作
二、课程设计的要求与数据
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序;
2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:
1)需求分析:
包括设计题目、设计要求以及系统功能需求分析;
2)总体设计:
包括系统总体设计框架和系统功能模块图;
3)详细设计:
包括主要功能模块的算法设计思路以及对应的工作流程图;
4)调试分析过程描述:
包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);
5)总结:
课程设计完成了哪些功能,有没有什么扩展功能?
还有哪些地方需要改进?
课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;
6)附录:
主要源程序代码,含必要的注释。
3、答辩:
在实验室建立程序运行的环境,并在指导教师的监督下,独立解
决问题、运行程序和回答教师提出的问题。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
下达任务书,说明设计要求;收集资料
实验3#517
6.18
2
总体方案设计、详细设计
实验3#517
6.19
3
编写程序,调试分析
实验3#517
6.20
4
撰写报告并上交,答辩
实验3#517
6.21
五、应收集的资料及主要参考文献
[1]谭浩强.C程序设计(第三版)[M],北京:
清华大学出版社,2005.9
[2]谭浩强.C程序设计题解与上机指导(第三版)[M],北京:
清华大学出版社,2005.7
发出任务书日期:
2007年6月18日指导教师签名:
计划完成日期:
2007年6月22日基层教学单位责任人签章:
主管院长签章:
课程设计试验报告
学生通讯录程序
学生通讯录程序4
一、设计内容5
二、设计要求5
三、总体设计5
1.查找功能5
2.删除功能5
3.插入功能5
4.排序功能5
5.更改功能5
6.建立文件功能5
7.退出程序5
四、详细设计。
6
1.查找功能。
6
1)按姓名寻找
2)按学号寻找
3)按电话号码寻找
4)全部内容输出
2.删除功能
1)按姓名寻找并删除
2)按学号寻找并删除
3)按电话号码寻找并删除
3.插入功能:
1)按学号排序并插入;
2)按电话号码排序并插入;
4.排序功能
1)按学号排序并插入
2)按电话号码排序并插入
5.更改功能
1)按姓名寻找并删除
2)按学号寻找并删除
3)按电话号码寻找并删除
6.建立文件功能
7.退出程序
五、调试分析17
六、总结……..18。
一、设计内容:
1.查找功能:
完成按姓名、电话、学号查找学生记录,并显示;或者全部显示
2.删除功能:
可以按姓名、电话或学号查找所要的学生记录并删除、显示、保存。
3.插入功能:
可以按电话或学号排序并插入学生记录,并显示保存。
4.排序功能:
可以按电话或学号排序,并显示保存。
5.更改功能:
可以按姓名、电话或学号查找并修改学生记录,并显示保存。
6.建立功能:
可以一次完成若干条记录的输入。
7.将学生记录存在文件addrbook中。
8.记录包括学号、姓名、电话。
9.应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
二、设计要求:
1.用C语言实现系统;
2.利用结构体叔祖或动态链表实现学生通讯录的数据结构设计;
3.系统具有增加,查询,删除等基本功能;
4.系统的各个功能模块要求用函数的形式实现;
5.完成设计任务并书写课程设计报告;
6.将通讯录信息存在文件中;
三、总体设计
1.查找功能;
2.删除功能;
3.插入功能;
4.排序功能;
5.更改功能;
6.建立文件功能;
退出程序;
四,详细报告(源程序代码)
1.头文件
#include"Conio.h"
#include
#include
#include
#include
#include
#include
#defineYY5465
#defineyy5497
#defineNN12622
#definenn12654
structstudent{charname[20],num[20],tel[20];}stu[100];
#defineLENsizeof(structstudent)
intn;
voidmenu();
structstudent*read()
{FILE*fp;inti;
if((fp=fopen("addrbook","rb+"))!
=NULL)
{for(i=0,n=0;fread(&stu[i],LEN,1,fp);i++,n++);fclose(fp);
return(stu);
}
elsereturn(NULL);
}
print_r()
{structstudent*p;inti;
if((p=read())!
=NULL)
{printf("\n\n\n\n\n\n\n\n");
printf("\n\t\t\b\b|---|-----------|-------------|-----------------|");
printf("\n\t\t\b\b|NO:
|number|name|telephone|");
printf("\n\t\t\b\b|---|-----------|-------------|-----------------|\n");
for(i=0;i printf("\t\t\b\b|---|%-10s|%-12s|%-16s|\n",stu[i].num,stu[i].name,stu[i].tel); } } intsave(structstudent*p) {FILE*fp; inti; if((fp=fopen("addrbook","wb+"))==NULL) {printf("cannotopenfile\n");return(0);} for(i=0;i if(fwrite(p,LEN,1,fp)! =1) printf("filewriteerror"); fclose(fp);return (1);} 2.查询功能 调用查找函数search()的菜单界面,对其进行按不同要求查找,并在查找不到的时候有错误报告,在查找到的情况下显示其内容到显示器上; 1)按姓名寻找; 2)按学号寻找; 3)按电话号码寻找; 4)全部内容输出; voidsearch(); voidpsear(structstudent*p) {clrscr(); printf("\n\n\n\n\n\n\n\n"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|"); printf("\n\t\t\b\b|NO: |number|name|telephone|"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|\n"); printf("\t\t\b\b|---|%-10s|%-12s|%-16s|\n",p->num,p->name,p->tel); printf("\t\t\b\bEnteranybuttontoreturn..."); getch(); search(); } structstudent*sear_1(structstudent*q) {structstudentsear,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheNAMEyouwanttosearch: ");//按名字查询 scanf("%s",sear.name);getchar(); for(p=q;(strcmp(sear.name,p->name))! =0&&p if(p==q+n){printf("NOFound! \nSearchanotherone? (Y/N)? "); key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsesearch(); } elsereturn(p); } structstudent*sear_2(structstudent*q) {structstudentsear,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheNUMBERyouwanttosearch: "); scanf("%s",sear.num);getchar(); for(p=q;(strcmp(sear.num,p->num))! =0&&p if(p==q+n){printf("NOFound! \nSearchanotherone? (Y/N)? ");///按学号查询 key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsesearch(); } elsereturn(p); } structstudent*sear_3(structstudent*q) {structstudentsear,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheTELEPHONEyouwanttosearch: "); scanf("%s",sear.tel);getchar(); for(p=q;(strcmp(sear.tel,p->tel))! =0&&p if(p==q+n){printf("NOFound! \nSearchanotherone? (Y/N)? ");称///按电话号码查询 key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsesearch(); } elsereturn(p); } structstudent*sear_4(structstudent*q) {inti; clrscr();printf("\n\n\n\n\n\n\n\n"); printf("\t\t\b\bThedatasare: \n"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|"); printf("\n\t\t\b\b|NO: |number|name|telephone|"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|\n"); for(i=0;i printf("\t\t\b\b|---|%-10s|%-12s|%-16s|\n",stu[i].num,stu[i].name,stu[i].tel); printf("\t\t\b\bEnteranybuttontoreturn: "); getch(); search(); } voidsearch() {intc; clrscr(); printf("\n\n\n\n\n\n"); printf("\t\t\b*********************MENU************************\n"); printf("\t\t\b|------------------------------------------------|\n"); printf("\t\t\b|| (1)Searchbyname||\n"); printf("\t\t\b||----------------------------------------------||\n"); printf("\t\t\b|| (2)Searchbynumber||\n"); printf("\t\t\b||----------------------------------------------||\n"); printf("\t\t\b||(3)Searchthetelephone||\n"); printf("\t\t\b||----------------------------------------------||\n"); printf("\t\t\b||(4)Searchall||\n"); printf("\t\t\b||----------------------------------------------||\n"); printf("\t\t\b||(5)Return||\n"); printf("\t\t\b|------------------------------------------------|\n"); scanf("%d",&c);getchar(); switch(c) {case1: psear(sear_1(read()));;break; case2: psear(sear_2(read()));break; case3: psear(sear_3(read()));break; case4: sear_4(read()); case5: menu();break; default: search();break;} } 3.删除功能: 调用查找函数del()的菜单界面,对其进行按不同要求查找,并在查找不到的时候有错误报告,在查找到的情况下删除其内容并将其结果到显示器上; 按姓名寻找并删除; 按学号寻找并删除; 按电话号码寻找并删除; voiddele(); voidupmove(structstudent*p) { for(;p {strcpy(p->num,(p+1)->num); strcpy(p->name,(p+1)->name); strcpy(p->tel,(p+1)->tel); } n=n-1; } voiddeleted(structstudent*p) {intkey=0,i; clrscr();printf("\n\n\n\n\n\n\n\n"); printf("\t\t\b\bNowthedatahadbeendeleted! "); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|"); printf("\n\t\t\b\b|NO: |number|name|telephone|"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|\n"); printf("\t\t\b\b|---|%-10s|%-12s|%-16s|\n",p->num,p->name,p->tel); printf("\t\t\b\bEnteranybuttontoreturn..."); upmove(p); getch(); clrscr();printf("\n\n\n\n\n\n"); printf("\t\t\b\bNow,thedatasare: \n"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|"); printf("\n\t\t\b\b|NO: |number|name|telephone|"); printf("\n\t\t\b\b|---|-----------|-------------|-----------------|\n"); for(i=0;i printf("\t\t\b\b|---|%-10s|%-12s|%-16s|\n",stu[i].num,stu[i].name,stu[i].tel); printf("\t\t\b\bSaveagain? (Y/N)? \n"); loop: key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy){if((save(stu))==1) {printf("\t\t\b\bHadbeensaved! \n\t\t\b\bEnteranybuttontoreturn...");getch();} else{printf("Saveerror! Saveagain? (Y/N)? \n"); key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy) gotoloop;} } dele(); } voiddele(); voiddel_1(structstudent*q) {structstudentdel,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheNAMEyouwanttodelete: \n"); scanf("%s",del.name);getchar(); for(p=q;(strcmp(del.name,p->name))! =0&&p if(p==q+n){printf("NOFound! \nDeleteanotherone? (Y/N)? "); key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsedele(); } elsedeleted(p); } voiddele(); voiddel_2(structstudent*q) {structstudentdel,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheNUMBERyouwanttodelete: "); scanf("%s",del.num);getchar(); for(p=q;(strcmp(del.num,p->num))! =0&&p if(p==q+n){printf("NOFound! \nDeleteanotherone? (Y/N)? "); key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsedele(); } elsedeleted(p); } voiddele(); voiddel_3(structstudent*q) {structstudentdel,*p;inti,key=0; loop: clrscr();printf("\n\n\n\n\n\n\n\n"); printf("EntertheTELEPHONEyouwanttodelete: "); scanf("%s",del.tel);getchar(); for(p=q;(strcmp(del.tel,p->tel))! =0&&p if(p==q+n){printf("NOFound! \nDeleteanotherone? (Y/N)? "); key=bioskey(0); while(key! =YY&&key! =yy&&key! =NN&&key! =nn) key=bioskey(0); if(key==YY||key==yy)gotoloop; elsedele(); } elsedeleted(p); } voiddele() {intc; clrscr(); printf("\n\n\n\n\n\n"); printf("\t\t\b*********************MENU************************\n"); printf("\t\t\b|------------------------------------------------|\n"); printf("\t\t\b|| (1)Deletebyname||\n"); printf("\t\t\b||----
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理