当前位置:文档之家› C语言课程设计通讯录管理系统源程序

C语言课程设计通讯录管理系统源程序

C语言课程设计通讯录管理系统源程序
C语言课程设计通讯录管理系统源程序

#include"stdio.h"

#include

#include"string.h"

#define header1 "|--------------电话簿------------------|\n"

#define header2 "| name | phonenum | adress | \n" #define header3 "|----------|----------------|----------|\n"

#define end "|-----------------结束------------------|"

typedef struct _CStudent

{

char szName[20]; /* 学生姓名*/

double number; /*电话*/

char adress[100]; /*地址*/

}CStudent;

void menu();

int duqu(int *len);

int zengjia(int *k,int *len);

int chaxun(int *len);

int xiugai(int *len);

int shanchu(int *len);

int input(CStudent* p); /* 从键盘输入*/

int output(int *len); /* 向屏幕输出*/

int search(CStudent p,int *j,CStudent c[3],int *len);

int sname(CStudent p,int *len); /*姓名查询*/

int snumber(CStudent p,int *len); /*电话查询*/

void xname(CStudent q[100],int i); /*姓名修改*/

void xnumber(CStudent q[100],int i); /*号码修改*/

void xadress(CStudent q[100],int i); /*地址修改*/

int sput(int *len,CStudent q[100]);/*删除的处理模块*/

main( )

{

static int len=1;

int i,j=0,k=0;

while(j==0)

{

menu();

do

{

printf("请选择你需要的服务:\n");

scanf("%d",&i);

}

while(i<0||i>5);

//system("cls");

switch(i)

{

case 1:{j=zengjia(&k,&len);break;}/*增加*/

case 2:{j=duqu(&len);break;} /*读取*/

case 3:{j=chaxun(&len);break;} /*查找*/

case 4:{j=xiugai(&len);break;} /*修改*/

case 5:{j=shanchu(&len);break;}/*删除*/

default:{printf(" |**欢迎下次使用电话薄管理系统!**|\n");j=1;break;}

}

}

}

int duqu(int *len)

{

CStudent p[100];

int i;

FILE *fp;

system("cls");

printf("\n\t\t|* **** 欢迎进入读取联系人界面! **** *|\n\n");

if((fp=fopen("e://file3","r"))==NULL)

{

printf("error!\n");

return -1;

}

printf("%s%s%s",header1,header2,header3);

for(i=0;i<*len;i++)

{

fscanf(fp,"%s%lf%s ",p[i].szName,&p[i].number,p[i].adress);

printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);

}

printf("%s\n",end);

system("pause");

return 0;

}

void menu()

{

system("cls");

system("color 1F");

printf("\n\n\n"); /*输出主菜单*/

printf("\t\t|* **** 欢迎进入通讯录管理系统! **** *|\n");

printf("\t\t|********************menu********************|\n");

printf("\t\t| |\n");

printf("\t\t| 1 增加 2 读取|\n");

printf("\t\t| |\n");

printf("\t\t| 3 查找 4 修改|\n");

printf("\t\t| |\n");

printf("\t\t| 5 删除0 退出|\n");

printf("\t\t| |\n");

printf("\t\t|********************************************|\n");

}

int zengjia(int *k,int *len)

