【紧急】求C语言编程高手帮忙、急~这是一个下拉菜单的程序、但是我的子菜单怎么都显示不出来~

作者&投稿:莱胁 (若有异议请与网页底部的电邮联系)
如何用C语言编写程序使系统以菜单方式工作~

# include <iostream>
# include <fstream>
# include <string.h>
#include <conio.h>//用getch();
using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
char name[20];
char Id[20];
int Cnum; //C++课程得分
int Mnum; //汇编课程得分
int Enum; //嵌入式操作系统课程得分
int sum; //总分
Student * Next;
void Input()
{
cout<<"请输入学生的姓名:"; cin>>name;
cout<<"请输入学生的学号:"; cin>>Id;
cout<<"请输入C++课程的成绩:"; cin>>Cnum;
cout<<"请输入汇编课程的成绩:"; cin>>Mnum;
cout<<"请输入嵌入式操作系统课程的成绩:"; cin>>Enum;
sum=Cnum+Mnum+Enum;
}
void ReadFile(istream & in)
{
in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
}
void Show()
{
cout<<"姓名:"<<name<<endl<<"学号:"<<Id<<endl<<"C++:"<<Cnum<<endl
<<"汇编:"<<Mnum<<endl<<"嵌入式操作系统:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head->Next;p!=End;p=p->Next)
p->Show();
cout<<"输入任意字符!继续……";
getch();
}
void AddItem()
{
End->Input();
End->Next=new Student;
End=End->Next;
cout<<"添加成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->Id,Id))return p;
return NULL;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new Student;
Head->Next=new Student;
End=Head->Next;
in.open("sort.txt");
if(!in)
cout<<"这是一个新系统,无学生信息。请先输入。"<<endl;
else
{
while(!in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new Student;
End=End->Next;
}
in.close();
cout<<"读取学生信息成功!"<<endl;
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student * temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete temp;
}
delete Head,End;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
cout<<"********************************************************************************"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;

cout<<"

请选择:";
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<<"
*********************************
";
cout<<"※ 1.按学生的姓名查找
※ 2.按学生学号查找";
cout<<"
*********************************
请选择:";
cin>>x;
switch(x)
{
case 1:{cout<<"请输入要查找的学生的姓名:";cin>>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到该姓名的学生!"<<'
'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
case 2:
{
cout<<"请输入要查找的学生的学号:";cin>>Id;
if(p=FindID(Id))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到该学好的学生!"<<'
'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() //修改信息
{
char name[20];
Student * p=NULL;
cout<<"请输入要修改的人的姓名:";cin>>name;
if(p=FindItem(name))
{
cout<<"已找到学生的信息,请输入新的信息!"<<endl;
p->Next->Input();
cout<<"修改成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem() // 删除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout<<"请输入要删除的学生的姓名:"<<endl;cin>>name;
if(p=FindItem(name))
{
temp=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"删除成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//交换两个combox变量的数据域
{
Student *temp=new Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->Cnum=p1->Cnum;
temp->Mnum=p1->Mnum;
temp->Enum=p1->Enum;
temp->sum=p1->sum;

strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->Cnum=p2->Cnum;
p1->Mnum=p2->Mnum;
p1->Enum=p2->Enum;
p1->sum=p2->sum;

strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->Cnum=temp->Cnum;
p2->Mnum=temp->Mnum;
p2->Enum=temp->Enum;
p2->sum=temp->sum;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage::ListCount()//统计当前链表的记录总数,返回一个整数
{
if(! Head)
return 0;
int n=0;
for(Student * p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return n;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//对当前链表进行排序
{
cout <<"Sorting..."<<endl;
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout <<"排序完成!"<<endl;
getch();
return;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Save()
{
out.open("sort.txt");
for(Student *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<""<<p->Id<<""<<p->Cnum<<""
<<p->Mnum<<""<<p->Enum<<""<<p->sum<<'
';
out.close();
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main()
{
int x,i=0;
bool quit=false;
cout<<"§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
for(i=0;i<3;i++)
cout<<"◎ ◎"<<endl;
cout<<"◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"<<endl;
for(i=0;i<3;i++)
cout<<"◎ ◎"<<endl;
cout<<"§§§§§§§§§§§§§§§§§§§§§§§§§§
"<<endl;;
Studentmassage Grade;
cout<<"按任意键开始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:Grade.AddItem();break;
case 2:Grade.Display();break;
case 3:Grade.Sort();break;
case 4:Grade.Find();break;
case 5:Grade.RemoveItem();break;
case 6:Grade.ModifyItem();break;
}
}
return 0;
}

#include

int Menu()
{
char c;
scanf("%c",&c);
switch(c)
{
case 'A':
puts("FunA");
break;
case 'B':
puts("FunB");
case 'C':
puts("FunC");
break;
default:
printf("%d
",-1);
return -1;
}
return 0;
}
int
main()
{
Menu();
return 0;
}


求C语言 入门编程的 程序代码 急!急!急!
求C语言 入门编程的 程序代码 急!急!急! 各位大侠啊,我刚学C语言不久,懂了一些编程的算法和原理特想找以本,基础的C语言代码教程就是里面全是程序代码,但是必须有中文注释的!像:C程序开发经典实例之1题目:古典问题:出生... 各位大侠啊,我刚学C语言不久,懂了一些编程的算法和原理特想找以本,基础的C语言...

急问一个c语言编程题目,求数组中第一个符合条件的返回值
源程序写得有点乱,我帮你整理了一下 include <stdio.h>int findFirst(int *a);int main(){ int i,a[10];printf("input 10 numbers :\\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("符合标准的第一个数字的位置是%d\\n ",findFirst(a));return 0;} int findFirst(...

C语言编程求助!!!求高手帮忙!感激不尽!
include "stdio.h"include"string.h"int main(){ int i,s = 0; \/*请修改此处:int和i间有空格; 计算的和值s首先要清零 *\/ char str[80];i=0;while ((str[i]=getchar())!='\\n')i++;str[i]='\\0';for(i=0;i<80;i++)if (str[i]>='0' && str[i]<='9') \/*...

学生C语言编程学习必备的一些网站
C语言网(www.dotcpp.com)不仅提供C语言,还包括C++、java、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及软件下载、题解博客,源码分享等优质资源,提倡边学边练边分享,同时提供对口的IT工作,是国内领先实用的综合性编程学习网站! 2、C语言中文网 C语言中文网是中国领先的C语言程序设计...

C语言编程,求100-200以内能被7整除的数之和 紧急求解
100-200以内的能被7整除的数是一个等差数列。求和就是求这个等差数列的和。关键是找到这个数列的首项和最后一项及项数。首项是105,最后一项是196 项数为(196-105)÷7+1=14 那么这个等差数列的和为 (105+196)×14÷2=2107

c语言求编程
1 include<stdio.h>int main(){ int a=4,b=2; printf("a+b=%d\\n",a+b); printf("a-b=%d\\n",a-b); printf("a*b=%d\\n",a*b); printf("a\/b=%d\\n",a\/b); return 0;}2 a>b && b>ca<c || b<ca!=b && a%b!=0a%2==0 && a%3==0 &&...

求一个c语言编程?
include<stdio.h> void main(){ int a,b,c,x,y,z;printf("请输入x、y、z:");scanf("%d,%d,%d",&x,&y,&z);while(x>=y||y>=z||x<=0||y<=0||z<=0){ printf("你输入的数字不正确!\\n\\n");printf("请输入x、y、z:");scanf("%d,%d,%d",&x,&y,&z);} for(a...

求C语言编程大佬帮忙!这道题的逻辑哪里出错了!找了几个小时了没搞明白...
代码有点乱,不太看得清思路,里面有一些数组越界访问的情况,算法是否有效未知,重写了一个供参考。思路如下:这个问题实际上是生成0~9的全排列,然后根据每个数在格子里的位置判断每个排列是否符合要求。百度了一个全排列算法稍做修改,得到以下代码,输出的有效方案数是1580,在我这里输出大约在70ms到...

C语言编程:求cosx sinx 2x+1 在(a,b)的定积分 ab的值从键盘输入。(1...
楼上那个不是函数指针的啦,看这个 include<stdio.h> include<math.h> double cosx(double x);double sinx(double x);double line(double x);double integral(double a, double b, double (*p)(double), double n);int main(){ printf("%lf\\n",integral(1,2,&cosx,100));printf("%lf\\...

【c语言编程求助】用π\/4=1-1\/3+1\/5-1\/7……公式求π的近似值,直到最后...
include<stdio.h> void main(){ double pi=0,sum=0,k=1;int i=1;do{ sum=sum+i\/k;k=k+2;i=-i;} while(1\/k>0.0001);pi=4*sum;printf("PI的值是:%f\\n",pi);} vc++6.0下调试通过,pi值为3.141393

孝昌县17352347404: 求C语言编程高手帮忙!!! -
易凤异丁: #include#include using namespace std; int main() { int a[20]; for(int i=0;i cin>>a[i]; for(int i=0;i { for (int j=1;a[j]!=0;j++)if(a[i] { int temp; temp=a[i]; a[i]=a[j]; a[j]=temp; }} cout system("pause"); return 0; }

孝昌县17352347404: [紧急]C语言编程,求各位高手帮个忙 -
易凤异丁: void reserve(char* str) { assert(str != NULL); char * p1 = str; char * p2 = str-1; while(*++p2); //一般要求不能使用strlen p2 -= 1; while(p1<p2) { char c = *p1; *p1++ = *p2; *p2-- = c; } } void main() { char str[10]; int i; for(i=0;i<10;i++) scanf("%c",str[i]); ...

孝昌县17352347404: C语言编程高手们,请帮我一个忙,十万火急!!!
易凤异丁: int sum=0,i,n; for(i=1,n=1;i<=10;i++) { n=n*i; sum+=n; } printf("%d",sum);

孝昌县17352347404: 求c语言大神帮忙,急! -
易凤异丁: #include int main(){ int number,a,b,c; scanf("%d",&number); a=number%10; b=(number/10)%10; c=number/100; printf("%d%d%d\n",a,b,c); }

孝昌县17352347404: C语言编程,急求帮忙
易凤异丁: #include "stdio.h" #include "conio.h" void main() { char* strConverseString;//逆序保存文件内容 FILE* pFile = NULL ;//定义文件指针 long int nStrLength = 0;//文件长度 if( ( pFile = fopen( "d:\\txt.txt" , "rt" ) ) == NULL )//以文本方式打开...

孝昌县17352347404: 求C语言高手,急急急!!!加分
易凤异丁: #include<stdio.h> #include<string.h> #define N 10 struct date {int year; int month; int day; }; struct student {char num[10]; char name[8]; struct date birthday; char sex; int score[6]; float ave; }stu[N],temp; void main() {int i,j; char k[30]; FILE *fp; if((fp=...

孝昌县17352347404: C语言:急急急!求高手帮忙啊 !
易凤异丁: #include <stdio.h> #include <string.h> int main() { char str[]="871M&278"; int len=strlen(str); int i,sum=0; for(i=0; i<len; i++) sum+=str[i]; printf("SUM = %d\n",sum); return 0; }

孝昌县17352347404: 急求C语言编程高手帮我编程
易凤异丁: 这是不考虑任何优化的程序代码: #include<stdio.h> void f2(int n) { int i; printf("Sample output2:\n"); for(i=1;i<=n;i++) if(i%3==1&&i%5==1&&i%7==1) printf("%d\n",i); } void main() { int n; printf("Please input n\n"); scanf("%d",&n); f2(n); } 这是输入300运行的结果:

孝昌县17352347404: C语言编程题求高手 ...
易凤异丁: 你好,程序如下: #include<stdio.h> void main() { int a,b,c; int n; for(n=100;n<=999;n++) { a=n/100; b=n/10%10; c=n%10; if(n==(a*a*a+b*b*b+c*c*c)) printf("%d\n",n); } }有疑问提出. 望采纳.

孝昌县17352347404: 急!!寻求C语言高手帮忙解答!
易凤异丁: #include<stdio.h> void main() { char string[100]; int i,num=0,space=0; //i是循环变量,num是空格个数,space是空格标志位 char c; gets(string); for(i=0;(c=string[i])=='\0';i++) if(c!=' ')space=0; else if(space==0) { space=1; num++; } printf("there are %d spaces in the line.\n",num); } 这是我做的第2题答案

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网