C语言课程设计报告

  • 格式:docx
  • 大小:57.36 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计报告 Prepared on 24 November 2020

C语言课程设计论文

学生姓名:陈丹

学生学号:

所在班级:信息与计算科学一班

任课教师:马老师

通讯录管理系统

【设计目的】

设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。

(1)数据包括:人名、工作单位、电话号码和E-mail地址。

(2)可对记录中的姓名和电话号码进行修改。

(3)可增加或删除记录。

(4)可显示所有保存的记录。

(5)可按人名或电话号码进行查询。

【设计思路】

根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。

【总体设计】

图1 系统功能模块图

【详细设计】

1.主函数

主函数设计要求简洁,只提供部分提示语和函数的调用

【程序】

图2. 主函数流程图

Void menu() /*主界面*/

{

int n, w1;

void enter(); void add(); void modify(); void browse(); void deleter(); void search();

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***************************通讯录

******************************\t\n");

printf("请选择服务种类(1-7) : [ ]\b\b");

scanf("%d",&n);

if(n<1||n>7)

{w1=1;getchar();}

else w1=0;

}while(w1==1);

switch(n)

{

case 1: enter(); break; /*输入模块*/

case 2: add(); break; /*添加模块*/

附录:源代码

#define N 50

#include<>

#include<>

struct people

{char name[20]; char company[50]; char num[15]; char mail[20];}peop[N];

void printf_face()

{ printf("\n\t姓名\t单位\t电话号码\t邮箱\n"); }

void printf_one(int i)

{ printf("\t%s\t%s\t%s\t%s\n",peop[i].name,peop[i]pany,peop[i].num,peop[i].mail); }

void printf_n(int n)

{ int j;

for(j=0;j

{ if((j!=0)&&(j%10==0)) {printf("\n\nPress any key to continue...:"); getchar(); puts("\n\n");} printf_one(j);

} getchar();

}

int load()

{ FILE *fp;

int i;

if((fp=fopen("file","rb"))==NULL)

{ printf("\nCan not open file\n");

exit(0);

}

for(i=0;!feof(fp);i++)

fread(&peop[i],sizeof(struct people),1,fp);

fclose(fp);

return(i-1);

}

int modify_data(int i,int n)

{ int c,w1; void input(int i); void menu();

do

{ puts("\n修改选项=>\n\n 1).姓名 2).单位 3).电话号码 4).邮箱 5).所有数据 6).取消并返回");

printf("请选择: [ ]\b\b");

scanf("%d",&c);

if(c>6||c<1) {puts("\nChoose error! Please again!"); getchar();}

}while(c>6||c<1);

do

{ switch(c)

{ case 1: printf("name:"); scanf("%s",peop[i].name); break;

case 2: printf("company:"); scanf("%s",peop[i]pany); break;

case 3: printf("number:"); scanf("%s",peop[i].num); break;

case 4: printf("e-mail:"); scanf("%s",peop[i].mail); break;

case 5: input(i); break;

case 6: 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);

}

void input(int i)

{ printf_face(); printf("\t");

scanf("%s\t%s\t%s\t%s",peop[i].name,peop[i]pany,peop[i].num,peop[i].mail); }

void save(int n)

{ FILE *fp; int i;

if((fp=fopen("file","wb"))==NULL)