{

CStudent p[100];

int i,j;

FILE *fp;

system("cls");

printf("\n\t\t|* **** 欢迎进入增加联系人界面! **** *|\n\n");

printf("请输入增加的个数:\n");

scanf("%d",&j);

k=&j;

(*len)+=j;

//system("cls");

if((fp=fopen("e://file3","a+"))==NULL)

{

printf("error!\n");

return -1;

}

for(i=0;i

{

printf("姓名:");

scanf("%s",&p[i].szName);

printf("电话:");

scanf("%lf",&p[i].number);

printf("地址:");

scanf("%s",p[i].adress);

}

for(i=0;i

fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);

fclose(fp);

output(len);

return 0;

}

int chaxun(int *len)

{

int i;

CStudent aa,cc;

system("cls");

printf("\n\t\t|* **** 欢迎进入查询联系人界面! **** *|\n\n");

do

{

printf(" |-------查找功能------|\n");

printf(" | |\n");

printf(" | 1 按电话号码查找|\n");

printf(" | |\n");

printf(" | 2 按姓名查找|\n");

printf(" | |\n");

printf(" | 0 退出|\n");

printf(" | |\n");

printf("请输入:\n");

scanf("%d",&i);

}

while(i>2||i<0);

if(i==2)

{

printf("请输入姓名:\n");

scanf("%s",&aa.szName);

sname(aa,len);

}

else if(i==1)

{

printf("请输入号码:\n");

scanf("%lf",&cc.number);

snumber(cc,len);

}

else

printf("欢迎下次使用电话薄管理系统!\n");

return 0;

}

int xiugai(int *len)

{

CStudent p[100],q[100],a;

int i,j,b;

FILE *fp;

system("cls");

printf("\n\t\t|* **** 欢迎进入修改联系人界面! **** *|\n\n");

printf("请输入修改人的姓名:\n");

scanf("%s",a.szName);

if((fp=fopen("e://file3","r+"))==NULL)

{

printf("error!\n");

return -1;

}

for(i=0;i<*len;i++)

fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);

for(i=0;i<*len;i++)

{

strcpy(q[i].szName,p[i].szName);

strcpy(q[i].adress,p[i].adress);

q[i].number=p[i].number;}

for(i=0;i<*len;i++)

{

if(strcmp(p[i].szName,a.szName)==0)

{

j=1;

break;

}

}

if(j==1)

{

printf(" |-------修改功能------|\n");

printf(" | |\n");

printf(" | 1 修改姓名|\n");

printf(" | |\n");

printf(" | 2 修改号码|\n");

printf(" | |\n");

printf(" | 3 修改地址|\n");

printf(" | |\n");

do

{

printf("请选择修改内容:\n");

scanf("%d",&b);

if(b==1)

xname(q,i);

if(b==2)

xnumber(q,i);

if(b==3)

xadress(q,i);

}

while(b>3||b<1);

printf("修改的联系人重新保存!\n");

sput(len,q);

}

else

{

printf(" |*****通讯录中没有该人的信息!******|\n");

system("pause");

fclose(fp);

output(len);

return 0;

}

void xname(CStudent q[100],int i)

{

printf("姓名重置:");

scanf("%s",q[i].szName);

}

void xnumber(CStudent q[100],int i) /*号码修改*/

{

printf("电话重置:");

scanf("%lf",&q[i].number);

}

void xadress(CStudent q[100],int i) /*地址修改*/

{

printf("地址重置:");

scanf("%s",q[i].adress);

}

int shanchu(int *len)

{

CStudent p[100],q[100],a;

int i,j;

FILE *fp;

system("cls");

printf("\n\t\t|* **** 欢迎进入删除联系人界面! **** *|\n\n");

printf("请输入删除人的姓名:\n");

scanf("%s",a.szName);

if((fp=fopen("e://file3","r+"))==NULL)

{

printf("error!\n");

return -1;

}

for(i=0;i<*len;i++)

fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);

for(i=0;i<*len;i++)

{

strcpy(q[i].szName,p[i].szName);

strcpy(q[i].adress,p[i].adress);

q[i].number=p[i].number;}

for(i=0;i<*len;i++)

if(strcmp(p[i].szName,a.szName)==0)

{

j=1;

break;

}

}

if(j==1)

{

for(;i<*len-1;i++)

{

strcpy(q[i].szName,q[i+1].szName);

strcpy(q[i].adress,p[i].adress);

q[i].number=q[i+1].number;

}

printf("删除成功!\n");

(*len)--;

sput(len,q);

for(i=0;i<*len;i++)

fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);

output(len);

}

else

printf(" |*****通讯录中没有该人的信息!******|\n");

fclose(fp);

return 0;

}

int sput(int *len,CStudent q[100])

{

int i;

FILE *fp;

if((fp=fopen("e://file3","w"))==NULL)

{

printf("error!\n");

return -1;

}

for(i=0;i<*len;i++)

fprintf(fp,"%s %lf %s ",q[i].szName,q[i].number,q[i].adress);

fclose(fp);

return 0;

}

search(CStudent p,int *j,CStudent c[100],int *len)/*查询*/

{

FILE *fp;

int i,flag=0;

if((fp=fopen("e:\\file3","r"))==NULL)

{

printf("cannot write file\n");

return -1;

}

for(i=0;i<*len;i++)

{

fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);

if(strcmp(c[i].szName,p.szName)==0)

{flag=1;break;}

if(c[i].number==p.number)

{flag=2;break;}

}

*j=i;

fclose(fp);

return flag;

}

int sname(CStudent p,int *len)

{

CStudent c[100];

int i,flag;

flag=search(p,&i,c,len);

if (flag==1)

{

printf("%s%s%s",header1,header2,header3);

printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);

printf("%s",end);

printf("\n");

}

else

printf("Not Found\n");

system("pause");

return 0;

}

int snumber(CStudent p,int *len)

{

CStudent c[100];

int i,flag;

flag=search(p,&i,c,len);

if (flag==2)

{

printf("%s%s%s",header1,header2,header3);

printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);

printf("%s",end);

printf("\n");

}

else

printf("Not Found\n");

system("pause");

return 0;

}

int output(int *len) /*向屏幕输出*/

{

CStudent p[100];

int i;

FILE *fp;

if((fp=fopen("e://file3","r"))==NULL)

{

printf("error!\n");

return -1;

}

printf("%s%s%s",header1,header2,header3);

for(i=0;i<*len;i++)

{

fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);

printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);

}

