实用文档
课 程 报 告
课 程 名 称: 程序设计实践
专 业 班 级 :
学 生 姓 名 :
学 号 : 2
任 课 教 师 :
学 期 :2016-2017学年第二学期
实用文档
课程报告任务书
题
身份证信息管理系统
目
用C语言开发一个简单的身份证管理系统要求实现以下功能:
1.管理员系统:
(1)添加个人信息;(2)修改个人信息(按身份证号);(3)排序(分别按区号升
序、区号降序以及姓名升序);(4)查询个人信息(按身份证号);(5)删除个人信息
(并不是实际意义上的删除);(6)输出所有个人信息;(7)退出子系统;(8)结束。
主要
内容
2.个人用户系统:
(1)查询个人信息(按身份证号);(2)退出子系统;(3)结束。
说明:个人信息包含身份证号(十八位数且不能重复)、姓名(可以重复)、性别、
地址(具体到某一组),民族,出生年月日,办理日期以及截止日期(18岁以下有效
期为5年,18岁以上10年),区号由身份证前7位组成。当一个人死了时将删除他
的记录并且自动添加到死亡名单并且办理日期与截止日期都改为死亡时
间。
一、提交材料应包括:(1)系统源代码 (2)课程报告
二、整个设计过程具体要求
(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善
任务
要求
各个模块的调用关系;
(2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细节
(函数名、参数、返回值等)
(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终
完成系统整体测试;
(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。
报告撰写情况(30分) 系统完成情况(30分) 答辩情况(40分)
内容 规范程度 程序测试 基本功能扩展功能自述情况答辩情况
总分
5分 5分 20分 10分 10分 30分 20分
评定
成绩
实用文档
成绩评定教师:
实用文档
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 ameAsc(Link head)。
源代码:
4 调试分析
开始时存储的文件中多了一排烫,调试发现读入时多循环了一次,读入了一串垃圾值,
修改后正常。之后一系列的小错误都是通过调试解决。关于查函数的改进:开始查信息
返回值为结点数,之后改为返回地址。关于界面的改进,一开始选择系统执行功能后返回到
选择系统,之后可以继续执行功能,手动跳出子系统。
5测试结果
添加:
修改:
实用文档
输出:
删除:
查询:在删除中已经使用,再调用输出函数输出,即为查询;
排序:因为需要的数据太多,图片较多,请自行解决。
6 课程心得总结
本学期,当大作业刚布置下来的时候感觉很难,因为感觉学的东西太少,
实用文档
根本完不成这个任务,因此前几周都没开始写,一直等把c语言都上完了
才开始。刚开始时不会建工程,便用Cb开始写,后来经过进一步的研究才
学会了用Vc写这个大作业。在写大作业的过程中也并不是那么顺利,存在
着太多的bug,然后就摸索着调试,直到写完大作业才明白,原来它的目
的是让我们提高自己。在整个过程中对我提升最大的就是链表的使用和调
试了。开始学单链表时很是疑惑,而现在已经能够熟练的使用链表,在大
作业众多的错误中,让我从一个不怎么会调试的菜鸟,变成一个能比较熟
练使用调试的大渣渣。其实学c,想要掌握它的精髓,就必须自己亲自去
实现某一个功能,然后逐步调试,就能很快地掌握它(实践是检验真理的
唯一标准)。
本文发布于:2023-05-22 23:48:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/falv/fa/86/97031.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |