手机版

同济大学c++复习文件管理系统开发案例

发布时间:2024-11-12   来源:未知    
字号:

文件管理系统开发案例----学生成绩管理系统 的设计

教学目的: 了解文件管理系统的设计步骤。 将课程的主要知识内容融会贯通于该案 例中。变松散的知识点的学习为知识的灵 活掌握与应用。 分别从结构化层面和面向对象的层面了

解抽象思维的设计思想。 训练学生的综合设计和调试程序的能力。

教学讲解重点: 避免原有内容的重复讲解,突出强调难点和易错点的讲解,包括:

复杂数据结构的访问层次和语句结构 根据函数功能确定函数参数及返回值类型 单链表的操作函数中表头指针的变化 根据文件操作数据类型和文件的有无选取正确的文件打开方式和文件读写函数。

通过代码的不同组织了解不同层次的抽 象设计思想,包括函数库、接口、类等概 念,进一步区分结构化程序设计过程和面 向对象设计中函数的不同使用方式和意义

通过代码组织理解文件包含的作用、掌握多文件操作的方法。 引导学生思考如何对系统功能的进一步 完善和对代码的进一步优化。

学生成绩管理系统设计要求:学生信息以数据文件的形式存放在磁盘 中,包括学号、姓名、班级、语文、数 学、英语三门课程的成绩,系统对学生

信息可以进行各种增、删、改、排序及对文件进行读写等功能。

需求分析 总体设计

详细设计及编码 代码组织---编程抽象

一、需求分析 能从文件中读入学生记录存于计算机中,同时也能将 学生记录保存到磁盘文件;

能按不同方式添加新学生记录; 能对指定的学生记录进行修改、删除; 能按照不同条件查询学生记录 能对学生成绩进行统计并显示统计结果 可对学生表按条件进行排序 可用菜单形式显示系统功能供用户选择,并能从不同 功能操作中返回到菜单

成绩管理

输入模块

查询模块

更新模块

统计模块 输出模块

文 件 输 入

键 盘 输 入

按 学 号 查 询

按 姓 名 查 询

增 加 记 录

删 除 记 录

修 改 记 录

排 序 记 录

统 计 各 段 人 数

输 出 至 文 件

屏 幕 显 示

系统功能模块图

二、总体设计 基本流程 功能模块设计 数据结构设计

函数功能描述

1、基本流程开始 打开文件 读文件并存入 数组或链表 调用菜单函数 选择菜单操作 退出系统吗 否 调用相应函数 完成相应操作 是 是 已存盘否 否 调用存盘函数

结束

2、功能模块设计

输入模块:实现将数据输入数组或链表查询模块:在数组或链表中实现按不同字段进行查询 更新模块:实现对记录的增、删、改、排序等操作 统计模块:实现各种统计功能 输出模块:实现将处理后的数

据写入文件或在屏幕上 输出的功能。

3、数据结构设计 学生成绩信息结构 struct student { char num[8]; char name[20]; int s[3]; //三门课成绩 } 若通过数组实现,则定义 结构数组 struct student stu[N]; N为已定义过的符号常量 若通过单链表实现,则单 链表结点结构定义: struct node { char num[8]; char name[20]; int s[3]; struct node *next; }

4、函数功能描述(数据结构以结构数组为例) void display(student stu[],int len) 功能:显示长度为len的学生表中存储的学生记录。 void search(student stu[],int len) 功能:在长度为len的学生表中按姓名或学号查找指 定的学生记录。 int append(student stu[],int len) 功能:在长度为len的学生表的末尾添加新的学生记录 int del(student stu[],int len) 功能:从长度为len的学生表中删除指定学号的学生

void modify(student stu[],int len) 功能:修改长度为len的学生表中指定学号的学生记录

void count(student stu[],int len) 功能:对长度为len的学生表按要求进行统计 void sort(student stu[],int len) 功能:将长度为len的学生表中记录按要求排序 void save(student stu[],int len) 功能:将长度为len的学生表中记录保存到文件

int readfile(student stu[]) 功能:将文件中的学生数据读入到学生记录表中,并返 回表中的记录数。 void menu() 功能:显示系统提供的可选菜单项void main() 整个系统的控制部分。

三、详细设计及编码1、主函数的设计: 启动程序后,首先从文件中将学生信息读入到 结构数组或链表中,然后进入菜单界面供用户 选择,根据选择项执行相应的操作,直到退出 该管理系统。菜单界面如下:

根据前面的基本流程设计出如下的主函数:

void main() { struct student stu[N]; int len; 增强交互 int choice; char ch; len=readfile(stu); //调用读文件函数 cout<<"按任意键继续"<<endl; 清屏,原型包含 getchar(); 在stdlib.h中 while(1) //注意该循环退出的条件 { system("cls"); //清屏函数 menu(); //调用菜单显示函数 cout<<"选择菜单项(0~8):"; cin>>choice; if(choice==0) //选择退出 { cout<<"\n保存到文件吗?"<<endl; cin>>ch; if(ch=='y'||ch=='Y') save(stu,len); cout<<"\n欢迎再次使用,按任意键退出"<<endl; getchar(); break;

同济大学c++复习文件管理系统开发案例.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)