学生通讯录管理系统c语言作业,学生通讯录信息管理系统C语言程序

#include

#include

#include

void input();

void save();

void lookup();

void search();

void change();

void delete();

void quit();

void read();

struct Infor

{  int num;//编号

char name[20];//姓名

char  phone[20];//电话

char kind[20];//类别

char mail[40];//邮件

}People[200];

int count=0;//记录总人数

int count1;//记录查询、修改、删除中查到的信息个数

void main()

{

int i;

read ();

while(1)

{

printf("\t\t\t通讯录信息系统菜单\t\t\t\n");

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

printf("\n");

printf("\t\t\t   数据录入(1)\t\t\t\n");

printf("\t\t\t   数据浏览(2)\t\t\t\n");

printf("\t\t\t   数据查询(3)\t\t\t\n");

printf("\t\t\t   数据修改(4)\t\t\t\n");

printf("\t\t\t   数据删除(5)\t\t\t\n");

printf("\t\t\t   退    出(6)\t\t\t\n");

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

printf("\t\t\t请输入菜单中对应项的数字\t\t\t\n");

scanf("%d",&i);

system("cls");

switch(i)

{

case 1: input();  break;//数据输入

case 2: lookup(); break;//数据浏览

case 3: search(); break;//数据查询

case 4: change(); break;//数据修改

case 5: delete(); break;//数据删除*/

case 6: quit(); break;//        退出

}

}

}

//读入文件

void read()

{

FILE *fp;

int i;

if((fp=fopen ("infor.dat","rb"))==NULL)

printf("文件无法打开,请检查!\n");

for(i=0;i<200;i++)

{

if(fread(&People[i],sizeof(struct Infor),1,fp)==1)

count++;

else if(fread(&People[i],sizeof(struct Infor),1,fp)!=1) break;

}

fclose(fp);

}

//数据录入

void input()

