2008秋季-计算机软件基础- 线性表顺序存储 - 菜单

复制代码
/* 2008-10-27 */
/* tod: 删除, 修改, 参考: 教材P63-67*/
# include
<stdio.h>
#define N 1
typedef 
struct student
{
  
char xuehao[10];
  
char xingming[10];
  
int  chengji;
} S ;

void xianshicaidan()
{
  printf(
"\n1 - Initialization.\n");
  printf(
"2 - Enter Scores.\n");
  printf(
"3 - Insert Score.\n");
  printf(
"4 - Display Scores.\n");
  printf(
"0 - Exit System.\n");
}

void Initial(S a[], int length)
{
  
int i;
  printf(
"Please enter XueHao & Xingming (%d students):\n",length);
  
for(i=0;i<length;i++)
  {
      scanf(
"%s%s",a[i].xuehao,a[i].xingming);
      a[i].chengji
=0;
  }
}

void insert(S a[], int *length)
{
  
int i,location;
  S x;
  printf(
"Please enter location:\n");
  scanf(
"%d",&location);
  printf(
"Please enter XueHao & Xingming & Chengji:\n");
  scanf(
"%s%s%d",x.xuehao,x.xingming,
          
&x.chengji);
  
for(i=*length;i>=location+1;i--)
      a[i]
=a[i-1];
  a[location]
=x;
  (
*length)++;


void xianshi(S a[], int length)
{
  
int i;
  printf(
"Display Scores:\n");
  
for(i=0;i<length;i++)
  {
      printf(
"%s %s %d\n",a[i].xuehao,a[i].xingming,
          a[i].chengji);
  }
}

void main()
{
  
int menu=1, len=N;
  S b[
10];
  xianshicaidan();
  printf(
"Enter a number to choose opreation:\n");
  scanf(
"%d",&menu);
  
while(menu!=0)
  {
    
switch(menu)
    {
      
case 1: Initial(b,len);break;
      
case 4: xianshi(b,len); break;
      
case 3: insert(b,&len);break;
      
defaultbreak;
    }
    xianshicaidan();
    printf(
"Enter a number to choose opreation:\n");
    scanf(
"%d",&menu);

  }
}
复制代码
posted @   emanlee  阅读(402)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统
点击右上角即可分享
微信分享提示