20xx年个人通讯录管理系统c语言课程设计报告内容摘要:
)。 /*全部 删除 */ void shanchu_dange()。 /*单个删除 */ void xianshi()。 /*号码显示 */ zhucaidan()主菜单函数 其源代码如下: void zhucaidan() { char c。 system(cls)。 printf(\n\t\t| 欢迎您使用通讯录管理系统 版 |)。 printf(\n\t\t| 1添加联系人 2查询和显示联系人 |)。 printf(\n\t\t| 3删除联系人 4修改联系人 |)。 printf(\n\t\t| 5保存退出 0不保存退出 |)。 printf(\n\t\t||)。 printf(\n\t\t 请选择您所所要的服务: )。 c=getch()。 switch (c) /*对 于上边的选择项目 */ { case 39。 139。 :zengjia()。 break。 case 39。 239。 :chazhao()。 break。 case 39。 339。 :shanchu()。 break。 case 39。 439。 :xiugai()。 break。 case 39。 539。 :writefile()。 break。 case 39。 039。 :exit(0)。 default:zhucaidan()。 /*如果没有则返回主菜单等待输入 */ } } 较难语句分析: ① system(cls)。 清除输入在屏幕上的数据; DJHFKDFK DKFJ KDJFKDJKFJ KDJFK JFKD FKDJGK JKLFJG LJSKLGJ FKLJG。 SJKLGJ。 LDSJ ② c=getch()。 将键盘上输入的数据赋予 c; ③ switch (c) case : 实现对主菜单上的选项的控制; main()主函数 main()函数的源代码见下: void main() /*主函数 main*/ { readfile()。 /*读入文件 */ while(1) /* 循环(永远进行) */ { zhucaiidan()。 /*调用主菜单函数 */ } } main()函数功能分析: main()函数通过调用 readfile()函数和循环 menu()函数实现对入文件和界面进行控制。 readfile()读取 文件函数 其源代码如下: void readfile() { if((fp=fopen(c:\\通讯录 .txt,r))==NULL) /*以只读方式打开判定文件是否为空 */ { printf(\n\t\t\t 通讯录文件不存在 )。 /*判断结论 */ if ((fp=fopen(同通讯录 .txt,w))==NULL) /*只写方式判断 */ { printf(\n\t\t 建立失败 )。 /*为空结论 */ exit(0)。 /*退出 */ } else /*不为空则执行 else*/ { printf(\n\t欢迎使用通讯录管理系统 )。 printf(\n\t 通讯录文件已建立 )。 printf(\n\t 按任意键进入主菜单 )。 printf(\n\t)。 getch()。 return。 } exit(0)。 } fseek(fp,0,2)。 /*文件位置指针移动到文件末尾 */ if (ftell(fp)0) /*文件不为空 */ { rewind(fp)。 /*文件位置指针移动到文件开始位置 */ for (n=0。 !feof(fp) amp。 amp。 fread(amp。 txl[n],sizeof(struct tongxunlu),1,fp)。 n++)。 printf(\n\t欢迎使用通讯录管理系统 版 )。 printf(\n\t 文件导入成功 )。 DJHFKDFK DKFJ KDJFKDJKFJ KDJFK JFKD FKDJGK JKLFJG LJSKLGJ FKLJG。 SJKLGJ。 LDSJ printf(\n\t 按任意键返回主菜单 )。 printf(\n\t)。 getch()。 return。 } printf(\n\t欢迎使用通讯录管理系统 版 )。 printf(\n\t 文件导入成功 )。 printf(\n\t 通讯录文件中无任何纪录 )。 printf(\n\t 按任意键返回主菜单 )。 printf(\n\t)。 getch()。 return。 } 较难语句分析: ① if((fp=fopen(c:\\通讯录 .txt,r))==NULL) 以只读方式打开判定文件是否为空; ② fseek(fp,0,2)。 文件位置指针移动到文件末尾; ③ ftell(fp): 返回 当前文件 位置,也就是说返回 FILE 指针 当前位置 ; ④ rewind(fp)。 文件位置指针移动到文件开始位置; ⑤ feof(fp) 检测流上的文件结束符 ; ⑥ fread(amp。 txl[n],sizeof(struct tongxunlu),1,fp)。 n++) 从 fp 指向的文件中向 txl [n]中 读 入一个( struct tongxunlu)类型的值并 输出后面的内容。 若没有成功执行就 不输出后面的内容。 void readfile()函数的功能 分析 : 首先由 if((fp=fopen(c:\\通讯录 .txt,r))==NULL) 判断文件是否存在,如果不存在,则显示通讯录文件不存在,如果文件为空,则显示建立失败;若建立成功,则显示通讯录文件已建立,然后利用 fseek(fp,0,2)。 将文件位置指针移动到文件末尾 等待输入。 writefile()联系人写入文件函数 函数源程序见下: void writefile() /*联系人写入文件 */ { int i。 if ((fp=fopen(c:\\通讯录 .txt,w))==NULL) { printf(\n\t\t 文件打开失败 )。 } for (i=0。 in。 i++) { if (fwrite(amp。 txl[i],sizeof(struct tongxunlu),1,fp)!=1) { printf(\n\t\t 写入文件错误 !\n)。 } } fclose(fp)。 /*关闭文件 */ printf(\n\t)。 /*输出提示信息 */ printf(\n\t\t 通讯录文件已保存 )。 DJHFKDFK DKFJ KDJFKDJKFJ KDJFK JFKD FKDJGK JKLFJG LJSKLGJ FKLJG。 SJKLGJ。 LDSJ printf(\n\t\t 谢谢使用,欢迎再次使用 !\n)。 printf(如果对本软件有疑问 ,请到我们官网 ()提出您的问题 ,我们将为您解答 .\n)。 printf(我们的软件有不足之处 ,欢迎到官网 ()反映,我们将努力改正 !)。 printf(\n\t\t 按任意键退出程序 \n\t\t)。 /*输出完毕 */ exit(0)。 printf(\n\t)。 } 较难语句分析: ① fp=fopen(c:\\通讯录 .txt,w)) 以只写的方式打开 c:\\ 文件赋予 fp; ② if (fwrite(amp。 txl[i],sizeof(struct tongxunlu),1,fp)!=1) 从 fp 指向的文件中向 txl [n]中 写 入一个( struct tongxunlu)类型的值并 输出后面的内容。 若没有成功执行就 不输出后面的内容。 ③ fclose(fp)。 关闭文件 writefile()联系人写入文件函数的功能 分 析 : 将 c:\\通讯录 .txt 文件以只读方式打开 付给 fp,如果为空则输出“文件打开失败”;若果成功则执行 if (fwrite(amp。 txl[i],sizeof(struct tongxunlu),1,fp)!=1) ,如果写入 ( struct tongxunlu) 成功则关闭文件,若果不成功则输出“写入文件错误 !”。 zengjia()增加联系人函数 其源程序如下: void zengjia() { printf(\n\t\t 请输入联系人信息 \n)。 printf(\n\t\t 输入联系人姓名 :)。 scanf(%s,txl[n].xingming)。 /*键盘输入 */ printf(\n\t\t 输入联系人电话号码 :)。 scanf(%s,txl[n].dianhua)。 printf(\n\t\t 输入联系人地址 :)。 scanf(%s,txl[n].dizhi)。 n++。 /*统计个数 */ printf(\n\t\t 是否继续添加联系人 ?(Y/N):)。 /*是否继续输入联系人 .*/ if (getch()==39。 y39。 ) zengjia()。 return。 } 功能分析: 调用 zengjia()函数后,就可以通过 txl[n]. xingming, txl[n].dianhua , txl[n].dizhi 数组从键盘上输入联系人的姓名,电话,地址,输入完毕后,系统会提示是否继续输入,输入“ y”后,则再次调用 zengjia()。 函数,如此循环,直到不输入联系人为止。 shanchu()删 除函数主界面 原函数 代码 : void shanchu() { DJHFKDFK DKFJ KDJFKDJKFJ KDJFK JFKD FKDJGK JKLFJG LJSKLGJ FKLJG。 SJKLGJ。 LDSJ char c。 if(n==0) /*如果通讯录中没有一个记录输出以下部分 */ { printf(\n\t\t 对不起,文件中无任何纪录 )。 printf(\n\t\t 按任意键返回主菜单 )。 getch()。 return。 } system(cls)。 /*清屏 */ printf(\n\t\t 删除菜单 )。 printf(\n\t\t| 1删除所有 2删除单个 |)。 printf(\n\t\t| 3返回主菜单 |)。 printf(\n\t\t|。20xx年个人通讯录管理系统c语言课程设计报告
相关推荐
两抢一盗 等多发性侵财犯罪,严厉打击拐卖妇女几童犯罪,严厉打击 非法开采 犯罪活动,严厉打击贪污贿赂犯罪,严厉开展 扫黄打非 专项斗争,严厉打击赌博违法犯罪活动,坚决打击、查禁毒品犯罪等违法犯罪活动。 要加强对社会治安混乱地区和突出治安问题的排查整治。 2020 年群众安全感排名全市后 10 位的 XX 镇、和群众安全感在 90%以下的 XX 乡、草海镇、作为整治重点,加大对城乡结合部、城中村
1、单 11 号”(原代号 5511) 选育单位:重庆市农业科学研究所品种来源:以自选系 549 为母本,外引系交 51 为父本杂交组配而成。 产量表现;2000 年该品种在重庆市区试山区组中平均亩产 斤,比对照雅玉 2 号增产 2001 年该组合在本市山区组区试中产量 330545 公斤之间,平均亩产 4364 公斤,比对照雅玉 2 号增产 两年试验中产量均高于对照雅玉 2 号,平均亩产
号粤单 1 号是广东省农科院作物研究所育成的中熟、优质、高产、紧凑型玉米单交种。 一、区试平均亩产 斤和 斤,分别比阳单 82 大面积示范亩产 500600 公斤。 高 197 厘米,穗位高 72 厘米左右,穗长 18 厘米以上,米以上,穗行数 14 行,每穗 426 粒左右,千粒重 272 克左右,出籽率85,秃顶很短。 肥抗倒,抗寒,抗旱,高抗大小斑病、纹枯病和穗腐病,抗玉米螟和蚜虫。
充斥市场,但是对艺术品的交易价格没有什么影响。 ( E) 国外资金进入艺术品拍卖市场,对价格攀升起到了拉动作用。 48. 近期国际金融危机对毕业生的就业影响非常大,某高校就业中心的陈老师希望广大同学能够调整自己的心态和预期。 他在一次就业指导会上提到,有些同学对自 己的职业定位还不够准确。 如果陈老师的陈述为真,则以下哪项不一定为真。 Ⅰ . 不是所有的人对自己的职业定位都准确。 Ⅱ .
交玉米制种质量的好坏,直接影响种子的质量,对经济效益会产生较大的影响。 一、种时应考虑不同品种之间的隔离区距离。 具备时间观念,对制种质量产生严重影响。 为提高农户的制种水平,培养其紧迫意识,技术人员需耐心给农户传授制种技术,逐年提高各项制种技术。 二、般制种玉米隔离距离为 300 米。 大粒、特小粒等粒型不一致和颜色不一致的种子,以初步保证亲本种子的纯度。 芽鞘颜色不一致、叶色、叶型不一致
定了试验的瓶口和光亮处的位置是确定不变的,但后来却又再三强调企业经营环境的变化无常——显然其论证已经前后矛盾了。 再次,假设瓶口一开始就对着光亮处,那么,遵循“对着光亮处飞”这种规则的蜜蜂很可能要比无规则乱飞的苍蝇更早地逃生。 所以,怎能仅仅因为某一次遵循错误规则而失败就建议企业不应遵循任何规则。 最后,环境变化无常是会导致某种程度的模糊性与不确定性,但同时哲学原理也表明