{   int i,k;

char j;

printf("\t\t\t   数据录入(1)\t\t\t\n");

for(i=count;i<200;i++)

{

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

scanf("%s",People[i].name);

{for(k=0;k

if(strcmp(People[i].name,People[k].name)==0)

{printf("系统中已有此人,请重新输入!\n");

input();

}

else continue;

}

printf("请输入电话: ");

scanf("%s",People[i].phone);

printf("请输入类别: ");

scanf("%s",People[i].kind);

printf("请输入电子邮箱: ");

scanf("%s",People[i].mail);

count++;

People[i].num=count;

printf("继续录入吗?y/n");

scanf(" %c",&j);

system("cls");

if(j=='y') continue;

else if(j=='n') main();

}

}

//数据保存

void save()

{FILE *fp;

int i;

if((fp=fopen ("infor.dat","wb"))==NULL)

{printf("文件无法打开,请检查!\n");

return;

}

for(i=0;i

{if(fwrite(&People[i],sizeof(struct Infor),1,fp)!=1)

printf("写入错误!\n");

}

fclose(fp);

}

//数据浏览

void lookup()

{

int i;

printf("\t\t\t   数据浏览(2)\t\t\t\n");

printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");

for(i=0;i

printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);

printf("\t\t\t按任意键返回主菜单!\t");

getch();

system("cls");

}

//退出

void quit()

{

char i,j;

printf("\t\t\t   退    出(6)\t\t\t\n");

printf("确认退出?y/n");

scanf(" %c",&j);

system("cls");

if(j=='n') return;

else if(j=='y')

{

printf("是否保存?y/n");

scanf(" %c",&i);

system("cls");

if(i=='y') {save();exit(0);}

else if(i=='n') exit(0);

}

}

//数据查询

void search()

{

int i;

char j[20];

count1=0;

printf("\t\t\t   数据查询(3)\t\t\t\n");

printf("请输入要查询的类别A、B、C\n");

scanf(" %s",j);

printf("\t姓名\t电话\t\n");

for(i=0;i<200;i++)

{

if(strcmp(j,People[i].kind)==0)

{printf("\t%s\t%d\t\n",People[i].name,People[i].phone);

count1++;

}

}

if(count1==0)

{system("cls");

printf("无此类别人员信息!\n");}

printf("\t\t\t按任意键返回主菜单!\t");

getch();

system("cls");

}

//数据修改

void change()

{

int i,k;

char j[20];

printf("\t\t\t   数据修改(4)\t\t\t\n");

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

scanf(" %s",j);

printf("以下为该人员信息:\n");

printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");

for(i=0;i<200;i++)

{

if(strcmp(j,People[i].name)==0)

printf("\t%d\t%s\t%s\t%s\t%s\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);

else continue;

printf("\n");

printf("\t\t\t请输入要修改的信息后对应序号:\t\t\t\n");

printf("\t\t\t   编号(1)\t\t\t\n");

printf("\t\t\t   姓名(2)\t\t\t\n");

printf("\t\t\t   电话(3)\t\t\t\n");

printf("\t\t\t   类别(4)\t\t\t\n");

printf("\t\t\t   邮箱(5)\t\t\t\n");

scanf(" %d",&k);

printf("该信息修改为:\n");

switch(k)

{

case 1:        scanf(" %d",&People[i].num);break;

case 2: scanf(" %s",People[i].name);break;

case 3: scanf(" %s",People[i].phone);break;

case 4: scanf(" %s",People[i].kind);break;

case 5: scanf(" %s",People[i].mail);break;

}

printf("修改成功!\n");

printf("\t\t\t按任意键返回主菜单!\t");

getch();

system("cls");

}

}

//数据删除

void delete()

{

int i,temp;

char j[20];

printf("\t\t\t   数据删除(5)\t\t\t\n");

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

scanf(" %s",j);

printf("以下为该人员信息:\n");

printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");

for(i=0;i<200;i++)

{

if(strcmp(j,People[i].name)==0)

printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);

else continue;

printf("\n");

for(i=i;i<200;i++)

{

temp=People[i].num;

People[i]=People[i+1];

People[i].num=temp;

}

}

printf("\t\t\t已删除!\t\n");

printf("\t\t\t按任意键返回主菜单!\t");

getch();

system("cls");

}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个《学生通讯录管理系统》,在动态链表程序的基础上,设计要求如下 (必须使用结构体和链表等数据结构) 1建立文件 存储文件使用指定文件名或默认文件名; 可以不保存输入记录,但需要确认是否保存输入记录 如果已有文件,只能在其后追加; 新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容; 可以将多个个文件记录合并到一个文件中; 2文件的存取和显示 可以单独存取文件; 可以随时显示内存中记录的全部内容; 可以直接存取默认文件或指定文件; 3删除记录 可以按“姓名”或“电话”方式删除记录并更新内存链表内容; 能给出被删除的信息,输出没有找到的信息; 如果已经是空表,上出时应给出信息并返回主菜单; 如果没有要删除的信息,输出没有找到的信息; 删除操作仅限于内存,只有执行记录时,才能覆盖原记录; 4查询记录 可以按“姓名”或“电话”或“宿舍”方式查询记录 能给出查询记录的信息; 如果查询的信息不存在,输出没有找到的信息; 5 整体功能 a可以随时检索、删除、或增加新记录,保存或取消新的记录 b使姓名可由16位字符和数字的混合编码组成 c使电话号码可由18位字符和数字组成 d将输出信息加上输出信息信息栏,例如 姓名 电话 性别 年龄 生日 宿舍 李四 1234 男 21 7月1日 东二333 e使用菜单实现功能的正确的选择 f 所有节点信息都是动态生成。 6测试程序 应列出测试大纲对程序进行测试; 应保证测试用例测试到程序的各种边缘情况
C语言课程设计任务书(4) 一、题目:通讯录管理 二、目的与要求 1. 目的: (1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 2. 要求 基本要求: 1.         要求利用C语言面向过程的编程思想来完成系统的设计; 2.       突出C语言的函数特征,以多个函数实现每一个子功能; 3.         画出功能模块图; 4.         具有清晰的程序流程图和数据结构的详细定义; 5.       熟练掌握C语言对文件的各种操作。 创新要求: 在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同 三、信息描述 有关该系统基本信息的描述,如:姓名、电话、城市和邮编等。 四、功能描述 1.       名单基本信息(姓名,城市,电话,邮编等)的录入,并存放在文件当中。 2.       基本信息的查询与修改。 3.       记录的添加和删除。 4.       对同一类型记录的查找:如查找同一城市的记录或同一省份的记录。 五、解决方案 1.       分析程序的功能要求,划分程序功能模块。 2.       画出系统流程图。 3.       代码的编写。定义数据结构和各个功能子函数。 4.       程序的功能调试。 5.       完成系统总结报告以及使用说明书 六、进度安排 此次课程设计时间为一周或两周,分四个阶段完成: 1.       分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。 2.       编码调试阶段:根据设计分析方案编写C代码,然后调试该代码,实现课题要求的功能。 3.       总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。 4.       考核阶段。 七、撰写课程设计报告或课程设计总结 课程设计报告要求: 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 八、参考资料  《C语言程序设计教程》   网上相关资料(....略)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值