当前位置: 代码迷 >> C语言 >> 学生管理系统
  详细解决方案

学生管理系统

热度:493   发布时间:2006-03-07 19:20:00.0
学生管理系统

要求: 结构体 struct stud st[N]
{ int ID //学号
char name[10] //姓名
float c
float java
float sql //成绩
float sum //总和
float avg //平均值 }
实现:输入 输出 修改 添加 查询 删除 (请帮忙把查询和修改这2块写下)
用函数实现每个块
请一定多带点注释 本人刚学没多久 做这个太吃亏拉

搜索更多相关的解决方案: float  系统  学生  java  stud  

----------------解决方案--------------------------------------------------------
search used search() function,modify used modify() function.
----------------解决方案--------------------------------------------------------

/* 标准文档模板 */

#include "Stdio.h"
#include "Conio.h"
#define N 100
struct stud
{char name[10];
int c;
int java;
int sql;
int sum;
int avg;
};
main()
{ int i=0,*n=0;
char c;
struct stud st[N];
void input(struct stud st[N],int i,int *n);
void insert(struct stud st[N],int i,int *n);
void increase(struct stud st[N],int i,int *n);
printf("'p':输入 's':插入 'c':删除\n");
do{c=getch();
switch(c)
{
case 'p' :input(st,i,n);i++;break;
case 's' :printf("插入的位置:");scanf("%d",&i);insert(st,i,n);break;
case 'c' :printf("要删除的是:");scanf("%d",&i);increase(st,i,n);break;
default :break;
};
}while(c!='\r');

for(i=0;i<*n;i++)
printf("\n姓名:%s\nc语言成绩:%d\njava语言成绩:%d\nsql成绩:%d\n总成绩:%d\n平均分:%d\n",
st[i].name,st[i].c,st[i].java,st[i].sql,st[i].sum,st[i].avg);
getch();
return 0;
}

void input(struct stud st[N],int i,int *n)//*输入函数*//
{
printf("请输入第%d个人的姓名:",i+1);
scanf("%s",st[i].name);
printf("请输入第%d个人的c语言成绩:",i+1);
scanf("%d",&st[i].c);
printf("请输入第%d个人的java语言成绩:",i+1);
scanf("%d",&st[i].java);
printf("请输入第%d个人的sql语言成绩:",i+1);
scanf("%d",&st[i].sql);
st[i].sum=st[i].c+st[i].java+st[i].sql;
st[i].avg=(st[i].c+st[i].java+st[i].sql)/3;
*n+=1;
}
void insert(struct stud st[N],int i,int *n)//*插入函数*//
{ int j,a;
for(j=*n;j>i;j--)
{
for(a=0;a<=9;a++)
{st[j].name[a]=st[j-1].name[a]; }
st[j].c=st[j-1].c;
st[j].java=st[j-1].java;
st[j].sql=st[j-1].sql;
st[j].sum=st[j-1].sum;
st[j].avg=st[j-1].avg;
};
input(st,i,n);
}
void increase(struct stud st[N],int i,int *n)//*删除函数*//
{
int j,a;
for(j=i;j<*n-1;j++)
{
for(a=0;a<=9;a++)
{st[j].name[a]=st[j+1].name[a]; }
st[j].c=st[j+1].c;
st[j].java=st[j+1].java;
st[j].sql=st[j+1].sql;
st[j].sum=st[j+1].sum;
st[j].avg=st[j+1].avg;
};
*n-=1;
}


自己烦乱编的,还望大家指教!


----------------解决方案--------------------------------------------------------

开始运行时不初始化就能进行查询插入删除等功能吗
关掉程序后结果能保存供下次运行时使用吗

楼上的应该把结果保存到磁盘文件上,以备再次调用。
不然每次运行都要进行信息初始化。
写入磁盘文件函数大约是在文件那一章。


----------------解决方案--------------------------------------------------------
  相关解决方案