c语言高校学生管理系统报告,C语言实训学生信息管理系统报告模板.doc

桂林电子科技大学职业技术学院

?

?

?

?

《C语言程序设计》

实训报告

?

?

实训题目: 学生通讯录管理系统

?

?

?

专业: 计算机信息管理

班级:

姓名:

学号:

?

?

?

一、需求分析

1、问题

根据需求,该系统所应包含的信息有以下一些:

通讯录的基本信息:

姓名、地址、电话

根据需求,该系统所应实现的功能有以下一些:

各种基本数据的录入。如:通讯录基本信息录入。

各种基本数据的修改。即:允许对已经录入的数据重新进行编辑、修改。例如修改通讯录中张三的电话信息

各种基本数据的删除。例如将张三的信息从通讯录中删除

基于各种数据的查询。例如输入张三姓名,查询张三的电话和地址。

数据导出:将通讯录中信息导出到指定文件。

数据导入:从指定文件导入通讯录信息到。

2、系统

采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。

3、运行要求

能不受限制的录入通讯录信息

界面友好,操作方便,例如删除前需要提示用户是否删除

容错性强,例如数据导出时,如果文件不存在需要提示用户。

二、总体设计

1、系统流程设计

根据系统要求,设计如下的系统流程

2、系统模块设计

根据系统的功能设计,如下模块

主界面模块:完成系统菜单的显示

功能选择模块:根据用户的选择,完成其相应的功能

通讯录信息录入:完成用户从界面输入通讯录,保存入系统的功能

通讯录信息修改:完成用户从界面输入通讯录,在系统中查询定位,并将录入的数据保存入系统的功能

通讯录信息修改:完成用户从界面输入查询条件,在系统查询符合条件的通讯录信息,并在界面上显示的功能。

通讯录信息导入:完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能。

通讯录信息导出:完成用户从界面输入需要导出的文件路径名称,将系统中通讯录信息保存入文件中。

通讯录信息删除:完成用户从界面输入需要的通讯录信息的姓名,并将其从系统中删除。

三、详细设计

1、数据结构设计

根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:

数据项名称数据项系统表示数据类型数据长度备注姓名name字符串20地址address字符串100电话tele字符串20为了能实现不受限制的增加通讯录信息,采用链表的结构保存通讯录的信息,在增加通讯录的基本信息时,创建一个通讯录的节点,将其插入到链表中,示意图如下。

使用C语言创建的结构体如下:

typedef struct /*定义数据结构*/

{

char name[20]; /*姓名*/

char address[100]; /*地址*/

char tele[20]; /*电话*/

typedef struct * next;

};

2、界面设计

主界面:

根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字

用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。

输入界面:

在光标下输入通讯录的信息,用空格将信息隔开

修改界面:

首先输入通讯录的姓名,显示该通讯录的详细信息,输入修改后的信息,将原来信息修改。

删除界面:

输入需要删除的姓名,将其从通讯录中删除

导出界面:

输入需要导出的文件路径,将通讯录信息导出到文件。

列表显示页面:

将通讯录中所有记录显示,每页显示10条

导入页面:

查询界面:

3、模块实现

主界面实现:调用printf()函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。

对应的实现函数menu_show();

功能选择模块实现:

接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。实现功能选择。

对应的函数:menu_select();

通讯录信息录入模块实现:

模块说明:从键盘接收输入的通讯录信息,在动态存储区中创建通讯录的节点,遍历链表,将其插入到通讯录链表的最后位置。

模块流程:

对应函数:add(struct phone * head)

通讯录信息修改模块实现:

模块说明:从键盘接收输入的需要修改通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入修改后的信息,保存在该节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值