C语言程序报告学生学籍信息管理系统Word文档格式.docx

上传人:b****1 文档编号:3454536 上传时间:2023-05-01 格式:DOCX 页数:21 大小:171.77KB
下载 相关 举报
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第1页
第1页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第2页
第2页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第3页
第3页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第4页
第4页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第5页
第5页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第6页
第6页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第7页
第7页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第8页
第8页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第9页
第9页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第10页
第10页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第11页
第11页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第12页
第12页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第13页
第13页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第14页
第14页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第15页
第15页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第16页
第16页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第17页
第17页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第18页
第18页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第19页
第19页 / 共21页
C语言程序报告学生学籍信息管理系统Word文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序报告学生学籍信息管理系统Word文档格式.docx

《C语言程序报告学生学籍信息管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序报告学生学籍信息管理系统Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

C语言程序报告学生学籍信息管理系统Word文档格式.docx

综合成绩在90-100之间,应得学分=学分*100%;

综合成绩在80-90之间,应得学分=-学分*80%;

综合成绩在70-80之间,应得学分=学分*75%;

综合成绩在60-70之间,应得学分=学分*60%;

综合成绩在60以下,应得学分=学分*0%。

(2)查询功能;

分为学生基本情况查询和成绩查询两种

1》学生基本情况查询:

输入一个学生的学号活姓名,查出此生的基本信息并显示输出。

输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

成绩查询:

输入一个学号时,查询出此生的所有课程情况,格式如下:

学号:

姓名;

课程编号:

课程名称:

综合成绩:

实得学分:

课程名称:

综合成绩:

实得学分:

课程编号;

共修:

XX科,

实得总学分为:

XXX

删除功能:

当在

A.TXT中删除一个学生时,自动地在B.TXT中删除此人所

有的信息

排序功能:

能实现选择按综合成绩或实得学分升序或降序排序并显示数据

第二部分需求分析

根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;

在程序中要浏览学生的信息,应提供显示、查找、排序等操作;

另外还应该提供键盘式选择菜单实现功能选择。

第三部分总体设计

根据上面的需求分析,可以将这个系统的设计分为以下几个模块:

学生成绩管理系统

第四部分详细设计

主函数

主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。

其中

各功能模块用菜单方式选择

【流程图】

 

[程序]

#include<

stdio.h>

