c语言个人通讯录管理系统课程设计报告(编辑修改稿)内容摘要:
p=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 文件导入成功 )。 XXXXX学院《 C语言程序设计》课程设计报告 10 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 通讯录文件已保存 )。 XXXXX学院《 C语言程序设计》课程设计报告 11 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() { XXXXX学院《 C语言程序设计》课程设计报告 12 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|)。 printf(\n\t\t 请选择您所所要的服务: )。 c=getch()。 /*输入的赋予 choice*/ switch (c) { case 39。 139。 :shanchu_quanbu()。 break。 case 39。 239。 :shanchu_dange()。 break。 case 39。 339。 :zhucaidan()。 break。 default:zhucaidan()。 break。 } } 函数功能分析: 通过界面上的数字选项,调用 shanchu_quanbu()、 shanchu_dange()。 和 zhucaidan()函数来实现不同的删除功能。 xianshi()显示和查询函数 函数源程序: void chazhao() { char c。 system(cls)。 printf(\n\t\t 显示和查询联系人 )。 printf(\n\t\t| 1逐个显示所有 2按姓名查询 |)。 printf(\n\t\t| 3按电话查询 4返回主菜单 |)。 printf(\n\t\t|)。 printf(\n\t\t 请选择您所所要的服务: )。 c=getch()。 switch (c) { case 39。 139。 :xianshi()。 break。 /*显示所有号码 */ case 39。 239。 :chazhao_xingming()。 break。 /*调用按姓名查询函数 */ case 39。 339。 :chazhao_dianhua()。 break。 /*调用按号码查询函数 */ case 39。 439。 :zhucaidan()。 break。 /*主菜单 */ } } XXXXX学院《 C语言程序设计》课程设计报告 13 函数功能分析: 首先通过 getch()。 从键盘上输入选项,通过 switch case()来调用 xianshi()、chazhao_xingming()chazhao_dianhua()三个函数实现不同的功能。 xianshi()显示所有人函数 函数源程序: void xianshi()//显示所有联系人函数 { int i。 system(cls)。 //清楚屏幕 if(n!=0) { printf(\n\t\t欢迎您查询通讯录所有联系人信息 )。 for (i=0。 in。 i++) /*依次序显示 */ { printf(\n\t\t 姓名: %s,txl[i].xingming)。 printf(\n\t\t 电话: %s,txl[i].dianhua)。 printf(\n\t\t 地址: %s,txl[i].dizhi)。 printf(\n\t\t)。 if (i+1n)。c语言个人通讯录管理系统课程设计报告(编辑修改稿)
相关推荐
trcpy(member[j].telno,member[j+1].telno)。 36. } 37. judge=0。 38. } 39. else 40. { 41. printf(请选择您接下来想要做的 :\菜单 \ \n)。 42. fflush(stdin)。 43. scanf(%d,amp。 cmd2)。 44. if(cmd2==1) 45. main()。 46. else
41 Viewcolor 网络抓屏技术使网络信号的显示达到新的高度、网络工作站实时 SCADA、实时GPS、网络播放视频、 PPT 播放等终端在大屏幕的快速显示。 工作站终端通过网络方式在大屏幕上显示会更加灵活,实现在大屏幕上任意位置、任意比例快速显示;各种计算机工作站数量没有限制,今后的扩容只需将要上大屏显示的计算机联入网络即可。 以上几种显 示模式图均可灵活混合使用
........................................... 79 第 10 章 工程概预算及运行管理 ................................................................................ 80 工程概算 .............................................
压型控制器的输出电压反馈控制部分,又增 加了一个反馈环节, 它的电路工作原理是:与经误差放大器比较放大后得到 ,由恒频时钟脉冲置位锁存器输出脉冲驱动管导通,电杭州电子科技大学本科毕业设计 9 源电路中因输出电感的作用使脉冲电流逐渐增大,当电流在采样电阻 RS 上的电流信号电压 VS幅 度达到电平时,脉宽比较器的状态反转,锁存器复位,驱动撤除,功率管关断,电路逐个的检测和调节电流脉冲,控制电源输出
续模型和原子模型。 在连续模型中,材料被看成宏观连续介质,模拟过程一般要涉及到用有限差分法或有限元法解偏微分方程。 在原子模型中,材料被看作单原子的 结合,每个原子都作为基元来处理,主要运模拟计算 建立体系模型 建立模拟模型 计 算 体 系 计算模型 用的是分子动力学方法( MD: MolecularDynamics Simulation)与蒙特卡洛方法( MC:Monte Carlo
北京化工厂 3 无水 Na2CO3 分析纯 齐齐哈尔大学试剂厂 4 Al(OH)3 化学纯 天津化学试剂厂 5 MnO2 化学纯 天津化学试剂厂 6 H2 高纯 市售 7 N2 高纯 市售 8 CO2 高纯 市售 齐齐哈尔大学毕业设计(论文) CO2+H2 反应过程中催化剂的研究 11 实验原理 催化剂的制备 催化剂的制备方法可以分为湿法和干法。 干法包括热溶法、混碾法、和喷涂法等。