C 课程设计报告

发布 2022-09-30 18:23:28 阅读 8071

中南大学。二○一二~二○一三学年第二学期。

信息科学与工程学院。

面向对象c++语言课程设计报告。

课程名称: 面向对象c++语言课程设计

班级: 电气工程2012级1232 班

学号:0909123232 0909123214

姓名: 岳艳涛姜植元。

指导教师: 杨旺。

二○一三年七月。

1.系统需求与功能分析3

2.总体结构设计。

2.系统详细设计和系统实现。

3.系统的调试测试。

4.测试结果。

5.课程设计心得体会。

7.程序源**与运行结果。

系统需求与功能分析

系统需求分析

1) 能完成学生信息的插入、查询、修改、删除、输出等功能;

2)采用单链表与顺序表存储结构实现;

3) 所有数据以外部文件方式保存。

2.2系统功能分析。

1)要设计一个学生成绩管理系统,其功能包括:

1.插入函数add():将学生成绩信息插入到链表中;

2.查询函数search():分别可以按学号和按姓名进行学生成绩查询;

3.删除函数delect():当需要删除的学号和姓名一致时则删除对应的学生记录;

4.修改函数alter():修改指定的学生成绩信息;

5.输出函数show():输出全部学生成绩信息;

6.插入函数insert();将学生信息通过链表插入到指定学生的后边。

7.菜单函数menu():为程序的菜单函数为实现各种功能提供便捷;

8.读取数据函数preserve():从外部文件读取学生成绩信息;

9.保存数据函数s**e():将数据保存到外部文件中。

系统详细设计和系统实现。

通过对学生信息管理系统的功能分析,可以定义出系统的总体结构模块图,如图3.1所示。

图3.1学生管理系统总体结构设计。

前面的分析中已经定义了系统各个模块,属于静态建模的范围。在系统运行时刻的动态模型应该由系统的流程决定。当用户运行该系统后可以来进行学生信息插入管理、学生信息查询管理、学生信息删除管理、学生信息修改管理及学生信息输出等操作,具体的流程如图3.

2所示。

图3.2系统流程图。

主模块应负责应用程序的主界面,由它调用其他模块。因此主模块应具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。

根据功能需求的结果分析,主界面应该由学生信息插入管理,学生信息查询管理、学生信息修改管理、学生信息删除管理和学生信息输出管理组成,可以通过输入相应的数字进入相应的功能模块。4 链表学生信息管理系统详细设计和系统实现。

系统总体设计完成后,就可以根据需求对各个模块来进行实现了。在本系统中需要编码实现的主要有学生信息插入、学生信息查询、学生信息修改、学生信息删除和学生信息输出等5个模块。

1)学生信息插入模块。

添加的信息包括学号(不允许重复)、姓名(不允许重复)、分数。流程图如下图4.1所示。

图4.1插入模块流程图。

本程序采用的是尾插法,就是每次将新申请的结点插在终端结点的后面,其执行过程如图4.2所示。

图4.2尾插法建立单链表操作示意图。

2)学生信息查询模块。

按姓名和学号查找学生信息的流程图分别如下图4.3所示。

图4.3按姓名查找学生信息流程图。

在单链表中,即使知道被访问结点的位置i,也不能像顺序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐个结点往下搜索。当p指向某个结点时判断是否为第i个结点,若是则查找成功;否则,将工作指针p后移,即将p指向原来所指结点的后继结点。直到p为null时查找失败。

单链表查找过程如图4.4所示。

图4.4单链表查找过程的示意图。

按学号查询学生信息同按姓名查找学生信息,此处不再详细列出。

3)学生信息修改模块。

首先要查找与要修改数据相匹配的信息,若没有则返回失败。否则把相应的信息输出,然后再重新输入新的数据并保存到单链表。

4)学生信息删除模块。

当选择删除功能时,首先输入要删除的同学的姓名,然后输入要删除的同学的学号,如果该同学存在并且姓名与学号匹配的上,则进行删除操作,否则返回失败。其流程图4.5如下:

图4.5删除学生信息模块流程图。

删除操作定义为将单链表的第i个结点删去。因为在单链表中结点ai存储地址在其前驱结点ai-1的指针域,所以必须首先找到ai-1的存储地址p,然后令p的next域指向ai 的后继结点,即把结点ai 从链上摘下来,最后释放结点ai的存储空间,如图4.6所示。

图4.6在单链表中删除结点指针的变化情况。

5)学生信息输出模块。

从单链表表头遍历整个单链表,将所有数据输出。其部分**如下:

void operate::show

char ch;

student *p3;

system("cls");

p3=student_first->next

if(!tempelse

cout<<"1.返回主菜单"< cin>>ch;

while(ch!='1')

menu系统的调试测试。

这是链表的主界面。

首先是要验证身份进入系统。

选择1学生信息录入后如图所示录入两位学生的信息。

选择3修改学生信息之后。

选择信息显示函数5

学生信息的到修改。

选择信息删除函数后操作前操作函数信息删除函数。

查找的方法有两种1.姓名2.学号按照两种方法均可以。

选择操作**7程序结束。

课程设计心得体会。

通过这次数据结构课程设计的实验,在解决问题的过程中,充分体会到了数据结构这门课程对于软件设计的重要性,也体会到了数据结构+算法=程序这句话的真正含义,一个实际问题的解决第一步就是要依赖于良好的抽象思维的,将实际问题转化为相应的数据结构,只有这一步做好了,才能采取相应的算法和优化方法解决问题和解决好问题。

次c++面向对象课程设计,我们学会了如何用c++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是**设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集**现在主菜单中,便于调用。

根据c++课程所学的概念、理论和方法,按照c++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对c++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。

程序源**。

#include

#include

#include<>

using namespace std;

class enter为了验证身份。

public

char name_1[12];

char num_1[12];

class student

public:

student();

void ofile(ofstream &of

void infile(ifstream &f

void show_1

void set(int num,char *name,int age,char sex,char *adress,int computer,int math,int english);

int hnum();

char *hname();

int hage();

char hsex();

char *hadress();

int hcomputer();

int hmath();

int henglish();

student *next

protected:

int num;

char name[20

int age;

char sex;

char adress[20];

int computer;

int math;

int english;

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

C课程设计报告

题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2...

C 课程设计报告

c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...