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

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

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

//学生成绩管理

//文件名:maincpp

//------!!!!!!---------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=1;i<n;i++)

{

k=p;

p1=p->next;

for (j=0;j<n-i;j++)

{

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)

{

studentAddItem(num,name,mark);

Input(&num, &name, &mark);

}

return;

}

void DoFind() //按学号查找

{

int num;

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

do

{

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

cin>>num;

if (num==-1)continue;

studentSearch(num);

}

while (num!=-1);

return;

}

void DoDelete() //删除记录

{

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

int num;

do

{

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

cin>>num;

if (num==-1)continue;

studentRemoveItem(num);

}

while (num!=-1);

return;

}

void ShowAverage() //输出平均数

{

float avr=studentAverage();

if (avr>0)

{

cout<<"共有记录:\t"<<studentListCount()<<endl<<endl;

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

}

return;

}

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

int main()

{

cout<<"Welcome!\n学生成绩管理系统\nVer 101\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: //按学号排序

studentSort();

break;

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

DoFind();

break;

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

DoDelete();

break;

case 5: //列出所有记录

studentList();

break;

case 6: //输出平均成绩

ShowAverage();

break;

default:

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

}

}

return 0;

}

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

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

可以这样理解:

以我现在的水平,每天写的原始代码大概是1200行。需要用相同多的时间来调试,再需要相同多的时间来优化,还需要相同多的时间来编译测试,算下来每天能写300行有效代码。

让我写一个windows的话,需要10W天=27397年

其实编码只是整个软件开发过程里面的一小部分。

以上就是关于求一个c++小程序源代码,要求200行以上,给100分,能用再加100全部的内容,包括:求一个c++小程序源代码,要求200行以上,给100分,能用再加100、Windows源代码有3000万行什么概念、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10110468.html

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

发表评论

登录后才能评论

评论列表(0条)

保存