学生成绩管理软件
❶ 学生成绩管理系统
#include "stdafx.h"
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
// 循环列表结构 head->[,->next]...[data0,->next][data1,->next]...[datan,->head]
struct SCORE
{
int courseId;
int score;
SCORE *pnext;
};
struct STU_SCORE
{
char name[16];
int stuId;
SCORE *scoreHead;//学生课程成绩列表
struct STU_SCORE *pnext;
STU_SCORE(int ID,char names[])
{
int len=strlen(names);
for(int i=0;i<len;++i)
name[i]=names[i];
name[len]='\0';
stuId=ID;
}
};
int mainMenu();
int stuReg(STU_SCORE *pHead);
int selCourse(STU_SCORE *pHead);
int inputData(STU_SCORE *pHead);
int scoreSort(STU_SCORE *pHead);
int scoreQuery(STU_SCORE *pHead);
int modify(STU_SCORE *pHead);
enum MAIN_CMD{REG,SEL=1,INPUT,QUERY,MODI,EXIT};
int main(int argc, char* argv[])
{
STU_SCORE *head=( STU_SCORE *)malloc(sizeof(STU_SCORE));
head->stuId=-1;
head->pnext=head;
while(1)
{
int cmd=mainMenu();
switch(cmd)
{
case REG:
stuReg(head);
break;
case SEL:
selCourse(head);
break;
case INPUT:
inputData(head);
break;
case QUERY:
scoreQuery(head);
break;
case MODI:
modify(head);
break;
case EXIT:
return 0;
}
}
return 0;
}
int mainMenu()
{
system("cls");
cout<<"\t\t《学生成绩管理系统》\n";
cout<<" \t\t[0]新生注册\n";
cout<<" \t\t[1]选课登记\n";
cout<<" \t\t[2]学生成绩输入\n";
cout<<" \t\t[3]成绩查询\n";
cout<<" \t\t[4]修改成绩\n";
cout<<" \t\t[5]退出\n";
cout<<"命令? ";
int cmd;
cin>>cmd;
return cmd;
}
//新生注册:建立学生信息链表,从键盘输入学生姓名学号,插入到链表中。
int stuReg(STU_SCORE *pHead)
{
cout<<"注意:新生注册学号不能重复!\n";
start:
cout<<"学号\t\t姓名\n";
int ID;
char StudentName[20];
cin>>ID;
while(ID>0)
{
cin>>StudentName;
STU_SCORE *newStu=new STU_SCORE(ID,StudentName);
newStu->scoreHead=new SCORE();
newStu->scoreHead->pnext=newStu->scoreHead;
STU_SCORE*q=pHead->pnext,*p=pHead;
while(q!=pHead)
{
p=q;
if(q->stuId<newStu->stuId)
q=q->pnext;
else
break;
}
p->pnext=newStu;
newStu->pnext=q;
cin>>ID;
}
int cnt=0;
STU_SCORE*q=pHead->pnext;
while(q!=pHead)
{
q=q->pnext;
cnt++;
}
cout<<"学生数据库共有"<<cnt<<"个记录"<<endl;
cout<<"继续新的注册?";
char c;
cin>>c;
if(c=='y'||c=='Y')goto start;
return 0;
}
//学生选课
int selCourse(STU_SCORE *pHead)
{
start:
int cid;
cout<<"课程号:";
cin>>cid;
cout<<"输入选择该课程的学生学号:\n";
int stuId;
cin>>stuId;
while(stuId>0)
{
STU_SCORE *pStu=pHead->pnext;
while(pStu!=pHead)//链表已有记录
{
if(pStu->stuId==stuId)//有该学号
{
bool be=false;
SCORE *pcourse=pStu->scoreHead->pnext;
while(pcourse!=pStu->scoreHead)//已有选课
{
if(pcourse->courseId==cid)
{
be=true;////已有该选课
break;
}
pcourse=pcourse->pnext;
}
if(!be)
{ //还没有选此课程
SCORE *pNewcourse=(SCORE *)malloc(sizeof(SCORE));
pNewcourse->courseId=cid;
SCORE*q=pStu->scoreHead->pnext;
pStu->scoreHead->pnext=pNewcourse;
pNewcourse->pnext=q;
}
}
pStu=pStu->pnext;
}
cin>>stuId;
}
int count=0;
STU_SCORE *pStu=pHead->pnext;
while(pStu!=pHead)//链表已有记录
{
SCORE *pcourse=pStu->scoreHead->pnext;
while(pcourse!=pStu->scoreHead)
{
if(pcourse->courseId==cid)
{
count++;
}
pcourse=pcourse->pnext;
}
pStu=pStu->pnext;
}
cout<<"共有"<<count<<"个学生选此课程\n";
cout<<"继续新的选课输入?";
char c;
cin>>c;
if(c=='y'||c=='Y')goto start;
return 0;
}
//学生成绩输入
int inputData(STU_SCORE *pStuHead)
{
int count;
start:
count=0;
cout<<"课程号:";
int cid;
cin>>cid;
STU_SCORE *pStu=pStuHead->pnext;
while(pStu!=pStuHead)//if链表已有学生记录
{
SCORE *pcourse=pStu->scoreHead->pnext;
while(pcourse!=pStu->scoreHead)
{
if(pcourse->courseId==cid)
{
cout<<"学号:"<<pStu->stuId<<" 姓名:"<<pStu->name;
cout<<" 成绩:";
if(pcourse->score>=0)
cout<<"已输入";
else
{
cin>>pcourse->score;
count++;
}
break;
}
pcourse=pcourse->pnext;
}
pStu=pStu->pnext;
}
if(count==0)
cout<<"该课程无学生选!\n";
else
cout<<cid<<"课程成绩已输入完成!"<<"\n";
cout<<"继续其他课程成绩输入?";
char c;
cin>>c;
if(c=='y'||c=='Y')goto start;
return 0;
}
//课程成绩查询
int scoreQuery(STU_SCORE *pStuHead)
{
start:
int ID;
cout<<"学号:"<<endl;
cin>>ID;
STU_SCORE*pStu=pStuHead->pnext;
while(pStu!=pStuHead)
{
if(pStu->stuId==ID)
{
cout<<"姓名:"<<pStu->name<<"\t"<<"成绩:"<<endl;
SCORE*pcourse=pStu->scoreHead->pnext;
while(pcourse!=pStu->scoreHead)
{
cout<<"课程号:"<<pcourse->courseId<<"\t"<<"成绩:"<<pcourse->score<<endl;
pcourse=pcourse->pnext;
}
break;
}
pStu=pStu->pnext;
}
if(pStu==pStuHead)
{
cout<<"查无此人"<<endl;
}
cout<<"继续查询?";
char c;
cin>>c;
if(c=='y'||c=='Y')
goto start;
return 0;
}
//课程成绩修改
int modify(STU_SCORE *pStuHead)
{
start:
int ID;
cout<<"学号:";
cin>>ID;
STU_SCORE*pStu=pStuHead->pnext;
while(pStu!=pStuHead)
{
if(pStu->stuId==ID)
{
int cid;
cout<<"课程号:";
cin>>cid;
SCORE*pcourse=pStu->scoreHead->pnext;
while(pcourse!=pStu->scoreHead)
{
if(pcourse->courseId==cid)
{
int rescore;
cout<<"原成绩:"<<pcourse->score<<"\t"<<"成绩修改为:";
cin>>rescore;
pcourse->score=rescore;
goto ask;
}
pcourse=pcourse->pnext;
}
if(pcourse==pStu->scoreHead)
{
cout<<"此人没有选择该课程。"<<endl;
goto ask;
}
}
pStu=pStu->pnext;
}
if(pStu==pStuHead)
{
cout<<"查无此人"<<endl;
}
ask:
cout<<"继续修改?";
char c;
cin>>c;
if(c=='y'||c=='Y')
goto start;
return 0;
}
❷ 学生成绩管理系统
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
# include <string.h>
# include <conio.h>
void menu(struct student *parr,int len);
void sore(struct student *parr,int len);
void output(struct student *parr,int *len);
void input(struct student *parr,int len);
void write(struct student *parr,int len);
void read(struct student *parr,int len);
void find(struct student *parr,int len);
void logout(struct student *parr,int len);
void exit(struct student *parr,int len);
void modify(struct student *parr,int len);
void insert(struct student*parr,int *len);
struct student
{
int number;//学号
float score;//成绩
char name[10];//姓名
};
int main(void)
{
struct student * parr;
int len = 0;
char ch = '\0';
printf("请输入需要存入的学生人数:");
scanf("%d",&len);
parr = (struct student *)malloc((sizeof(struct student) * len));
menu(parr, len);
printf("按回车键继续\n");
while(1)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t|******************************************|\n");
printf("\t\t|--------------- 学生管理系统 -------------|\n");
printf("\t\t|------------ 1.写入学生信息 ---------|\n");
printf("\t\t|------------ 2.查看全部学生信息 ---------|\n");
printf("\t\t|------------ 3.按成绩排序 ---------|\n");
printf("\t\t|------------ 4.按学号查找 ---------|\n");
printf("\t\t|------------ 5.修改学生信息 ---------|\n");
printf("\t\t|------------ 6.添加学生 ---------|\n");
printf("\t\t|------------ 7.保存 ---------|\n");
printf("\t\t|------------ 0.退出 ---------|\n");
printf("\t\t|******************************************|\n");
printf("\t\t\n");
scanf(" %c",&ch);
switch(ch)
{
case '1' : input(parr,len); break;
case '2' : output(parr,&len); break;
case '3' : sore(parr,len); break;
case '4' : find(parr,len); break;
case '5' : modify(parr,len); break;
case '6' : insert(parr,&len); break;
case '7' : write(parr,len); break;
case '0' : exit(parr,len); break;
default : printf("\n\t输入错误!按回车键返回主菜单!");
getch();
}
}
free(parr);
return 0 ;
}
//函数功能:实现按成绩排序
void sore(struct student *parr,int len)
{
int i,j;
struct student t;
for( i = 0; i < len - 1; i++)
{
for(j = 0; j < len; j++)
if( parr[j+1].score > parr[j].score )
{
t = parr[j+1];
parr[j+1] = parr[j];
parr[j] = t;
}
}
output(parr,&len);
return;
}
//函数功能:打印信息
void output(struct student *parr,int *len)
{
int i;
for(i = 0;i < *len; i++)
printf("姓名:%s 成绩:%.2f 学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("\n");
getchar();
getchar();
return;
}
//函数功能:输入数据
void input(struct student *parr,int len )
{ int i;
for( i = 0; i < len; i++)
{
printf("请输入第%d个学生信息:",i + 1);
printf("姓名:");
scanf("%s",parr[i].name);//name是数组名 本身就是地址
printf("成绩: ");
scanf("%f",&parr[i].score);
printf("学号:");
scanf("%d",&parr[i].number);
}
printf("\n");
return;
}
/*函数功能:将数据写入文件*/
void write(struct student *parr,int len)
{
int i;//控制循环
FILE *fp = NULL;//定义文件指针
fp = fopen("D:\\student.txt","w");//打开文件并使文件指针指向它,以写的方式
if(fp == NULL)//如果文件没有打开,提示错误并退出
{
printf("\n\t文件没有打开!程序结束!");
getchar();//等待用户观察
exit(0);//结束整个程序
}
else
{
for(i=0; i<len; i++)//将数据依次写入文件
{
fprintf(fp, "姓名:%s 成绩:%.2f 学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
}
}
printf("已将学生信息保存在了D盘根目录下的student.txt文件中。\n");
getch();
fclose(fp);
return;
}
/*函数功能:读取文件数据*/
void read(struct student *parr,int len)
{
int i;
FILE * fp = NULL;
fp = fopen("D:\\student.txt","r");//以只读的方式打开文件
if(fp == NULL)
{
printf("数据读取失败!\n");
getchar();
exit(0);
}
else
{
for(i=0; i<len; i++)
{
fscanf(fp,"%s,%d,%.2f\n",parr[i].name,parr[i].number,parr[i].score);
}
}
fclose(fp);
return;
}
/*函数功能:按学号找学生信息*/
void find(struct student *parr,int len)
{
int number= 0;
int i;
printf("请您输入需要查找的学号:");
scanf("%d",&number);
for( i=0; i<len; i++ )
{
if(number == parr[i].number)
{
printf("姓名:%s 成绩:%.2f 学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
}
}
getch();
return;
}
/*函数功能:注销学生信息*/
void logout(struct student *parr,int len)
{
char ch = '\0';
find(parr,len);
printf("您确定要注销该学生吗?确定请按 Y,返回主菜单请按 N !\n");
scanf("%d",&ch);
if((ch == 'Y') || (ch == 'y'))
{
}
return;
}
void menu(struct student *parr,int len)
{
printf("\t\t||=========================================||\n");
printf("\t\t||-----------------------------------------||\n");
printf("\t\t||-----------欢迎使用学生管理系统----------||\n");
printf("\t\t||-----------------------------------------||\n");
printf("\t\t||=========================================||\n");
getchar();
getchar();
system("cls");
return;
}
/*函数功能:结束整个程序*/
void exit(struct student *parr,int len)
{// getchar();
char ch = '\0';
do
{
printf("您确定要退出!(y/n):");
scanf(" %c",&ch);
}while((ch != 'Y') && (ch != 'y') && (ch != 'N') && (ch != 'n'));
if((ch == 'Y') || (ch == 'y'))
{
exit(0);
}
return;
}
/*函数功能:修改学生信息*/
void modify(struct student *parr,int len)
{
int number = 0;
char ch = '\0';
int i;
printf("请您输入要修改的学生的学号:");
scanf("%d",&number);
for( i=0; i<len; i++ )
{
if(number == parr[i].number)
{
printf("姓名:%s 成绩:%.2f 学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("您确定要修改该学生信息(y/n)");
scanf(" %c",&ch);
if(ch == 'y')
{
printf("请输入姓名:");
scanf("%s",parr[i].name);
printf("请输入成绩:");
scanf("%f",&parr[i].score);
printf("请输入学号:");
scanf("%d",&parr[i].number);
printf("姓名:%s 成绩:%.2f 学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("修改成功!");
getch();
}
else
{
printf("没有找到该学生");
getch();
break;
}
}
}
return;
}
/*函数功能:添加学生*/
void insert(struct student *parr,int *len)
{
int number = 0;//添加学生的个数
int i;
printf("请输入您要添加几个学生信息:");
scanf("%d",&number);
parr = (struct student *)malloc((sizeof(struct student) * (*len+number)));
for(i=*len; i<*len+number;i++)
{
printf("请输入第%d个学生信息:",i + 1);
printf("姓名:");
scanf("%s",parr[i].name);
printf("成绩: ");
scanf("%f",&parr[i].score);
printf("学号:");
scanf("%d",&parr[i].number);
}
output(parr,&*len);
}
❸ 学生成绩管理系统哪个好
给你个推荐个,软件介绍链接可参阅文库:
http://wenku..com/link?url=xocDSJdPietT4_bEFJNFsK8GqmNBFP-UQV8nzDZFmK_qRHUYp363Yk_
下载链接:http://rj..com/soft/detail/38341.html
这个是目前新发现的最好的了,仅供参考。
如果觉得好用请采纳我的答案!
❹ 用C语言做学生成绩管理软件
/*11.3.2 源程序*/
/***********xuesheng.c***********/
/******头文件(.h)***********/
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.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 *delete(STUDENT *h); /*删除记录*/
void print(STUDENT *h); /* 显示所有记录*/
void search(STUDENT *h); /*查找*/
void save(STUDENT *h); /*保存*/
STUDENT *load(); /*读入记录*/
void computer(STUDENT *h); /*计算总分和均分*/
STUDENT *insert(STUDENT *h); /*插入记录*/
void append(); /*追加记录*/
void (); /*复制文件*/
STUDENT *sort(STUDENT *h); /*排序*/
STUDENT *index(STUDENT *h); /*索引*/
void total(STUDENT *h); /*分类合计*/
int menu_select(); /*菜单函数*/
/******主函数开始*******/
main()
{
int i;
STUDENT *head; /*链表定义头指针*/
head=init(); /*初始化链表*/
clrscr(); /*清屏*/
for(;;) /*无限循环*/
{
switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/
{ /*值不同,执行的函数不同,break 不能省略*/
case 0:head=init();break; /*执行初始化*/
case 1:head=create();break; /*创建链表*/
case 2:head=delete(head);break; /*删除记录*/
case 3:print(head);break; /*显示全部记录*/
case 4:search(head);break; /*查找记录*/
case 5:save(head);break; /*保存文件*/
case 6:head=load(); break; /*读文件*/
case 7:computer(head);break; /*计算总分和均分*/
case 8:head=insert(head); break; /*插入记录*/
case 9:();break; /*复制文件*/
case 10:head=sort(head);break; /*排序*/
case 11:append();break; /*追加记录*/
case 12:head=index(head);break; /*索引*/
case 13:total(head);break; /*分类合计*/
case 14:exit(0); /*如菜单返回值为14程序结束*/
}
}
}
/*菜单函数,返回值为整数*/
menu_select()
{
char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/
" 0. init list", /*初始化*/
" 1. Enter list", /*输入记录*/
" 2. Delete a record from list", /*从表中删除记录*/
" 3. print list ", /*显示单链表中所有记录*/
" 4. Search record on name", /*按照姓名查找记录*/
" 5. Save the file", /*将单链表中记录保存到文件中*/
" 6. Load the file", /*从文件中读入记录*/
" 7. compute the score", /*计算所有学生的总分和均分*/
" 8. insert record to list ", /*插入记录到表中*/
" 9. the file to new file", /*复制文件*/
" 10. sort to make new file", /*排序*/
" 11. append record to file", /*追加记录到文件中*/
" 12. index on nomber", /*索引*/
" 13. total on nomber", /*分类合计*/
" 14. Quit"}; /*退出*/
char s[3]; /*以字符形式保存选择号*/
int c,i; /*定义整形变量*/
gotoxy(1,25); /*移动光标*/
printf("press any key enter menu......\n"); /*压任一键进入主菜单*/
getch(); /*输入任一键*/
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
gotoxy(10,2); /*移动光标*/
putch(0xc9); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xcd); /*输出上边框水平线*/
putch(0xbb); /*输出右上角边框 ┓*/
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba); /*输出左垂直线*/
gotoxy(54,i);putch(0xba);
} /*输出右垂直线*/
gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xcd); /*输出下边框水平线*/
putch(0xbc); /*输出右下角边框┛*/
window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr(); /*清屏*/
for(i=0;i<16;i++) /*输出主菜单数组*/
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK); /*设置背景颜色为黑色*/
window(1,1,80,25); /*恢复原窗口大小*/
gotoxy(10,21); /*移动光标*/
do{
printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整形数*/
}while(c<0||c>14); /*选择项不在0~14之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
STUDENT *init()
{
return NULL;
}
/*创建链表*/
STUDENT *create()
{
int i; int s;
STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/
for(;;)
{
info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/
if(!info) /*如果指针info为空*/
{
printf("\nout of memory"); /*输出内存溢出*/
return NULL; /*返回空指针*/
}
inputs("enter no:",info->no,11); /*输入学号并校验*/
if(info->no[0]=='@') break; /*如果学号首字符为@则结束输入*/
inputs("enter name:",info->name,15); /*输入姓名,并进行校验*/
printf("please input %d score \n",N); /*提示开始输入成绩*/
s=0; /*计算每个学生的总分,初值为0*/
for(i=0;i<N;i++) /*N门课程循环N次*/
{
do{
printf("score%d:",i+1); /*提示输入第几门课程*/
scanf("%d",&info->score[i]); /*输入成绩*/
if(info->score[i]>100||info->score[i]<0) /*确保成绩在0~100之间*/
printf("bad data,repeat input\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; /*未排序前此值为0*/
info->next=h; /*将头结点做为新输入结点的后继结点*/
h=info; /*新输入结点为新的头结点*/
}
return(h); /*返回头指针*/
}
/*输入字符串,并进行长度验证*/
inputs(char *prompt, char *s, int count)
{
char p[255];
do{
printf(prompt); /*显示提示信息*/
scanf("%s",p); /*输入字符串*/
if(strlen(p)>count)printf("\n too long! \n"); /*进行长度校验,超过count值重输入*/
}while(strlen(p)>count);
strcpy(s,p); /*将输入的字符串拷贝到字符串s中*/
}
/*输出链表中结点信息*/
void print(STUDENT *h)
{
int i=0; /* 统计记录条数*/
STUDENT *p; /*移动指针*/
clrscr(); /*清屏*/
p=h; /*初值为头指针*/
printf("\n\n\n****************************STUDENT********************************\n");
printf("|rec|nO | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|---|----------|---------------|----|----|----|--------|-------|-----|\n");
while(p!=NULL)
{
i++;
printf("|%3d |%-10s|%-15s|%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 *delete(STUDENT *h)
{
STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/
char s[11]; /*存放学号*/
clrscr(); /*清屏*/
printf("please deleted no\n"); /*显示提示信息*/
scanf("%s",s); /*输入要删除记录的学号*/
q=p=h; /*给q和p赋初值头指针*/
while(strcmp(p->no,s)&&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/
{
q=p; /*将p指针值赋给q作为p的前驱指针*/
p=p->next; /*将p指针指向下一条记录*/
}
if(p==NULL) /*如果p为空,说明链表中没有该结点*/
printf("\nlist no %s student\n",s);
else /*p不为空,显示找到的记录信息*/
{
printf("*****************************have found***************************\n");
printf("|no | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|----------|---------------|----|----|----|--------|-------|-----|\n");
printf("|%-10s|%-15s|%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");
getch(); /*压任一键后,开始删除*/
if(p==h) /*如果p==h,说明被删结点是头结点*/
h=p->next; /*修改头指针指向下一条记录*/
else
q->next=p->next; /*不是头指针,将p的后继结点作为q的后继结点*/
free(p); /*释放p所指结点空间*/
printf("\n have deleted No %s student\n",s);
printf("Don't forget save\n");/*提示删除后不要忘记保存文件*/
}
return(h); /*返回头指针*/
}
❺ 简单学生成绩管理系统
//基本的都有了,c 的,文字说明自己加。有问题再找。
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct Student
{
string num;
double gra1;
double gra2;
double gra3;
double ave;
int t;//标志是不是被删除的。
};
Student stu[100];
int n;// 表示总人数
Student temp;
//输入成绩
void Input()
{
int t,i;
t=n;
for(i=0;i<n;i )
{
(stu[i].t==0) {t=i;break;}
}
cin>>temp.num>>temp.gra1 >>temp.gra2 >>temp.gra3 ;
stu[t]=temp;
stu[t].t=1;
if(t==n) n ;
}
void Sort()
{
int i,j;
for(i=0;i<n;i )
{
for(j=i 1;j<n;j )
{
if(stu[j].ave>stu[j-1].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void Ave()
{
int i;
for(i=0;i<n;i ) stu[i].ave=(stu[i].gra1 stu[i].gra2 stu[i].gra3 )/3;
}
void Dis ()
{
int i;
for(i=0;i<n;i )
{
if(stu[i].t==1)
{
cout<<stu[i].num<<" "<<stu[i].gra1<<" "<<stu[i].gra2
<<" "<<stu[i].gra3<<" "<<stu[i].ave<<endl;
}
}
}
void Del(int t)
{
int i;
string name;
cin>>name;
int p=-1;
for(i=0;i<n;i )
{
if(stu[i].t==1
❻ 学生成绩管理系统怎么做
可以啊~ 我同事给我推荐了易查分,我用下来还蛮好用的,不用要代码 和服务器,你只要把你要做的查询信息 做成电子表格,导入易查分,然后易查分每个步骤都有任务向导,按照步骤完成就可以生成了!!!你试试嘛
❼ 学生成绩管理系统是不是应用软件系统
软件只有系统软件和应用软件之分;
系统软件,一般都是指操作系统,像windows,linux, win 7
应用软件,绝大多数的软件都是应用软件,基本所有软件公司都是开发应用软件的。类似qq ,小说阅读器,office了(虽然与windows绑定,但是它是微软开发的应用软件)
所以学生管理系统是应用软件。
❽ 简单学生成绩管理系统程序设计
看可以不咯?
#include<stdio.h>
int avgGrade(int a[50])
{
int i,sum=0,max=0,min=0;
double avg=0.0;
max=a[0];
min=a[0];
for(i=0;i<50;i++)
{
sum+=a[i];
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
avg=(double)sum/50;
printf("平均成绩为%lf,最高成绩为%d,最低成绩为%d\n",avg,max,min);
return 0;
}
int compositor(int a[50])
{
int i,j,n,temp=0;
printf("请输入您要排序的方式(0:升序,1:降序):\n");
scanf("%d",&n);
for(i=0;i<50;i++)
{
for(j=0;j<i;j++)
{
if(n==0)
{
if(a[j]>a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
else
{
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
for(i=0;i<50;i++)
{
printf("%d",a[i]);
}
}
int insertGrade(int a[50])
{
int i,n;
printf("请输入你要插入的成绩:\n");
scanf("%d",&n);
for(i=0;i<50;i++)
if(n>a[i])
{
for(s=49;s>=i;s--)
a[s+1]=a[s];
break;
}
a[i]=n;
}
int deleteGrade(int a[50])
{
int x,i,j;
printf("请输入你要删除的成绩:\n");
scanf("%d",&x);
for(i=0;i<10;i++)
{
if(a[i]==x)
for(j=i+1;j<10;j++)
a[i]=a[j];
a[j]='\0';
}
}
void main()
{
int n,i,a[50];
printf("请输入50个学生的成绩:\n");
for(i=0;i<50;i++)
{
scanf("%d",&a[i]);
}
while(1)
{
printf ("--------------------------\n");
printf ("请选择您的功能:\n\n");
printf (" 0 录入成绩\n");
printf (" 1 输出成绩\n");
printf (" 2 输出平均分、最高分、最低分\n");
printf (" 3 成绩降序或升序排列\n");
printf (" 4 插入一个成绩\n");
printf (" 5 删除用户给定的成绩\n");
printf (" 6 退出\n\n");
printf ("--------------------------\n");
scanf("%d",n);
switch(n)
{
case 0:
printf("请输入50个学生的成绩:\n");
for(i=0;i<50;i++)
{
scanf("%d",&a[i]);
}
break;
case 1:
for(i=0;i<50;i++)
{
printf("%d",a[i]);
}
break;
case 2:
avgGrade(a);
break;
case 3:
compositor(a);
break;
case 4:
insertGrade(a);
break;
case 5:
deleteGrade(a);
break;
case 6:
exit (0);
}
}
return 0;
}