| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 468 人关注过本帖
标题:下面再怎么做啊?
只看楼主 加入收藏
zmeva
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-15
收藏
 问题点数:0 回复次数:0 
下面再怎么做啊?

一、题目
模拟学生成绩库的实现
二、数据结构(1或2任选其一)
1.顺序结构实现(线性表)
typedef struct student{
char name[20];
int score;
}STUDENT;
typedef struct{
STUDENT stu[100];
int listlen;
}STULIST;
2.链式结构实现(链表)
typedef struct student{
char name[20];
int score;
struct student *link;
}STUDENT;
3.模块化(函数)
三、菜单
可以在1或2中任选其一
1.简单菜单
|------------------------------------ |
| 请输入选项编号(0-6) |
|-------- ---------------------------|
| 1---创建成绩库 |
| 2---显示成绩库 |
| 3---查询 |
| 4---修改 |
| 5---添加 |
| 6---删除 |
| 7---排序 |
| 0---退出 |
|---------------------------------- |
要求:主菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。
2.复杂菜单
| |
| 请输入选项编号(0-4) |
| |
| 1---创建成绩库 |
| 2---显示成绩库 |
| 3---编辑成绩库 |
| 4---查找成绩 |
| 0---退出库 |
| |
(a) 成绩库主菜单
| |
| 请输入选项编号(0-3) |
| |
| 1---显示所有 |
| 2---显示学生姓名 |
| 3---返回 |
| 0---退出 |
| |
(b)显示成绩库子菜单
| |
| 请输入选项编号(0-6) |
| |
| 1---查询记录 |
| 2---对记录排序 |
| 3---添加新记录 |
| 4---删除旧记录 |
| 5---修改旧记录 |
| 6---返回 |
| 0---退出 |
| |
(c)编辑成绩库子菜单
要求:
设计菜单2时注意:
(1) 首先设计(a)菜单
(2) 选择2时显示(b)菜单
(3) 选择3时,首先确认密码,然后显示(c)子菜单
主菜单和子菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单可以返回主菜单。
四、详细功能(以下每条功能均用函数实现)
1. 创建成绩库
键盘输入至少10条记录,每一条记录包括姓名和成绩两项,并且可以将输入的记录存入一个文本文件中
2. 显示成绩单
从1所创建的文件中读出记录,输出格式为: 例如:name:Mike score:89
记录之间换行显示
3. 查询
输入姓名可以查询到该学生成绩
4. 修改
输入已存在记录的姓名,修改其姓名或成绩
5. 添加
在记录的最后增加一条新的记录
6. 删除
根据所输入的姓名删除对应记录
7. 排序
按照成绩高低进行排序,并输出
下面是我写的程序
我选用的是第一种菜单,下面用的是用链表来实现此功能
#include <stdio.h>
#include <malloc.h>
caidan()
{
printf("|------------------------------|\n");
printf("| 请输入选项编号(0~6): |\n");
printf("|------------------------------|\n");
printf(" 1 创建成绩库 \n");
printf(" 2 显示成绩库 \n");
printf(" 3 查询 \n");
printf(" 4 修改 \n");
printf(" 5 添加 \n");
printf(" 6 删除 \n");
printf(" 7 排序 \n");
printf(" 0 退出 \n");
printf("|------------------------------|\n");
}
typedef struct student{
char name[20];
int score;
struct student *link;
}STUDENT;
STUDENT *creat_list(){
STUDENT *head,*u,*r;
int x;
head=(STUDENT *)malloc(sizeof(STUDENT));
head->link=NULL;
r=head;
scanf("%d",&x);
while(x!=0){
u=(STUDENT *)malloc(sizeof(STUDENT));
u->score=x;
u->link=NULL;
r->link=u;
r=u;
scanf("%d",&x);
}
return head;
}
void print_list(STUDENT *h){
STUDENT *l;
l=h->link;
while(l!=NULL){

printf("%d ",l->score);
l=l->link;
}
}

main()
{
int len,i,n,x,m,c,d; STUDENT *head,*p;
do{

caidan();
printf("请输入你要选择的编号:");
scanf("%d",&c);
switch(c)
{
case 1: head=creat_list() ;break;
case 2: print_list(head) ;break;
case 3:printf("查询");break;
case 4:printf("修改");break;
case 5:printf("添加");break;
case 6:printf("删除");break;
case 7:printf("排序");break;
case 0:exit(0);
}
printf("继续还是退出?0退出 1继续 \n");
scanf("%d",&d);
}
while(d==1);

head=creat_list();
print_list(head);


}
上面的程序有个问题就是只能输入成绩但是不能输入姓名.即象题目说的那个样子的格式
请问怎么改啊?
还有下面再继续怎么写啊
我实在想不起来了
还有我明天就要交了,希望各位高手帮帮忙啊!救急!!!!!!!!!
最好能在后面再加上注释,感激不尽!!!1

搜索更多相关主题的帖子: 线性表 结构 菜单 
2006-05-15 17:57
快速回复:下面再怎么做啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015600 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved