本程序利用汉字的点阵字模以及图形模式下设置改变字体大小及字体类型,实现进入与退出界面有图形化的效果。此为本程序的亮点之一。亮点二为本程序的登陆模式,一为用户登陆模式,二为访客登陆模式,这是在完成了程序应有的基本功能的基础上,扩展的功能,并由这一功能,连接起程序的基本功能。由于个人觉得通讯录是个人用的程序,可能有些资料不想让人删除或不想让人在通讯录中添加些没有用的信息,只是把通讯录给他人查阅,因此就想出了在程序中设置权限,来区分用户和访客的权利。在用户模式下,不但可以使用程序的所有基本功能(包括新建文件、打开文件、合并文件、添加记录、删除和查询记录的功能)外,还有修改密码的功能。这是个人觉得本程序最为与众不同的地方。因为密码是保存在文件中的,并且使用了一些转换规则,能够有效地保护拥护的密码,即使他人打开了密码文件,也不能得到拥护真正的密码,并且设置了修改密码的次数,如果三次都输入错误的密码,则会被强行退出系统。如果用户忘记了密码,也不用担心,与本程序一起的还有一个名为:setpassword.exe的小程序,可以通过该程序重新修改密码。
一个星期的课程设计,虽然有些疲劳和困倦,但带给我很多的收获。C语言已经学了一个学期,大概三个多月了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了两天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑,但却有另一些问题,例如乱码的问题,这就要花很多的时间在重新写代码上了,用一些可能不出现乱码的方法来实现该功能。因此我觉得每次写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。此外,这样多种方法写程序可以锻炼自己多种思维方式解决一个问题的能力。
程序开发是没有终止的,除非该程序已经不值得开发,没有完美的程序,只有更好的程序,例如本程序,由于时间的关系,考虑到了提高安全的问题,但没有时间开发图形化的界面。还有是的编译器不是每个都一样的。不同公司的编译器,存在着些差异,这就要我们编译出移植性更好的程序。编写本程序,也遇到过这样的问题,当我用strcmp()函数来比较两个密码是否相符,编译器都通过了,但结果不相同。在wintc中是正确的,但是到了turboc2.0中却是错误的。这就只好自己重新编译一个类似strcmp()的函数。虽然现在可以实现这个功能了,但是问题仍然存在,如果设置的密码少于5位,例如设置了一个密码为admi,但输入admin,一样是显示正确的,这可能是与我写的strcmp()考虑不周有关,有待改进。
在多文件编译的过程中,由于吸取了综合实验的经验,在该过程中,减少了相当多连接文件的时间。虽然本程序用的是文本菜单,但是很多地方都设置了清屏函数clrscr(),并且合理调用指定的目标函数,使得界面看起来更美观。
通过课程设计,明白到了原来开发一个小小的实用系统,是需要考虑到很多方面的问题的,例如不可以出现菜单返回不到的情况,每一步都应该给予用户足够的选择与提示,这与平时做练习是不同的,但也因为平时有许多的练习基础,会使你做起程序来,更加得心应手。另外就是要把错误总结,有许多错误或者陷阱是平时自己陷进去的,因此很深刻,但也有些错误或者陷阱是自己还没有接触或者犯过的,这就应该看多些别人的总结,使自己不犯这些错误。不让自己掉进这些陷阱。这样长期总结,会对自己有很大的帮助。
一个星期的课程设计,虽然有些疲劳和困倦,但带给我很多的收获。C语言已经学了一个学期,大概三个多月了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了两天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑,但却有另一些问题,例如乱码的问题,这就要花很多的时间在重新写代码上了,用一些可能不出现乱码的方法来实现该功能。因此我觉得每次写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。此外,这样多种方法写程序可以锻炼自己多种思维方式解决一个问题的能力。
程序开发是没有终止的,除非该程序已经不值得开发,没有完美的程序,只有更好的程序,例如本程序,由于时间的关系,考虑到了提高安全的问题,但没有时间开发图形化的界面。还有是的编译器不是每个都一样的。不同公司的编译器,存在着些差异,这就要我们编译出移植性更好的程序。编写本程序,也遇到过这样的问题,当我用strcmp()函数来比较两个密码是否相符,编译器都通过了,但结果不相同。在wintc中是正确的,但是到了turboc2.0中却是错误的。这就只好自己重新编译一个类似strcmp()的函数。虽然现在可以实现这个功能了,但是问题仍然存在,如果设置的密码少于5位,例如设置了一个密码为admi,但输入admin,一样是显示正确的,这可能是与我写的strcmp()考虑不周有关,有待改进。
在多文件编译的过程中,由于吸取了综合实验的经验,在该过程中,减少了相当多连接文件的时间。虽然本程序用的是文本菜单,但是很多地方都设置了清屏函数clrscr(),并且合理调用指定的目标函数,使得界面看起来更美观。
通过课程设计,明白到了原来开发一个小小的实用系统,是需要考虑到很多方面的问题的,例如不可以出现菜单返回不到的情况,每一步都应该给予用户足够的选择与提示,这与平时做练习是不同的,但也因为平时有许多的练习基础,会使你做起程序来,更加得心应手。另外就是要把错误总结,有许多错误或者陷阱是平时自己陷进去的,因此很深刻,但也有些错误或者陷阱是自己还没有接触或者犯过的,这就应该看多些别人的总结,使自己不犯这些错误。不让自己掉进这些陷阱。这样长期总结,会对自己有很大的帮助。
转载于:https://blog.51cto.com/songcz/153976