一、实验目的及要求
通过设计一个小型的应用系统,使学生进一步掌握面向对象的程序设计方法,运用C++中的类与对象的概念结合面向对象程序设计的思想,独立完成应用系统的设计,并养成良好的编程习惯。通过这个实践教学平台,培养学生对计算机应用系统的综合设计能力,培养学生正确分析和解决问题的能力,了解系统开发的过程,逐步熟悉程序设计的方法。

二、实验设备与平台

  1. 实验设备:计算机;
  2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013。

三、实验内容与步骤
学生学籍管理系统:
设计一个程序,对学生的学籍信息进行管理。通过该系统实现对学生基本信息的录入、保存、删除、修改、查询等操作。
设计要求及提示如下:
1、学生基本信息包括:学号、姓名、性别、年龄、班号、专业名称、系别等。
2、使用类和对象的概念实现程序设计。
3、以菜单形式显示各功能项。
4、各功能项如下:
(1)学生基本信息的录入。
(2)学生基本信息的删除。
(3)学生基本信息的修改。
(4)学生基本信息的查询。
(a)按学号查询单个学生信息;
(b)按姓名查询单个学生信息;
©按性别查询学生信息;
(d)按班号查询学生信息;
(5)学生基本信息的统计。
(a)按性别统计学生人数;
(b)按班号统计学生人数;
©按年龄统计学生人数;
(d)按系别统计学生人数;
(6)退出系统。
5、执行某个功能之后,程序将重新显示菜单供用户选择。
6、将学生学籍信息保存到文件中。

#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
void showMenu()
{cout << "***** 1:添加联系人 *****" << endl;cout << "***** 2:显示联系人 *****" << endl;cout << "***** 3:删除联系人 *****" << endl;cout << "***** 4:查找联系人 *****" << endl;cout << "***** 5:修改联系人 *****" << endl;cout << "***** 6:清空联系人 *****" << endl;cout << "***** 0:退出通讯录 *****" << endl;
}
struct person
{string m_name;int m_sex;int m_age;string m_phone;string m_addr;};
struct addressBooks
{struct person personArray[MAX];int size;
};
void addPerson(addressBooks * abs )
{if (abs->size > MAX){cout << "通讯录已满" << endl;}else{string name, phone, addr;cout << "请输入姓名:";cin >> name;abs->personArray[abs->size].m_name = name;int sex, age;cout << "请输入性别,1代表男性,2代表女性:";        cin >> sex;abs->personArray[abs->size].m_sex = sex;cout << "请输入年龄:";cin >> age;abs->personArray[abs->size].m_age = age;cout << "请输入电话号码:";cin >> phone;abs->personArray[abs->size].m_phone = phone;cout << "请输入住址:";cin >> addr;abs->personArray[abs->size].m_addr = addr;abs->size++;cout << "添加成功" << endl;system("pause");system("cls");}}
void showPerson(addressBooks* abs)
{if (abs->size== 0){cout << "通讯录为空!" << endl;}else{for (int i = 0; i < abs->size; i++){cout << "姓名:" << abs->personArray[i].m_name << '\t';cout << "性别:" <<(abs->personArray[i].m_sex==1?"男":"女")<< '\t';cout << "年龄:" << abs->personArray[i].m_age << '\t';cout << "号码:" << abs->personArray[i].m_phone << '\t';cout << "住址:" << abs->personArray[i].m_addr << endl;}}system("pause");system("cls");
}
int ifExit(addressBooks * abs,string name)
{for (int i = 0; i < abs->size; i++){if (abs->personArray[i].m_name == name){return i;}}return -1;
}
void delectPerson(addressBooks* abs)
{string name;cout << "请输入您想删除的联系人姓名:";cin >> name;int a= ifExit(abs, name);if (a == -1){cout << "通讯录中无此人!" << endl;}else{for (int i = a; i < abs->size; i++){abs->personArray[i] = abs->personArray[i + 1];}abs->size--;cout << "删除成功!" << endl;}system("pause");system("cls");
}
void searchPerson(addressBooks* abs, string name)
{int a = ifExit(abs, name);if (a == -1){cout << "通讯录中无此人!" << endl;}else{cout << "姓名:" << abs->personArray[a].m_name << '\t';cout << "性别:" << (abs->personArray[a].m_sex == 1 ? "男" : "女") << '\t';cout << "年龄:" << abs->personArray[a].m_age << '\t';cout << "号码:" << abs->personArray[a].m_phone << '\t';cout << "住址:" << abs->personArray[a].m_addr << endl;}system("pause");system("cls");
}
void revisePerson(addressBooks* abs, string name)
{int a = ifExit(abs, name);if (a == -1){cout << "通讯录中无此人!" << endl;}else{string name, phone, addr;cout << "请重新输入姓名:";cin >> name;abs->personArray[a].m_name = name;int sex, age;cout << "请重新输入性别,1代表男性,2代表女性:";cin >> sex;abs->personArray[a].m_sex = sex;cout << "请重新输入年龄:";cin >> age;abs->personArray[a].m_age = age;cout << "请重新输入电话号码:";cin >> phone;abs->personArray[a].m_phone = phone;cout << "请重新输入住址:";cin >> addr;abs->personArray[a].m_addr = addr;cout << "修改成功!" << endl;}system("pause");system("cls");
}
void cleanPerson(addressBooks* abs)
{abs->size = 0;cout << "通讯录已清空!" << endl;system("pause");system("cls");
}
int main()
{addressBooks abs;abs.size = 0;int select;while (1){showMenu();cout << "请输入你的选择:";cin >> select;switch (select){case 1:addPerson(&abs);break;case 2:showPerson(&abs);break;case 3:delectPerson(&abs);break;case 4:{string name;cout << "请输入您要查找的联系人姓名:";cin >> name;searchPerson(&abs, name);break;}case 5:{string name;cout << "请输入您要修改的联系人姓名:";cin >> name;revisePerson(&abs, name);break;}break;case 6:cleanPerson(&abs);break;case 0:cout << "欢迎下次使用" << endl;return 0;break;}}
}

