求一个c++小程序源代码,要求200行以上,给100分,能用再加100

求一个c++小程序源代码,要求200行以上,给100分,能用再加100,第1张

//=================================[说明]=======================================*/

//学生成绩管理

//文件名:main.cpp

//------!!!!!!---------BOF-[程序代码开始]-------------------

#include<iostream>

#include<string>

using namespace std

//=============<开始定义结构体>===================================================

struct combox

{

int num

int mark

string name

combox *next

}

//=============<结束定义结构体>===================================================

//=============<开始定义Commonbox类>==============================================

//-----类体开始------------------------

class Commonbox

{

private:

combox *head

void Swap(combox *,combox *)//交换两个combox变量的数据域

void Print(combox *)//输出一combox指定的记录

combox *Find(int)//查找条例条件的记录,并返回该记录的指针

public:

Commonbox()

{

head=NULL

}

int ListCount()//统计当前链表的记录总数,返回一个整数

void AddItem(int num, string name, int mark)//添加一条记录到表尾

void RemoveItem(int)//删除一条指定的记录

void List()//列出当前链表中的所有记录

void Sort()//对当前链表进行排序

void Search(int)//在当前链表查找指定记录并输出

float Average()//计算平均成绩

}

//-----类体结束------------------------

//-----类成员函数开始----------------------------------

int Commonbox::ListCount() //统计当前链表的记录总数,返回一个整数

{

if (! head)return 0

combox *p=head

int n=0

while (p)

{

n++

p=p->next

}

return n

}

void Commonbox::AddItem(int num, string name, int mark) //添加一条记录到表尾

{

if (! head)

{

head=new combox

head->mark=mark

head->num=num

head->name=name

head->next=NULL

return

}

combox *t=head

while (t &&t->num!=num)

t=t->next

if (t)

{

cout<<" *** 作失败:学号为"<<num<<"的记录已经存在!"<<endl

return

}

combox *p=head

while (p->next)p=p->next

combox *p1=new combox

p1->num=num

p1->mark=mark

p1->name=name

p1->next=NULL

p->next=p1

return

}

void Commonbox::RemoveItem(int num) //删除一条指定的记录

{

combox *t=Find(num)

if (! t)return

combox *p=head

//如果要删除的记录位于表头

if (head==t)

{

head=head->next

delete p

cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl

return

}

while (p->next!=t)p=p->next

combox *p1=p->next

p->next=p1->next

delete p1

cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl

return

}

void Commonbox::Print(combox *p) //输出一combox指定的记录

{

cout<<p->num<<"\t\t"

cout<<p->name<<"\t\t"

cout<<p->mark<<endl

return

}

void Commonbox::List() //列出当前链表中的所有记录

{

if (ListCount()==0)

{

cout <<"错误:当前的列表为空!"<<endl

return

}

combox *p=head

cout<<"共有记录:"<<ListCount()<<endl

cout<<"学号\t\t姓名\t\t分数"<<endl

while (p)

{

Print(p)

p=p->next

}

cout <<endl

return

}

void Commonbox::Search(int num) //在当前链表查找指定记录并输出

{

cout <<"Searching...."<<endl

combox *p=Find(num)

if (p)

{

cout<<"学号\t\t姓名\t\t分数"<<endl

Print(p)

}

cout <<endl

}

combox *Commonbox::Find(int num)

{

if (ListCount()==0)

{

cout <<"错误:当前的列表为空!"<<endl

return NULL

}

combox *p=head

while (p)

{

if (p->num==num)break

p=p->next

}

if (! p)

{

cout <<"错误:找不到该记录!\n"

return NULL

}

return p

}

void Commonbox::Swap(combox *p1, combox *p2) //交换两个combox变量的数据域

{

combox *temp=new combox

temp->num=p1->num

temp->mark=p1->mark

temp->name=p1->name

p1->num=p2->num

p1->mark=p2->mark

p1->name=p2->name

p2->num=temp->num

p2->mark=temp->mark

p2->name=temp->name

}

void Commonbox::Sort() //对当前链表进行排序

