233,这应该是我的处女项目了。

前言

大一时,做的 C 语言的实训项目 baby,拿出来怀念一下~

正文

实训报告如下:

实训计划

    起初做系统程序,本着一个不想太现实的心,结合着偶然的思路CCUT表白墙犹然而来。

    原本想这个程序,大致应该很简单,毕竟只有初等函数,连个指针都用不着,不过慢慢发现,它并不是这样,也差点让我濒临放弃。像一些被告白人 告白人 告白宣言根本无法把他们单独读出来,以此修改被告白人后的排序,青春进行曲名字重复,排序名字重复,以及修改密码的很多 Bug ,很让人焦头烂额。

    虽然做系统只花了五天时间,但在第二天晚上,各种 Bug 以及各种功能达不到目的,让我不得不放弃,于是第三天,不甘心的我选择重做。最终我发现了关键的问题:再存入文件中,手动存空格,会造成错误,文件只会保存空格前面的信息。

    嗯,我选择了这种格式:fprintf(fp,“%s”,被告白人名字(告白人名字,告白信息) 并且,我根据(),标识符以及一些小手段,解决了很多问题。然后至于修改告白信息,删除信息信息,我是先定位 要进行操作信息 然后,把他们全换成*号,最后进行单个字符存入文件不存入*号,修改的信息单独存入。

    所以以至于,这个程序的含金量不高,本想做个纯链表的系统程序,但慢慢做着做着,就发现,连指针都没用上,嗯,是这样。

    您可以有疑问,我为什么不用 fseek ,客观来说,每个人登陆系统,根本无法知道上一个人在文件中 存进了多少长度,所以我不想这样做。

功能总结

    说实话,有些功能,话语很幼稚,但某些环境要求它们的出现,也让您见笑了。

  1. ASCII 码里面 3 就是一个字符小爱心,这个大心,三部分完成:

    1. 上三行,左部分,然后右部分。
    2. 下三行,左部分然后右部分。
    3. 最后一个心。
  2. 登陆界面,第一步,判断修改密码人的名单中是否有号主名字,如果有先是到着遍历 把号主名字后的最后一次改的密码那出来,进行比较,有三次机会。

    所谓的主菜单,普通的printf构成。

  3. 马上告白:把被告白人的姓名单独存到一个文件,用于排序,2.把被告白人名字(告白人名字,告白信息),存到一个文件,用于以下功能。

  4. 修改密码:客观上来讲,这个功能是肯定要有的,把修改人姓名,与新密码存入文件,修改一次存一次,读取时倒着遍历读取。

  5. 青春进行曲:相当于一个查看功能了,把每一对接受交往的情侣保存到一个文件,先是利用读取字符方式判断文件是否为空,然后把文件指针一定要调回开头,如果用就分拆文件中的字符串,利用二维数组与标识符,下标值为奇数存入甲的名字,为偶数就是乙的名字,然后在把重复的数组筛选出去,然后再遍历输出。

  6. 男神女神榜:嗯,就是排序了。先是以告白次数进行对比,如果相等就利用名字的 ASCII 码进行对比。排序方法:结构体加自定义sort函数。先是把被告白人的文件读取出来,再判断文件是否为空,就用功能三的办法,如果不为空,分拆数组,如果有重复,告白次数就自加,然后把重复的名字筛选出去,不保存进结构体,然后排序再遍历输出。

  7. 查看邮箱:先是把被告白人的文件读到内存中,判断有多少个号主名字,也就是收到几条告白信息,如果告白信息存在,就读取,告白人,被告白人,告白信息文件,然后分拆数组,利用二维数组与标识符,下标值为偶数存入告白人名字,为奇数就是告白信息,其中如果有人撤回,也会被判断出来(嗯,系统性质),就是光有你的名字,然后,后面的括号中啥也没有,利用比较,撤回有两种情况,我就不一一说

  8. 撤回消息:把告白信息文件读到内存,定位到号主名字(也就是告白人名字),把号主名字,告白信息全赋值成*号,然后新建一个文件,把不等于*号的存储进去,然后把原文件删除,把新文件换成原文件的名字。

  9. 修改消息:刚开始做这个功能,一直存在个 Bug ,只能修改成比原来字符串长度短的,然后换了一种暴力的办法,先输入要修改被告白人的名字与修改后的告白信息,然后定位到号主名字,把前后信息换成*号,然后把不等于星号的存到新文件,然后再单独把修改的被告白人的名字信息,按照特定格式存储到文件,并且,这个时候,男神女神榜也要做相应的变化,把原来输出的换成新修改的,还是这种办法,然后存到新文件,把原文件删除,把新文件换成原文件的名字。

  10. 注销账号:也是客观存在的东西,我一直假如这个系统是个公共机器,必须有下机的功能。因为一些特定的输入是用结构体来完成,然后只要结构体的下标值不同,就可以实现不同的人,不同的信息,来实现其功能,所以功能八,很简单,也很重要,其下标值也必须自加。

  11. 退出系统:这个没什么好说的,直接 exit。

  12. 嗯,我又新加了一个功能,告白动态,以前一直懵逼,把这么重要的功能忘了…这个就很 easy 了,两个文件:1.存接受人,转告的话2.不接收的人,然后再判断。

  13. 另外,又新加了一个爱情宣言功能,然后读取时,二维字符串是以三一个循环,进行存取,告白人,被告白人,爱情宣言。

    嗯,这就是我的系统程序。

    项目界面

    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙
    ccut表白墙

结束语

这个项目足足有 1245 行,真是佩服当时的自己 blossom

源代码

点击显/隐源文件