程序设计课程设计 学生学籍管理系统相关推荐

  1. java学籍管理系统 课程设计,Java课程设计---学生学籍管理系统

    Java课程设计---学生学籍管理系统 设计报告设计报告 课题名称学生学籍管理系统 学院 专业班级计算机应用技术 091 学号 学生 指导教师 2011 年 7 月 7 日 1 学生 指导教师 课题名 ...

  2. ASP.NET程序设计课程设计——学生信息管理系统

    点击查看详细信息 ASP.NET程序设计课程设计--学生信息管理系统 一.实验目的 综合运用们所学的ASP.NET知识,开发学生信息管理系统,完成相关功能: (1)教师管理 (2)学生信息 (3)课程 ...

  3. 班级学籍管理系统c语言论文,c语言课程设计学生学籍管理系统论文.doc

    c语言课程设计学生学籍管理系统论文 PAGE PAGE 2 1. 课题的主要功能 1.1 需求分析. 程序的功能: 对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入.显示.修改.删 ...

  4. C语言课程设计——学生学籍管理系统

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #d ...

  5. c语言程序设计课程设计学生信息管理系统,C语言程序设计课程设计报告----学生信息管理系统.doc...

    河南理工大学计算机学院 <C语言程序设计>课程设计报告 题目: 学生信息管理系统 专业: 计算机科学与技术 班级: 计算机XX班 学号: 311009033232 姓名: ***** 日期 ...

  6. c语言综合设计作业学籍管理系统,C语言课程设计----学生学籍管理系统

    匿名用户 1级 2014-11-13 回答 #include #include #include structstud { longnum; charname[20]; doublescore; }; ...

  7. 湖北汽车工业学院c语言,湖北汽车工业学院c语言课程设计(学生学籍管理系统)...

    为肯跌的课做得准备 /*学生信息管理问题描述:已知程序要求管理的学生信息包括: 学号(不重复),班级,姓名,年龄,性别,出生日期,地址,电话,E-mail 等. 设计一程序,完成以下功能: (1) 能 ...

  8. 学籍管理c语言程序设计报告,C语言程序设计课程设报告—学籍管理系统.doc

    C语言程序设计课程设报告-学籍管理系统 电子科技大学 C语言课程设计报告 题 目 : 学籍管理系统 院系: 电 子 工 程 学 院 姓名: 石 胡 森 学号: 2013020904005 指导教师:胡 ...

  9. java学生选课系统课程设计报告_Java语言程序设计课程设计-学生选课系统

    <Java语言程序设计课程设计-学生选课系统>由会员分享,可在线阅读,更多相关<Java语言程序设计课程设计-学生选课系统(23页珍藏版)>请在人人文库网上搜索. 1.10届 ...

最新文章

  1. Python——阶段总结(一)
  2. 三种方法实现Linux系统调用方法分享
  3. TensorFlow官方入门实操课程-卷积神经网络
  4. 牛客网(剑指offer) 第四题 重建二叉树
  5. Windows Embedded CE 6.0开发初体验(五)构建CE平台
  6. js处理倒计时,日期可以是当前日期也可以传1个时间点
  7. nginx限制恶意IP处理方法
  8. Jsoup爬虫的基本使用
  9. HTML5七夕情人节表白网页制作【满天星空3D相册】HTML+CSS+JavaScript 3D动态相册网页代码
  10. oracle常用数据字典 表,Oracle数据库中常用的数据字典表和视图
  11. SVM支持向量机原理及核函数
  12. 计算机无法找到wifi,笔记本无线网络找不到,教您怎么解决笔记本找不到无线网络...
  13. 作为程序员,应该更关注代码质量还是只需要完成功能就好了?
  14. python pandas的read_html方法爬取网页表格
  15. 「项目管理」如何使用甘特图分解项目?
  16. 线性回归的损失函数与逻辑回归的损失函数
  17. 如何在Python中安装NumPy
  18. 论文笔记 Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition - CVPR
  19. 0x0000 CUDA安装
  20. CCRC信息安全服务资质认证类别

热门文章

  1. Action和Fuc的区别
  2. 装修知道这些,简直酷必了(装修避坑指南)
  3. 沈师 PTA 数据库题目及部分解析 第五章
  4. c语言java对电脑配置的要求,java程序员需要的电脑配置
  5. ubuntu如何查看网卡名称_在 ubuntu 中修改网卡名称
  6. bzoj1123 BLO(割点)
  7. IntelliJ IDEA 常用设置(配置)吐血整理。首次安装必需
  8. 搜索引擎提交sitemap大全(网站地图)
  9. 手头有70万,刚需买房,早晚都要买,不如早点买
  10. 证明函数有界的步骤_怎样判断函数的有界性,求具体判断步骤方法。