n 题目:输入password登录到主界面,录入学生编号,排序后输出
n 1. 语言和环境
A、实现语言
C语言
B、环境要求
VC++ 6.0
n 2. 要求
请编写一个C语言程序。将若干学生编号按字母顺序(由小到大)输出。
程序的功能要求例如以下:
1) 输入password“admin”,正确则进入主界面,错误则直接推出(exit(0));
2)从键盘输入5个学生编号“BJS1001”,“BJS2001”。“BJS1011”, “SHS2001”和“SHS1001”。
3)对这5个学生编号进行排序。
4)将排序后的学生编号输出到屏幕上。
程序执行參考界面图如图所看到的:
图1
图2
n 3. 算法说明
比較学生编号中的字符大小。能够使用冒泡排序法或插入排序法来实现。
n 4. 推荐实现步骤
1、编写main函数
1) 定义一个用于存放学生编号的数组:char str[5][20];
2) 依据指定的学生编号个数(要求5个),利用循环控制将键盘输入的学生编号存放到数组中(每次1个学生编号。循环接受gets(str[i]),str[i]是每一个字符串的首地址)。
3) 调用排序子函数 Sort(),採用冒泡排序法或插入排序法对这5个学生编号进行从小到大的排序。(和普通一维数组的排序方法类似,用strcmp(str[i],str[i+1])>0作为推断条件比較字符串的大小。用strcpy(str[i],str[i+1]))和一个暂时字符数组temp[20]实现字符串的交换)。
4)实现排序后的学生编号的输出。
2、编写Sort()子函数
要求有2个參数:
第1个參数是:參加排序的学生编号数组,char name[5][20]。
第2个參数是:学生编号数组中学生编号的个数。int n。
功能:
1) 利用循环对多个学生编号进行大小的比較。
2) 比較学生编号大小时要调用系统函数:
strcmp(string1, string2);
3) 使用冒泡排序法或选择排序法。
n 5. 注意事项
A、请注意在代码中加入必要的凝视;
B、请注意代码的书写、命名符合规范。
n 6. 提交内容
提交程序代码
#include <stdio.h>
#include<string.h>
void main ()
{
char mima[10];
int x[100];
int k,a,b,c,t;
printf("password:");
gets(mima);
while(1)
{
k=strcmp(mima,"123");
if(k==0)
{
printf("登陆成功。请继续操作");
printf("请输入学生个数");
scanf("%d",&a);
for(b=0;b<a;b++)
{
printf("请输入第%d个学生编号",b+1);
scanf("%d",&x[b]);
}
for(b=0;b<a-1;b++)
{ for(c=0;c<a-b-1;c++)
if(x[c]>x[c+1])
{
t=x[c];
x[c]=x[c+1];
x[c+1]=t;
}
}
printf("结果是\n");
for(b=0;b<a;b++) printf("%d\n",x[b]);break;
}
}
}