c语言课程设计通信管理系统Word格式.docx

上传人:b****3 文档编号:6808792 上传时间:2023-05-07 格式:DOCX 页数:25 大小:150.76KB
下载 相关 举报
c语言课程设计通信管理系统Word格式.docx_第1页
第1页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第2页
第2页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第3页
第3页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第4页
第4页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第5页
第5页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第6页
第6页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第7页
第7页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第8页
第8页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第9页
第9页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第10页
第10页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第11页
第11页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第12页
第12页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第13页
第13页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第14页
第14页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第15页
第15页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第16页
第16页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第17页
第17页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第18页
第18页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第19页
第19页 / 共25页
c语言课程设计通信管理系统Word格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计通信管理系统Word格式.docx

《c语言课程设计通信管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《c语言课程设计通信管理系统Word格式.docx(25页珍藏版)》请在冰点文库上搜索。

c语言课程设计通信管理系统Word格式.docx

第五模块:

findRec()的功能是:

查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。

第六模块:

alterRec()的功能是:

修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回。

第七模块:

deleteRec()的功能是:

删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

第八模块:

listRec()的功能是显示通讯录中的所有记录。

第九模块:

saveRec()的功能是保存某人的信息在某一文件夹里。

以上九大模块为此通信系统的就大基本模块,用此模块设计可以清楚表明通信管理系统程序的功能、格局,可以用以下组成框图来表示:

(1).系统结构图(功能模块图)和数据变量说明

(2)功能模块说明:

(1)、主函数输入模块

(2)quitRec函数模块(3)createRec函数模块

(4)addRec函数模块(5)findRec函数模型

(7)、deleteRec函数模型

(6)、alterRec函数模型

 

(8)、listRec函数模型(9)、saveRec函数模型

(3)、详细设计

模块功能说明:

在所有的函数中,main()函数数入口函数,用户输入数据进行整个程序的执行,整个函数的出口是qiut()函数,每一个函数执行完毕后都要退到主函数中,基本每个输入、改动或者是删除的函数都要调用保存函数,而主函数调动所有的函数。

(4)、调试与测试:

在此次的课程设计中,做困难的一部分便是调试与测试这部分了,在此次调试中最开始是符号标点的问题,有许多都没注意,最终还是慢慢的把这些错误调试出来了;

还有一种错误便是库函数的问题,在此次调试中,发现有许多别的软件里的库函数在此软件中不能用,最终还是通过再次编写被调用函数来实现了预期的功能;

此外,在函数的调试中,还发现一种问题,在所绘的表格中,无法对齐表格,经过调试,移动表格的位置来实现了表格的工整;

还有,在测试中,发现原本应该在两个页面的数据在同一个页面中显示出来了,经过分析,认为这是由于没有清屏的结果,加上清屏后,问题终于解决了。

(5)、运行结果:

1、主菜单:

2、创建新数据:

首先输入创建的序号“2”,会进入以下这个界面:

输入数据后然后会依次出现下面的条目:

最后返回到先前的主菜单

3、查找数据:

按了“1”以后,会出现以下菜单:

会提示你输入要查找的XX

输入XX后会出现以下的显示

退出到主菜单;

4、在末尾添加数据,按了“3”之后,会出现以下:

输入想要添加的数列,会出现下面输入数据的界面:

按任意键退出后,回到主菜单。

5、修改数据:

输入“4”之后,会出现以下界面

输入位置后,按以下流程输入数据

输入Y之后,再将新的数据输入就行了

6、删除数据:

按下“5”后,会出现这个显示

输入XX后,会删除数据并保存已存的结果。

7、退出数据,按下“6”以后会退出,并提示是否保存数据

8、载入数据:

按下“7”后这个可以载入以前保存的数据,

9.保存数据:

按下“8”后,可以保存数据以备下次再用

(6)源程序

#include<

stdio.h>

malloc.h>

stdlib.h>

string.h>

conio.h>

ctype.h>

windows.h>

voidshowTable1();

voidshowTable2(int);

voidfindRec();

voidcreateRec();

voidaddRec();

voidsaveRec();

voidalterRec();

voiddeleteRec();

voidquit();

voidLoadRec();

voidlistRec();

intsearch(char*,int,int);

voidgotoxy(intx,inty)

{

CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;

HANDLEhConsoleOut;

hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo(hConsoleOut,&

csbiInfo);

csbiInfo.dwCursorPosition.X=x;

csbiInfo.dwCursorPosition.Y=y;

SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);

}

char*mulu[]={"

*************通讯管理系统**************"

"

│1.查找│"

│2.创建│"

│3.添加│"

│4.修改│"

│5.删除│"

│6.退出│"

"

│7.载入│"

│8.保存│"

└──────────────────┘"

};

typedefstructsl

charno[20];

charname[10];

charscore[10];

charstreet[10];

charcity[10];

charprovince[10];

charpostcode[10];

}TONGXUN;

intmuluxuanze();

intJILUSHU=0;

TONGXUNrecords[1000];

voidmain()

system("

cls"

);

gotoxy(2,20);

