c语言学习知识身份证信息管理方案计划系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告
课程名称:程序设计实践
专业班级:
学生姓名:
学号: 201616010107 任课教师:
学期:2016-2017学年第二学期
课程报告任务书
成绩评定教师:
1 需求分析
身份证管理系统——管理居民信息,便于查询,修改。
添加-----把居民信息添加到链表中在存到文件IDcard中。查看所有个人信息——把文件中的所有信息输出。修改------用身份证号查找该信息,如果找到则进行修改功能,否则跳出该功能。排序------新建一个链表辅助排序,把排序后的链表输出,并且存到文件IDcard 中,下次打开系统时输出排序后的序列。查找——用身份证号查找,如果找到则输出该信息,否则跳出该功能。删除——用身份证号查找该信息,如果找到则存入death文件中,再删除该结点,最后把删除后的链表存入文件,否则跳出该功能。
2 概要设计
可适当参考以下提示:
⑴数据结构
typedef struct
{
int year;
int month;
int day;
}data;
typedef struct IDcard
{
char ID[19];
char name[10];
char sex;
char address[50];
char nation[9];
data birth;
data origin;
data end;
struct IDcard *next;
}SFZ,*Link;
⑵模块划分
⑶程序总体框主函数:
定义:添加:
删除:
查找:加载:
界面:
修改:输出:
存储:排序:
3 详细设计
主函数包含头文件:define.h、display.h、output.h、save.h、Add.h、load.h、edit.h、find.h、del.h、sort.h;
添加函数void add(Link head),调用输入函数void InputRecord(Link head)进行输入;
删除函数void del(Link head),调用查找ID函数Link FindID(Link head,char s[])进行查找,删除;主界面调用函数void explain(void)输出;管理员系统界面调用函数void namagedisplay(void)输出;个人系统界面调用函数void personaldisplay(void)输出;输入密码界面调用函数int password(void);修改函数调用查找ID函数Link FindID(Link head,char s[])进行查找,修改;查找函数调用查找ID函数Link FindID(Link head,char s[])进行查找,再调用单个输出函数void PrintRecord(Link temp)输出;加载函数void load(Link head);输出所有信息函数void output(Link head)调用单个输出函数void PrintRecord(Link temp)输出;存储函数void save(Link head);排序函数调用区号升序,区号降序,姓名升序函数进行排序void Zone_descriptionAsc(Link head)、void Zone_descriptionDes(Link head)、void NameAsc(Link head)。
system.zip
源代码:
4 调试分析
开始时存储的文件中多了一排烫,调试发现读入时多循环了一次,读入了一串垃圾值,修改后正常。之后一系列的小错误都是通过调试解决。关于查找函数的改进:开始查找信息返回值为结点数,之后改为返回地址。关于界面的改进,一开始选择系统执行功能后返回到选择系统,之后可以继续执行功能,手动跳出子系统。
5测试结果
添加:
修改:
输出:
删除:
查询:在删除中已经使用,再调用输出函数输出,即为查询;排序:因为需要的数据太多,图片较多,请自行解决。
6 课程心得总结
本学期,当大作业刚布置下来的时候感觉很难,因为感觉学的东西太少,根本完不成这个任务,因此前几周都没开始写,一直等把c语言都上完了才开始。刚开始时不会建工程,便用Cb开始写,后来经过进一步的研究才学会了用Vc写这个大作业。在写大作业的过程中也并不是那么顺利,存在着太多的bug,然后就摸索着调试,直到写完大作业才明白,原来它的目的是让我们提高自己。在整个过程中对我提升最大的就是链表的使用和调试了。开始学单链表时很是疑惑,而现在已经能够熟练的使用链表,在大作业众多的错误中,让我从一个不怎么会调试的菜鸟,变成一个能比较熟练使用调试的大渣渣。其实学c,想要掌握它的精髓,就必须自己亲自去实现某一个功能,然后逐步调试,就能很快地掌握它(实践是检验真理的唯一标准)。