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

阅读: 评论:0

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<stdio.h>
#include<string.h>
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<n;j++)
  { if((j!=0)&&(j%10==0)) {printf("\n\nPress any key :"); 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)
  { printf("\nCan not open file\n");
    exit(0);
  }
  for(i=0;i<n;i++)
  if(peop[i].name[0]!='\0')
  if(fwrite(&peop[i],sizeof(struct people),1,fp)!=1)
  printf("file write error\n");
  fclose(fp);
}
void printf_back()
{
int w;  void browse();  void menu();
printf("\n\n\t^_^.Successful. ^_^\n\n");
printf("What do you want to do?\n\n\t1).浏览所有\t2).返回:  [ ]\b\b");
scanf("%d",&w);
if(w==1) browse();
else menu();
}
void main()
{
void menu();
menu();
}
void menu()
{
int n, w1;
void enter();  void add();  void modify();  void browse();  void deleter();  void search();
do
{
  puts("\t************************菜单************************ ");
  puts("\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********************通讯录********************* ");
  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;
  case 3: modify(); break;
  case 4: deleter(); break;
  case 5: browse(); break;

本文发布于:2023-05-11 20:00:53,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/95947.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:修改   选择   电话号码   进行   设计   删除   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图