中南大学C++课程设计实践报告!

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学

本科生课程设计(实践)任务书、设计报告

(C++程序设计)

题目学生成绩管理系统

学生姓名

指导教师

学院

专业班级

学生学号

计算机基础教学实验中心

年月日

学生成绩管理系统

关键字:学生成绩 MFC 编写系统

内容:定义一个结构体,存放下列信息:

学号、姓名、性别、系名、班级名、成绩等

1.学生成绩管理系统开发设计思想

要求:

一:数据输入:输入学生的相关信息,若用户输入数据或信息不正确,给出“错误”信息显示,重复刚才的操作;至少要输入10个学生的数据;可以随时插入学生信息记录;

二:每个学生数据能够进行修改并进行保存;

三:可以根据学号或者姓名删除某学生数据;

四:查询模块要求能按学号,按姓名,按班级等条件进行查询;

五:界面要求美观,提示信息准确,所有功能可以反复使用。

学生成绩管理程序从总体设计方面来看,基本的功能包括主控模块,数据输入模块,数据修改模块,数据查询模块等。

设计模块图:

2.系统功能及系统设计介绍

详细设计:

对于总体设计说明的软件模块,进一步细化,要说明各个模块的逻辑实现方法。下面逐个说明。

主控模块:主要完成初始化工作,包括屏幕的初始化,显示初始操作界面。初始界面中主要包括功能的菜单选择项。

输入处理:利用链表技术输入多名学生的数据,直到输入学生的学号以“@”开头,则结束数据的输入。程序运行流程图如下:删除处理:利用链表技术删除某学号的学生成绩信息,如果找到该学号则进行删除,否则输出“未找到”的信息。程序运行流程图略。

查找处理:利用链表技术根据学生学号或姓名等方式查找某学号

的学生成绩信息,其程序流程图略。

排序处理:利用链表技术根据学生学号对学生数据进行排序,其

部分源代码如下:/***********xuesheng.c***********/

/******头文件(.h)***********/

#include "stdio.h" /*I/O函数*/

#include "stdlib.h" /*其它说明*/

#include "string.h" /*字符串函数*/

#include "conio.h" /*屏幕操作函数*/

#include "mem.h" /*内存操作函数*/

#include "ctype.h" /*字符操作函数*/

#include "alloc.h" /*动态地址分配函数*/

#define N 3 /*定义常数*/

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

{

char no[11];

char name[15];

char sex[5];

char major[15];

char class[15];

char tele[15];

char address[15];

int order;

struct z1 *next;

}STUDENT;

/*以下是函数原型*/

STUDENT *init(); /*初始化函数*/

STUDENT *create(); /*创建链表*/

STUDENT *dele(STUDENT *h); /*删除记录*/

void print(STUDENT *h); /* 显示所有记录*/

void search(STUDENT *h); /*查找*/

STUDENT *sort(STUDENT *h); /*排序*/

int menu_select(); /*菜单函数*/

STUDENT *insert(STUDENT *h); /*插入记录*/

void save(STUDENT *h); /*保存*/

STUDENT *load(); /*读入记录*/

void inputs(char *prompt, char *s, int count);

/******主函数开始*******/

main()

{

int i;

STUDENT *head; /*链表定义头指针*/

head=init(); /*初始化链表*/

clrscr(); /*清屏*/

for(;;) /*无限循环*/

{

switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/

case 0:head=init();break; /*执行初始化*/

case 1:head=create();break; /*创建链表*/

case 2:head=dele(head);break; /*删除记录*/

case 3:print(head);break; /*显示全部记录*/

case 4:search(head);break; /*查找记录*/

case 5:head=insert(head); break; /*插入记录*/

case 6:head=sort(head);break; /*排序*/

case 7:save(head);break; /*保存文件*/

case 8:head=load(); break; /*读文件*/

case 9:exit(0); /*如菜单返回值为14程序结束*/

}

}

}

/*菜单函数,返回值为整数*/

int menu_select()

{

相关文档
最新文档