急救!!!!!c语言通讯录系统设计代码,怎么在一个结构体数组中进行编号自增和性别统计啊

博客访问: 26095
博文数量: 20
博客积分: 290
博客等级: 二等列兵
技术积分: 185
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
/* added on &* by hofman&*/&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&int len = sizeof(struct score);&int len2 = len*50;&&struct score *p;&/* allocate mem */&p = (struct score *)malloc(len2);&/* input */&for(i=0;i&2;i++)&{&printf("Input sn name maths c en \n");&scanf(INF,&p-&sn,p-&name,&p-&maths,&p-&c,&p-&en);&p-&total=(p-&maths)+(p-&c)+(p-&en);&p-&avg=(p-&total)/3;&p++;&}&/* rewind p */&p=p-2;&/* output */&for(i=0;i&2;i++)&{&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&printf("\n");&p++;&}&}&/*&说明:该程序在linux gcc 以及NT TURBO C下均编译通过&i&2;当然是为了实际验证的方便,使用时改为i&50即可。&*/&------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:C语言结构体数组与指针(成绩统计问题)示例 | 作者:hofman | 军衔:上尉 | 发表时间:05-17 18:05:06&/* added on &* by hofman&*/&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&&struct score *p;&struct score scores306[50];&p = scores306;&/* input */&for(i=0;i&2;i++)&{&printf("Input sn name maths c en \n");&scanf(INF,&p-&sn,p-&name,&p-&maths,&p-&c,&p-&en);&p-&total=(p-&maths)+(p-&c)+(p-&en);&p-&avg=(p-&total)/3;&p++;&}&p = scores306;&/* p=p-2; also works */&/* output */&for(i=0;i&2;i++)&{&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&printf("\n");&p++;&}&}&/* 这个版本与你们的程序基本一致,其实这样更简单,更直观&2个例子无非说明分配内存有几种方法,&前例由程序申请内存(使用了malloc函数),&本例则由编译系统自动分配内存。&注意:申明数据类型 如本例中的struct score 是不&分配内存的。&声明变量 如本例的 scores306[50] 才分配内存。&*/------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:C语言结构体数组与指针(成绩统计问题)示例之三:使用指针数组 | 作者:hofman | 军衔:上尉 | 发表时间:05-18 11:43:04&/* added on &* by hofman&*/&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&&struct score scores306[50];&/* 定义指针数组 */&struct score *k[50];&struct score *p;&p = scores306;&/* input */&for(i=0;i&50;i++)&{&printf("Input sn name maths c en \n");&scanf(INF,&p-&sn,p-&name,&p-&maths,&p-&c,&p-&en);&p-&total=(p-&maths)+(p-&c)+(p-&en);&p-&avg=(p-&total)/3;&/* 将指针放入指针数组 */&k&=&p++;&}&/* output */&for(i=0;i&2;i++)&{&/* 从指针数组中取出指针 */&p = k;&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&printf("\n");&}&}&/*&为什么要用指针数组呢?不用不是更简单吗?&看看下面的例子就会明白了&*/------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:C语言结构体数组与指针(成绩统计问题)示例之四:使用指针数组排序 | 作者:hofman | 军衔:上尉 | 发表时间:05-18 11:56:50&/* added on &* by hofman&*/&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&int i,j,h,n;&&struct score scores306[50];&struct score *k[50];&struct score *p;&p = scores306;&n = 50;&/* for sort 就是排序*/&/* input */&for(i=0;i&50;i++)&{&printf("Input sn name maths c en \n");&scanf(INF,&p-&sn,p-&name,&p-&maths,&p-&c,&p-&en);&p-&total=(p-&maths)+(p-&c)+(p-&en);&p-&avg=(p-&total)/3;&k&=&p++;&}&/* sort */&for(i=0;i&n-1;i++)&{&h =&for(j=i+1;j&n;j++)&if((k[h]-&total)&(k[j]-&total))&{&p = k[h];&k[h] = k[j];&k[j] =&}&}&/* output */&for(i=0;i&50;i++)&{&p = k;&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&/* printf(OUTF,k-&sn,k-&name,k-&maths,k-&c,k-&en,k-&total,k-&avg);&这样也可以,更直观,当然前面的写法更简洁 */&printf("\n");&}&}&/*&本程序在排序时,移动的只是结构体的指针,而非庞大的结构体数据本身,&因而其效率要高得多,这就是为什么要用结构体指针数组的原因。&*/------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:Re:C盈褦陆峁固ナ阶┯?刚?B?成悸ㄍ陈计幨屸)示=之藙拢潞使觾指斋式砖艆胁 | 作者:haohao | 军衔:六级军士 | 发表时间:05-18 16:30:58&#include&string.h&&struct shenghh{&&char name[20];&&&&&&}leader[2];&main(){&struct shenghh*i;&struct shenghh*p;&for(i=i&leader+2;i++)&{&scanf("%d",&i-&no);&scanf("%s",&i-&name);&scanf("%f",&i-&maths);&scanf("%f",&i-&eng);&scanf("%f",&i-&chin);&i-&sum=i-&maths+i-&eng+i-&&i-&sumn=i-&sum/3;&}&for(p=p&leader+2;p++)&{&printf("%d\n",p-&no);&printf("%s\n",p-&name);&printf("%f\n",p-&maths);&printf("%f\n",p-&eng);&printf("%f\n",p-&chin);&printf("%f\n",p-&sum);&printf("%f\n",p-&sumn);&}&}&杩欐槸鎴戝啓鐨勯?氳繃浜嗗ソ鍍忓皯浜嗙偣浠?涔?br&------回复此文章 |&回复主题:Re:Re:Re:C盈褦陆峁固ナ阶┯?刚?B?成悸ㄍ陈计幨屸)示=之藙拢潞使觾指斋式砖艆胁 | 作者:haohao | 军衔:六级军士 | 发表时间:05-18 16:37:29#include&string.h&&struct shenghh{&&char name[20];&&&&&&}*leader[2];&main()&{&&&for(i=0;i&2;i++)&{&scanf("%d",&leader-&no);&scanf("%s",&leader-&name);&scanf("%f",&leader-&maths);&scanf("%f",&leader-&eng);&scanf("%f",&leader-&chin);&leader-&sum=leader-&maths+leader-&eng+leader-&&leader-&sumn=leader-&sum/3;&}&for(j=0;j&2;j++)&{&printf("%d\n",leader[j]-&no);&printf("%s\n",leader[j]-&name);&printf("%f\n",leader[j]-&maths);&printf("%f\n",leader[j]-&eng);&printf("%f\n",leader[j]-&chin);&printf("%f\n",leader[j]-&sum);&printf("%f\n",leader[j]-&sumn);&}&}&这也通过了------回复此文章 |&回复主题:Re:C镅越峁固迨?橛胫刚耄ǔ杉ㄍ臣莆侍猓┦纠??模菏褂弥刚胧?榕判?| 作者:hofman | 军衔:上尉 | 发表时间:05-23 10:31:57&排序方法有多种,如插入排序,选择排序,冒泡排序,快速排序,&堆排序等等,上例使用的是最简单的选择排序。------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:C语言结构体数组与指针(成绩统计问题)示例之五:将结果保存到文件 | 作者:hofman | 军衔:上尉 | 发表时间:05-26 23:51:58&/* added on &* by hofman&*/&#include &stdio.h&&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&int len = sizeof(struct score);&int len2 = len*50;&&&&struct score *p;&struct score *k[50];&struct score *&FILE *&/* allocate mem */&buf = (struct score *)malloc(len2);&p =&/* input */&for(i=0;i&5;i++)&{&printf("Input sn name maths c en \n");&scanf(INF,&p-&sn,p-&name,&p-&maths,&p-&c,&p-&en);&p-&total=(p-&maths)+(p-&c)+(p-&en);&p-&avg=(p-&total)/3;&k&=&p++;&}&/* sort */&for(i=0;i&5;i++)&{&h=i;&for(j=i+1;j&5;j++)&{&if((k[h]-&total)&(k[j]-&total))&{&p = k[h];&k[h] = k[j];&k[j] =&}&}&}&/* output */&for(i=0;i&5;i++)&{&p = k;&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&printf("\n");&}&/* save * 这就是新增的部分啦。将结果保存到文件score.dat中*/&fp = fopen("score.dat","wb");&fwrite(buf,sizeof(struct score),5,fp);&fclose(fp);&}&------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:C语言(成绩统计问题)示例之六:将排序结果从文件中读出并显示出来 | 作者:hofman | 军衔:上尉 | 发表时间:05-27 00:01:23&/* added on &* by hofman&*/&#include &stdio.h&&#define INF "%d %s %f %f %f"&#define OUTF "%d %s %f %f %f %f %f"&main()&{&struct score {&&char name[10];&&&&&&};&int len = sizeof(struct score);&int len2 = len*50;&&struct score *p;&FILE *&/* allocate mem */&p = (struct score *)malloc(len2);&/* read 读入文件score.dat,注意"rw"写,“rb"读,&就是用二进制方式写入,再用二进制方式读出&老谭说得这样,否则会出错。这样作,编译通过了。&不这样是否会出错,我倒没有试过 */&fp = fopen("score.dat","rb");&fread(p,sizeof(struct score),5,fp);&fclose(fp);&/* output */&for(i=0;i&5;i++)&{&printf(OUTF,p-&sn,p-&name,p-&maths,p-&c,p-&en,p-&total,p-&avg);&printf("\n");&p++;&}&}&------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:C语言(成绩统计问题)示例之六:将排序结果从文件中读出并显示出来 | 作者:haohao | 军衔:六级军士 | 发表时间:05-30 19:25:21&在文件中进行读出或写入时有一些非常难看的错误。&者可能是何原因呢?------我要用我的一生来做一件事,&那就是属于我自己一份的事业;&我要用我的一生来爱一个人,&那就是属于我自己一生的伴侣;&回复主题:Re:文件读写错误 | 作者:hofman | 军衔:上尉 | 发表时间:06-01 12:44:50&首先,你应该把错误写的尽可能的详细。&因为你写得不清楚,所以我只能推测你的错误:&应该rw写,rb读,否则会出现乱码,而这是我的帖子已经说明了的。&我的示例程序都运行通过了,你可以先copy,再修改。------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:Re:C语言结构体数组与指针(成绩统计问题)示例之五:将结果保存到文件 | 作者:haohao | 军衔:六级军士 | 发表时间:06-07 21:35:40&这个程序有问题:&在文件中有乱码(指整型,浮点);------我要用我的一生来做一件事,&那就是属于我自己一份的事业;&我要用我的一生来爱一个人,&那就是属于我自己一生的伴侣;&回复此文章 |&回复主题:Re:Re:C语言文件读写 | 作者:hofman | 军衔:上尉 | 发表时间:06-21 03:19:10&#include &stdio.h&&main(int argc,char *argv[])&{&FILE *&FILE *&char buf[1024];&int i,j;&if(argc&3)&{&printf("usage : %s &inputfile& &outputfile&",argv[0]);&exit();&}&in = fopen(argv[1],"r");&if(in == NULL)&puts("File open error");&out = fopen(argv[2],"w");&if(out == NULL)&puts("File write error");&while(fgets(buf,65,in) != NULL)&{&for(i=0;i&=50;i++)&{&if(buf == w)&if(buf[i+1] == u)&fputs(buf,out);&}&}&}&------军都山下,&有一个美丽的苹果园。&苹果园里有什么呢?&好多好多的JavaBeans!!!&回复此文章 |&回复主题:Re:Re:C语言(成绩统计问题)示例之六:将排序结果从文件中读出并显示出来 | 作者:huaner | 军衔:列兵 | 发表时间:09-09 15:24:13&什么错误&写出来看看呀。------
阅读(1447) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。《程序设计基础(C/C++)》课程设计报告;通讯录管理系统;程序设计课程设计;C程序课程设计报告;一、课程设计目的和内容概述;1.目的:加深对《C课程设计》课程所学知识的理解;2.内容:设计一个简易的通讯录管理系统;该系统模拟通讯录管理系统,实现对通讯录进行管理[;要能提供以下几种功能:;(1)查看功能:选择此功能时,列出下列三类选择:;(2)当选中某类时,
《程序设计基础(C/C++)》课程设计报告
通讯录管理系统
程序设计课程设计
C程序课程设计报告 一、课程设计目的和内容概述 1.目的:加深对《C课程设计》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。其中结构体,函数的调用,算法的设计是尤为重要的。 二 、题目 通讯录管理系统。 [问题描述]
该系统模拟通讯录管理系统,实现对通讯录进行管理
[基本要求]
要能提供以下几种功能:
(1)查看功能:选择此功能时,列出下列三类选择: A:办公类 B:个人类 C:商务类
(2)当选中某类时,显示出此类所有数据中的姓名和电话号码
(3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类 p为个人类 b为商务类),电子邮件。 例如: 李华 商务类
当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。
(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三 程序设计 1.总体设计
首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用 1 程序设计课程设计
模块来分别实现程序的各个功能。各个模块用函数来实现。在通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计 根据功能需要建立显示,添加,查看,删除,修改,保存五个模块。在模块中通过调用各个函数来实现功能。详细设计如下: (1)构建结构体,写入文件 FILE *
struct address
char a[40];
//email地址 }; struct ffriend
char name[20];
char kind[20];
} friends[50];
void Load() {
fp=fopen(\
//打开文件friend.txt
if(fp!=NULL)
for(i=1;i<50;i++) {
j=fgetc(fp);
if(j==EOF)
//判断是否到了文件尾
fseek(fp,k*sizeof(struct ffriend),SEEK_SET);
fread(&friends[i],sizeof(struct ffriend),1,fp);//从文件中读取一条记录
{ fp=fopen(\
i=1; } (2)构造函数与模块 构造显示模块,增加模块,删除模块,修改模块,查询模块。程序如下: void Show(int j)
{ system(\
//实现分屏操作的函数
2 程序设计课程设计
printf(\编号-Nnumber:
printf(\姓名-Name:%-20s\
printf(\性别-kind:%s\
printf(\联系电话-Telephone:%-13ld\
printf(\} void Append(int j)
friends[j].num=j;
printf(\序号-Number : %d\
printf(\姓名-Name : \
printf(\类别-kind : \
printf(\联系电话-telephone : \
scanf(\ while(friends[j].telephone)
{printf(\电话号码不合法!请重新输入 : \
getchar(); } void Delete()
printf(\序号-Number : \
{for(j=k;j<i+1;j++)
/*插入位置后的元素顺序后移*/
{strcpy(friends[j].name,friends[j+1].name);
/*交换元素内容*/
strcpy(friends[j].kind,friends[j+1].kind);
friends[j].telephone=friends[j+1].
strcpy(friends[j].address.a,friends[j+1].address.a);
{ printf(\输入的序号太大!\
} } void Modify(int j)
{system(\ 3 程序设计课程设计
Append(j); } void Save()
{ int i,j;
system(\ printf(\请耐心等待,信息正在保存!\\n\
for(i=0;i<20;i++)
{Sleep(300);
printf(\信息已经保存成功!\\n\
fp=fopen(\
for(j=1;j<=i;j++)
fwrite(&friends[j],sizeof(struct ffriend),1,fp);
fclose(fp); } (3)主函数调用各个模块 用switch语句判断输入者要使用的功能,然后调用函数,模块实现功能。程序如下: void main() {
char searchkind[20];
char searchname[20];
printf(\通讯录
printf(\功能选择
\\n\ //输出主界面
printf(\ A.查看
printf(\ B.增添
printf(\ C.删除
printf(\ D.查询
printf(\ E.修改
printf(\ F.保存
printf(\请选择(Choice)\\n\\n\\t\\t注:输入a~h或A~H的字母:\
switch(grade)
//用switch判断使用者要选择的功能
4 三亿文库包含各类专业文献、文学作品欣赏、专业论文、中学教育、外语学习资料、应用写作文书、生活休闲娱乐、行业资料、幼儿教育、小学教育、C语言课程设计--通讯录管理系统60等内容。 
 c语言程序设计――通讯录管... 3页 20财富值 C语言课程设计报告 10页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反...  ***科技大学 本科生课程设计说明书 题 目:C 语言课程设计 ―― 通讯录管理系统 学生姓名:** 学专班号:*** 业:软件工程 级:1 指导教师:** 内蒙古科技...  C语言课程设计___手机通讯录管理系统_工学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档C语言课程设计___手机通讯录管理系统_工学_高等教育_教育专区...  通讯录管理系统课程设计... 21页 免费 计算机发展史简介 8页 免费 C语言程序...1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有...  华北水利水电大学 《C 语言程序设计》 课程设计报告 学 院: 管理与经济学院 工业工程 唐松祥 2012142** 实验楼 S-5 个人通讯录管理系统 专业班级: 学生姓名:...  通讯录信息管理系统设计计算机学院 计算机科学与技术专业 1.课程设计的目的学习了 C 语言程序设计这门课程之后,使我对程序设计有了一定的了解, 为了熟练掌握 C ...  设计名称: 学生通讯录管理系统设计 设计内容、目的与要求: 设计内容: 设计一个学生通讯录, 学生通讯录数据信息构成内容可自行设计 (如: 姓名、家庭地址、邮政编码...  c语言通讯录管理系统课程设计_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 c语言通讯录管理系统课程设计_计算机软件及应用_IT/计算机...&&帮帮文库&&
15毕业论文:通讯录c语言程序设计免费在线阅读
手机只能阅读部分文字内容,电脑访问才能阅读完整格式内容!电脑阅读效果如下图所示:
下以是该文档纯文字内容简介:
......(此处省略N个字)
],charc[M]);/****************************主函数********************************/main(){menu();return;}/******************************主菜单******************************/voidmenu(void){inta;sys...
],charc[M]);/****************************主函数********************************/main(){menu();return;}/******************************主菜单******************************/voidmenu(void){inta;system();printf(*****************************欢迎进入通讯录管理系统*****************************\n\);//输出主菜单printf(\t\t\t\t显示通讯录\);printf(\t\t\t\t查找通讯录\);printf(\t\t\t\t添加通讯录\);printf(\t\t\t\t删除通讯录\);printf(\t\t\t\t修改通讯录\);printf(\t\t\t\t排序通讯录******************************主菜单******************************/voidmenu(void){inta;system(clsq],charc[M]);/****************************主函数********************************/main(){menu();return;}/dreplace(intn);intpanduan(void);voidinput(inti);voidginput(inti);voidturn(intk);voidjiaohuan(chars[Mt(intn);voidhprint();intfind(chars[M],inti,charc[M],intsign);voidchoice(intsign);voidprint(intn);voi[N]);voidtianjia(STUDENTs[N]);voidshanchu(STUDENTs[N]);voidxiugai(STUDENTs[N]);voidpaixu();voidiprin*****声明变量******************************/voidmenu(void);voidxianshi(STUDENTs[N]);voidchazhao(STUDENTsme[M];intage;charphonum[M];charaddress[M];charqq[M];}STUDENT;STUDENTstd[N];/************************ineM/****************************定义结构体******************************/typedefstruct{charnum[M];charna的保存功能没能编出来,这些都是我以后要继续完善的。
参考文献[]谭浩强C语言程序设计教程,第三版高等教育出版社,附录源程序代码includeincludeincludeincludedefineNdef没有结束。
分的函数太多,这在读代码上会造成困难,同时也会造成程序的繁杂,不能一目了然地看出来。
还有一些功能还有待完善,比如添加功能的学号不唯一,删除没有全部删除,修改不能只修改某一项等等,还有一项预想问题,这使我受益匪浅。
程序中出错是一件很平常的事,但找错是一件很困难的事,通过找错,我对C语言的运行有了更深的了解,同时改出错的喜悦不亚于编出程序。
这次课设虽然结束了,但对我做的通讯录管理系统的完善并对于以前学过的知识都是一个很好的巩固。
通过这次课程设计,我也知道了养成良好的变成习惯很重要,这样在编程中思路会更加清晰,而且错误也会更容易找。
通过这次课程设计,我学会了调试程序,并且通过调试发现了一些过程。
panduan(),判断函数,主要功能是判断Y和N的,由于此操作过多,所以单提出来作为函数。
四设计总结通过这次课程设计,我自学了结构体那部分,并且成功运用在程序中,这样提高了自身的自学水平。
jiaohuan(),交换函数,对送入的两个字符串进行交换。
replace(),取代函数,用后一个人的信息取代前一个人的信息,在删除中用。
turn(),排序函数,冒泡法的主要算法,也是排序流程的主要录信息,当用户确认后才会修改。
hprint(),表头输出函数,负责输出表头。
iprint(),信息输出函数,可以输出某个人的信息input(),输入函数,无缓冲输入,直接对通讯录进行修改,在添加中使用化工作和最后操作。
find(),寻位操作函数,是choice()的后续操作,识别查找、删除、修改三种操作,并给出解决方案。
ginput(),缓冲输入函数,输入信息的缓冲区,修改中使用,并不直接修改通讯数,主要功能:修改录入的信息。
paixu(),排序函数,主要函数,主要功能:对录入的信息排序。
choice(),综合功能函数,地位也相当重要,主要功能:是查找、删除、修改的中间环节,连接这三项的初始化数,主要功能:修改录入的信息。
paixu(),排序函数,主要函数,主要功能:对录入的信息排序。
choice(),综合功能函数,地位也相当重要,主要功能:是查找、删除、修改的中间环节,连接这三项的初始化工作和最后操作。
find(),寻位操作函数,是choice()的后续操作,识别查找、删除、修改三种操作,并给出解决方案。
ginput(),缓冲输入函数,输入信息的缓冲区,修改中使用,并不直接修改通讯录信息,当用户确认后才会修改。
hprint(),表头输出函数,负责输出表头。
iprint(),信息输出函数,可以输出某个人的信息input(),输入函数,无缓冲输入,直接对通讯录进行修改,在添加中使用。
jiaohuan(),交换函数,对送入的两个字符串进行交换。
replace(),取代函数,用后一个人的信息取代前一个人的信息,在删除中用。
turn(),排序函数,冒泡法的主要算法,也是排序流程的主要过程。
panduan(),判断函数,主要功能是判断Y和N的,由于此操作过多,所以单提出来作为函数。
四设计总结通过这次课程设计,我自学了结构体那部分,并且成功运用在程序中,这样提高了自身的自学水平。
并且对于以前学过的知识都是一个很好的巩固。
通过这次课程设计,我也知道了养成良好的变成习惯很重要,这样在编程中思路会更加清晰,而且错误也会更容易找。
通过这次课程设计,我学会了调试程序,并且通过调试发现了一些问题,这使我受益匪浅。
程序中出错是一件很平常的事,但找错是一件很困难的事,通过找错,我对C语言的运行有了更深的了解,同时改出错的喜悦不亚于编出程序。
这次课设虽然结束了,但对我做的通讯录管理系统的完善并没有结束。
分的函数太多,这在读代码上会造成困难,同时也会造成程序的繁杂,不能一目了然地看出来。
还有一些功能还有待完善,比如添加功能的学号不唯一,删除没有全部删除,修改不能只修改某一项等等,还有一项预想的保存功能没能编出来,这些都是我以后要继续完善的。
参考文献[]谭浩强C语言程序设计教程,第三版高等教育出版社,附录源程序代码includeincludeincludeincludedefineNdefineM/****************************定义结构体******************************/typedefstruct{charnum[M];charname[M];intage;charphonum[M];charaddress[M];charqq[M];}STUDENT;STUDENTstd[N];/*****************************声明变量******************************/voidmenu(void);voidxianshi(STUDENTs[N]);voidchazhao(STUDENTs[N]);voidtianjia(STUDENTs[N]);voidshanchu(STUDENTs[N]);voidxiugai(STUDENTs[N]);voidpaixu();voidiprint(intn);voidhprint();intfind(chars[M],inti,charc[M],intsign);voidchoice(intsign);voidprint(intn);voidreplace(intn);intpanduan(void);voidinput(inti);voidginput(inti);voidturn(intk);voidjiaohuan(chars[M],charc[M]);/****************************主函数********************************/main(){menu();return;}/******************************主菜单******************************/voidmenu(void){inta;system();printf(*****************************欢迎进入通讯录管理系统*****************************\n\);//输出主菜单printf(\t\t\t\t显示通讯录\);printf(\t\t\t\t查找通讯录\);printf(\t\t\t\t添加通讯录\);printf(\t\t\t\t删除通讯录\);printf(\t\t\t\t修改通讯录\);printf(\t\t\t\t排序通讯录\);printf(\t\t\t\t退出\);printf(请选择:(~));scanf(%,a);while()//判断输入是否正确{printf(输入错误,请重新输入:(~));scanf(%dqo{scanf(%,j);printf(\);if(j==)menu();elseif(j==){if(sign==)printf(请输入查找人的学号:);if(sign==)printf(请输入删除人的学号:);if(sign==)printf(请输入修改人的学号:);scanf(%,c);hprint();for(i=;N;i++){flag=find(std[i]num,i,c,sign);if(flag==)//判断是否有记录js++;}if(js==){printf(没有此人记录\);system();if(sign==)chazhao(std);if(sign==)shanchu(std);if(sign==)xiugai(std);}break;}elseif(j==){if(sign==)printf(请输入查找人的姓名:);if(sign==)printf(请输入删除人的姓名:);if(sign==)printf(请输入修改人的姓名:);scanf(%,c);hprint();for(i=;N;i++){flag=find(std[i]name,i,c,sign);if(flag==)js++;}if(js==){printf(没有此人记录\);system();if(sign==)chazhao(std);if(sign==)shanchu(std);if(sign==)xiugai(std);}break;}elseif(j==){if(sign==)printf(请输入查找人的电话:);if(sign==)printf(请输入删除人的电话:);if(sign==)printf(请输入修改人的电话:);scanf(%,c);hprint();for(i=;i);}/**************冒泡法排序函数****************/voidturn(intk){inti,j,js,t,flag;for(js=;std[js]age!=;js++);for(j=;j){jiaohuan(std[i]num,std[i+]num);jiaohuan(std[i]name,std[i+]name);jiaohuan(std[i]phonum,std[i+]phonum);jiaohuan(std[i]address,std[i+]address);jiaohuan(std[i]qq,std[i+]qq);t=std[i]age;std[i]age=std[i+]age;std[i+]age=t;}}}}/*****输出表头函数*****/voidhprint(){printf(学号姓名年龄手机号码QQ号码电子邮箱(或地址)\);printf(_______________________________________________________________________________\);}/*****输出信息函数*****/voidiprint(intn){printf(%,std[n]num);printf(%,std[n]name);printf(%,std[n]age);printf(%,std[n]phonum);...
15毕业论文:通讯录c语言程序设计免费在线阅读
发布时间: 20:50:31
文档类型:
该文档共页27页,可在线阅读全文

我要回帖

更多关于 c语言投票系统源代码 的文章

 

随机推荐