学生信息管理系统设计。急!!!!!!! 高悬赏!!!!C语言课程设计 学生成绩管理系统《急!!!!!...

作者&投稿:大叔饱 (若有异议请与网页底部的电邮联系)
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 3
typedef struct z1
{
char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
}STUDENT;
STUDENT *init();
STUDENT *create();
STUDENT *del(STUDENT *h);
void print(STUDENT *h);
void search1(STUDENT *h);
void search2(STUDENT *h);
STUDENT *insert(STUDENT *h);
void sort(STUDENT *h);
void save(STUDENT *h);
void tongji(STUDENT *h);
int menu_select();
STUDENT *load();
void inputs(char *prompt,char *s,int count);
STUDENT *load();
main()
{
int i;
STUDENT *head;
head=init();
for(;;)
{
switch(menu_select())
{
case 0:head=init();break;
case 1:head=create();break;
case 2:head=insert(head);break;
case 3:save(head);break;
case 4:print(head);break;
case 5:search1(head);break;
case 6:head=del(head);break;
case 7:sort(head);break;
case 8:tongji(head);break;
case 9:search2(head);break;
case 10:exit(0);
}
}
}
int menu_select()
{
char *menu[]={"************菜单************",
"0. 初始化链表",
"1. 输入学生成绩",
"2. 插入学生成绩",
"3. 保存学生记录",
"4. 显示学生记录",
"5. 按学号查找学生信息",
"6. 删除指定学号的学生信息",
"7. 按某一门课对学生成绩排序",
"8. 统计某门课程的学生成绩",
"9. 按姓名查找学生信息",
"10. 退出系统"};
char s[3];
int c,i;
for(i=0;i<=11;i++)
printf(" %s\n",menu[i]);
do
{
printf("\n请选择0~10中的某一个选项\n");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>10);
return c;
}
STUDENT *init()
{
return NULL;
}
STUDENT *create()
{
int i;int s;
STUDENT *h=NULL,*info;
for(;;)
{
info=(STUDENT *)malloc(sizeof(STUDENT));
if(!info)
{
printf("\n内存不足");
return NULL;
}
inputs("输入学号:",info->no,11);
if(info->no[0]=='@')break;
inputs("输入姓名:",info->name,15);
printf("开始输入%d门课的成绩\n",N);
s=0;
for(i=0;i<N;i++)
{
do{
printf("第%d门分数:",i+1);
scanf("%d",&info->score[i]);
if(info->score[i]>100||info->score[i]<0)
printf("输入成绩错误,请重新输入:\n");
}while(info->score[i]>100||info->score[i]<0);
s=s+info->score[i];
}
info->sum=s;
info->average=(float)s/N;
info->order=0;
info->next=h;
h=info;
}
return h;
}
void inputs(char *prompt,char *s,int count)
{
char p[255];
do
{
printf(prompt);
scanf("%s",p);
if(strlen(p)>count)
printf("\n太长了!\n");
}while(strlen(p)>count);
strcpy(s,p);
}
void print(STUDENT *h)
{
int i=0;
STUDENT *p;
p=h;
printf("\n\n\n***********************学生***********************\n");
printf("|序号|学号 | 姓名 | 语文 | 英语 |数学 | 总分 |平均分 |名次 |\n");
printf("|---|-------|--------|----|----|----|------|------|---|\n");
while(p!=NULL)
{
i++;
printf("|%3d |%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",i,p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
p=p->next;
}
printf("***********************end***********************\n");
}
STUDENT *del(STUDENT *h)
{
STUDENT *p,*q;
char s[11];
printf("请输入要删除的学生的学号\n");
scanf("%s",s);
q=p=h;
while(strcmp(p->no,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
printf("\n链表中没有学号为%s的学生\n",s);
else
{
printf("\n\n\n***********************找到了***********************\n");
printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n");
printf("|----------|----------|----|----|----|------|------|---|\n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************\n");
printf("请按任意键删除\n");
getchar();
if(p==h)
h=p->next;
else q->next=p->next;
free(p);
printf("\n已经删除学号为%s的学生\n",s);
printf("不要忘了保存数据\n");
}
return h;
}
void search1(STUDENT *h)
{
STUDENT *p;
char s[11];
printf("请输入你要查找的同学的学号\n");
scanf("%s",s);
p=h;
while(strcmp(p->no,s)&&p!=NULL)
p=p->next;
if(p==NULL)
printf("'n没有学号为%s的学生\n",s);
else
{
printf("\n\n\n***********************找到了***********************\n");
printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n");
printf("|----------|-----------|----|----|----|------|------|---|\n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************\n");
}
}
void search2(STUDENT *h)
{
STUDENT *p;
char s[11];
printf("请输入你要查找的同学的姓名\n");
scanf("%s",s);
p=h;
while(strcmp(p->name,s)&&p!=NULL)
p=p->next;
if(p==NULL)
printf("\n没有姓名为%s的学生\n",s);
else
{
printf("\n\n\n***********************找到了***********************\n");
printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n");
printf("|----------|-----------|----|----|----|------|------|---|\n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************\n");
}
}
STUDENT *insert(STUDENT *h)
{
STUDENT *p,*q,*info;
char s[11];
int s1,i;
printf("请输入插入点的学生学号\n");
scanf("%s",s);
printf("\n请输入新的学生信息\n");
info=(STUDENT *)malloc(sizeof(STUDENT));
if(!info)
{
printf("\n内存不足!");
return NULL;
}
inputs("输入学号:",info->no,11);
inputs("输入姓名:",info->name,15);
printf("请输入%d门课的分数\n",N);
s1=0;
for(i=0;i<N;i++)
{
do{
printf("分数%d",i+1);
scanf("%d",&info->score[i]);
if(info->score[i]>100||info->score[i]<0)
printf("输入数据有误,请重新输入\n");
}while(info->score[i]>100||info->score[i]<0);
s1=s1+info->score[i];
}
info->sum=s1;
info->average=(float)s1/N;
info->order=0;
info->next=NULL;
p=h;
q=h;
while(strcmp(p->no,s)&&p!=NULL)
{q=p;p=p->next;}
if(p==NULL)
if(p==h)
h=info;
else q->next=info;
else
if(p==h)
{
info->next=p;
h=info;
}
else
{
info->next=p;
q->next=info;
}
printf("\n已经插入了%s这个学生\n",info->name);
printf("----不要忘了存盘啊--\n");
return(h);
}
void save(STUDENT *h)
{
FILE *fp;
STUDENT *p;
char outfile[10];
printf("请输入保存文件的文件名,例如 c:\\f1\\te.txt:\n");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
printf("\n正在保存......\n");
p=h;
while(p!=NULL)
{
fwrite(p,sizeof(STUDENT),1,fp);
p=p->next;
}
fclose(fp);
printf("------保存成功!!!------\n");
}
STUDENT *load()
{
STUDENT *p,*q,*h=NULL;
FILE *fp;
char infile[10];
printf("请输入要读取数据的文件名,例如c:\\f1\\te.txt:\n");
scanf("%s",infile);
if((fp=fopen(infile,"wb"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
printf("正在读取数据....\n");
p=(STUDENT *)malloc(sizeof(STUDENT));
if(!p)
{
printf("内存不足!\n");
exit(1);
}
h=p;
while(!feof(fp))
{
if(1!=fread(p,sizeof(STUDENT),1,fp))
break;
p->next=(STUDENT *)malloc(sizeof(STUDENT));
if(!p->next)
{
printf("内存不足!\n");
return h;
}
q=p;
p=p->next;
}
q->next=NULL;
fclose(fp);
printf("---你已经成功地从文件中读取了数据!!!---\n");
return h;
}
void sort(STUDENT *h)
{
int i=0,j;
STUDENT *p,*q,*t,*h1;
printf("请输入要按哪门课程的编号来排序:(0.语文 1.数学 2.英语)\n");
scanf("%d",&j);
h1=h->next;
h->next=NULL;
while(h1!=NULL)
{
t=h1;
h1=h1->next;
p=h;
q=h;
while(t->score[j]<p->score[j]&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==q)
{
t->next=p;
h=t;
}
else
{
t->next=p;
q->next=t;
}
}
p=h;
while(p!=NULL)
{
i++;
p->order=i;
p=p->next;
}
print(h);
printf("排序成功!!!\n");
}
void tongji(STUDENT *h)
{
STUDENT *p;
int a,b,i;
printf("请输入课程编号\n");
scanf("%d",&i);
printf("请输入分数段:\n");
scanf("%d,%d",&a,&b);
p=h;
while(p!=NULL)
{
printf("\n\n\n***********************找到了***********************\n");
if(p->score[i]>=a&&p->score[i]<=b)
{
printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n");
printf("|--------|---------|----|----|----|------|------|---|\n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
}
p=p->next;
}
printf("***********************end***********************\n");
}

求C语言学生成绩管理系统设计,急!急!!!!!!!!!!~

//从一个通讯录程序改的。不完善,自己改一下就OK了。
//为什么你不给分呢?不知道我最近缺分么?。。。。。哎。。
#include
#include
typedef struct node{
char name[8]; char subject[11]; char score[11]; char other[60];
struct node * next;
} Node;
Node * head = new Node;

void Add(){
Node * make = new Node;
printf( "name:");
scanf( "%s", &make->name);
printf( "
subject:");
scanf( "%s", &make->subject);
printf( "
score");
scanf( "%s", make->score);
printf( "
other");
scanf( "%s", &make->other);
make->next = head->next;
head->next = make;
printf( "Add success
");
}

int Delete(){
Node * p = head->next, * del; int i = 1, k, num = 0;
while( p){
printf( "%d : %s
", i, p->name);
p = p->next; num++; i++;
}
printf( "input the Number to delete:");
scanf( "%d", &i);
if( i <= num){
p = head;
for( k = 0; k < i - 1; k++){
p = p->next;
}
del = p->next;
p->next = del->next;
free( del);
return 1;
}else{
printf( "wrong input
");
return 0;
}
}

int Modify(){
Node * p = head->next; int i = 1, k, num = 0;
while( p){
printf( "%d : %s
", i, p->name);
p = p->next; num++;
}
printf( "input the No. to modify:");
scanf( "%d", &i);
if( i <= num){
for( k = 0, p = head; k < i; k++){
p = p->next;
}
printf( "name:");
scanf( "%s", &p->name);
printf( "
subject:");
scanf( "%s", &p->subject);
printf( "
score");
scanf( "%s", p->score);
printf( "
other");
scanf( "%s", &p->other);
printf( "success
");
return 1;
}else{
printf( "Wront input
");
return 0;
}
}

void Display(){
Node * p = head->next;
if( !p){
printf( "No data exist
"); return;
}
while( p){
printf( "name: %s
", p->name);
printf( " subject:%s
", p->subject);
printf( " score:%s
", p->score);
printf( " other:%s
", p->other);
p = p->next;
}
}

int main(){
int op;
head->next = NULL;
while(1){
printf( "1. Add
2. Modify
3. Delete
4. Display
5. Exit
");
scanf( "%d", &op);
switch( op){
case 1: Add();break;
case 2: Modify(); break;
case 3: Delete(); break;
case 4: Display(); break;
case 5: return 0; break;
default: break;
}
}
return 0;
}

#include "stdio.h"
#define N 10
struct student
{char num[10];
char name[20];
float score[3];
float sum;
float aver;
}stu[N];
void main()
{
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
int i;
float temp;
for(i=0;i<N;i++)
{printf("enter data of the%dth student:
",i+1);
printf("number: ");
gets(stu[i].num);
printf("name: ");
gets(stu[i].name);
printf("score1: ");
scanf("%f",&temp);
stu[i].score[0]=temp;
printf("score2: ");
scanf("%f",&temp);
stu[i].score[1]=temp;
printf("score3: ");
scanf("%f",&temp);
getchar();
stu[i].score[2]=temp;
}
count(stu);
printf("
");
sort(stu);
printf("
");
find(stu);
}

void count(struct student stu[])
{float sum,aver;
int i,j;
for(i=0;i<N;i++)
{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
aver=sum/3.0;
stu[i].sum=sum;
stu[i].aver=aver;
}
printf("number name sum average
");
for(i=0;i<N;i++)
printf("%-8s%-10s%-9.2f%-9.2f
",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}

void sort(struct student stu[])
{int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;}
}
printf("number name score1 score2 score3 sum average
");
for(i=0;i<N;i++)
printf("%-8s%-10s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);
}

void find(struct student stu[])
{int i,j,sum,flag=0;
printf("the student of two scores<60:
");
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<3;j++)
if(stu[i].score[j]<60)sum++;
if(sum>=2)
{flag=1;
printf("%-8s%-10s
",stu[i].num,stu[i].name);
}
}
if(flag==0)
printf(" not exist!
");
}

急求C语言 学生信息管理系统设计 用TC 就行 !! 谢谢了! 有的发邮箱吧...
答:1.学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,专业,班级,家庭地址,电话等。试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作;(2)学生... 1. 学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,专业,班级,家庭地址,电话等。试设计一学生信息管理系统,使之能提供...

学生宿舍管理信息系统的设计,要用JAVA或者C语言实现管理,还有建立数据...
答:学生宿舍管理信息系统的设计,要用JAVA或者C语言实现管理,还有建立数据库!!!急!!  我来答 2个回答 #热议# 为什么现在情景喜剧越来越少了?百度网友b36b5ee 2011-06-24 知道答主 回答量:35 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 #include<stdio.h>#include<string.h...

写一个学生信息的管理系统,用C语言和数据结构,我想请问一下基本的框架...
答:不知道你要的信息管理功能都要求实现什么功能,只是我前两天做的,可以给你参考一下,用结构做的,其中统计功能是我做的,其他部分是老师编好的 /*预编译命令*/ include <stdio.h> include <stdlib.h> include <conio.h> include <string.h> /*自定义数据类型*/ typedef struct student{ char ...

设计一个学生信息管理系统
答:include #include #include #define MAX 1000 /*定义学生成绩信息结构*/ struct stu { char id[8]; char name[8]; double Chinese; double Math; double English; double average; double total; }; /*学生结构数组,用于存储学生成绩信息*/ struct stu students[MAX]; /*当前学生人数*/ int ...

C语言大学生信息管理系统
答:2017-12-24 C语言 学生管理系统 2012-07-12 C语言大学生信息管理系统 \(1) 用C++语言编程,在Vi... 1 2011-07-17 C语言学生信息管理系统程序设计 38 2013-09-04 c语言 大学生公寓管理系统 这个哪位大神会,急求!! 2009-02-22 C语言程序设计题目:学生信息管理系统设计 93 2019-03-19 求C语言大学...

...编写一个学生信息管理系统,主要实现下列功能:
答:编写一个学生信息管理系统,主要实现下列功能: 很急~!!1)录入功能:提供学生基本信息和某学期各科成绩的录入功能,学生信息要齐全。(2)查询功能,可以按照姓名或班级关键字查询学生基本信息。(3)修改功能,修改学生的信息和... 很急~!!1)录入功能:提供学生基本信息和某学期各科成绩的录入功能,学生信息要齐全。(2)...

急求管理信息系统课程设计
答:(二)、课程设计开设对象 本实验开设对象为《管理信息系统》课程的学习者(计算机信息管理专业以及相关专业专科生),实验为必修内容。(三)、基本原理及课程简介 《管理信息系统》是一门培养学生信息系统分析、设计、开发能力的理论课程,同时要求学生具有较强的动手实践能力。本课程在教学内容方面着重基本...

用java编写学生信息管理系统,只需有添加,删除,修改,查询,等功能即可...
答:myMenuAbout=new Menu("我的课程设计");miAbout=new MenuItem("课程设计说明");myMenuAbout.add(miAbout);myMenuBar.add(myMenuFile);myMenuBar.add(myMenuEdit);myMenuBar.add(myMenuUser);myMenuBar.add(myMenuAbout);String[] col = {"学号","姓名","性别","民族","年龄","年级","...

学生信息管理系统C语言设计!急用啊!
答:我用C++做过一个,你会改的话就用吧:include "iostream.h"include <stdio.h> include <stdlib.h> include <string.h> struct info { char name[20];char sex[10];int num;char phone[20];char address[100];info *pNext;};class students { public:students();void show(info *pNode);...

跪求一份"学生信息管理系统设计"的程序
答:我在有一个能完成你说的所有功能 但是暂时没考虑出生年月,电话,和E-mail 但是我给你的是一个参考 毕竟你在添加这些东西的时候又能学到一些东西 完全用别人的东西对自己也没好处 include<stdio.h> include<string.h> include<stdlib.h> typedef struct stud //学生信息结构 { long num;char name...