printf("%s",end);

printf("\n");

system("pause");

return 0;

}

C语言课程设计---通讯录管理系统

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

c语言课程设计机房机位预定系统绝对正确,附源代码

1 设计目的 机房机位预定系统 2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求: (1)系统以菜单方式工作 (2)查询,根据输入时间,输出机位信息。 (3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。 (4)退出预定,根据输入的时间,机器号撤销该事件的预定! (5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。 ......... 3 模块划分 4 主要函数说明及其N-S图 1.主函数: int main() { Menu(); /*当前状态函数*/ } void Menu() /*主界面*/ { int n,w; do { puts("\t\t****************机房机位预约系统*******************\n"); puts("\t\t*************************菜单

***************************\n"); puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/ puts("\t\t\t 2.预定空机位"); /*预定空机位*/ puts("\t\t\t 3.取消预订"); /*取消预订*/ puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/ puts("\t\t\t 5.退出"); /*退出*/ puts("\t\t********************************************************\n"); printf("选择菜单号(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case 1:Situation();break; case 2:Book();break; case 3:Cancel();break; case 4:SearchWaiting();break; case 5:exit(0);break; } getch(); } 2.机位查询: void Situation() { int time; printf("输在 (8-20)范围内的时间:"); scanf("%d",&time); if(time<8||time>20) {printf("\t时间输入错误!\n"); printf("输入在 (8-20)范围内的时间:"); scanf("%d",&time); } detail(time); /*函数调用*/ getchar(); Menu();} 3.机位预定:

通讯录的制作(数据结构C语言版)

通讯录的设计 一、设计思路: 经过一个学期的程序设计学习,我逐渐了解了计算机的基本原理和c语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 enter ())、删除(程序中对应delete())、显示通讯录(程序中对应list())、搜索(程序中对应search())、保存(程序中对应save())、装载(程序中对应 load())。 其次,对于存储的数据结构,我则主要选择了一下几个方面的信息:姓名、性别年龄、籍贯、手机、下一个指针(用于链表的操作与实现)、当前指针(用于链表的操作与实现)。 二、程序源代码: #include struct address{ /*创建一个address结构*/ char name[10]; /*姓名*/ char sex[2]; /*性别*/ char age[2]; /*年龄*/ char native[10]; /*籍贯*/ char telephone[12]; /*手机*/ struct address *next; /*下一个入口的指针*/ struct address *prior; /*当前记录的指针*/ } list_entry; struct address *start; /*指向列表中第一个入口*/ struct address *last; /*指向列表中最后一个入口*/

c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素 int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1** void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1** void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3** void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3** void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2** void showall();//*输出全部信息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*//

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇的程序设计报告) 设计人: 班级: 201 年月号

目录一:概述 1:研究背景及意义 2:设计的任务与需要知识点3:具体完成设计内容 二:需求分析 1:功能需求 2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七::结束语 八:程序清单 九:参考文献

一. 概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C语言技术为基础,使用Turbo C++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1、1 研究的背景及意义 随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正就是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的与那个发,技术与工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习与将来实际软件开发打下坚实的基础。 1、2 设计的任务与需要的知识点 1、2、1 课程设计主要完成的任务 1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。 2) 有同步播放动画,声音效果。 3) 设计好数组元素与蛇,食物的对应关系。 4) 随机产生食物。 5) 有分数统计,排行榜,分数存储等功能。 通过此次课程设计,希望使读者能更深入的理解与掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题与解决问题的能力。 1、2、2需要掌握与运用的知识点 1、2、3本次课程设计需要掌握与运用如下的知识点: 1) 数组的应用。 2) 全局变量的使用。 3) 按键处理。 4)结构体的应用。 5)图形,音乐与动画的有关知识。 6)随即函数的使用。 7)文件的基本出操作。 8) 结构化,模块化的设计方法。

C语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

C语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

C语言课程设计通讯录管理系统

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

C语言程序设计 通讯录程序

目录: 课程设计任务书..................... 错误!未定义书签。目录:................................... 错误!未定义书签。 一、目的..................................................错误!未定义书签。 二、基本情况..............................................错误!未定义书签。 三、时间安排..............................................错误!未定义书签。 四、设计和调试过程规范化要求..............................错误!未定义书签。 五、设计内容和设计要求....................................错误!未定义书签。 六、考核方式..............................................错误!未定义书签。一通讯录的主要功能: .................... 错误!未定义书签。 一、问题描述: .............................................错误!未定义书签。 二、功能要求: .............................................错误!未定义书签。 三、算法提示: .............................................错误!未定义书签。 四、测试数据: .............................................错误!未定义书签。 二、课题的主要功能模块划分:............. 错误!未定义书签。 三、主要功能的实现....................... 错误!未定义书签。 一、按名字查找显示函数 void search( ) ................错误!未定义书签。 二、快速查找函数:void qseek( ) ...........................错误!未定义书签。 四、程序调试:........................... 错误!未定义书签。 五、总结................................. 错误!未定义书签。 六、源程序............................... 错误!未定义书签。机械工程学院课程设计评分表............... 错误!未定义书签。

