学生信息管理系统C语言编程Word文档格式.docx
- 文档编号:14885202
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:14
- 大小:17.87KB
学生信息管理系统C语言编程Word文档格式.docx
《学生信息管理系统C语言编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C语言编程Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
综合成绩在60以下,应得学分=学分*0%。
2)查询功能:
分为学生基本情况查询和成绩查询两种
(1)学生基本情况查询:
①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下:
②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
(格式如上所示)
(2)成绩查询:
①、输入一个学号时,查询出此生的所有课程情况,格式如下:
学号:
xx姓名:
xxxxx
课程编号:
xxx课程名称:
xxxxx综合成绩:
xxxx实得学分:
xx
……………………
共修:
xx科,实得总学分为:
xxx
(3)删除功能:
提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。
(4)排序功能:
能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
【程序设计的具体说明】
(1)将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;
(2)对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。
(3)删除功能中可以将删除相关信息后得到的文件生成新文件存储,也可以在原文件的基础上作删除
(4)可以用面向过程方法或是面向对象的方法实现。
(5)主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。
#include"
stdio.h"
stdlib.h"
string.h"
#defineN3
typedefstructz1
{
charno[11];
charname[15];
intscore[N];
floatsum;
floataverage;
intorder;
structz1*next;
}STUDENT;
STUDENT*init();
STUDENT*create();
STUDENT*del(STUDENT*h);
voidprint(STUDENT*h);
voidsearch1(STUDENT*h);
voidsearch2(STUDENT*h);
STUDENT*insert(STUDENT*h);
voidsort(STUDENT*h);
voidsave(STUDENT*h);
voidtongji(STUDENT*h);
intmenu_select();
STUDENT*load();
voidinputs(char*prompt,char*s,intcount);
main()
inti;
STUDENT*head;
head=init();
for(;
;
)
{
switch(menu_select())
case0:
head=init();
break;
case1:
head=create();
case2:
head=insert(head);
case3:
save(head);
case4:
print(head);
case5:
search1(head);
case6:
head=del(head);
case7:
sort(head);
case8:
tongji(head);
case9:
search2(head);
case10:
exit(0);
}
}
intmenu_select()
char*menu[]={"
************菜单************"
"
0.初始化链表"
1.输入学生成绩"
2.插入学生成绩"
3.保存学生记录"
4.显示学生记录"
5.按学号查找学生信息"
6.删除指定学号的学生信息"
7.按某一门课对学生成绩排序"
8.统计某门课程的学生成绩"
9.按姓名查找学生信息"
10.退出系统"
};
chars[3];
intc,i;
for(i=0;
i<
=11;
i++)
printf("
%s\n"
menu[i]);
do
\n请选择0~10中的某一个选项\n"
);
scanf("
%s"
s);
c=atoi(s);
}while(c<
0||c>
10);
returnc;
STUDENT*init()
returnNULL;
STUDENT*create()
ints;
STUDENT*h=NULL,*info;
info=(STUDENT*)malloc(sizeof(STUDENT));
if(!
info)
\n内存不足"
inputs("
输入学号:
"
info->
no,11);
if(info->
no[0]=='
@'
)break;
输入姓名:
name,15);
开始输入%d门课的成绩\n"
N);
s=0;
N;
do{
第%d门分数:
i+1);
%d"
&
info->
score[i]);
score[i]>
100||info->
score[i]<
0)
输入成绩错误,请重新输入:
\n"
}while(info->
0);
s=s+info->
score[i];
info->
sum=s;
average=(float)s/N;
order=0;
next=h;
h=info;
returnh;
voidinputs(char*prompt,char*s,intcount)
charp[255];
printf(prompt);
p);
if(strlen(p)>
count)
\n太长了!
}while(strlen(p)>
count);
strcpy(s,p);
voidprint(STUDENT*h)
inti=0;
STUDENT*p;
p=h;
\n\n\n***********************学生***********************\n"
|序号|学号|姓名|语文|英语|数学|总分|平均分|名次|\n"
|---|-------|--------|----|----|----|------|------|---|\n"
while(p!
=NULL)
i++;
|%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;
***********************end***********************\n"
STUDENT*del(STUDENT*h)
STUDENT*p,*q;
chars[11];
请输入要删除的学生的学号\n"
q=p=h;
while(strcmp(p->
no,s)&
&
p!
q=p;
if(p==NULL)
\n链表中没有学号为%s的学生\n"
else
\n\n\n***********************找到了***********************\n"
|学号|姓名|语文|英语|数学|总分|平均分|名次|\n"
|----------|----------|----|----|----|------|------|---|\n"
|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n"
p->
请按任意键删除\n"
getchar();
if(p==h)
h=p->
elseq->
next=p->
free(p);
\n已经删除学号为%s的学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 语言 编程