C语言课程设计报告.docx

上传人:b****7 文档编号:10021453 上传时间:2023-02-08 格式:DOCX 页数:14 大小:41.47KB
下载 相关 举报
C语言课程设计报告.docx_第1页
第1页 / 共14页
C语言课程设计报告.docx_第2页
第2页 / 共14页
C语言课程设计报告.docx_第3页
第3页 / 共14页
C语言课程设计报告.docx_第4页
第4页 / 共14页
C语言课程设计报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告.docx

《C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告.docx

C语言课程设计报告

 

C语言课程设计论文

 

学生姓名:

陈丹

学生学号:

所在班级:

信息与计算科学一班

任课教师:

马老师

 

通讯录管理系统

【设计目的】

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

(1)数据包括:

人名、工作单位、电话号码和E-mail地址。

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

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

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

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

【设计思路】

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

【总体设计】

图1系统功能模块图

【详细设计】

1.主函数

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

【程序】

图2.主函数流程图

Voidmenu()/*主界面*/

{

intn,w1;

voidenter();voidadd();voidmodify();voidbrowse();voiddeleter();voidsearch();

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();}

elsew1=0;

}while(w1==1);

switch(n)

{

case1:

enter();break;/*输入模块*/

case2:

add();break;/*添加模块*/

附录:

源代码

#defineN50

#include

#include

structpeople

{charname[20];charcompany[50];charnum[15];charmail[20];}peop[N];

voidprintf_face()

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

voidprintf_one(inti)

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

voidprintf_n(intn)

{intj;

for(j=0;j

{if((j!

=0)&&(j%10==0)){printf("\n\nPressanykeytocontinue...:

");getchar();puts("\n\n");}

printf_one(j);

}getchar();

}

intload()

{FILE*fp;

inti;

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

{printf("\nCannotopenfile\n");

exit(0);

}

for(i=0;!

feof(fp);i++)

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

fclose(fp);

return(i-1);

}

intmodify_data(inti,intn)

{intc,w1;voidinput(inti);voidmenu();

do

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

printf("请选择?

:

[]\b\b");

scanf("%d",&c);

if(c>6||c<1){puts("\nChooseerror!

Pleaseagain!

");getchar();}

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

do

{switch(c)

{case1:

printf("name:

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

case2:

printf("company:

");scanf("%s",peop[i].company);break;

case3:

printf("number:

");scanf("%s",peop[i].num);break;

case4:

printf(":

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

case5:

input(i);break;

case6:

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);

}

voidinput(inti)

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

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

voidsave(intn)

{FILE*fp;inti;

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

{printf("\nCannotopenfile\n");

exit(0);

}

for(i=0;i

if(peop[i].name[0]!

='\0')

if(fwrite(&peop[i],sizeof(structpeople),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

voidprintf_back()

{

intw;voidbrowse();voidmenu();

printf("\n\n\t^_^.Successful.^_^\n\n");

printf("Whatdoyouwanttodo?

\n\n\t1).浏览所有\t2).返回:

[]\b\b");

scanf("%d",&w);

if(w==1)browse();

elsemenu();

}

 

voidmain()

{

voidmenu();

menu();

}

voidmenu()

{

intn,w1;

voidenter();voidadd();voidmodify();voidbrowse();voiddeleter();voidsearch();

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();}

elsew1=0;

}while(w1==1);

switch(n)

{

case1:

enter();break;

case2:

add();break;

case3:

modify();break;

case4:

deleter();break;

case5:

browse();break;

case6:

search();break;

case7:

exit(0);

}

}

 

voidenter()

{inti,n;

printf("Howmanypeople(0-%d)?

:

",N-1);

scanf("%d",&n);

printf("请输入数据:

\n");

for(i=0;i

{printf("\n输入第%d个记录.\n",i+1);

input(i);

}

if(i!

=0)save(n);

printf_back();

}

voidadd()

{inti,n,k,t;

n=load();

printf("Howmanypeopledoyouwanttoadd(0-%d)?

:

",N-n-1);

scanf("%d",&t);k=n+t;

for(i=n;i

{printf("\n输入第%d个记录.\n",i-n+1);input(i);}

save(k);printf_back();

}

voidmodify()

{structpeoples;inti,n,k,w0=1,w1,w2=0;

n=load();

do

{k=-1;printf_face();printf_n(n);

do

{printf("\n\nEnternamethatyouwanttomodify!

\nName:

");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,peop[i].name)==0){k=i;s=peop[i];}

if(k==-1)printf("\n\n没有记录请重新输入!

");

}while(k==-1);

printf_face();printf_one(k);

w1=modify_data(k,n);

if(w1==1){printf("\n\t^_^.Successful^_^.\n\n是否继续?

\n\n\t1).是2).保存返回\t[]\b\b");

scanf("%d",&w0);w2=1;}

else

{w0=0;if(w2==0)peop[k]=s;}

if((w0!

=1)&&(w2==1))save(n);

}while(w0==1);menu();

}

voidbrowse()

{intn;

n=load();

printf_face();printf_n(n);

printf("\t共有%d记录.\n",n);

printf("\nPressanykeytoback...");

getchar();

menu();

}

voidsearch()

{intw0,k,i,n,w1,w2;structpeoples;n=load();

do

{printf("请选择查找类别:

1).2).电话号码[]\b\b");

scanf("%d",&w1);if(w1<1||w1>2){printf("输入错误!

请重新输入!

\n");w2=1;}

}while(w2==1);

if(w1==1)

{do

{k=-1;

do

{printf("\n\nEnternamethattouwanttosearch!

\nName:

");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,peop[i].name)==0){k=i;s=peop[i];}

if(k==-1)printf("\n\n没有记录请重新输入!

");

}while(k==-1);

printf_face();printf_one(k);

printf("\nWhatdoyouwanttodo?

\n\t1).继续2).返回菜单[]\b\b");

scanf("%d",&w0);

}while(w0==1);

menu();

}

else

{do

{k=-1;

do

{printf("\n\nEnternumberthattouwanttosearch!

\nNum:

");

scanf("%s",s.num);

for(i=0;i

if(strcmp(s.num,peop[i].num)==0){k=i;s=peop[i];}

if(k==-1)printf("\n\n没有记录请重新输入!

");

}while(k==-1);

printf_face();printf_one(k);

printf("\nWhatdoyouwanttodo?

\n\t1).继续2).返回菜单[]\b\b");

scanf("%d",&w0);

}while(w0==1);

menu();

}

}

voiddeleter()

{structpeoples;inti,n,k,w0,w1;

n=load();

do

{k=-1;printf_face();printf_n(n);

do

{printf("\n\nEnternamethatyouwanttodelete!

\nName:

");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,peop[i].name)==0){k=i;s=peop[i];}

if(k==-1)printf("\n\n没有记录请重新输入!

");

}while(k==-1);

printf_face();printf_one(k);

printf("\n确定?

\n\t1).是2).返回[]\b\b");

scanf("%d",&w0);

if(w0==1){peop[k].name[0]='\0';save(n);}elsebreak;

printf("\n\t^_^.Successful^_^.\n");

printf("Whatdoyouwanttodo?

\n\t1).继续2).返回[]\b\b");

scanf("%d",&w1);

}while(w1==1);

menu();

}

 

【设计体会】

通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。

同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。

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

【参考文献】

朱若愚.数据结构[M].:

电子工业出版社,2006.1:

41-65

晋良颍.数据结构[M].:

人民邮电出版社,2007.05:

21-45

刘大有.数据结构[M].:

高等教育出版社,2006.3:

30-58

赵文静.数据结构与算法[M].:

科学出版社,2007.8:

41-64 

徐孝凯.数据结构简明教程.[M].:

清华大学出版社,2006.04:

102-115

严蔚敏,吴伟民.数据结构(C语言版)[M].:

清华大学出版社,2007.4:

39-43

傅清祥,王晓东.数据结构与算法设计[M].:

电子工业出版社,2006.3:

31-46

王敬华,林萍,.陈静.C语言程序设计[M].:

清华大学出版社,2007.10:

22-39

李云清,杨庆红,揭安全.数据结构(C语言版)[M].:

人民邮电出版社,2006.1:

44-67

[10]李春葆.数据结构(C语言版)习题与解析[M].:

清华大学出版社,2006.1:

47-55

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1