C语言程序设计实习报告Word文档下载推荐.docx

上传人:b****8 文档编号:22445383 上传时间:2023-02-04 格式:DOCX 页数:18 大小:50.14KB
下载 相关 举报
C语言程序设计实习报告Word文档下载推荐.docx_第1页
第1页 / 共18页
C语言程序设计实习报告Word文档下载推荐.docx_第2页
第2页 / 共18页
C语言程序设计实习报告Word文档下载推荐.docx_第3页
第3页 / 共18页
C语言程序设计实习报告Word文档下载推荐.docx_第4页
第4页 / 共18页
C语言程序设计实习报告Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言程序设计实习报告Word文档下载推荐.docx

《C语言程序设计实习报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实习报告Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

C语言程序设计实习报告Word文档下载推荐.docx

系统功能模块图:

输入新信息:

可输入新的数据。

可以添加通讯录记录,依次输入姓名、电话号码、分类、电子邮箱后,会提示是否继续添加。

输入姓名删除,输入欲删除的那个人的名字后,会自动删除他(她)的记录内容

可按1、办公类2、个人类3、商务类分类查询

输入欲修改的那个人的名字后,再依次输入姓名、电话号码、分类、电子邮箱即可完成修改。

下面就是总的程序流程图:

三、具体设计

代码如下:

#include"

stdio.h"

string.h"

#defineN15

typedefstructpeople

{

charname[20];

charnum[20];

charsort[20];

charemail[30];

}PEO;

PEOpeo[N];

voidenter();

voidmenu();

voidbrowse();

voidadd();

voidmodify();

voiddel();

modify_data(inti,intn);

voidprintf_face();

voidprintf_one(inti);

voidinput(inti);

voidsave(intn);

load();

voidprintf_sort(inti);

voidno_input(inti,intn);

voidname_input(inti,intn);

voidprintf_back();

voidmenu()

intn,w1;

do

{

puts("

\t\t\t**手机通讯录**\n"

);

\t\t****************菜单****************\n\n"

\t\t\t\t1.输入新信息"

\t\t\t\t2.查看类型"

\t\t\t\t3.添加信息"

);

\t\t\t\t4.修改信息"

\t\t\t\t5.删除信息"

\t\t\t\t6.返回"

\n\n\t\t***************************************\n"

printf("

选择所需功能(1-6):

[]\b\b"

scanf("

%d"

&

n);

if(n<

1||n>

6)

{

w1=1;

getchar();

}

elsew1=0;

}while(w1==1);

switch(n)

case1:

enter();

break;

case2:

browse();

case3:

add();

case4:

modify();

case5:

del();

case6:

exit(0);

}

}

main()

menu();

voidenter()

inti,n;

printf("

输入联系人的个数(0-%d):

"

N-1);

scanf("

\n现在请开始输入\n\n"

for(i=0;

i<

n;

i++)

\n输入%d个联系人信息.\n"

i+1);

input(i);

if(i!

=0)save(n);

printf_back();

voidbrowse()

inti,k,n;

PEOp;

n=load();

\n\n选择类型sort(a:

办公类b:

个人类c:

商业类):

%s"

p.sort);

\n\tNamenum\n"

if(strcmp(p.sort,peo[i].sort)==0)

k=i;

printf_sort(k);

printf("

\n"

\n\n"

menu();

voidadd()

inti,k,m,n,j;

FILE*fp;

您要添加多少个联系人信息(1-%d):

N-n);

m);

k=m+n-1;

for(i=n;

=k;

if(i>

N-1)

储存已满,不能添加新信息"

\n输入%d个联系人记录.\n"

i-n+1);

if((fp=fopen("

shouji.txt"

"

ab"

))==NULL)

无法打开文件\n"

for(j=n;

j<

i;

j++)

if(fwrite(&

peo[j],sizeof(structpeople),1,fp)!

=1)

文件读写出错\n"

fclose(fp);

printf_back();

voidmodify()

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

do

k=-1;

printf_face();

for(i=0;

if((i!

=0)&

&

(i%5==0))

{

printf("

\n\n请记住你要修改的联系人姓名,按任意键继续..."

getchar();

puts("

}

printf_one(i);

\n\n请输入您所需修改的联系人姓名!

name:

scanf("

p.name);

for(i=0;

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

{

k=i;

p=peo[i];

}

if(k==-1)printf("

\n\n输入错误!

请重新输入"

}while(k==-1);

printf_one(k);

w1=modify_data(k,n);

if(w1==1)

\nSuccessful^_^.\n\n确认需要修改其他信息?

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

w0);

w2=1;

else

w0=0;

if(w2==1)

peo[k]=p;

if(w0!

=1&

w2==1)

save(n);

}while(w0==1);

voiddel()

intk,w1,w0=0,w2=0,n,i;

\n\n请记住你要删除的联系人姓名,按任意键继续...."

do

\n\n请输入需要删除的联系人姓名name:

请重试"

\n确认删除?

\n\n\t1).确认2).重新删除3).返回[]\b\b"

