帮我这只菜鸟看看这个程序错在那里,应如何改正

a39400 a39400 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
////////////////////////////////////////////////////////////////
//===============written ========================//
//////////////////////////////////////////////////////////////

#include<iomanip.h>//学生成绩管理系统的链表实现
#include<string.h>


//===============declaration================================//

class node{//节点类

friend class list;
public:
void getdata();
// ~node(){delete next;}

private:
char number[10];
char name[10];
bool sex;
float score[4];
node * next;
};
void node::getdata(){//赋值函数
char rtemp[10];
float rscore;
int temp;

cout<<"Name:";
cin>>rtemp;
strcpy(name,rtemp);
cout<<"Number:";
cin>>rtemp;
strcpy(number,rtemp);
cout<<"Sex(0-female,1-male):";
cin>>temp;
while(!(temp==0||temp==1)){
cout<<"\n对不起,输入错误,请重输!\nSex(0-female,1-male):";
cin>>temp;
}
if(temp==1) sex=true;
else sex=false;
for(int j=0;j<4;j++){
cout<<"Score"<<j<<":";
cin>>rscore ;
score[j]=rscore;
}
cout<<endl;
}

//----------------------------------------------------------------------//
class list{//ADT表类

public:

list(){first=NULL;}
~list();
bool search(const char *x);
bool Insert(int k,node &x);
bool Delete(int k);
void PrintList(ostream & out);

private:
node* first;

};
list::~list()//析构函数
{
node *p;

while(first){
p=first->next;
delete first;
first=p;
}
}

bool list::search(const char *x )//按学号查找
{

bool success=false;
node * p=first;
int k=1;

while(strcmp(p->number,x)!=0 && p){

p=p->next;
k++;

}

if(p) {

success=true;

cout<<"该记录为第"<<k<<"条"<<":";
cout<<"name:"<<
p->name<<";number:"<<p->number
<<";sex:";

if(p->sex=true) cout<<"male";
else cout<<"female";

for(int j=0;j<4;j++){
cout<<";score"<<j<<":"<<p->score[j]
<<"."<<endl<<endl; }
}
return success;
}

void list::PrintList(ostream & out)//输出ADT表
{
node *p=first;
int i=1;

while(p){

out<<"No"<<i<<":"<<endl<<"name:"<<
p->name<<";number:"<<p->number
<<";sex:";

if(p->sex=true) out<<"male";
else out<<"female";

for(int j=0;j<4;j++){
out<<";score:"<<j<<p->score[j]
<<"."<<endl<<endl;}


p=p->next;
}
}

bool list::Insert(int k,node &x)//在第k个元素后插入
{
bool success=false;

node * p=first;
int s=1;
if(k==0) {

if(!first){
first=new node;
first->next=NULL;
}
x.next=first->next;
first=&x;

success=true;
}

else if(k>0){
if(p && s!=k){
s++;
p=p->next;
}
if(p){
x.next=p->next;
p=&x;

success=true;
}
}

return success;
}

bool list::Delete(int k)//删除第k个元素后的元素
{
bool success=false;

node * p=first;
int s=1;

if(k==0 && p) {
first=first->next;
success=true;
}

else if(k>0){
if(s!=k && p->next){
p=p->next;
s++;
}
if(p->next){
p=p->next->next;
success=true;
}
}

return success;
}
//=================end of declration============================//

//=================main function===============================//
void createadt(int n,list & x);
void insert(list &x);
void Delete(list &x);
void search(list &x);
void print(list &x);

void main()
{
int n;
list x;

cout<<"********************************"<<endl;
cout<<"********************************"<<endl;
cout<<"* ◎欢迎进入学生成绩管理系统◎ *"<<endl;
cout<<"********************************"<<endl;
cout<<"********************************"<<endl<<endl;
cout<<"请先建立一张表!"<<endl<<endl;
cout<<"输入表中的记录数:";

cin>>n;
while(n<0){
cout<<"对不起,输入错误!\n请重新输入:";
cin>>n;
}
cout<<"\n开始建表......"<<endl;


createadt(n,x);

cout<<"......建表结束\n";
do{
cout<<"请选择操作\n1.插入 2.删除 3.查询 4.打印 5.退出"<<endl;

cin>>n;


while(n<1||n>5){
cout<<"对不起,输入错误!\n请重新输入:";
cin>>n;
}
cout<<"\n执行操作......"<<endl;

switch(n){

case(1):insert(x);break;
case(2):Delete(x);break;
case(3):search(x);break;
case(4):print(x);break;

}

} while(n!=5);
cout<<"感谢使用本管理系统!\n请真诚提出建议,谢谢!\n再见!!";
// char m;
// cin>>m;
}

