该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define N 65
int choice;
void kaishi(int c_score[],int count)
{
printf("**************************************\n");
printf("* 1---录入信息 *\n");
printf("* 2---浏览信息 *\n");
printf("* 3---添加信息 *\n");
printf("* 4---删除信息 *\n");
printf("* 5---修改信息 *\n");
printf("* 6---查找信息 *\n");
printf("* 7---插入信息 *\n");
printf("* 8---排序信息 *\n");
printf("* 9---退出 *\n");
printf("**************************************\n");
printf("请输入你的选择(1---9):\n");
}
int luru(int c_score[],int count)
{
char ch;
flag:
printf("开始录入信息\n");//BUG:可以随意录入任何数字,字母、没有范围控制
printf("这是录入第%d个学生的信息\n",count+1); //求确认一个范围的代码怎么弄,超出则退出程序
scanf_s("%d",&c_score[count]);
count++;
printf("如果想继续录入请按A或者a\n");
getchar();
ch=getchar();
if(ch=='A'||ch=='a')goto flag;
return count;
}
void liulan(int c_score[],int count)
{
int i;//趟数
printf("开始浏览信息\n");
for(i=0;i
printf("%d ",c_score[i]);
printf("\n");
}
int tianjia(int c_score[],int count)
{
printf("开始添加信息\n");
printf("这是录入第%d个学生的信息\n",count+1);
scanf_s("%d",&c_score[count]);
count++;
return count;
}
int shanchu(int c_score[],int count)
{
int i;
int k;
int sc;//删除专用
printf("开始删除信息\n"); //删除原理:找到要删除数据的位置,
printf("请输入你要删除的信息\n"); //然后将后面的数据往前移动,就是覆盖。
scanf_s("%d",&sc);
for(i=0;i
if(sc==c_score[i])
{
k=i;
for(;k
c_score[k]=c_score[k+1];
}
count--;
printf("删除完毕!\n");
return count;
}
void xiugai(int c_score[],int count)
{
int xg;
printf("开始修改信息\n");
printf("请输入你要修改的信息的位置\n");
scanf_s("%d",&xg);
printf("请输入新的信息\n");
scanf_s("%d",&c_score[xg-1]); //所修改数据位置地址1---n
printf("修改完毕!\n");
}
void chazhao(int c_score[],int count)
{
int i;
int search;//查询的成绩
printf("开始查找信息\n");
printf("请输入要查询的信息\n");
scanf_s("%d",&search);
for(i=0;i
if(search==c_score[i])
printf("这是第%d个学生的信息!\n",i+1);
}
int charu(int c_score[],int count)
{
int i;
int k;
int charu_data;//插入数据
int zhixiang;//指向数组的尾巴
printf("开始插入信息\n");
printf("请输入你要插入的信息\n");//BUG:不能不录入成绩后插入数值;录入信息后插入,数值有大小要求,不能随意输入
scanf_s("%d",&charu_data);//求这个的解决办法,希望可以是代码给我 谢谢
zhixiang=count;
for(i=0;i
if(c_score[i]>charu_data)
{
k=i;//存放插入点的位置
break;
}
for(;k
c_score[zhixiang]=c_score[zhixiang-1];
c_score[k]=charu_data;//对插入点赋值
count++;//插入的数 数组长度加1
printf("插入完毕!\n");
return count;
}
void paixu(int c_score[],int count)
{
int i;
int cishu;//次数
int huhuan; //位置互换所用的第三方变量
printf("开始排序信息\n");
for(i=0;i
for(cishu=0;cishu
if(c_score[cishu]>c_score[cishu+1])
{
huhuan=c_score[cishu]; //位置互换
c_score[cishu]=c_score[cishu+1];
c_score[cishu+1]=huhuan;
}
printf("排序完成!\n");
}
void main()
{
int c_score[N];
int count=0;//全局变量,定义顶部,始值为0
for(;;)
{
system("cls");
kaishi(c_score,count);
scanf_s("%d",&choice);
switch(choice)
{
case 1:count=luru(c_score,count);
system("pause");break;
case 2:liulan(c_score,count);
system("pause");break;
case 3:count=tianjia(c_score,count);
system("pause");break;
case 4:count=shanchu(c_score,count); //舍弃最后一个单元
system("pause");break;
case 5:xiugai(c_score,count);
system("pause");break;
case 6:chazhao(c_score,count);
system("pause");break;
case 7:count=charu(c_score,count);
system("pause");break;
case 8:paixu(c_score,count);
system("pause");break;
case 9:exit(0); //调用系统的退出函数
}
}
}