//学生成绩管理
//文件名:橘链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-[程序代码结束]-------------------
电商小程序三级分销模板已经发布,需要可以直接使用的。第1种是卖模板为主的网络公司。
优点是:价格低,几千块钱到万元之间就能搞定,方便,能够快速上线;
缺点是:修改功能麻烦,这里需要避免低价陷阱,不要到最后才发现模板性的修改功能所花的钱比买模板还贵。而且不是独立的,一个模本卖给很多商家用,模板不是永久使用的,一般每年都要交年费。
第2种是主流的方式,定制开发为主的网络公司。
优点是:独一无二的,专为你的企业或者店面定制的,功能你来定,要求你来定,租早后期修改BUG方便,改东西也很方便,最重要的是永久使用权!!
缺点是:相对价格比较高!!! 定制版的基本弊如雀费用在上万元到十几万不等!不过贵也有贵的道理吧,毕竟功能做的更全面一点。
最后总结,至橡态于找什么样的小程序开发公司?花多少钱来开发?还是需要看贵公司准备的预算这块!希望对大家有用!
小程序的 UI 设计指南在小程序官方文档中均有介绍,以微信官方设计文档为参照:1、 小程序布局:小程序的布局主要采用块察大状结构进行布局,优先采用卡片、列表或网格等布局方式;
2、 小程序 UI 调色:小程序的 UI 调色使用典型的灰色调子,较亮的颜色基调使用明度较浅的颜色余巧;
3、小程序 UI 尺寸:败毁竖采用 1080px 宽,720px 高的界面设计尺寸,控件尺寸以 8px 为基准单位,即每个控件的间距需以 8px 设计;
4、 小程序 UI 字号:字体最大尺寸 36px,最小尺寸 24px,中等字体尺寸使用 30px。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)