devc++向txt中储存信息代码
时间: 2023-08-17 19:05:10 浏览: 82
以下是使用 Dev-C++ 向 txt 文件中写入信息的示例代码:
```c++
#include <fstream> // 文件流头文件
#include <iostream>
#include <string>
using namespace std;
int main()
{
ofstream out("example.txt"); // 创建一个名为 example.txt 的输出文件流对象
if (!out) // 判断文件是否成功打开
{
cout << "文件打开失败!" << endl;
return -1;
}
string info = "Hello World!"; // 要写入的信息
out << info; // 将信息写入文件
out.close(); // 关闭文件流
return 0;
}
```
以上代码会创建一个名为 `example.txt` 的文件,并将字符串 "Hello World!" 写入该文件中。可以根据需要修改文件名和写入的信息。
相关问题
dev c++学生成绩管理系统代码
以下是一个简单的Dev C++学生成绩管理系统代码,它可以实现添加学生信息、查询学生信息、修改学生信息和删除学生信息等功能。代码中使用了结构体来存储学生信息,使用文件来保存学生信息。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "students.txt" // 存储学生信息的文件名
#define MAX_STUDENT_NUM 100 // 最大学生数
// 学生结构体
typedef struct {
char class_0[20]; // 班级
int num; // 学号
char name[8]; // 姓名
float elec; // 电子成绩
float c_program; // C++成绩
float media; // 多媒体成绩
float english; // 英语成绩
float math; // 数学成绩
float physics; // 大学物理成绩
float sport; // 体育成绩
float polity; // 政治成绩
float average; // 平均分
} Student;
// 学生数组
Student stu[MAX_STUDENT_NUM];
int stu_num = 0; // 学生数
// 添加学生信息
void add_student() {
if (stu_num >= MAX_STUDENT_NUM) {
printf("学生数已达到最大值,无法添加新学生!\n");
return;
}
printf("请输入学生信息:\n");
printf("班级:");
scanf("%s", stu[stu_num].class_0);
printf("学号:");
scanf("%d", &stu[stu_num].num);
printf("姓名:");
scanf("%s", stu[stu_num].name);
printf("电子成绩:");
scanf("%f", &stu[stu_num].elec);
printf("C++成绩:");
scanf("%f", &stu[stu_num].c_program);
printf("多媒体成绩:");
scanf("%f", &stu[stu_num].media);
printf("英语成绩:");
scanf("%f", &stu[stu_num].english);
printf("数学成绩:");
scanf("%f", &stu[stu_num].math);
printf("大学物理成绩:");
scanf("%f", &stu[stu_num].physics);
printf("体育成绩:");
scanf("%f", &stu[stu_num].sport);
printf("政治成绩:");
scanf("%f", &stu[stu_num].polity);
stu[stu_num].average = (stu[stu_num].elec + stu[stu_num].c_program + stu[stu_num].media + stu[stu_num].english + stu[stu_num].math + stu[stu_num].physics + stu[stu_num].sport + stu[stu_num].polity) / 8.0;
stu_num++;
printf("添加成功!\n");
}
// 查询学生信息
void query_student() {
int num;
printf("请输入要查询的学生学号:");
scanf("%d", &num);
for (int i = 0; i < stu_num; i++) {
if (stu[i].num == num) {
printf("班级:%s\n", stu[i].class_0);
printf("学号:%d\n", stu[i].num);
printf("姓名:%s\n", stu[i].name);
printf("电子成绩:%.2f\n", stu[i].elec);
printf("C++成绩:%.2f\n", stu[i].c_program);
printf("多媒体成绩:%.2f\n", stu[i].media);
printf("英语成绩:%.2f\n", stu[i].english);
printf("数学成绩:%.2f\n", stu[i].math);
printf("大学物理成绩:%.2f\n", stu[i].physics);
printf("体育成绩:%.2f\n", stu[i].sport);
printf("政治成绩:%.2f\n", stu[i].polity);
printf("平均分:%.2f\n", stu[i].average);
return;
}
}
printf("未找到该学生!\n");
}
// 修改学生信息
void modify_student() {
int num;
printf("请输入要修改的学生学号:");
scanf("%d", &num);
for (int i = 0; i < stu_num; i++) {
if (stu[i].num == num) {
printf("请输入修改后的学生信息:\n");
printf("班级:");
scanf("%s", stu[i].class_0);
printf("学号:");
scanf("%d", &stu[i].num);
printf("姓名:");
scanf("%s", stu[i].name);
printf("电子成绩:");
scanf("%f", &stu[i].elec);
printf("C++成绩:");
scanf("%f", &stu[i].c_program);
printf("多媒体成绩:");
scanf("%f", &stu[i].media);
printf("英语成绩:");
scanf("%f", &stu[i].english);
printf("数学成绩:");
scanf("%f", &stu[i].math);
printf("大学物理成绩:");
scanf("%f", &stu[i].physics);
printf("体育成绩:");
scanf("%f", &stu[i].sport);
printf("政治成绩:");
scanf("%f", &stu[i].polity);
stu[i].average = (stu[i].elec + stu[i].c_program + stu[i].media + stu[i].english + stu[i].math + stu[i].physics + stu[i].sport + stu[i].polity) / 8.0;
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 删除学生信息
void delete_student() {
int num;
printf("请输入要删除的学生学号:");
scanf("%d", &num);
for (int i = 0; i < stu_num; i++) {
if (stu[i].num == num) {
for (int j = i; j < stu_num - 1; j++) {
stu[j] = stu[j + 1];
}
stu_num--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 保存学生信息到文件
void save_student() {
FILE *fp;
fp = fopen(FILENAME, "w");
if (fp == NULL) {
printf("无法打开文件!\n");
return;
}
fprintf(fp, "%d\n", stu_num);
for (int i = 0; i < stu_num; i++) {
fprintf(fp, "%s %d %s %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f\n", stu[i].class_0, stu[i].num, stu[i].name, stu[i].elec, stu[i].c_program, stu[i].media, stu[i].english, stu[i].math, stu[i].physics, stu[i].sport, stu[i].polity, stu[i].average);
}
fclose(fp);
printf("保存成功!\n");
}
// 从文件中读取学生信息
void load_student() {
FILE *fp;
fp = fopen(FILENAME, "r");
if (fp == NULL) {
printf("无法打开文件!\n");
return;
}
fscanf(fp, "%d", &stu_num);
for (int i = 0; i < stu_num; i++) {
fscanf(fp, "%s %d %s %f %f %f %f %f %f %f %f %f", stu[i].class_0, &stu[i].num, stu[i].name, &stu[i].elec, &stu[i].c_program, &stu[i].media, &stu[i].english, &stu[i].math, &stu[i].physics, &stu[i].sport, &stu[i].polity, &stu[i].average);
}
fclose(fp);
printf("读取成功!\n");
}
// 显示菜单
void show_menu() {
printf("1. 添加学生信息\n");
printf("2. 查询学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 保存学生信息到文件\n");
printf("6. 从文件中读取学生信息\n");
printf("0. 退出程序\n");
}
int main() {
int choice;
while (1) {
show_menu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
query_student();
break;
case 3:
modify_student();
break;
case 4:
delete_student();
break;
case 5:
save_student();
break;
case 6:
load_student();
break;
case 0:
return 0;
default:
printf("无效选项!\n");
break;
}
}
return 0;
}
```
请你使用DEVC++,基于单链表存储结构,完成学生信息链表创建、学生信息输入、学生信息 查询、学生信息修改、学生信息删除、学生信息输出(全部或部分输出)或保存到文件,学生相关排序。
好的,以下是基于单链表存储结构的学生信息管理系统的实现代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// 定义学生信息结构体
struct Student {
int id; // 学号
string name; // 姓名
int age; // 年龄
string gender; // 性别
double score; // 成绩
Student* next; // 指向下一个节点的指针
};
// 初始化链表
Student* init() {
Student* head = new Student;
head->next = NULL;
return head;
}
// 添加学生信息
void add(Student* head) {
Student* p = head;
while (p->next != NULL) {
p = p->next;
}
Student* newStudent = new Student;
cout << "请输入学生信息:\n";
cout << "学号:";
cin >> newStudent->id;
cout << "姓名:";
cin >> newStudent->name;
cout << "年龄:";
cin >> newStudent->age;
cout << "性别:";
cin >> newStudent->gender;
cout << "成绩:";
cin >> newStudent->score;
newStudent->next = NULL;
p->next = newStudent;
cout << "学生信息添加成功!\n";
}
// 查询学生信息
void query(Student* head) {
int id;
cout << "请输入要查询的学生学号:";
cin >> id;
Student* p = head->next;
while (p != NULL) {
if (p->id == id) {
cout << "学号:" << p->id << " 姓名:" << p->name << " 年龄:" << p->age << " 性别:" << p->gender << " 成绩:" << p->score << endl;
return;
}
p = p->next;
}
cout << "未找到该学生的信息!\n";
}
// 修改学生信息
void modify(Student* head) {
int id;
cout << "请输入要修改的学生学号:";
cin >> id;
Student* p = head->next;
while (p != NULL) {
if (p->id == id) {
cout << "请输入修改后的学生信息:\n";
cout << "姓名:";
cin >> p->name;
cout << "年龄:";
cin >> p->age;
cout << "性别:";
cin >> p->gender;
cout << "成绩:";
cin >> p->score;
cout << "学生信息修改成功!\n";
return;
}
p = p->next;
}
cout << "未找到该学生的信息!\n";
}
// 删除学生信息
void remove(Student* head) {
int id;
cout << "请输入要删除的学生学号:";
cin >> id;
Student* p = head;
while (p->next != NULL) {
if (p->next->id == id) {
Student* temp = p->next;
p->next = temp->next;
delete temp;
cout << "学生信息删除成功!\n";
return;
}
p = p->next;
}
cout << "未找到该学生的信息!\n";
}
// 输出学生信息
void print(Student* head) {
Student* p = head->next;
while (p != NULL) {
cout << "学号:" << p->id << " 姓名:" << p->name << " 年龄:" << p->age << " 性别:" << p->gender << " 成绩:" << p->score << endl;
p = p->next;
}
}
// 保存学生信息到文件
void save(Student* head) {
ofstream outfile("student.txt");
if (!outfile.is_open()) {
cout << "无法打开文件!\n";
return;
}
Student* p = head->next;
while (p != NULL) {
outfile << p->id << " " << p->name << " " << p->age << " " << p->gender << " " << p->score << endl;
p = p->next;
}
outfile.close();
cout << "学生信息保存成功!\n";
}
// 从文件加载学生信息
void load(Student* head) {
ifstream infile("student.txt");
if (!infile.is_open()) {
cout << "无法打开文件!\n";
return;
}
while (!infile.eof()) {
Student* newStudent = new Student;
infile >> newStudent->id >> newStudent->name >> newStudent->age >> newStudent->gender >> newStudent->score;
newStudent->next = NULL;
Student* p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newStudent;
}
infile.close();
cout << "学生信息加载成功!\n";
}
// 根据学号排序学生信息
void sortById(Student* head) {
Student* p, * q, * tail;
tail = NULL;
while (head->next != tail) {
p = head;
q = p->next;
while (q->next != tail) {
if (q->id > q->next->id) {
p->next = q->next;
q->next = q->next->next;
p->next->next = q;
}
p = p->next;
q = p->next;
}
tail = q;
}
cout << "学生信息按学号排序成功!\n";
}
// 根据成绩排序学生信息
void sortByScore(Student* head) {
Student* p, * q, * tail;
tail = NULL;
while (head->next != tail) {
p = head;
q = p->next;
while (q->next != tail) {
if (q->score < q->next->score) {
p->next = q->next;
q->next = q->next->next;
p->next->next = q;
}
p = p->next;
q = p->next;
}
tail = q;
}
cout << "学生信息按成绩排序成功!\n";
}
int main() {
Student* head = init();
int choice;
while (true) {
cout << "请选择操作:\n";
cout << "1. 添加学生信息\n";
cout << "2. 查询学生信息\n";
cout << "3. 修改学生信息\n";
cout << "4. 删除学生信息\n";
cout << "5. 输出学生信息\n";
cout << "6. 保存学生信息到文件\n";
cout << "7. 从文件加载学生信息\n";
cout << "8. 根据学号排序学生信息\n";
cout << "9. 根据成绩排序学生信息\n";
cout << "0. 退出程序\n";
cin >> choice;
switch (choice) {
case 1:
add(head);
break;
case 2:
query(head);
break;
case 3:
modify(head);
break;
case 4:
remove(head);
break;
case 5:
print(head);
break;
case 6:
save(head);
break;
case 7:
load(head);
break;
case 8:
sortById(head);
break;
case 9:
sortByScore(head);
break;
case 0:
return 0;
default:
cout << "无效操作!\n";
break;
}
}
}
```
这个学生信息管理系统实现了添加、查询、修改、删除、输出、保存到文件、从文件加载、根据学号排序、根据成绩排序等功能,可以通过菜单进行选择。你可以将以上代码保存为`.cpp`文件,使用DEVC++进行编译和运行。
阅读全文