C语言课程设计俄罗斯方块源代码

1、新建“.h”头文件,将“头文件” 代码粘贴至其中, 2、新建“.c”源文件,将“源代码” 代码粘贴到其中。 3、新建空白工程,将头文件和源代码 添加进去,调试使用。 //头文件 //1.自定义枚举类型,定义7种形态的游戏方块 typedef enum tetris_shape { ZShape=0, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape }shape; //2.函数声明 //(1)操作方块函数 int maxX();//取得当前方块的最大x坐标 int minX();//取得当前方块的最小x坐标 void turn_left();//当前方块逆时针旋转90度 void turn_right(); int out_of_table(); void transform(); int leftable(); int rightable(); int downable(); void move_left(); void move_right(); //(2)操作游戏桌面的函数 int add_to_table();

void remove_full(); //(3)控制游戏函数 void new_game(); void run_game(); void next_shape(); int random(int seed); //(4)绘图函数 void paint(); void draw_table(); //(5)其他功能函数 void key_down(WPARAM wParam); void resize(); void initialize(); void finalize(); //(6)回调函数,用来处理Windows消息 LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM); //源代码 //1.文件包含 #include #include #include #include"tetris.h" //2.常量定义 #define APP_NAME "TETRIS" #define APP_TITLE "Tetris Game" #define GAMEOVER "GAME OVER" #define SHAPE_COUNT 7 #define BLOCK_COUNT 4 #define MAX_SPEED 5 #define COLUMS 10 #define ROWS 20 #define RED RGB(255,0,0)

通讯录管理系统 C语言课程设计

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。(2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。

三、详细设计 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N 【程序】 int main()

***********\n"); printf("\t\t**********************************************\n"); scanf("%d",&n); for(i=0;i

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

C语言课程设计---学生选课系统加源代码

C程序设计课程设计 题目:学生选课系统专业班级:通信工程1班姓名: 学号: 指导教师: 成绩:

摘要 学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以学生选课管理系统应该能够为广大学、师生提供充足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高对学生信息管理的效率。利用C语言开发,实现了简单的学生课程信息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的保留原始数据。

目录 一、需求分析 (1) 二、总体设计 (1) 三、详细设计 (2) 1、数据定义...................................................... 错误!未定义书签。 2、算法流程图 (2) 四、编码 (6) 五、调试 (7) 六、设计总结 (10) 致谢 (11) 参考文献 (12) 附录 (13)

一、需求分析 语言文字描述系统要做什么 数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。 二、总体设计 系统由哪几个功能模块构成,给出功能模块图。C 中模块化的工具是函数 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。 菜单选择模块 录入学生信息 学生选课 系统信息查看及储存 退出系统 完成选择模块 学生信息 管 理 录入课程信息 课程 管理

c语言通讯录源代码打印

c语言通讯录源代码打 印 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

#include <> #include <> #include <> #include <> struct person { char name[15]; char sex[2]; int nianling; long int youbian; char addr[50]; char celephone[22]; char homephone[22]; char company[20]; char email[40]; long int QQ; }per[500]; int num=0;2aame); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } printf("\n请输入性别:\n"); sex: scanf("%s",&per[num].sex); if(strlen(per[num].sex)==0) { printf("对不起!您的输入有误!请重新输入"); goto sex; } printf("\n请输入年龄:"); nianling: scanf("%d",&per[num].nianling); if(per[num].nianling<10||per[num].nianling>1 10) { printf("对不起!您的输入有误!请重新输入"); goto nianling; } printf("\n请输入邮编\n"); youbian: scanf("%d",&per[num].youbian); if(per[num].youbian<10000||per[num].youbia n>999999) { printf("对不起!您的输入有误!请重新输入"); goto youbian; } printf("\n请输入地址\n"); addr: scanf("%s",&per[num].addr); if(strlen(per[num].addr)>50||strlen(per[num].a ddr)<4) { printf("对不起!您的输入有误!请重新输入\n"); goto addr; } printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; }

C语言程序的设计报告_个人通讯录

航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:: 学号:: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 ?用户信息界面美观、简洁,采用菜单式显示功能选择; ?能够从磁盘文件输入和输出数据; ?能够对联系人信息进行增、删和改的操作; ?能够根据联系人的的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择:

选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入: 选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字: 13213 性别: 2144444444444 手机: 44444444444 电子:44444444444 QQ:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

相关主题
文本预览
相关文档 最新文档