w1);

peo[k].name[0]=0;

\nSuccessful^_^.\n\n需要删除其他数据?

modify_data(inti,intn)

intc,w1;

\nmodifyby=>

\n\n1).姓名2).电话3).类型4).邮箱地址\n5).所有数据6).取消并返回"

请选择你要修改的选项(1-6):

c);

if(c>

6||c<

1)

puts("

\n选择错误!

请重新选择!

getchar();

}while(c>

1);

switch(c)

case1:

name_input(i,n);

case2:

no_input(i,n);

case3:

printf("

sort:

scanf("

peo[i].sort);

case4:

email:

peo[i].email);

case5:

input(i);

\nNow:

printf_one(i);

\n确认修改?

\n\n\t1).是2).重新修改3).立即返回[]\b\b"

}while(w1==2);

return(w1);

voidprintf_face()

\n\t姓名电话类型邮箱地址\n"

voidprintf_one(inti)

%10s%14s%10s%10s"

peo[i].name,peo[i].num,peo[i].sort,peo[i].email);

voidinput(inti)

name_input(i,i);

no_input(i,i);

sort(a:

voidsave(intn)

inti;

wb"

\nCannotopenfile\n"

returnNULL;

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

=0)

peo[i],sizeof(structpeople),1,fp)!

filewriteerror\n"

fclose(fp);

load()

rb"

\nCannotopenfile\n"

!

feof(fp);

fread(&

peo[i],sizeof(structpeople),1,fp);

return(i-1);

voidprintf_sort(inti)

%10s%14s"

peo[i].name,peo[i].num);

voidno_input(inti,intn)

intj,w1,k;

w1=0;

NO.:

peo[i].num);

for(j=0;

peo[i].num[j]!

='

\0'

;

if(peo[i].num[j]<

'

0'

||peo[i].num[j]>

9'

输入错误!

只能输入数字(0-9).请重新输入!

w1=1;

if(w1!

for(k=0;

k<

k++)

if(k!

=i&

strcmp(peo[k].num,peo[i].num)==0)

{

puts("

这个记录不存在,请重新输入!

w1=1;

}

voidname_input(inti,intn)

intk,w1;

Name.:

peo[i].name);

for(k=0;

if(k!

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

voidprintf_back()

\n\n\tSuccessful.^_^\n\n"

四、界面分析

1、开始界面

2、输入功能

3、查看功能

4、添加功能

5、修改功能

6、删除功能

7、返回

五、心得体会

本次的C程序实设计实验是我进入大学以来第一次独立设计的实验。

通过自己动手,发现和解决问题,我发现了自己的许多缺陷与不足。

平时没有掌握好的知识在这次实验中彻底暴露出来。

在经过不断思考和总结,以及不断查阅资料和上机运行,尝试再尝试的过程中,我终于解决其中大部分问题,但是还是存在一些问题无法解决。

但我相信,在今后的自我学习过程中能够解决好它们。

当我选择手机通讯录管理系统这个题目时,一开始想运用大量子函数及指针来完成,但是在仔细的构思之后,觉得不一定要用很多子函数解决问题,于是改变了编程思路,令程序设计起来没有那么复杂,界面看起来也清爽整洁多了。

通过结构体的使用,令定义方便简洁;

通过大量的使用if和while、do……while、switch…case语句后,充分体会了他们的强大功能与作用;

指针的运用也给设计带来了方便。

当然还有不少文件的读写问题,不过通过不断测试以及上网查询之后都顺利解决了。

在C课程设计过程中,遇到的许许多多的困难都让人抓狂。

在软件一次次的调试失败下想放弃的念头也不断出现,但最后我还是让自己坚持了下来,毫不畏惧困难。

在同学的帮助与老师之前的讲解下,我总算是不太顺利的完成了课程设计。

当软件调试成功时那种喜悦的感觉,真好,它是没有什么东西可以代替,这也有也是程序设计员都会为之兴奋之事吧。

在程序的编写过程中,发现的很多的知识的漏洞和缺陷,都将是我以后学的借鉴之处,通过不足,才知道如果改进、完善,才会更迫切的努力学习来弥补不足。

这次的最深刻的体会就是,书上和老师教的内容是很有限的,如果真的想学会C语言和其他科目,我们需要的不但是老师的教导,更应该不断地靠自己去学习,去向他人请教,积极地去了解和掌握更多的知识,而不能被动学习,这样我们才能编出更好的C程序,这样我们才能学好更多。

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

当前位置:首页 > 成人教育 > 专升本

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

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