voidmenu(){intn,w;

puts("

\t1.browse2.enter3.Search"

);

\t4.browse25.enter26.Search2"

\t7.exit"

**\n"

\n\n\t\t

printf("

Choiceyournumber(1-7):

[]\b\b\b\b"

输入模块:

先采用结构体数组存储数据

structa{intxuehao;

charname[15];

charsex[10];

intshushenum;

inttelenum;

}a[10];

structb

{

intxuehao;

intkechenghao;

charkechengming[15];

intxuefen;

intpingshichengji;

intshiyanchengji;

intjuanmianchengji;

intzonghechengji;

intshidechengji;

中每个数组元素对应一个学生

}b[10];

a[10].b[10]voidjisuan(){inti,n,n1,n2,n3,n4;

for(i=0;

i<

10;

i++)

{if(b[i].shiyanchengji==-1)

{b[i].zonghechengji=b[i].pingshichengji*0.3+b[i].juanmianchengji

0.7;

break;

}

if(b[i].shiyanchengji!

=-1)

{b[i].zonghechengji=b[i].pingshichengji*0.15+b[i].juanmianchengji*0.7+b[i].shiyanchengji*0.15;

if(b[i].zonghechengji>

90&

&

b[i].zonghechengji<

100){n4=b[i].xuefen;

b[i].shidechengji=(n4)*

(1);

elseif(b[i].zonghechengji>

80&

90)

{n3=b[i].xuefen;

b[i].shidechengji=(n3)*0.9;

70&

80){n2=b[i].xuefen;

b[i].shidechengji=(n2)*0.8;

60&

70)

{n1=b[i].xuefen;

b[i].shidechengji=(n1)*0.7;

break;

elseif(b[i].zonghechengji<

60)

{n=b[i].xuefen;

b[i].shidechengji=n*0;

}此简单程序计算综合成绩与实得学分

【程序】

enter()

{inti,n;

Howmanychengjijibenxinxidatas(0-%d)?

:

"

10);

scanf("

%d"

&

n);

\nEnterdatanow\n\n"

for(i=0;

n;

{printf("

\nInput%dthchengjijibenxinxirecord.\n"

i+1);

input(i);

}调用输入函数

if(i!

=0)save(n);

调用保存函数

printf_back();

一个任务结束时让用户选择是浏览还是返回}

浏览模块:

该模块的功能是显示所有学生记录信息。

流程图】

显示学生记录

按任意键【显程示序】下一屏

按任意b键ro返ws回e()主菜单浏览全部模块

{inti,j,n;

n=load();

加载记录

printf_face();

调用显示数据结构项目函数for(i=0;

目的

{if(i%10==0){printf("

\n\nPassanykeytocontiune..."

是分屏显示

getch();

puts("

\n\n"

printf_one(i);

printf("

\n"

}调用显示一个记录的函数

\tThereare%drecord.\n"

n);

\nPassanykeytoback"

按任意键menu();

browse2()该浏览模块的功能是显示所有学生的成绩基本信息

n=load2();

printf_face2();

}printf_one2(i);

menu();

}查找模块;

该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。

search()查找学生基本信息的模块

{inti,n,k,w1=1,w2,w3,w4;

structas;

do{

do

{k=-1;

\n\nEnternumberthatyouwanttosearch!

number"

scanf("

s.xuehao);

输入要修改的数据的学号printf_face();

i++)查找要修改的数据if(s.xuehao==a[i].xuehao)

调用显示一个记录的函数

{k=i;

printf_one(k);

if(k==-1)

\n\nNoexist!

please"

\n\nAreyouagain?

\n\t1).Again2)Noandback[]\b\b\b"

w1);

}保证在第一次找的的基础上再查找找不到时能退出

}while(k==-1&

w1==1);

如果W1不等于1时直返回

search2()查找学生成绩基本信息的模块{inti,n,k,w1=1,w2,w3,w4;

printf_face2();

i++)if(s.xuehao==a[i].xuehao)

printf_one2(k);

删除模块:

该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示

Voiddel()

}排序模块:

该功能模块的功能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。

假设这里采用选择法排序。

保返存回主用【菜选程单择序法】排序

排序模块

Voidorder(){intI,j,n;

Structstudents;

For(i=0;

n-1;

Save(n);

Puts(“\n\n”);

Printf_back();

设计出的程序如下

voidjisuan()

{inti,n,n1,n2,n3,n4;

{b[i].zonghechengji=b[i].pingshichengji*0.3+b[i].juanmianchengji*0.7;

=-1){b[i].zonghechengji=b[i].pingshichengji*0.15+b[i].juanmianchengji*0.7+b[i].shiyanchengji*0.15;

b[i].shidechengji=(n3)*0.9;

input(i);

printf_back();

}browse()

printf_face();

getch();

}printf_one(i);

}printf("

menu();

}search(){inti,n,k,w1=1,w2,w3,w4;

structas;

n=load();

i++)if(s.xuehao==a[i].xuehao){k=i;

}if(k==-1)

\n\t1).Again2)Noandback[]\b\b\b);

}}while(k==-1&

w4=0;

w3=0;

if(k!

=-1){printf("

\n\nWhatdoyouwanttodo?

\n\t1.Search

another2.Modify3.Delete4.Backmenu[]\b\b\b"

w2);

switch(w2)

{case2:

w3=modify(k);

case3:

{printf("

\nAreyousure?

\n\t1).sure2).Noandback[]\b\b\b"

w4);

if(w4==1)

b[k].xuehao=0;

b[k].kechenghao=0;

strcpy(b[k].kechengming,"

xxxx"

b[k].xuefen=0;

b[k].pingshichengji=0;

b[k].shiyanchengji=0;

b[k].juanmianchengji=0;

b[k].zonghechengji=0;

b[k].shidechengji=0;

a[i].xuehao=0;

strcpy(a[i].name,"

xxxx"

strcpy(a[i].sex,"

;

a[i].shushenum=0;

a[i].telenum=0;

}if(w3==1||w4==1){save(n);

\n\nSuccessful."

\n\t1).Searchanother2).Back[]\b\b\b"

}while(w2==1);

}input(inti)

{scanf("

%d%d%s%d%d%d%d%d%d"

b[i].xuehao,&

b[i].kechenghao,b[i].kechengming,&

b[i].xuefen,&

b[i].pingshichengji,&

b[i].shiyanchengji,&

b[i].juanmianchengji)

jisuan();

save(intn)

{FILE*fp;

inti;

if((fp=fopen("

b.txt"

"

wb"

))==NULL)

\nCannotopenfile\n"

returnNULL;

if(a[i].xuehao!

=0)

if(fwrite(&

b[i],sizeof(structb),1,fp)!

=1)printf("

filewriteerror\n"

fclose(fp);

load()

if((fp=fopen("

rb"

))==NULL){printf("

}for(i=0;

!

feof(fp);

i++)fread(&

b[i],sizeof(structb),1,fp);

return(i-1);

}printf_face()

\n\txuehaokechenghaokechengmingxuefenpingshichengjishiyanchengjijuanmianchengjizonghechengjishidechengji"

}printf_one(inti)

%5d%5d%15s%5d%5d%5d%5d%5d%5d"

b[i].xuehao,b[i].kechenghao,b[i].kechengming,b[i].xuefen,b[i].pingshichengji,b[i].shiyanchengji,

b[i].juanmianchengji,b[i].zonghechengji,b[i].shidechengji);

}printf_back()

{intk,w;

\n\n\tSuccessful.\n\n"

Whatdoyouwanttodo?

\n\n\t1).Browseallnow2).Back;

[]\b\b\b"

w);

if(w==1)browse();

elsemenu();

modify(inti)

{intc,w1=2;

do{puts("

\nmodifyby=>

1).xuehao2).kechenghao3).kechengming4).xuefen5).pingshichengji6).shiyanchengji7).juanmianchengji8)zonghechengji

9)shidechengji10).alldata11).cancelandback"

Whichyouneeded?

c);

if(c>

11||c<

1){puts("

\nChoiceerror!

Pleaseagain!

getchar();

}}while(c>

1);

do{switch(c)

{case1:

xuehao:

b[i].xuehao);

case

2:

kechenghao:

b[i].kechenghao);

kechengming:

%s"

b[i].kechengming);

case4:

xuefen:

b[i].xuefen);

case5:

pingshichengji:

b[i].pingshichengji);

case6:

shiyanchengji:

b[i].shiyanchengji);

case7:

juanmianchengji:

b[i].juanmianchengji);

case8:

case9:

}puts("

\nNow:

\n\n\t1).Sure2).Noandremodify3).Backwithoutsaveinthistime[]\b\

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2