C++实现电话簿管理程序

需积分: 16 1 下载量 43 浏览量 更新于2024-07-14 收藏 107KB PPT 举报
"AddressBookcpp文件是一个实现电话簿管理程序的C++代码示例,它包含对通信录类(Address)的定义以及与之相关的操作。电话簿管理程序允许用户进行添加、删除、显示通信录,以及存储和读取数据到文件。" 电话簿管理程序是一个C++应用程序,它使用了面向对象编程的概念,通过定义`Address`类来存储姓名和电话号码。`Address`类有三个成员变量:`Status`用于表示通信录是否为空,`Name`用于存储不超过30个字符的姓名,`Phone`用于存储不超过20个字符的电话号码。类提供了构造函数初始化通信录的状态。 `AddressBook`类是电话簿的主要管理结构,它可能包含多个`Address`对象。类中有一个`FindFree`函数,用于查找电话簿中的空闲位置。如果所有位置都被占用,它将返回-1,表示电话簿已满。 程序的用户界面是一个命令行菜单,提供以下选项: 1. 添加通信录:在电话簿中插入新的联系人。如果电话簿已满,程序会提示“电话簿已记满”。 2. 删除通信录:用户可以输入姓名来删除联系人。如果电话簿为空,程序会提示“电话簿已空”。如果输入的姓名不存在,程序会显示“该名字不存在”。 3. 显示通信录:列出所有通信录,按照姓名的字典顺序排列,每条记录占一行。 4. 电话簿存盘:用户可以输入文件名将电话簿数据保存到文件。如果保存失败,程序会显示错误信息。 5. 读出电话簿:用户输入文件名后,程序从文件中读取并加载电话簿数据。如果读取失败,同样会给出错误提示。 6. 退出:用户选择此选项时,程序会终止运行。 代码中还定义了一个重载的`<<`运算符,用于将`Address`对象以格式化的形式输出到`ostream`(如`cout`),这在显示通信录列表时非常有用。 此外,`Address.h`文件包含了`Address`类的声明,包括必要的头文件和命名空间导入。`Address`类的完整定义可能包含其他成员函数,如设置和获取姓名、电话的方法,以及构造和析构函数等。 这个程序展示了C++中基本的文件操作、输入/输出流处理、面向对象编程和错误处理的概念。为了实现完整的功能,还需要实现`AddressBook`类的其他方法,如添加、删除、显示通信录以及文件操作的相关函数。

@RequestMapping("/exportExcel") public void exportExcel(HttpServletResponse response) throws IOException { // 获取要导出的数据 List<Student> studentList = studentService.getAllStudent(); // 创建工作簿 @SuppressWarnings("resource") XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作表 XSSFSheet sheet = workbook.createSheet("学生信息表"); // 创建表头 XSSFRow row = sheet.createRow(0); row.createCell(0).setCellValue("ID"); row.createCell(1).setCellValue("学号"); row.createCell(2).setCellValue("姓名"); row.createCell(3).setCellValue("性别"); row.createCell(4).setCellValue("出生日期"); row.createCell(5).setCellValue("地址"); row.createCell(6).setCellValue("电话"); row.createCell(7).setCellValue("照片"); row.createCell(8).setCellValue("备注"); row.createCell(9).setCellValue("所属宿舍"); // 填充数据 for (int i = 0; i < studentList.size(); i++) { row = sheet.createRow(i + 1); row.createCell(0).setCellValue(studentList.get(i).getStuId()); row.createCell(1).setCellValue(studentList.get(i).getStuNo()); row.createCell(2).setCellValue(studentList.get(i).getStuName()); row.createCell(3).setCellValue(studentList.get(i).getStuSex()); row.createCell(4).setCellValue(studentList.get(i).getStuBirth()); row.createCell(5).setCellValue(studentList.get(i).getStuAddress()); row.createCell(6).setCellValue(studentList.get(i).getStuPhone()); row.createCell(7).setCellValue(studentList.get(i).getStuPhoto()); row.createCell(8).setCellValue(studentList.get(i).getStuRemark()); row.createCell(9).setCellValue(studentList.get(i).getStuDormitory()); } // 设置响应头信息 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=student.xls"); // 输出Excel文件 workbook.write(response.getOutputStream()); }需要的依赖

2023-06-09 上传