用c语言实现对学生信息增删改,怎么做啊

 我来答
ichenfan
2011-06-18 · 超过11用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:27.9万
展开全部
要更详细答案,联系我,这个很难做的,起码要给点悬赏分作为酬劳啊!!!
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
//数据结构的定义
typedef struct node{
int id; //学号
char name[10]; // 姓名
int grade; //成绩
struct node * next; //指向下一节点的指针
}node,*list;

//函数的声明,必须按照声明来定义函数
void showMenu(); //显示菜单
void start(); // 主控程序
void init(list &h);// 初始化链表h
void printAnRecord(node * p);//输出p所指节点的值(id,name,grade)
void printList(list h);// 输出链表h的各节点的值
int del(list h,int n);//删除链表h中id为n的节点,成功删除返回1,若不存在则返回0
int insert(list h,int id,char * name,int grade);//在链表h中,插入节点(n,name,grade),若id重复返回0,否则返回1
node * searchByID(list h, int n);// 在链表h中查找id为n的节点,查找成功返回其指针,否则返回NULL
int update(list h,int n,int grade);// 将链表h中id为n的节点的成绩改为grade,若不存在该节点返回0,否则返回1
float average(list h); //返回链表h中各个节点成绩的平均值
int bulkInsert(list h);//在链表h中批量插入节点,以id=0结束,返回成功插入的节点数
void clearList(list h);//清空链表h(使其成为空链表)

void showMenu()
{ //显示菜单
puts(" 0----Bulk Insert ");
puts(" 1----Insert an Record");
puts(" 2----Delete an Record");
puts(" 3----Update an Record's grade");
puts(" 4--- Search an Record by stu_id");
puts(" 5----Print all Record");
puts(" 6----Average of grade");
puts(" 7----Clear list");
puts(" 9----Exit");

}

//主控程序
void start()
{
list h; //链表
int choice; //功能选择
int id,grade,flag=1,m;
char name[10];

showMenu();
init(h); //初始化链表h,即建立空链表

while(flag){//若未退出程序
puts(" ******** Please input 1...9 ********* ");
scanf("%d",&choice);

switch(choice){ //根据选择的功能号,执行不同的操作
case 0 :
puts("input Stu_ID, Name , Grade (end by 0)");
m=bulkInsert(h);
printf(" %d Record insert successfully\n",m);
break;
case 1:
puts("input Stu_ID, Name , Grade: ");
scanf("%d",&id);
scanf("%s",name);
scanf("%d",&grade);
if( insert(h,id,name,grade) )
puts("Insert an Record successfully!");
else
puts("Sorry, dublicate ID ");
break;
case 2:
puts("input Stu_ID to delet");
scanf("%d",&id);
if( del(h,id) )
puts("Delete an Record successfully");
else
puts("Sorry, ID no exit ");
break;
case 3:
puts("input Stu_ID and grade to update");
scanf("%d",&id);
scanf("%d",&grade);
if ( update(h,id,grade) )
puts("Update an Record successfully ");
else
puts("Sorry, ID no exit ");
break;
case 4:
puts("input Stu_ID to search");
scanf("%d",&id);
node *p;
if( p=searchByID(h,id) )
printAnRecord(p);
else
puts("Sorry, ID no exit ");
break;
case 5:
printList(h);
break;
case 6:
printf("The average grade is %6.2f \n ", average(h) );
break;
case 7:
clearList(h);
break;
case 9:
flag=0; //退出循环
break;

default:
puts(" Error ! Must Input (1...9) ");

}
}
}

void main()
{
//编程时要一个一个函数的调试完成后,最后再调用主控程序
start();

}
285pqgwoe
2011-06-20 · TA获得超过899个赞
知道小有建树答主
回答量:1941
采纳率:0%
帮助的人:0
展开全部
必须的:
基本语法,定义,赋值,输入输出,循环,判断,基本运算
文件操作:增删改
数据结构:指针,链表,结构体
排序:至少是冒泡吧

基本结构:
1)输入部分,输入数据+逻辑判断+文件处理
(scanf,gets,if-else,FILE)
2)编辑部分,文件处理+输出数据+输入数据
(scanf,gets,printf,FILE)
3)查询部分, 文件处理+排序处理+逻辑判断+输入数据+输出数据
(...)
4)可选的,数据库底层,就是提供增删改查的接口函数的一组函数。
(...)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2011-06-18 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:466万
展开全部
那要看你的数据是采用的什么结构存放的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式