资源简介
这是一个用c++写的学生管理系统:
一、程序的主要功能
程序分为四个模块:
1.建立哈希表:有三个功能
(1)插入一个学生信息;
(2)删除一个学生信息;
(3)修改一个学生信息。
2.查询模块:有四个功能
(1)查询全部学生信息;
(2)按学号查询学生信息;
(3)按姓名查询学生信息;
(4)按性别查询学生信息。
3.排序模块:有四个功能
(1)按学号排序;
(2)按年龄排序;
(3)按各科成绩排序;
(4)按总成绩排序。
4.统计模块:有三个功能
(1)统计男女生人数;
(2)统计每个人的平均成绩;
(3)统计各科平均成绩。
二、用户操作方法
一共有七个源文件,一个头文件,六个cpp文件。
将它们打开编译后即可运行。
运行后按照提示操作即能实现预期的各种功能。
或者双击debug图标。
代码片段和文件信息
//*****************************************************************
//* 程序作者:张鑫
//* 学 号:040630420
//* 完成日期:2007年5月24日
//* 课程设计:学生成绩管理系统
//*****************************************************************
#include
#include
#include
#include “HashTable.h“
void studentManage(HashTable &);
void seek(HashTable &);
void testInput(char & char &);
void copy(StudentInfo & StudentInfo &);
void writeFile(HashTable &);
void primary(HashTable &);
void statistics(HashTable &);
void sequence(HashTable &);
void main()
{
HashTable H;
H.count=0;
fstream file;
StudentInfo student;
H.elem=(StudentInfo*)malloc(11*sizeof(StudentInfo));
int k t j;
char n[10] No[9];
file.open(“student.txt“ ios::in|ios::out|ios::binary);
while(file.read((char *)&student sizeof(student)))
{
k=0;
strcpy(nstudent.num);
for(t=8j=1; t>4; t--)
{
k+=int(n[t]-48)*j;
j=j*10;
}
k%=11;
while(H.elem[k].mark==1 && strcmp(H.elem[k].numNo)!=0 && k<11)
{
k++;
k%=11;
}
if(k!=11)
{
H.count++;
copy(H.elem[k] student);
H.elem[k].score=(ScoreInfo*)malloc(sizeof(ScoreInfo));
file.read((char *)&(*H.elem[k].score) sizeof(ScoreInfo));
H.elem[k].score->next=(ScoreInfo*)malloc(sizeof(ScoreInfo));
file.read((char *)&(*H.elem[k].score->next) sizeof(ScoreInfo));
}
}
file.close();
primary(H);
}
void primary(HashTable &H)
{
char inPut i=‘5‘;
system(“cls“);
cout<<“\t\t\t学生成绩管理系统\n“
<<“\t\t\t 主菜单\n\n“
<<“\t\t\t 1. 成绩管理“< <<“\t\t\t 2. 成绩查询 “< <<“\t\t\t 3. 学生统计“< <<“\t\t\t 4. 排序“< <<“\t\t\t 5. 退出系统“<
testInput(inPut i);
switch(inPut)
{
case 1 : studentManage(H);
break;
case 2 : seek(H);
break;
case 3 : statistics(H);
break;
case 4 : sequence(H);
break;
case 5 : system(“cls“);
writeFile(H);
cout< <<“\t\t\t 谢谢您使用本系统!“
< exit(0);
}
}
void writeFile(HashTable &H)
{
fstream file1;
int k;
file1.open(“student.txt“ ios::out|ios::binary);
for(k=0; k<11; k++)
{
if(H.elem[k].mark==1)
{
file1.write((char *)&H.elem[k] sizeof(H.elem[k]));
file1.write((char *)&(*H.elem[k].score) sizeof(ScoreInfo));
file1.write((char *)&(*H.elem[k].score->next) sizeof(ScoreInfo));
file1.flush();
}
}
file1.close();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 429 2007-12-27 13:40 学生成绩管理系统\HashTable.h
文件 2853 2007-12-29 11:06 学生成绩管理系统\主函数.cpp
文件 5666 2007-12-29 11:06 学生成绩管理系统\查询.cpp
文件 7119 2007-12-29 11:08 学生成绩管理系统\排序.cpp
文件 5527 2007-12-29 11:46 学生成绩管理系统\成绩管理.cpp
文件 6757 2007-12-29 11:45 学生成绩管理系统\函数.cpp
文件 2810 2007-12-29 11:08 学生成绩管理系统\统计.cpp
目录 0 2007-12-29 12:50 学生成绩管理系统
----------- --------- ---------- ----- ----
31161 8
- 上一篇:纯C语言实现工资管理系统
- 下一篇:c语言矩阵运算程序
相关资源
- 操作系统实习:动态分区分配C++实现
- 遥感图像彩色合成C++
- vc++ 浏览器 完整版
- 电话簿管理程序C++语言编写
- C++选课系统
- 原创c++二叉树抽象数据类型实现
- C++基础入门编写游戏代码及角色扮演
- 杂志订阅系统C++
- C++实验报告
- 多项式类的C++实现乘法、加法、代入
- aes算法实现C++)
- C++ 数字图像处理源代码
- c++面向对象课程设计报告_(学生成绩
- c++primer_第五版_中文版(完整).rar
- c++实现的哈夫曼编码和解码源代码
- 基于VC++的带通滤波器的设计与实现
- C++高斯投影正反算
- VC++查看鼠标在图像选点坐标程序
- SM2_SM3_SM4_C语言实现+SM3_C++实现+国家密
- C++下的socket异步通信源代码
- SDK入门(用C和C++来调用WindowsAPI)
- vigenere密码加密解密算法实现软件Vc
- C++仿qq程序源代码及程序
- VC++6.0完美运行在win7和win10系统上
-
xm
l解析 CMarkup类 c++ - C++ 操作注册表
- 用c++模拟直线插补和圆弧插补二.cpp
- 用c++模拟直线插补和圆弧插补一.cpp
- 用C++模拟直线插补图形
- 银行借贷系统c++ 编程
评论
共有 条评论