| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 957 人关注过本帖
标题:高手帮帮忙、用C语言编写一个学生成绩管理系统
只看楼主 加入收藏
kinysi
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-2-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
高手帮帮忙、用C语言编写一个学生成绩管理系统
用C语言编写一个学生成绩管理系统
要求:所有1,2,3,4,5都用函数实现
头文件只用#include "stdio.h"
不需要文件、
本人只学到结构体和指针呢。
**************************************************************************
** 1==》成绩输入 **
** 2==》成绩插入 **
** 3==》成绩删除 **
** 4==》成绩输出 **
** 5==》退 出 **
**************************************************************************

下面是我自己找了好多类似的编的一个红字的部分有些问题,
先输入3个人的 ,然后删除第二个人,第二个人的名字没成称第三个的
插入成绩后新插入的信息在显示的时候全是000

#include "stdio.h"
#define max 200
struct student
{
 char name[50];
 int  number;  
 float ienglish,imath,ichinese;     
};
struct student st[];
struct data
{
 int x;  
 struct student stu[max];
} dd;


void add_data()
{ int n,i;
  printf("输入人数 n");
  scanf("%d",&n);
  printf("\n请输入学生信息:");
  for(i=0;i<n;i++)
  
  scanf("%d%s%f%f%f",&st[i].number,&st[i].name,&st[i].ienglish,&st[i].imath,&st[i].ichinese);
  dd.x=n;
}


void insert_data()
{ int i;
  printf("输入插入学生的学号姓名和成绩");
   i=dd.x+1;
  scanf("%d%s%f%f%f",&st[i].number,&st[i].name,&st[i].ienglish,&st[i].imath,&st[i].ichinese);
  dd.x=dd.x+1;
     }



void delete_data()
{
 int i,y;
  printf("\n请输入要删除学生的学号:");
 scanf("%d",&y);
 for(i=y-1;i<dd.x;i++)
 {
 st[i].number=st[i+1].number;
 st[i].name[50]=st[i+1].name[50];
 st[i].ienglish=st[i+1].ienglish;
 st[i].imath=st[i+1].imath;
 st[i].ichinese=st[i+1].ichinese;
}
  dd.x=dd.x-1;
}



void view_data()
{
 int i;
 printf("学号 姓名 英语 数学 语文\n");
  for(i=0;i<dd.x;i++)
  printf("%d %s %f %f %f\n",st[i].number,st[i].name,st[i].ienglish,st[i].imath,st[i].ichinese);
}

main()
{
 int i,n;
while(1)
 {
  printf("请输入功能号[1-5]:",&i);
  scanf("%d",&i);
  switch(i)
  {
               
    case 1: add_data(); break;
    case 2: insert_data();break;
    case 3: delete_data();break;
    case 4: view_data(); break;
    case 5: exit(0);
}
}
}

[ 本帖最后由 kinysi 于 2011-4-18 17:01 编辑 ]
搜索更多相关主题的帖子: 管理系统 include C语言 结构体 
2011-04-18 15:06
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:7 
将中文译成英语
************************************************** ************************
 ** 1 == "** entering grades
 ** 2 == "results into the **
 ** 3 == "Delete results **
 ** 4 == "output results **
 ** 5 == "exit **
 ************************************************** ************************
2011-04-18 16:02
lxh30907
Rank: 1
等 级:新手上路
帖 子:22
专家分:9
注 册:2010-12-15
收藏
得分:7 
最起码还要数组吧
2011-04-18 16:21
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <malloc.h>

typedef struct node
{
    int data;
    struct node *prve;
    struct node *next;
}d_list;

/*

 *创建双向链表

 */
d_list * Create_list()
{
    d_list *head = NULL;

    head = (d_list*) malloc (sizeof(d_list));
   
    if (NULL == head)
    {
        return NULL;
    }
    head->next = NULL;
    head->prve = NULL;

    return head;
}

/*

 *向双向链表中插入元素

 */
int Insert_list( d_list *head, int elem )
{
    d_list * temp_p = NULL;
   
    if ( head->next==NULL && NULL==head->prve )
    {//表示头结点中没有存放数据
        head->data = elem;
        head->next = head;
        head->prve = head;

        return 1;
    }

    temp_p = (d_list*) malloc (sizeof(d_list));
   
    if (NULL == temp_p)
    {
        return 0;//表示不成功
    }

    temp_p->data = elem;

    if ( head->prve == head )
    {
        head->prve = temp_p;
        temp_p->prve = head;
    }
    else
    {
        head->next->prve = temp_p;
        temp_p->prve = head;
    }

    temp_p->next = head->next;
    head->next = temp_p;
   
    return 1;//表示成功
}

/*

 *查找链表当中的某个结点 成功 并返回在链表当中的地址

 */
d_list * Seacher_list( d_list *head, int elem )
{
    d_list * temp = head;
   
    if ( head->next==NULL && NULL==head->prve )
    {
        printf("\t没有存放数据\n");

        return NULL;
    }

    do
    {
        if (temp->data == elem)
        {
            printf("\t找到数据\n");

            return temp;
        }
        temp = temp->next;

    }while ( temp != temp->next );
   
    return NULL;
}

/*

 *删除某个结点

 */
int Delete_list( d_list *head, int elem )
{
    d_list *prve = NULL;
    d_list *next = NULL;
    d_list *temp = NULL;

    temp = Seacher_list( head, elem );

    if (NULL == temp)
    {
        printf("\t删除不成功\n");
        return 0;
    }

    prve = temp->prve;
    next = temp->next;
    next->prve = prve;
    prve->next = next;
    free( temp );

    printf("\t删除成功\n");

    return 1;//删除成功
}

/*

 *销毁双向链表

 */
int Destroy_list( d_list *head )
{
    d_list *prve = NULL;
    d_list *next = NULL;
    d_list *temp = NULL;

    if (NULL == head )
    {
        return 1;
    }

    do
    {
        temp = head;

        prve = temp->prve;
        next = temp->next;
        next->prve = prve;
        prve->next = next;

        head = head->next;
        free(temp);
    }while (head != head->next);

    free(head);

    head = NULL;

    return 1;
}

/*

 *打印双向链表

 */
void Print_list( d_list * head )
{
    d_list * temp = head;

    if (NULL == head )
    {
        return;
    }

    do
    {
        printf("%d ", temp->data);
        temp = temp->next;
    }while (temp != head);

    printf("\n");

    return;
}

int main(void)
{
    int num = 10;//表示插入10个元素
    int elem = 0;
    d_list *list = NULL;
    d_list *temp = NULL;

    printf("\t创建链表\n");
    list = Create_list();
   
    printf("\t插入元素\n");
    while ( num-- && scanf("%d", &elem) )
    {
        Insert_list( list, elem );
    }

    printf("\t打印链表\n");
    Print_list( list );
   
    printf("\t查找元素3\n");
    temp = Seacher_list( list, 3 );
    printf("\t输出查找到得元素: %d\n\n", temp->data);

    printf("\n\t删除元素3 成功后在重新打印链表\n");
    if ( 1 == Delete_list( list, 3 ) )
    {
            printf("\t打印链表\n");
            Print_list( list );
    }

    printf("\n\t销毁链表\n");
    Destroy_list( list );

    return 0;
}
2011-04-18 16:39
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
自己改写结构体 成员吧

双的不会 就改成单的也可以
2011-04-18 16:41
快速回复:高手帮帮忙、用C语言编写一个学生成绩管理系统
数据加载中...
 
   



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

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