輸入password登錄到主界面,錄入學生編號,排序後輸出
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作為推斷條件比較字符串的大小。用
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;
}
}
}
輸入password登錄到主界面,錄入學生編號,排序後輸出