中南大学C++课程设计实践报告!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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()
{