怎么又是这个题,是老师的作业吗?? 我看了下,有点小改动,你可以根据这个自行改动下。
#include <stdioh>
#define N 100
struct student
{int num;
float score;
};
void main()
{int i,n,sf,gn;
struct student stu[N];
printf("您正在登录中······\n");
printf("请选择登录身份:1,管理员;0,普通用户\n");
scanf("%d",&sf);
if(sf==1){
printf("您是管理员!\n能进行以下 *** 作\n");
printf("-----1,用户创建-----\n-----2,成绩录入-----\n-----3,成绩计算-----\n");
scanf("%d",&gn);
switch(gn)
{case 1: ;break;
case 2:
{ printf("请输入学生数目:\n");
scanf("%d",&n);
printf("请输入按如下形式输入:\n");
printf("学号分数\n");
for(i=0;i<n;i++)
scanf("%d%f",&stu[i]num,&stu[i]score);
}break;
case 3: ;break;
default :printf("?输入出错?\n");break;
}
}
printf("请选择登录身份:1,管理员;0,普通用户\n");
scanf("%d",&sf);
if(sf==0){
printf("您是普通用户!\n能进行以下 *** 作\n");
printf("-----1,成绩查询-----\n-----2,打印输出-----\n");
scanf("%d",&gn);
switch(gn)
{case 1:{printf("请输入所查询的学生学号:\n");
scanf("%d",&i);
printf("学号%d 分数%f\n",stu[i-1]num,stu[i-1]score);
} break;
case 2:
;break;
default :printf("?输入出错?\n");break;
}
}}
声明:本程序编写了成绩录入和成绩查询功能,成绩计算等功能不知道具体要求,请自行完善;希望对你有用!
#include <stdioh>
#include <memoryh>
#include <stdlibh>
#include <stringh>
char grades[5][10] = {"语文","数学","英语","总成绩","平均成绩"};
typedef struct data {
char number[16];
char name[20];
double score[5];
}dataType;
typedef struct list {
dataType pauline;
struct list next;
}LinkList,pNode,Node;
void getMemory(size_t size) {
return malloc(size);
}
LinkList getEmptyList() {
LinkList head = (pNode)getMemory(sizeof(Node));
memset(head,0,sizeof(Node));
return head;
}
int addNode(LinkList head,pNode pnode) {
pNode q;
for(q = head; q->next; q = q->next)
if(strcmp(q->next->paulinenumber,pnode->paulinenumber) == 0) {
printf("重复的学号:%d\n",pnode->paulinenumber);
return 0;
}
q->next = pnode;
pnode->next = NULL;
return 1;
}
// 按学号升排序
void sortNumber(LinkList head) {
pNode p,q,pt,qt;
p = head;
while(p->next) {
qt = p;
q = p->next;
while(q->next) {
if(strcmp(qt->next->paulinenumber,q->paulinenumber) > 0)
qt = q;
q = q->next;
}
if(qt != p) {
pt = p->next;
p->next = qt->next;
qt->next = qt->next->next;
p->next->next = pt;
}
p = p->next;
}
}
// 按第th门成绩降排序,th = 1,2,3,4,5
void sortScore(LinkList head,int th) {
pNode p,q,pt,qt;
int i;
if(th < 1 || th > 5) return;
i = th - 1;
for(p = head; p->next; p = p->next) {
qt = p;
q = p->next;
while(q->next) {
if(qt->next->paulinescore[i] < q->next->paulinescore[i])
qt = q;
q = q->next;
}
if(qt != p) {
pt = p->next;
p->next = qt->next;
qt->next = qt->next->next;
p->next->next = pt;
}
}
}
void show(LinkList head) {
int i;
pNode p;
for(p = head->next; p; p = p->next) {
printf("%s\t%s\t",p->paulinenumber,p->paulinename);
for(i = 0; i < 5; ++i)
printf("%2f\t",p->paulinescore[i]);
printf("\n");
}
}
pNode readData() {
pNode pnode = (pNode)getMemory(sizeof(Node));
int i;
printf("学 号:");
scanf("%s",pnode->paulinenumber);
printf("姓 名:");
scanf("%s",pnode->paulinename);
pnode->paulinescore[3] = 0;
for(i = 0; i < 3; ++i) {
printf("%s成绩:",grades[i]);
scanf("%lf",&pnode->paulinescore[i]);
pnode->paulinescore[3] += pnode->paulinescore[i];
}
pnode->paulinescore[4] = pnode->paulinescore[3]/30;
return pnode;
}
void menu() {
printf("\n");
printf(" 学生成绩管理系统 \n");
printf("\n");
printf(" 1、添加学生信息 \n");
printf(" 2、显示学生信息 \n");
printf(" 3、按学号排序 \n");
printf(" 4、按成绩排序 \n");
printf("\n");
printf(" 0、退出 \n");
printf("\n");
}
int main() {
char op[20];
int select;
LinkList head = getEmptyList();
do {
menu();
printf("请选择:");
fflush(stdin);
fgets(op,20,stdin);
fflush(stdin);
switch(op[0] - '0') {
case 1 : addNode(head,readData()); break;
case 2 : show(head); break;
case 3 : sortNumber(head); break;
case 4 : printf("按第几门功课排序;");
scanf("%d",&select);
sortScore(head,select);
break;
}
}while(op[0] - '0');
printf("END\n");
return 0;
}
以上就是关于C语言程序设计 学生成绩管理系统全部的内容,包括:C语言程序设计 学生成绩管理系统、c语言设计学生成绩管理程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)