关于c++的一些问题

**怎样把下面代码改成满足下列要求形式**
(只学了单链表,对于文件不会使用)
> 有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地址,英语入学成绩。要求设计链表类来实现,并统计学生人数。文本界面为:
1. 新增学生信息 
2. 删除学生信息
3. 导入学生信息(已经保存于的文件信息)
4. 学生信息搜索(按姓名)
5. 学生信息统计(按专业或性别或年龄---年龄要自动计算)
6. 按英语成绩排序
7. 学生信息保存
8. 退出
******请选择:1



``````c++

**或者是这种形式**
> 每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理
(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序排序
(2) 插入(修改)同学信息
(3) 删除同学信息
(4) 浏览学生信息
B、学生数据处理:
(1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次。
(2) 学生测评数据输入并计算综合测评总分及名次。
提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。
(3) 学生数据查询:
提示:输入学号或其他信息,即读出所有数据信息,并显示出来。
(4) 显示功能:完成全部学生信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)
(5)学生初始信息从文件调入、更新后最后信息存入一新文件


#include<iostream>
#include<stdlib.h>
using namespace std;
int k = 1;
struct student { //修改
    int  num;
    char name[30];
    struct student* next;
};
class stu {
private:
    struct student* head, * tail;
public:
    stu() {
        head = new struct student; //修改
        head->num = 0;
        head->name[0] = '\0';
        head->next = NULL;  //修改
    };
    void create(int n);
    void print();
    int  Insert();
    void del();
    void destroy();
};
void stu::create(int n) {
    struct student* p;
             //head->next = NULL;  修改
    tail = head;
    for (int i = 0; i < n; i++) {
        p = new struct student;  //修改
        cout << "input num,name" << endl;
        cin >> p->num >> p->name;
        cout << endl;
        p->next = NULL;
        tail->next = p;
        tail = p;
    }
}
void stu::print()
{
    if (head->next == NULL) { //修改
        cout << "kongbiao" << endl;
        return;
    }
    struct student* p;
    p = head->next;
    while (p != NULL) {
        cout << p->num << '\t' << p->name << endl;
        p = p->next;
    }
}
int stu::Insert() {
    system("cls");
    if (head->next == NULL) { //修改
        cout << "kongbiao" << endl;
        return -1;
    }
    cout << "请输入要在哪个学号后面插入信息" << endl;
    int sno;
    cin >> sno;
    struct student* p = head->next;
    while (p != NULL){ 
        if (p->num == sno) {
            struct student* newp = new struct student; //修改 
            newp->next = NULL;                      
            cout << "请输入要插入的信息:num,name" << endl;
            cin >> newp->num >> newp->name;
            newp->next = p->next; 
            p->next = newp;
            break;
        }
        p = p->next;
    }
    if (p == NULL)                                   //修改
        printf("学号:%d 记录未找到,插入未成功!\n", sno);
    return 0;
}
void stu::del() {
    system("cls"); 
    if (head->next == NULL) {       //修改
        cout << "kongbiao" << endl;
        return;
    }
    struct student* p, * pre;
    p = head->next;
    pre = head;
    cout << "请输入要删除的学号" << endl;
    int sno;
    cin >> sno;
    while (p != NULL) {
        if (p->num == sno) {
            pre->next = p->next;
            delete p;
            printf("学号:%d 记录删除成功!\n", sno);//修改
            return;  //break;                        //修改
        }
        pre = p;
        p = p->next;
    }
    if (p == NULL)                                  //修改
        printf("学号:%d 记录未找到,删除未成功!\n", sno);
}
void stu::destroy() {
    struct student* p, * ptr;
    //p = head;             //修改
    while (head->next != NULL) {
        ptr = head->next;
        head->next = ptr->next;
        delete ptr;
    }
}
void menu(stu STU)/* 界面*/   //修改
{
    cout << "1.添加" << endl;
    cout << "2.打印" << endl;
    cout << "3.插入" << endl;
    cout << "4.删除" << endl;
    cout << "5.销毁" << endl;
    cout << "6.退出" << endl;
    int num;
    //stu STU;               //修改
    cout << "请输入你的选择" << endl;
    cin >> num;
    switch (num) {
    case 1:
        int n;
        cout << "请输入个数" << endl;
        cin >> n;
        STU.create(n);
        STU.print();
        break;
    case 2:
        STU.print();
        break;
    case 3:
        STU.Insert();
        STU.print();
        break;
    case 4:
        STU.del();
        STU.print();
        break;
    case 5:
        STU.destroy();
        STU.print();
        break;
    case 6:
        k = 0;
        cout << "即将退出程序!" << endl;
        break;
    default:
        cout << "请在1~6之间选择" << endl;
        break;
    }
}void save(){
    int i;
    FILE *fp;
    char filename[LEN + 1];
    printf("请输入要保存的文件名:\n");
    scanf("%s", filename);
    fp = fopen(filename, "w");
    for (i = 0; i < n; i++){
        fprintf(fp, );
    }
    printf("保存成功!!!\n");
    fclose(fp);
    system("pause");
}
void save(){
    int i;
    FILE *fp;
    char filename[LEN + 1];
    printf("请输入要保存的文件名:\n");
    scanf("%s", filename);
    fp = fopen(filename, "w");
    for (i = 0; i < n; i++){
        fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
            stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    }
    printf("保存成功!!!\n");
    fclose(fp);
    system("pause");
}


int main() 
{
    stu STU;    //修改
    while (k) {
        menu(STU);
    }
    system("pause");
    return 0;
}
 

https://blog.csdn.net/qq_43678290/article/details/85630971
这里查到一个,看评论说有点问题,你看能不能用。

这个就是比较繁琐,实现起来不难的,而且站内还有好多参考的

空手套白狼,合着就是5块钱找人代写呗