基于C语言的课程信息管理系统

Heartbeat

发布日期: 2018-10-20 21:39:10 浏览量: 1082
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、 设计内容及要求

每门课程包含以下信息项:课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期。系统的主要功能包括:

  1. 创建课程信息文件,根据提示输入课程的各项信息,然后将课程信息存储到一个文件中。
  2. 增加课程信息,在原有课程信息文件的基础上增加新的课程信息,要求继续保存至原文件,并提示用户选择是否继续进行增加操作。
  3. 删除课程信息,提示用户输入要进行删除操作的课程编号,如果在文件中有该信息存在,则将该课程编号所对应的课程信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
  4. 修改课程信息,提示用户输入要进行修改操作的课程编号,如果在文件中有该信息存在,则将提示用户输入该编号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。
  5. 按不同条件对课程信息进行查询操作,输出满足条件的课程信息。

    • 按课程名称查询,输入课程名称。

    • 按开课学期查询,输入开课学期。

  6. 按不同条件对课程信息进行统计工作。

    • 按课程性质统计课程门数(例:选修课:5门;必修课:10门)。

    • 找出学分大于等于3分的课程,并输出他们的信息。

二、设计思路

2.1 系统概述

  1. 系统名称:课程信息管理系统

  2. 根据系统开发所提出该《课程信息管理系统》所应具备的系统功能包括以下六点:

    • 创建课程信息文件;

    • 增加课程信息;

    • 删除课程信息;

    • 修改课程信息;

    • 按不同条件对课程信息进行查询操作,输出满足条件的课程信息;

    • 按不同条件对课程信息进行统计工作。

  3. 用户人群:学校课程信息管理人员及在校学生。

2.2 需求概述

2.2.1 系统目标

本系统的总体目标是通过该系统的实施,可以对学生课程信息更加有效地进行管理。系统设计实施过程中,力争做到以下几点:

  1. 能够实现各个要求的功能;

  2. 具有较高的可靠性和可用性;

  3. 系统易于管理维护;

  4. 使用方便,易学易用。

2.2.2 系统用例图

根据需求分析,分析出系统的具体操作步骤及功能,此系统应当包括输入、修改、查询、添加、删除、储存。详细使用见下图—系统整体用例图。

2.2.3 系统功能描述

该系统可以输入记录保存于文件中,之后可以对记录进行修改、查询、添加、统计、删除。

2.2.4 程序界面大纲

主程序是显示给用户的一个进入的界面,包含着该课程信息管理系统的各个应用功能,并通过调用函数的形式来实现。用户通过主函数中给出的各个功能提示,来进行相应的选择。如图所示:

2.2.5 存储和读取

可以用存储函数将输入及修改的数据保存至文本文档中,也可用读取函数读取文本文档中所有的数据。

三、设计结果及分析

  • 为了使程序设计更适合面向对象,使用getch()等函数使得程序的使用更加便利,多处设计防误触循环、清屏函数、屏幕暂停函数等,同时在程序编写时尽量多的考虑使用对象可能遇到的情况,增加提示,使得程序更加人性化。

  • 充分利用链表,对结构体数据实现增删改查等操作,整体而言就是通过多次对链表的建立和释放,每次需要操作文件时都会将数据全部提取到链表,对链表进行操作,再写入文件,使操作与文件数据实时切合,由于fwrite的特点,能覆盖旧数据,同时也能防止丢失数据以确保数据的完整性。

  • 当程序运行出现崩溃、报错或停止运行时,通过单步调试寻找问题所在,找到程序出现问题所在行时,再分析代码,寻找原因,不断解决程序的问题。

  • 数据的读取与存储:在数据保存到文件当中,以及从文件当中读取出来这两个部分,需要考虑到存储形式、内存分配,还有如何确保结构体的数据能够整块的移动,在调整过程中,曾存在存储数据不当导致出现“屯”等乱码,读取文件数据崩溃等情况。最后决定采用fwrite以二进制的形式保存到dat类型文件中,运用fread读取到链表中,同时为了防止内存分配存在问题,多次调整自定义函数read()当中的代码。

  • 运用模块化的思想,对于程序的多个自定义函数进行了划分,分为负责主要操作功能的和辅助主要操作功能的两类,使得程序的模块划分清晰明了。

上传的附件 cloud_download 课程信息管理系统.zip ( 102.86kb, 500次下载 )
error_outline 下载需要5点积分

keyboard_arrow_left上一篇 : 基于JSP和MYSQL数据库的在线购物网站的设计与实现 基于JSP实现的学院成绩管理系统 : 下一篇keyboard_arrow_right



浅吟
2019-06-18 15:11:00
很棒啊
三十
2019-06-18 15:39:11
运行的时候有一个错误,楼主能不能帮忙解决一下?
三十
2019-06-18 15:44:18
运行的时候有一个错误,楼主能不能帮忙解决一下?

发送私信

你的那片云偶尔也会飘过我的天空

8
文章数
6
评论数
最近文章
eject