for(;

;

switch(muluxuanze())

{

case1:

findRec();

break;

/*查询通讯录*/

case2:

createRec();

/*创建通讯录*/

case3:

addRec();

/*添加通讯录*/

case4:

alterRec();

/*修改通讯录*/

case5:

deleteRec();

/*删除通讯录*/

case6:

quit();

/*退出通讯录*/

case7:

LoadRec();

/*载入通讯录*/

case8:

saveRec();

/*保存通讯录*/

}

intmuluxuanze()

inti;

for(i=0;

i<

10;

i++)

gotoxy(10,i+1);

cprintf("

%s"

mulu[i]);

printf("

\n"

请输入要做的选项数字(1-8):

"

scanf("

%d"

&

i);

return(i);

voidshowTable1()/*表头一*/

gotoxy(10,2);

***************************具体数据*******************************"

gotoxy(1,3);

┌────┬────┬────┬────┬─────┬─────┬─────┐\n"

gotoxy(1,4);

│数目│XX││街道│城市│省│邮编│\n"

gotoxy(1,5);

├────├────├────├────├─────├─────│─────│\n"

voidshowTable2(intn)/*表头二*/

if(n==0)n=1;

if(JILUSHU==0)n=-1;

gotoxy(1,6+n);

└─────────────────────────────────────┘\n"

voidquit()/*退出*/

charstr[5];

gotoxy(22,18);

保存记录吗?

(Y/N)"

str);

if(str[0]=='

Y'

||str[0]=='

y'

saveRec();

exit(0);

voidcreateRec()/*创建通讯录*/

inti,sum;

请输入要添加的通讯记录数目:

JILUSHU);

JILUSHU;

system("

sum=0;

gotoxy(20,5);

printf("

Pleaseinput%dnumber"

i+1);

gotoxy(20,6);

输入序号:

scanf("

%10s"

records[i].no);

gotoxy(20,7);

输入XX:

records[i].name);

gotoxy(20,8);

输入:

records[i].score);

gotoxy(20,9);

输入街道:

records[i].street);

gotoxy(20,10);

输入城市:

records[i].city);

gotoxy(20,11);

输入省:

records[i].province);

gotoxy(20,12);

输入邮编:

records[i].postcode);

请按任意键返回!

getch();

voidlistRec()/*显示所有通讯录*/

inti=0;

showTable1();

输入所查数据的序号:

gotoxy(1,6+i);

printf("

%10s%10s%10s%10s%10s%10s%10s\n"

records[i].no,records[i].name,records[i].score,records[i].street,records[i].city,records[i].province,records[i].postcode);

}

showTable2(i);

voidsaveRec()/*保存通讯记录*/

FILE*fp1,*fp2;

if((fp1=fopen("

e:

\\c\\c.txt"

"

wb"

))==NULL)

printf("

不能打开这个文件"

exit

(1);

if((fp2=fopen("

\\c\\c1.txt"

\n保存文件\n"

fwrite(&

JILUSHU,sizeof(JILUSHU),1,fp1);

fwrite(records,sizeof(records),JILUSHU,fp2);

fclose(fp1);

fclose(fp2);

\n文件保存成功!

!

Sleep(1000);

\n请按任意键退出\n"

voidLoadRec()/*载入通讯记录*/

rb"

\n载入文件\n"

fread(&

fread(records,sizeof(records),JILUSHU,fp2);

\n文件载入成功!

voidfindRec()/*查询通讯记录*/

charstr[20];

inti,j;

请输入您要找的人的XX:

scanf("

for(j=0,i=0;

j<

j++)

if(strcmp(str,records[j].name)==0)

{

showTable1();

records[i].no,records[j].name,records[j].score,records[j].street,records[j].city,records[j].province,records[j].postcode);

showTable2(i);

break;

}

elseprintf("

未找到该联系人"

Pressanykeytoreturn!

voiddeleteRec()/*删除通讯记录*/

请输入您想删除的人的XX:

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

for(j=i;

records[j]=records[j+1];

没有找到该联系人"

JILUSHU--;

intsearch(char*target,inttarType,intfrom)

for(i=from;

if((tarType==1&

&

strcmp(target,records[i].no)==0)||tarType==2&

strcmp(target,records[i].no)==0)

return(i);

return(-1);

voidalterRec()/*修改通讯录*/

charno[20],str[8];

请输入你想要修改的数据位置数:

no);

i=search(no,1,0);

%10s%10S%10s%10s%10s%10s%10s"

└─────────────────────────────────────┘\n"

gotoxy(10,10);

你想要修改这些数据吗(Y/N):

saveRec();

请按任意键返回!

voidaddRec()/*在通讯录的末尾加上新的信息*/

inti,sum=0;

charstr[8];

请输入您想要增加的序列:

i=search(str,1,0);

if(i==-1)break;

这个数据是错误的!

getch();

strcpy(records[JILUSHU].no,str);

JILUSHU++;

(7)、使用说明:

此程序的运行环境并无太大的要求,一般的电脑都能运行;

使用方法:

进入了主菜单后,只需按照每个功能所对应的数字按下就能操作。

(8)、设计小结:

此次的设计是我第一次独立的设计一个程序,并且完成了调试与测试,最终成功的运行了,在此次的设计中,也让我在运用C语言到实际生活方面的能力有了提升,同时亦提升了我的合作能力,与同学的合作让我在遇到难点时可以很快的解决。

然而,虽然学到了很多,我也在此次的课程设计中认识到自身的许多不足之处,比如办事效率低,在文件的保存、读取方面也不大熟练以后需要多多加强这方面的练习

总之,这次的课程设计让我认识了许多,明白了许多,学到了许多,亦是在运用编程方面提高了许多,课后还是要加强这方面的练习的。

(10)参考文献:

C语言程序设计基础实验教程---------廖雷,罗代忠

C程序设计(第三版)------------------谭浩强

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2