摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。因此本人结合要求,对SQLServer数据库、SQL语言原理、VisualBasic.net应用程序设计,数据库技术进行了较深入的学习和应用,主要完成对客户信息管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的客户信息管理系统可以满足需要。经过一学期的C语言的学习,使我了解高级程序设计的结构,掌握了基本的程序设计和技巧,掌握了基本的分析和对利用计算机求解问题的能力,具备了初步的高级语言程序设计能力本人完成了本学期的C语言的课程设计——长春市学生成绩管理程序。【关键字】好友信息管理,C语言,信息查询1目录摘要………………………………………1第一章绪论…………………………………3第二章问题定义……………………………5第三章总体设计与详细设计………………6第四章编码实现……………………………13第五章调试与测试…………………………16第六章总结与心得………………………21附录:1源代码…………………………………242参考资料………………………………342第一章绪论1.1选题背景:纸质的信息录已经不能满足我们的要求,更新麻烦,查询困难等缺点是纸质信息录所不能克服的。在此情况下,迫切需要一个电子版的信息录来满足我们的需求。现代人社会交往越来越多,人们随身携带有信息录,对通讯录进行必要的管理,对人们实现快速查询记录提供了极大的方便。考虑到要对信息录进行快速检索,所以设计一个信息录系统。1.2系统目标:本程序是非数值计算型算法设计,设计出了好友录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。1.3系统目的:1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!32.利用适当的形式命题,了解结构化程序的设计方法,培养良好的编程思维模式,2。通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。4第二章问题定义2.1系统总体结构◆建立好友信息录,信息至少包含名字、外号、性别、电话号码、通讯地址、爱好等有效性息;◆能够提供添加、删除通讯录信息的功能;◆能够提供按不同方式查询的功能;如按姓名或外号、地址、电话等查询;◆将好友信息保存在文件中,并从文件中读出好友信息;2.2系统功能分析添加:添加信息记录;查询:查询信息记录;删除:删除信息记录;显示:显示信息记录;保存:将信息保存到文件;读取:读取已经保存的文件;5第三章总体设计与详细设计3.1总体设计本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、添加,保存,读取功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。系统功能模块图:图3-1添加:可以添加好友信息记录,依次输入名字、外号、性别、电话号码、通讯地址、爱好后,会提示是否继续添加。查询:可以选择用姓名、外号、地址三种方式查询删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容主菜单添加查找删除显示保存退出插入读取出6显示:将所有的好友信息输出;保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件;读取:输入文件名(带后缀名)后,即可读出已经保存了的文件信息下面就是总的程序流程图:否是开始执行welcome()函数选择(a)调用input()函数调用inset()函数调用search()函数调用delete()函数调用display()函数执行exit(1)退出系统调用Savedate()函数c=0,1,2,3,……8结束调用loaddate()函数73.2详细设计(1).工作流程图:①input添加:好友信息(如图3-2-1)是i++是否图3-2-1Inti;i=0判断是否有空间输入信息返回判断是否继续添加信息开始否i++8②insert()插入好友信息(如图3-2-2)图3-2-2开始输入信息i;N-1;(strlen(friend[i].name))!=0inti;i=0i++是否返回9③search查找:三种查询方式,以名字查询方式为例(如图3-2-3)图3-2-3开始iN-1;(strcmp(friend[i]))==0输出friend[i]inti=0;返回输入要查询的名字是否10④delete删除:删除好友纪录(如图3-2-4)开始inti=0输入要删除人的名字删除该项纪录判断通信录中是否有这名字输出“通信录中没有此人请重新输入”是否结束11图3-2-4⑤display查看:查看全部纪录(如图3-2-5)图3-2-5开始inti=0;iN;i++输出全部好友信息结束12第四章编码实现头文件包含:#includestdio.h#includestdlib.h#includestring.h#defineN30数据结构:structfriend{charname[N];/*名字*/charnickname[N];/*外号*/charsex[N];/*性别*/charbirthday[N];/*生日*/chartelephone[N];/*电话*/charaddress[N];/*地址*/charhobby[N];/*爱好*/}friend[N];13主函数:main()/*主菜单*/{intc;welcome();/*输出主菜单*/while(1){scanf(%d,&c);/*输入值赋给c*/switch(c){case0:clrscr();welcome();break;/*主菜单*/case1:clrscr();input();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*输入信息*/case2:clrscr();insert();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*插入信息*/case3:clrscr();search();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*查找信息*/case4:clrscr();delete();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*删除信息*/case5:clrscr();display();printf(youmayenter0to14backtowelcometolookyouchoices!\n);break;/*显示所有信息*/case6:clrscr();save();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*保存信息*/case7:clrscr();load();printf(youmayenter0tobacktowelcometolookyouchoices!\n);break;/*读取储存信息*/case8:clrscr();exit(1);/*退出*/}}}15第五章调试与测试5.1执行软件1.添加人员信息输入添加的信息姓名:外号:性别:生日:电话号码:地址:爱好:每次输入完毕后按回车根据是否继续添加,输入Y/N,继续或结束添加可以再根据提示使用查找功能。该操作可以看见刚才添加的人员信息。2.插入人员信息输入添加的信息输入添加的信息姓名:外号:性别:生日:电话号码:地址:爱好:每次输入完毕后按回车,该操作可以插入的人员信息。3.查找人员信息:根据提示输入3按回车根据提示选择查找方式:如(输入1按回车,按姓名查找)输入要查找的人员名字:例如(liu)按回该操作可以显示查找到的人员信息。164.删除人员信息:根据提示输入4按回车显示人员信息输入需要删除人员姓名:例如(liu)按回车显示需要删除人员信息并删除。该操作可以删除所选人名单的信息。5.查看全部信息时:根据提示输入5按回车该操作可以查看所有人员名单的信息。6.保存信息:根据提示输入6按回车输入保存的文件名。该操作可以保存所有人的人员信息。7.读取信息:根据提示输入7按回车,输入读取的文件名,该操作可以读取所有人的人员信息。如果没有此文件输出操作错误。8.退出系统:根据提示输入8按回车,该操作可以退出系统。5.2功能模块的调试5.2.1.运行进入程序主菜单主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要由主函数提供,其功能由子函数实现。如图(5-2-1)17图5-2-15.2.2.添加模块进入添加界面可以根据要求添加用户想添加的人员信息。(如图5-2-2)图5-2-2185.2.3.删除模块删除功能界面(如图5-2-3)图5-2-35.2.4.查找模块进入查找记录界面(如图5-2-4-1~~~~5-2-4-3)图5-2-4-119图5-2-4-2图5-2-4-32052.6.保存模块保存记录界面(如图5-2-6)图5-2-65.2.7.读取模块读取记录界面(如图5-2-7)图5-2-721第六章心得体会本次的C程序实设计实验是我进入大学以来第一次独立设计并成功的大实验。通过自己动手,发现和解决问题,我发现了自己的许多缺陷与不足。平时没有掌握好的知识在这次实验中彻底暴露出来。在经过不断思考和总结,以及不断查阅资料和上机运行,尝试再尝试的过程中,我终于解决其中大部分问题,但是还是存在一些问题无法解决。但我相信,在今后的自我学习过程中能够解决好它们。总的来说,通过这次C课程设计,我还是收获颇丰的。因为我不仅对C的操作有了进一步的熟悉与掌握,还了解到了程序设计的设计思想、结构构想、书写风格及其注释的格式。当我选择手机名片管理系统这个题目时,一开始想运用大量子函数及指针来完成,但是在仔细的构思之后,觉得不一定要用很多子函数解决问题,于是改变了编程思路,令程序设计起来没有那么复杂,界面看起来也清爽整洁多了。通过结构体的使用,令定义方便简洁;通过大量的使用if和while、do……while语句后,充分体会了他们的强大功能与作用;指针的运用也给设计带来了方便。当然还有不少文件的读写问题,不过通过不断测试以及上网查询之后都顺利解决了。由于该C设计运用了大量的循环语句,因此对于循环的控制要十分小心,要时刻注意着它们的循环条件,有时要特别注意while和do-while的区别。在if语句的循环嵌套中也得时刻注意if……else的配套使用及作用范围等。在C课程设计过程中,遇到的许许多多的困难都让人抓狂。在软件一次次的调试失败下想放弃的念头也不断出现,但最后我还是让自己坚持了下来,毫不畏惧困难。在同学的帮助与老师之前的讲解下,我总算是不太顺利的完成了课程设计。当软件调试成功时那种喜悦的感觉,真好,它是没有什么东西可