数据结构课程设计报告之成绩分析与全国交通咨询模拟(2)

2019-01-07 19:00

#define %s

PR

printf(\ %s %s %s %s %s %s %s %s %s \[4],stu[i].score[5],stu[i].score[6],stu[i].score[7],stu[i].score[8],stu[i].ave) struct student {char num[11]; char name[20]; int score[8]; float ave; }stu[N];

typedef struct node {unsigned long int key; struct node * link;}HNode; typedef struct{int key; /*排序码*/

float data;/*其他数据项*/}RecNode; /*全新保存函数*/

save(int n) /*保存函数,保存n个记录*/ {FILE *fp; int i;

if((fp=fopen(\ /*以输出打开方式,在此前的记录被覆盖*/ {printf(\不能打开文件\\n\ getch();return NULL; }

for(i=0;i

if(stu[i].ave!=0) /*stu[i].ave=0表此记录已删除*/ if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf(\文件输入错误\\n\ fclose(fp); return 0; }

/*加载记录或可以计算记录个数的函数*/

int load() /*加载记录或可以计算记录个数的函数*/ {FILE *fp; int i;

if((fp=fopen(\ /*以输出打开方式,在此前的记录被覆盖*/ {printf(\不能打开文件\\n\ getch();return NULL; }

for(i=0;!feof(fp);i++)

6

fread(&stu[i],sizeof(struct student),1,fp); fclose(fp);

return(i-1); /*返回记录个数*/ }

void puts___() /*显出---函数*/

{puts(\}

/*显示数据结构项目函数*/

void printf_face() /*显示数据结构项目*/

{printf(\ 学号 姓名 英语 数学 C语言 管理学 信检 体育 近代史 线数 平均分\\n\}

/*显示一个记录的函数*/

printf_one(int i) /*显示一个记录的函数*/ {int j;

printf(\ %-9s\ for(j=0;j<8;j++)

printf(\ printf(\ return 0; }

teacher();

/****************浏览(全部)模块****************/ browse() /*浏览(全部)模块*/ {int i,n;

n=load(); /*加载记录*/ system(\ puts___();

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

{if((i!=0)&&(i==0)) /*目的是分屏显示*/ {printf(\ . . .\ getch();

7

puts(\ }

printf_one(i); /*调用显示一个记录的函数*/ } puts___();

printf(\ %d record.\\n\ printf(\ . . .\

getch(); /*按任意健*/ teacher(); return 0; }

/*一个任务结束时的选择浏览还是返回的函数*/

void printf_back() /*一个任务结束时的选择浏览还是返回*/ {int w;

printf(\★成功★ ^-^\\n\\n\

printf(\请选择:\\n\\n\\t1).现在浏览全部\\t2).返回: [ ]\\b\\b\ scanf(\ if(w==1) browse(); else teacher(); }

average(int i) /*对第i个记录的分数求平均值*/ {int j; int sum;

for(sum=0,j=0;j<8;j++) sum+=stu[i].score[j]; stu[i].ave=sum/8.0; return 0; }

/*学号输入函数*/

no_input(int i,int n) /*i表示第i个的学生信息,n表示比较到第n个学生*/ {int j,k,w1; do {w1=0;

printf(\学号:\ scanf(\

for(j=0;stu[i].num[j]!='\\0';j++) /*学号输入函数,作了严格规定*/ if(stu[i].num[j]<'0'||stu[i].num[j]>'9') /*判断学号是否为数字*/

8

{puts(\ w1=1;break; } if(w1!=1)

for(k=0;k

if(k!=i&&strcmp(stu[k].num,stu[i].num)==0) /*判断学号是否有雷同*/ {puts(\该记录已存在. 请重新输入!\\n\ w1=1;break; } }

while(w1==1); return 0; }

/*对分数输入*/ score_input(int i)

{int j;printf(\1.英语 2.数学 3.C语言 4.管理学 5.信检 6.体育 7.近代史 8.线性代数\\n\

for(j=0;j<8;j++)

{printf(\ scanf(\ } return 0; }

/*输入一个记录函数*/

input(int i) /*输入一个记录函数*/ {

no_input(i,i); /*调用学号输入函数*/ printf(\姓名:\ scanf(\

score_input(i); /*调用分数输入函数*/ average(i); /*调用求平均值函数*/ return 0; }

/*修改记录函数*/

modify_data(int i,int n) /*修改数据函数,修改第i个记录*/ {int c,w1;

9

do /*输入选择作个判断*/

{puts(\ 1).学号 2.姓名 3).英语 4).数学\\n 5).C语言 6).管理学 7).信检 8).体育 9).近代史\\n 10).线性代数 11).all score 12).all data 13).cancel and back\

printf(\请选择: [ ]\\b\\b\ scanf(\ if(c>13||c<1)

{puts(\选择错误! 重新选择!\ /*判断选择是否错误,若是则重新选择性*/

getchar(); /*当输入是字符时可以防止死循环*/ } }

while(c>13||c<1); do

{switch(c) /*选择要修改的项目*/ {case 1:no_input(i,n);break; /*调用学号输入函数*/ case 2:printf(\姓名:\ case 3:printf(\英语:\ case 4:printf(\数学:\ case 5:printf(\语言:\ case 6:printf(\管理学:\ case 7:printf(\信检\ case 8:printf(\体育:\ case 9:printf(\近代史:\ case 10:printf(\线性代数:\ case 11:score_input(i);break; /*调用分数输入函数*/ case 12:input(i);break; /*调用输入整条学生记录*/ case 13:teacher(); /*直接返回教师介面*/ }

if(c>2&&c<10)

average(i); /*调用求平均值函数*/ puts(\

printf_face(); /*调用显示数据结构项目函数*/ printf_one(i); /*修改后的记录让用户确认*/

printf(\是否确定?\\n\\n\\t1).确定 2).重新修改 3).不保存返回 [ ]\\b\\b\ /*是否确定*/

scanf(\ /*选择2则表示这次修改错误要重新修改*/ }

while(w1==2);

10


数据结构课程设计报告之成绩分析与全国交通咨询模拟(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南京师范大学考研真题清单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: