300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 学生通讯录管理系统c语言报告 [转载]C语言课程设计论文(学生通讯录管理系统)优秀哦。

学生通讯录管理系统c语言报告 [转载]C语言课程设计论文(学生通讯录管理系统)优秀哦。

时间:2024-07-28 06:35:32

相关推荐

学生通讯录管理系统c语言报告 [转载]C语言课程设计论文(学生通讯录管理系统)优秀哦。

C语言课程设计论文

题目:学生通讯录管理系统

班级:0524092班

组号:第十小组

姓名(学号):朱会彬(052409257)吴江波(052409251)吴建鹏(052409250)

高阳阳(052409240)姚浩(052409253)

谢敬奇(052409252)

指导教师:张玉花

通讯录管理系统

【设计目的】

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

数据包括:姓名,电话,地址,邮编及e-mail。

可对记录中的内容进行修改。

可增加或删除记录。

可显示所有保存的记录。

可以按姓名或电话进行查询。

【设计思路】

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

【总体设计】

图1系统功能模块图

【详细设计】

主函数

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

【程序】

图2.主函数流程图

附录:源代码

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "conio.h"

#include "stdlib.h"

#define null 0

struct record

{

char name[20];

char phone[20];

char adress[40];

char postcode[10];

char e_mail[30];

}student[500];

struct LinkList

{

struct record US;

struct LinkList *next;

}a;

struct LinkList *head=null;

int num=0;

FILE *fp;

int menu_select();

int adduser();

int list();

int search();

int display();

int add();

int listbyname();

int dele();

int save();

int exit();

void main()

{

system("cls");

for(;;)

{

switch(menu_select())

{

case 0:adduser();break;

case 1:list();break;

case 2:search();break;

case 3:display();break;

case 4:add();break;case 5:listbyname();break;

case 6:dele();break;

case 7:save();break;

case 8:exit(0);

}

}

}

menu_select()

{

char s[80];

int a;

printf("*_* press any key enter menu! *_*

n");

getch();

system("cls");

printf("tt********************MENU*********************nn");

printf("tt0. 输入记录n");

printf("tt1. 显示记录n");

printf("tt2. 按姓名查找n");

printf("tt3. 按电话号码查找n");

printf("tt4. 插入记录 n");

printf("tt5. 按姓名排序n");

printf("tt6. 删除记录n");

printf("tt7. 记录保存文件n");

printf("tt8. Quitn");

printf("tt***********************************************n");

do{

printf("nEnter you choice(0~11):");

scanf("%s",s);

a=atoi(s);

}

while

(a<0||a>11);

return

a;

}

adduser()

{

printf("ntt**************** 请输入用户信息

****************n");

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

scanf("%s",&student[num].name);

printf("ntt输入电话号码:");

scanf("%s",&student[num].phone);

printf("ntt输入地址:");

scanf("%s",&student[num].adress);

printf("ntt输入邮编:");

scanf("%s",&student[num].postcode);

printf("ntt输入e-mail:");

scanf("%s",&student[num].e_mail);

num++;

printf("ntt是否继续添加?(Y/N):");

if (getch()=='y')

adduser();

return(0);

}

list()

{

int i;

system("cls");

if(num!=0)

{

printf("ntt***************

以下为通讯录所有信息************");

for (i=0;i

{printf("ntt姓名:

%s",student[i].name);

printf("ntt电话:

%s",student[i].phone);

printf("ntt地址:

%s",student[i].adress);

printf("ntt邮编:

%s",student[i].postcode);

printf("ntte-mail:%s",student[i].e_mail);

printf("tt");

if

(i+1

{

printf("ntt__________________________");

system("pause");

}

}

printf("ntt************************************************");

}

else

printf("ntt通讯录中无任何纪录");

printf("ntt按任意键返回主菜单:");

getch();

return(0);

}

search()

{

int mark=0;

int i;

int a=0;

printf("ntt***************** 按姓名查找

*******************");

char name[20];

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

scanf("%s",name);

for(i=a;i

{

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

{

printf("ntt************* 以下是您查找的用户信息 ***********");

printf("ntt姓名: %s",student[i].name);

printf("ntt电话: %s",student[i].phone);

printf("ntt地址: %s",student[i].adress);

printf("ntte-mail:%s",student[i].e_mail);

printf("ntt************************************************");

mark++;

if

((i+1)

{

printf("ntt是否继续查找相同名字的用户信息:(y/n)");

if (getch()=='y')

{

a=i;

continue;

}

else

return(0);

}

else

{

printf("ntt按任意键返回主菜单");

getch();

return(0);

}

}

}

if(mark!=0)

{

printf("ntt没有相同姓名的用户纪录");

printf("ntt按任意键返回主菜单");

getch();

return(0);

}

else

{

printf("ntt没有相同姓名的用户纪录");

printf("ntt按任意键返回主菜单");

getch();

return(0);

}

}

display()

{

int mark=0;

int i;

int a=0;

printf("ntt****************** 按电话查找 ******************");

char phone[10];

printf("ntt请输入电话号码:");

scanf("%s",phone);

for(i=0;i

{

if (strcmp(student[i].phone,phone)==0)

{

printf("ntt************** 以下是您查找的用户信息

**********");printf("ntt姓名: %s",student[i].name);

printf("ntt电话: %s",student[i].phone);

printf("ntt地址: %s",student[i].adress);

printf("ntte-mail:%s",student[i].e_mail);

printf("ntt************************************************");

printf("ntt按任意键返回主菜单:");

mark++;

getch();

return(0);

}

}

if (mark==0)

{

printf("ntt没有改用户的信息");

printf("ntt按任意键返回主菜单");

getch();

return(0);

}

return(0);

}

add()

{

int i;

if ((fp=fopen("student.bin","wb"))==NULL)

{

printf("ntt文件打开失败");

}

for (i=0;i

{

if

(fwrite(&student[i],sizeof(struct

record),1,fp)!=1)

{

printf("ntt写入文件错误!n");

}

printf("ntt**************** 请输入用户信息

****************n");

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

scanf("%s",&student[num].name);

printf("ntt输入电话号码:");

scanf("%s",&student[num].phone);

printf("ntt输入地址:");

scanf("%s",&student[num].adress);

printf("ntt输入邮编:");

scanf("%s",&student[num].postcode);

printf("ntt输入e-mail:");

scanf("%s",&student[num].e_mail);

num++;

printf("ntt是否继续添加?(Y/N):");

if (getch()=='y')

adduser();

return(0);

}

fclose(fp);

printf("ntt通讯录文件已保存");

printf("ntt按任意键退出程序ntt");

exit(0);

return(0);

}

void deletebyphone()

{

int i,j;

int deletemark=0;

char phone[20];

printf("ntt请输入要删除用户电话号码:");

scanf("%s",phone);

if(num==0)

{

printf("ntt对不起,文件中无任何纪录");

printf("ntt按任意键返回主菜单");

getch();

return;

}

for (i=0;i

{

if (strcmp(student[i].phone,phone)==NULL)

{

printf("ntt以下是您要删除的用户纪录:");

printf("ntt姓名: %s",student[i].name);

printf("ntt电话: %s",student[i].phone);

printf("ntt地址: %s",student[i].adress);

printf("ntte-mail:%s",student[i].e_mail);

printf("ntt是否删除?(y/n)");

if (getch()=='y')

{

for

(j=i;j

student[j]=student[j+1];

num--;

deletemark++;

printf("ntt删除成功");

printf("ntt是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

}

else

return;

}

continue;

}

if (deletemark==0)

{

printf("ntt没有该用户的纪录");

printf("ntt是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

}

}

void deletebyname()

{

int a=0;

int findmark=0;

int j;

int deletemark=0;

int i;

char name[20];

printf("ntt请输入要删除用户姓名:");

scanf("%s",name);

for (i=a;i

{

if (strcmp(student[i].name,name)==NULL)

{

printf("ntt以下是您要删除的用户纪录:");

findmark++;

printf("ntt________________________________");

printf("ntt姓名: %s",student[i].name);

printf("ntt电话: %s",student[i].phone);

printf("ntt地址: %s",student[i].adress);

printf("ntte-mail:%s",student[i].e_mail);

printf("ntt________________________________");

printf("ntt是否删除?(y/n)");

if (getch()=='y')

{

for

(j=i;j

num--;

deletemark++;

printf("ntt删除成功");

if((i+1)

{

printf("ntt是否继续删除相同姓名的用户信息?(y/n)");

if (getch()=='y')

{

a=i;

continue;

}

}

printf("ntt是否继续删除?(y/n)");

if (getch()=='y')

deletebyname();

return;

}

if((i+1)

{

printf("ntt是否继续删除相同姓名的用户信息?(y/n)");

if (getch()=='y')

{

a=i;

continue;

}

}

}

else

continue;

}

if

((deletemark==0)&&(findmark==0))

{

printf("ntt没有该用户的纪录");

printf("ntt是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

return;

}

else if (findmark!=0)

{

printf("ntt没有重名信息");

printf("ntt没有该用户的纪录");

printf("ntt是否继续删除?(y/n)");

if (getch()=='y')

deletebyphone();

return;

return;

}

}

dele()

{

char choic;

printf("ntt1-按电话号码删除 2-按姓名删除");

printf("ntt请选择:");

choic=getch();

switch (choic)

{

case '1':deletebyphone();break;

case '2':deletebyname();break;

}

return(0);

}

listbyname()

{

int i,j;

struct record tmp;

for (i=1;i

{

if(strcmp(student[i].name,student[i-1].name)<0)

{

tmp=student[i];

j=i-1;

do

{

student[j+1]=student[j];

j--;

}while

((strcmp(tmp.name,student[j].name)<0&&j>=0));

student[j+1]=tmp;

}

}

printf("ntt排序成功,是否显示?(y/n)");

if (getch()=='y')

list();

return(0);

}

save()

{

int j;

FILE*fp;

fp=fopen("student.txt","w");

if (fp==NULL)

printf("can't open the file.");

if(num!=0)

{

for(j=0;j

{

fwrite(student,sizeof(student),1,fp);

}

}

printf("保存成功!");

fclose(fp);

return(0);

}

【设计体会】

通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

【参考文献】

参考书:

《C程序设计》(第3版),谭浩强,清华大学出版社,.7

《C程序设计题解与上机指导》(第3版),谭浩强,清华大学出版社,.7

《C语言大学实用 教程》,苏小红、陈惠鹏、孙志岗等编,电子工业出版社,.2

《C语言大学实用 教程习题与实验指导》,苏小红等编,电子工业出版社,.8

《C语言程序设计案例教程》,卢双凤等编,北京科海电子出版社 ,2002.9

学生通讯录管理系统c语言报告 [转载]C语言课程设计论文(学生通讯录管理系统)优秀哦。。。...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。