//========================end of main function=========================================//

void createadt(int n,list & x)
{

for(int i=1;i<=n;i++)
{ cout<<"No"<<i<<":"<<endl;
node a;
a.getdata();
x.Insert(i-1,a);
}
}
//-----------------------------------------------------------------------------//
void insert(list &x)
{

cout<<"请输入插入的记录有关信息:"<<endl;
node a;
a.getdata();
cout<<"需要插入在第几条的后面:";
int j;
cin>>j;
if(x.Insert(j,a)) cout<<"\n插入成功"<<endl;
else cout<<"\n对不起,插入失败"<<endl;
}
//----------------------------------------------------------------------------//
void Delete(list &x)
{
cout<<"需要在第几条的后面删除:";
int j;
cin>>j;
if(x.Delete (j)) cout<<"\n删除成功"<<endl;
else cout<<"\n对不起,输入有误,删除失败"<<endl;
}
//---------------------------------------------------------------------------//
void search(list& x)
{
cout<<"输入要查询的学生学号:";
char *a;
cin>>a;

if(!x.search(a)) cout<<"您要查询的记录不存在!\n";
}
//---------------------------------------------------------------------------//
void print(list& x)
{
x.PrintList(cout);
}

...全文

相关推荐

44、服务器端 Java 开发全解析

本博客全面解析了使用 Java 进行服务器端开发的多种实现方式,包括标准 CGI、Netscape/server-java 和 Sun 的 Servlet 技术。通过详细的代码示例,如 HelloWorld 和 Greetings,展示了服务器端 Java 应用的开发流程。同时,对比了不同实现方式的优缺点,并提供了开发流程图和优化建议。博客还展望了服务器端 Java 应用的未来发展趋势,如与云计算的融合、人工智能的应用等,为开发者提供了全面的技术参考。

rgv2345678

Kotlin简介及其在服务器端Java开发中的应用

Kotlin是一种现代化的静态类型编程语言,可以与Java无缝互操作,并具有许多有用的特性,如空安全性和扩展函数。Kotlin可以与Java代码无缝地互操作,这意味着您可以在Kotlin项目中使用Java库,并且两种语言可以共享相同的代码库。这对于现有的Java项目迁移到Kotlin,或者在新的Kotlin项目中使用现有的Java库非常有用。本文将介绍Kotlin的基本特性,并提供一些在服务器端Java开发中使用Kotlin的示例代码。Kotlin允许开发人员为现有的类添加新的函数,而无需修改其源代码。

BitSlinger

深入解析Java游戏服务器端开发的最佳实践——构建高效、稳定的游戏世界

在当今的互联网时代,网络游戏已经成为人们娱乐生活中不可或缺的一部分。而作为游戏的核心支撑部分,游戏服务器端的开发质量直接决定了游戏运行的稳定性、流畅性和可扩展性。Java语言,以其跨平台特性、丰富的库支持和强大的社区后盾,成为了众多游戏开发者构建服务器端架构的首选。本文将带您深入了解Java在游戏服务器端开发中的最佳实践,通过详尽的代码示例和深度解析,揭示如何打造一个高效、稳定的在线游戏世界。

墨夶

JEP30-PX100A PartModel Product Guidelines for Electronic-Device Substrates and Assemblies – XML Requ

JEP30-PX100A PartModel Product Guidelines for Electronic-Device Substrates and Assemblies – XML Requirements

cdming

基于Matlab的自动睡眠粒状结构检测算法,从脑电信号中进行。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光
评论 12
收藏 已收藏
分享
返回顶部
a39400
C++ 语言 65,214 成员 250,514 内容