c++学生项目管理系统

没有出现菜单窗口,代码没有出错,就是运行不出来。请问哪里出错呢?

代码发出来看看

这具体要看代码才知道啊。也许显示菜单的代码都有问题就崩溃了

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/353832
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C++语言编写程序,输入一个含有数字的字符串,找出其中的所有整数(不考虑正负),排序后以规定运算方式输出
  • 除此之外, 这篇博客: C++指针函数方法从小到大排序中的 仍然不能比较出结果,所以,现在问题出在哪儿? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  

    if,if,if

    if ;else if;else if

    逻辑原理真的一样么?

    改一下试试,把else if全部换为同一个选择条件等级的if

    ​
    //5、用指针的方法实现。编写一个函数,将三个整数按由小到大的顺序排序
    //数据的输入输出在主函数中实现
    //(即:通过指针作为函数参数,在函数中排序后,变化的数据能直接反映到主函数中)
    
    #include<iostream>
    #include<stdio.h>
    using namespace std;
    
    void minMax(int * a1, int *a2, int *a3)
    {
    	int temp;
    	if (*a1 > *a2)
    	{
    		temp = *a2;
    		*a2 = *a1;
    		*a1 = temp;
    	}
    	if(*a1>*a3)
    	{
    		temp = *a3;
    		*a3 = *a1;
    		*a1 = temp;
    	}
    	if (*a2 > *a3)
    	{
    		temp = *a2;
    		*a2 = *a3;
    		*a3 = temp;
    	}
    }
    
    int main()
    {
    	int a = 0, b = 0, c = 0;
    	int *a1 = 0, *a2 = 0, *a3 = 0;
    	cout << "请输入第一个整数:" << endl;
    	cin >> a;
    	cout << "请输入第二个整数:" << endl;
    	cin >> b;
    	cout << "请输入第三个整数:" << endl;
    	cin >> c;
    	a1 = &a;
    	a2 = &b;
    	a3 = &c;
    	minMax(a1, a2, a3);
    	cout << a << "<" << b << "<" << c << endl;
    	printf("%d %d %d ", a, b, c);
    	system("pause");
    	return 0;
    }
    
    ​

    可以进行比较

    所以,小小的else if和if竟然相差这么多,原理,在我的理解看来就是,else if就像是不满足if的条件编译器选择的第二条路,如果不是同样的三岔路口的话,用户输入的数字,因为输入的先后会得到不同的备用选项 

  • 您还可以看一下 王桂林老师的<3>华为工程师 ,带你实战C++(2018版)课程中的 02类成员函数的存储方式小节, 巩固相关知识点

修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
//#include "head.h"
void printf_menu()
{
    int i;
    system("color F0");
    char *sentence[8] = { "创建学生数据","查找学生数据",
                          "更新学生数据","排序学生数据",
                          "统计学生数据","保存学生数据",
                          "输出学生数据","退出学生数据"};
    printf("\n\n\t\t\t\t\t\t 学生信息管理系统\n\t\t\t");
    for(i = 0; i < 30; i++)  printf("*");
    printf("主菜单");
    for(i = 0; i < 30; i++)  printf("*");
    printf("\n\n\t\t\t*\t\t\t\t\t\t\t\t *\n");
    for(i = 1; i < 9; i += 2){
        printf("\t\t\t*\t%d、%s\t\t\t%d、%s\t\t *\n",i,sentence[i-1],i+1,sentence[i]);
        printf("\n\n\t\t\t*\t\t\t\t\t\t\t\t *\n");
    }
    printf("\t\t\t");
    for(i = 0; i < 66; i++) printf("*");
    printf("\n\t\t\t请输入你的选择:");
}
int main()
{
    int sel, exit = 1;
    while (exit){
        printf_menu();
        scanf("%d", &sel);
        switch(sel){
            case 1: printf("您选择了:1.创建学生数据模块\n");break;
            case 2: printf("您选择了:2.查找学生数据模块\n");break;
            case 3: printf("您选择了:3.更新学生数据模块\n");break;
            case 4: printf("您选择了:4.排序学生数据模块\n");break;
            case 5: printf("您选择了:5.统计学生数据模块\n");break;
            case 6: printf("您选择了:6.保存学生数据模块\n");break;
            case 7: printf("您选择了:7.输出学生数据模块\n");break;
            case 8: printf("谢谢使用,再见!\n");  exit = 0;break;
            default:printf("选择错误,请重新选择!\n");     break;
        }
        printf("按任意键继续...");
        getch();
        system("cls");
    }
    return 0;
}