当前位置:编程学习 > C/C++ >>

C++学生管理系统

1、每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。
2、输入功能:可以一次完成无数条记录的输入。
3、显示功能:完成全部学生记录的显示。
4、查找功能:完成按姓名查找学生记录,并显示。
5、排序功能:按学生平均成绩进行排序。
6、插入功能:按平均成绩高低插入一条学生记录。
7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。
8、读取功能:将保存在文件中的学生记录读取出来。
9、有一个清晰美观界面来调用各个功能,图形或文本界面都可以。
急用!!!!!!!谢谢拉!!!
答案://///////////////////////////////////////////////////////////////////
///////////// List.h: 类的所有成员都在头文件里声明 //////////////////
/////////////////////////////////////////////////////////////////////

#include <iostream.h>
// cin 及 cout
#include <malloc.h>
// 用到申请内存函数 malloc() 和释放内存函数 free()
#include <string.h>
// 字符串处理
#include <stdio.h>
// 文件操作(读文件)
#include <stdlib.h>
// system("cls")

struct address
/*家庭地址*/
{
char city[10];
/*城市*/
char town[10];

/*县城*/
char village[10];
/*乡镇*/
};

struct telephone
/*联系方式*/
{
char SJ[50];
/*手机*/
char JD[30];
/*家庭电话*/
char XD[30];
/*学校电话*/
};

struct person
/*个人信息*/
{

char name[20];

/*名字*/
char sex[10] ;

/*性别*/
char MZ[16];
/*民族*/
char GJ[17];
/*国籍*/

char XL[19];
/*学历*/
};

struct score
//成绩
{
char num[20];
//学号
char english[20];
char chinese[20];
char math[20];
char physics[20];
};

typedef struct linknode
//定义节点的类型
{
char address[100]; //地址
char birthday[100]; //出生日期
struct score sc; //成绩
struct person pe; //个人信息
struct telephone te; //联系方式
bool flag;
struct linknode* next;
}nodetype;

class List
{
nodetype* head;

public:
List();
List::~List();

linknode* creatlist(int);
//创建链表
int listlen();
//返回链表长度
nodetype* findnode(int);
//通过查找序号返回节点的指针
nodetype* find(char c[]);
//通过查找姓名返回节点的指针
int find2(char c[]);
//通过查找姓名返回节点的序号
nodetype* insnode(int);
//插入节点
void delnode(int);
//删除节点

nodetype* load();
//初始化:从外部读入数据

void readstr(FILE *f,char *string); //读行函数
bool check(char *a, char *b);
//对比两个字符串是否相等
void help();
//显示帮助菜单

void editperson(nodetype*);
//编辑个人说明
void editscore(nodetype*);
//编辑学科成绩
void edittelephone(nodetype*);
//编辑联系方式

void dispname();
//显示所有学生姓名
void dispnode(nodetype* p);
//显示一个学生的所有信息
void dispperson(nodetype*);
//显示一个学生的个人说明
void dispscore(nodetype*);
//显示一个学生的学科成绩
void disptelephone(nodetype*);
//显示一个学生的联系方式

};

#include <iostream.h> // cin 及 cout
#include <string.h>
// strcpy(): 字符串复制
#include <stdlib.h>
// system("cls")
#include <stdio.h>
// 文件操作(写文件)
#include "list.h"
// 我们要创建类 List 的对象和节点指针,所以要把类的头文件包含进来

class Operater
{
List L1;
public:

void Loop();
//主循环

void display();
//显示菜单
};

/////////////////////////////////////////////////////////////////////////////////////
//////////////////////// List.cpp : The body of the class List //////////////////////
/////////////////////////////////////////////////////////////////////////////////////

#include "list.h"

List::List()
{
head = NULL;
}

bool List::check(char *a, char *b) //对比两个字符串是否相等
{
int i;
int j=strlen(b);
for(i=0; i<j; i++)
{
if(*a==*b)
{
a++;
b++;
}
else
return 0;
}
return 1;
}

nodetype* List::creatlist (int n)
//创建链表
{
nodetype *h=NULL, *s, *t;
int i=1;

for(int j=0; j<n; j++)
{

上一个:c++怎么操纵文件。
下一个:用C++写程序

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,