{

cout <<"Sorting..."<<endl

if (ListCount()<2) return

combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL

int n=ListCount(),i,j

p=head

for (i=1i<ni++)

{

k=p

p1=p->next

for (j=0j<n-ij++)

{

if (k->num >p1->num)

{

k=p1

}

p1=p1->next

}

if (p!=k)Swap(k,p)

p=p->next

}

cout <<"Complete successfully!"<<endl<<endl

return

}

float Commonbox::Average() //计算平均成绩

{

if (ListCount()==0)

{

cout <<"错误:当前的列表为空!"<<endl

return -1

}

int sum=0,n=0

combox *p=head

while (p)

{

sum += p->mark

p=p->next

n++

}

return float(sum)/n

}

//-----类成员函数结束----------------------------------

//=============<结束定义Commonbox类>==============================================

Commonbox student//定义全局变量

int Menu()

{

cout <<"===========[主选单:]==========="<<endl

int n=1,select=-1

cout <<n++<<".输入学生成绩"<<endl<<endl

cout <<n++<<".按学号排序"<<endl<<endl

cout <<n++<<".按学号查找记录"<<endl<<endl

cout <<n++<<".删除由学号指定的记录"<<endl<<endl

cout <<n++<<".列出所有记录"<<endl<<endl

cout <<n++<<".计算平均成绩"<<endl<<endl

cout <<"0.退出"<<endl<<endl

cout <<"[请选择(输入相应数字)]:"

cin >>select

return select

}

char Exit() //返回一个字符患,用于确认退出

{

char s

cout<<"确定要退出程序吗?[Y/N]:"

cin >>s

return s

}

void Input(int *num, string *name, int *mark) //输入学生信息

{

cout <<"请输入 学号 姓名 分数:"

cin >>*num

if (*num==-1)return

cin >>*name>>*mark

return

}

void AddNew() //增加记录

{

int num=0,mark=0

string name=""

cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl

Input(&num, &name, &mark)

while (num!=-1)

{

student.AddItem(num,name,mark)

Input(&num, &name, &mark)

}

return

}

void DoFind() //按学号查找

{

int num

cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl

do

{

cout <<"请输入要查找的学生的学号: "

cin>>num

if (num==-1)continue

student.Search(num)

}

while (num!=-1)

return

}

void DoDelete() //删除记录

{

cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl

int num

do

{

cout <<"请输入要删除的学生的学号:"

cin>>num

if (num==-1)continue

student.RemoveItem(num)

}

while (num!=-1)

return

}

void ShowAverage() //输出平均数

{

float avr=student.Average()

if (avr>0)

{

cout<<"共有记录:\t"<<student.ListCount()<<endl<<endl

cout<<"平均成绩:\t"<<avr<<endl<<endl

}

return

}

//-------******<主函数开始>******-------

int main()

{

cout<<"Welcome!\n学生成绩管理系统\nVer 1.01\nBy FondBoy\n\n"

int select

char s

while (1)

{

select=Menu()

switch (select)

{

case 0: //退出程序

s=Exit()

if (s=='y' || s=='Y')return 0

break

case 1: //输入学生成绩

AddNew()

break

case 2: //按学号排序

student.Sort()

break

case 3: //按学号查找记录

DoFind()

break

case 4: //删除由学号指定的记录

DoDelete()

break

case 5: //列出所有记录

student.List()

break

case 6: //输出平均成绩

ShowAverage()

break

default:

cout<<"无效输入!"<<endl

}

}

return 0

}

//-------******<主函数结束>******-------

//------!!!!!!---------EOF-[程序代码结束]-------------------

#include <stdio.h>

void main()

{

int age

printf("please input the child age:")

scanf("%d",&age)

switch(age)

{

case 2:

case 3: printf("%d,enter the Lower class.\n",age)break

case 4: printf("%d,enter the Middle class.\n",age)break

case 5:

case 6: printf("%d,enter the Higher class.\n",age)break

default : printf(" you chlid shuld goto more Higher class.\n")break

}

}

国行switch微信小程序退款时间是24小时以内。根据查询相关资料显示,截止于2023年1月30日,国行switch微信小程序发布的通过中显示,购买退款时间在一个工作日24小时内完成,会将款项原路退回至账户。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8133819.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存