程序设计报告-南京邮电大学-学生管理系统-c语言.doc
程序设计报告
题 目: 学生信息管理系统
专 业 电子信息科学与技术
学 生 姓 名 孟祥熙
班 级 学 号
指 导 教 师 王蔚
指 导 单 位 南京邮电大学
日 期 2009/5/20
教师评语
教师签名:
年 月 日成绩评定备 注
一、课题名称
学生信息管理系统
二、课题内容和要求
(一)程序设计:
(二)系统必须提供的基本功能:
****************************************
1--------------查询
2--------------排序
3--------------插入
4--------------删除
****************************************
通过选择1-4来确定要做哪一个操作。
B.若选1,则出现如下界面
****************************************
1.1----------按学号查询
1.2----------按姓名查询
1.3----------按成绩查询
****************************************
通过选择1.1-1.3来确定要做哪一个操作,其中:按学号查询用二分法实现;按姓名查询用顺序法实现;按成绩查询实现查询成绩小于m分的学生;找到该生将学生记录输出到屏幕,若查无此人,输出相关信息。
C.若选2,则按成绩从大到小排序,姓名,学号顺序也随之调整。
D.若选3,将一个新学生记录按学号顺序插入,并把结果保存到文件student.dat中。
E.若选4,删除指定学生的记录,并把结果保存到文件student.dat中。
F.以上各个功能均编写成子函数,由主函数调用实现。
三、需求分析按学号查询用二分法实现;
按姓名查询用顺序法实现;
按成绩查询实现查询成绩小于m分的学生;
找到该生将学生记录输出到屏幕,若查无此人,输出相关信息。
排序功能:
按成绩从大到小排序,姓名,学号顺序也随之调整,并把结果保存到文件student.dat中。
插入功能:
将一个新学生记录按学号顺序插入,并把结果保存到文件student.dat中。
删除功能:
删除指定学生的记录,并把结果保存到文件student.dat中。
菜单功能:
包含不同菜单,以显示不同功能。
四、概要设计class Student
{
char num[10]; 用字符数组保存学生学号
char name[10]; 用字符数组保存学生姓名
int score; 用整形变量保存成绩
public:
Student(char *nu="",char *na="",int s=0); 构造函数
void disp(); 打印所有学生的信息
bool findna(char n[]); 检查输入的姓名与学生姓名是否一致
bool findsc(int n); 检查输入分数与学生数分是否一致
friend void delnum(int i,fstream &f); 友元函数删除指定位置的学生信息
friend void paisco(fstream &f); 友元函数按分数排序
friend void chanu(fstream &f,char *nu,char *na,int s); 友元函数插入输入的学生信息
friend void findnum(char num[],fstream &f,int i); 友元函数查找与输入学号相符的学生,并可以由i值判断是否接入delnum已删除查找出来的学生信息
};
void findsco(int sco,fstream &f); 按学号查找并输出学生信息,其中与类中的bool findsc(int n)配合,保持了程序中学生信息的不可见性
void findnam(char nam[],fstream &f,int i) 与类中的bool findna(char n[]);结合,保持程序中学生信息不可见性,并可以有i值判断是否接入delnum已删除查找出来的学生信息
void Createfile(char * fi