任务目的
(1) 通过人机界面的显示风格和用户操作方式等内容的学习,帮助学生了解界面设计的主要内容。
(2) 使用掌握的计算机语言完成命令语言交互界面的设计,充分考虑以用户为中心的设计理念。进一步体会命令语言交互界面设计中的重要因素。
实验内容
任务1:文本交互界面的设计使用C语言完成。
编写程序,输入若干个按由小到大的整数(可能有重复数),保存到数组中,利用循环删除所有重复的值,使相等的数只保留一个。
在程序设计中,要实现程序的模块化设计。在界面设计中,要解释说明如何是以用户为中心进行设计的。
方案设计
(1)算法设计:本程序包含三个算法。一是根据用户需要输入并创建数组;二是基础的使用相邻去除法来去除数组中重复元素;三是了让程序更具有可用性使用了排序算法中较为简洁的冒泡排序对数组中的数字进行简单排序。
(2)流程描述:运行程序后用户根据文字提示输入数组元素个数,能满足不同元素个数都能使用的效果;数组创建完成后选择两个功能,根据提示输入以空格形式隔开的随意整数,敲击回车键后,显示运行结果。运行结果分别输出排序后数组、排序后删除重复值后的数组。
核心代码
#include <stdio.h>
#include <stdlib.h>
int del(int a[],int COUNT){ //删除重复值函数
int m,count=COUNT,k;
for(k=COUNT-1;k>0;k--){
if(a[k]==a[k-1])
{
for(m=k-1;m<COUNT-1;m++)
a[m]=a[m+1];
count--; //删除重复值
}
}
return count;
}
void sort(int a[], int length){ //排序数组函数
int i, j, temp;
for(i = 0; i < length; ++i){
for(j = i + 1; j < length; ++j){
if(a[j] < a[i]){ //如果后一个元素小于前一个元素则交换
temp = a[i];
a[i] = a[j];
a[j] = temp;}}}
printf("排序后的数组:");
for(i=0;i<length;i++)
printf("%5d",a[i]);
printf("\n");
}
void show(int a[],int length){ //输出函数
int k;
printf("删除重复值后的数组:");
for(k=0;k<length;k++)
printf("%5d",a[k]);
printf("\n");
system("pause");}
int main(int argc, char *argv[]) {
int COUNT=10,a[COUNT],count=COUNT,k,m,p;
system("color 3f"); //界面颜色,浅蓝,字体颜色,亮白
printf(" `;-. ___,\n");
printf(" `.`\\_...._/`.-\"`\n");
printf(" \\ / ,\n");
printf(" /() () \\ .' `-.>\n");
printf(" |) . ()\\ / _.'\n");
printf(" \\ -'- ,; '. <\n");
printf(" ;.__ ,;| > >\n");
printf(" / , / , |.-'.-'\n");
printf(" (_/ (_/ ,;|./`\n");
printf(" \\ , ;-`\n");
printf(" > \\ /\n");
printf(" (_,-'`> .'\n");
printf(" (_,' \n\n"); //字符画
printf("本系统具有排序并删除重复值功能\n");
printf("请输入数据个数:");
scanf("%d",&COUNT);
printf("请按大小顺序输入%d个数据:\n",COUNT);
for(k=0;k<COUNT;k++){
printf("a[%d]=",k);
scanf("%d",&a[k]); //请输入a[0]=
}
printf("输入完成\n");
printf("-------请输入数字选择功能-------\n");
printf("1 - 删除数组重复值\n");
printf("2 - 排序并删除数组重复值\n");
printf("--------------------------------\n\n");
scanf("%d",&p);
switch(p){
case 1:
count=del(a,COUNT);
show(a,count);
break;
case 2:
sort(a,COUNT);
count=del(a,COUNT);
show(a,count);
break;
}
运行结果
根据屏幕的提示输入数组元素个数并逐个输入元素,选择功能,系统执行功能并把每步的执行结果和最终结果都显示在屏幕上。
① 输入数据个数:5
② {2,1,5,6,5}
③ 选择功能2:排序并删除重复值
④ 输出排序后的数组
⑤ 输出删除重复值后的数组