编制一个C语言成绩记录簿,每个学生信息包括:学号,姓名,C语言成绩.具体功能:
(1)创建一个文本文件用来记录学生信息,输入至少30名学生的信息,保存在文本文件中;(2)将文本文件中的数据读出,按学号或姓名查询成绩;(3)能添加成绩记录;(4)能修改...
(1)创建一个文本文件用来记录学生信息,输入至少30名学生的信息,保存在文本文件中;
(2)将文本文件中的数据读出,按学号或姓名查询成绩;
(3)能添加成绩记录;
(4)能修改指定姓名或学号的学生的成绩;
(5)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息,显示及格率和平均分,显示最高分和最低分,显示所有学生的排名(不能改变学生的学号顺序);
(6)以上信息能保存在原文本文件中。
我要的 不需要修改的 能直接用的 能在Visual C++ 6.0 运行的 求大神了
本人大一 展开
(2)将文本文件中的数据读出,按学号或姓名查询成绩;
(3)能添加成绩记录;
(4)能修改指定姓名或学号的学生的成绩;
(5)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息,显示及格率和平均分,显示最高分和最低分,显示所有学生的排名(不能改变学生的学号顺序);
(6)以上信息能保存在原文本文件中。
我要的 不需要修改的 能直接用的 能在Visual C++ 6.0 运行的 求大神了
本人大一 展开
4个回答
展开全部
我以前做过的一个,
你看看,
/*
数据描述:学号 姓名 班级 高数 英语 总分
程序完成功能:
(1) 浏览数据 (2) 增加数据 (3) 修改数据
(4) 查询数据(按姓名,按总分) (5) 退出
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class student
{
public:
student(int , string ,int ,int ,int );
string getName(){return _name;};
int getID(){return _ID;};
void setID(int i){_ID=i;};
void setName(string);
void setClass(int c){_class=c;};
void setMath(int m){_math=m;_total=_math+_english;};
void setEnglish(int e){_english=e;_total=_math+_english;}
void print();
static int _stNum;
private:
int _ID;
string _name;
int _class;
int _math;
int _english;
int _total;
};
int student::_stNum=0;
student::student(int id, string name, int iclass, int ma, int en)
{
_ID=id;
_name=name;
_class=iclass;
_math=ma;
_english=en;
_total=_math+_english;
_stNum++;
};
void student::setName(string s)
{
_name=s;
};
void student::print()
{
cout<<_ID
<<"\t"<< _name
<<"\t"<<_class
<<"\t"<<_math
<<"\t"<<_english
<<"\t"<<_total <<endl;
}
void printMenu(void);
void printHead(void);
void printTail(int);
void main()
{
int tmp_ID;
string tmp_name;
int tmp_class;
int tmp_math;
int tmp_english;
int order=0;
vector<student> stvec;
printMenu();
cin>>order;
while(order!=5)
{
switch(order)
{
case 1:
if (stvec.size()==0)
{
cout<<"ERR:---->No data in the system!"<<endl<<endl;
printMenu();
cin>>order;
break;
}
else
{
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
printHead();
for(;iter!=iter_end;iter++)
{
(*iter).print();
}
printTail(stvec.size());
printMenu();
cin>>order;
break;
}
case 2:
cout<<"Insert-->ID:";
cin>>tmp_ID;
cout<<"Insert-->Name:";
cin>>tmp_name;
cout<<"Insert-->Class:";
cin>>tmp_class;
cout<<"Insert-->Mark of Math:";
cin>>tmp_math;
cout<<"Insert-->Mark of English:";
cin>>tmp_english;
stvec.push_back(student(tmp_ID,tmp_name,tmp_class,tmp_math,tmp_english));
printMenu();
cin>>order;
break;
case 3:
{
string search_name;
bool isFind=false;
cout<<"\nOrignal_Update-->Name:";
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
isFind=true;
cout<<"New_Update-->ID:";
cin>>tmp_ID;
cout<<"New_Update-->Name:";
cin>>tmp_name;
cout<<"New_Update-->Class:";
cin>>tmp_class;
cout<<"New_Update-->Mark of Math:";
cin>>tmp_math;
cout<<"New_Update-->Mark of English:";
cin>>tmp_english;
(*iter).setID(tmp_ID);
(*iter).setName(tmp_name);
(*iter).setClass(tmp_class);
(*iter).setMath(tmp_math);
(*iter).setEnglish(tmp_english);
}
}
if(!isFind)
{
cout<<"There no student named "<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
case 4:
string search_name;
int search_ID;
int name_ID=0;
bool isFind=false;
cout<<"-----------"<<endl;
cout<<"1.Name:"<<endl;
cout<<"2.ID:"<<endl;
cout<<"-----------"<<endl;
cin>>name_ID;
if (name_ID==1)
{
cout<<"\nSearch-->name:"<<endl;
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
if(!isFind)
{
cout<<endl<<"Your search:"<<endl;
printHead();
}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student named :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
if (name_ID==2)
{
cout<<"\nSearch-->ID:"<<endl;
cin>>search_ID;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getID()==search_ID)
{
if(!isFind)
{cout<<endl<<"Your search:"<<endl;
printHead();}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student ID :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
}
}
}
void printMenu(void)
{
cout<<endl<<"*************Make**your**choice***************"<<endl;
cout<<"1. View the data"<<endl;
cout<<"2. ADD the data"<<endl;
cout<<"3. Update the data"<<endl;
cout<<"4. Search the data"<<endl;
cout<<"5. Quit"<<endl;
cout<<"********************************************"<<endl<<endl;
}
void printHead(void)
{
cout<<"-------------------------------------------------"<<endl;
cout<<"ID\tName\tClass\tMath\tEnglish\tTotal"<<endl;
}
void printTail(int i)
{
cout<<"There are total ";
if (i ==1)
{cout<< i<<" student"<<endl;}
else if(i >1)
{cout<<i<<" students"<<endl;}
cout<<"-------------------------------------------------"<<endl;
}
你看看,
/*
数据描述:学号 姓名 班级 高数 英语 总分
程序完成功能:
(1) 浏览数据 (2) 增加数据 (3) 修改数据
(4) 查询数据(按姓名,按总分) (5) 退出
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class student
{
public:
student(int , string ,int ,int ,int );
string getName(){return _name;};
int getID(){return _ID;};
void setID(int i){_ID=i;};
void setName(string);
void setClass(int c){_class=c;};
void setMath(int m){_math=m;_total=_math+_english;};
void setEnglish(int e){_english=e;_total=_math+_english;}
void print();
static int _stNum;
private:
int _ID;
string _name;
int _class;
int _math;
int _english;
int _total;
};
int student::_stNum=0;
student::student(int id, string name, int iclass, int ma, int en)
{
_ID=id;
_name=name;
_class=iclass;
_math=ma;
_english=en;
_total=_math+_english;
_stNum++;
};
void student::setName(string s)
{
_name=s;
};
void student::print()
{
cout<<_ID
<<"\t"<< _name
<<"\t"<<_class
<<"\t"<<_math
<<"\t"<<_english
<<"\t"<<_total <<endl;
}
void printMenu(void);
void printHead(void);
void printTail(int);
void main()
{
int tmp_ID;
string tmp_name;
int tmp_class;
int tmp_math;
int tmp_english;
int order=0;
vector<student> stvec;
printMenu();
cin>>order;
while(order!=5)
{
switch(order)
{
case 1:
if (stvec.size()==0)
{
cout<<"ERR:---->No data in the system!"<<endl<<endl;
printMenu();
cin>>order;
break;
}
else
{
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
printHead();
for(;iter!=iter_end;iter++)
{
(*iter).print();
}
printTail(stvec.size());
printMenu();
cin>>order;
break;
}
case 2:
cout<<"Insert-->ID:";
cin>>tmp_ID;
cout<<"Insert-->Name:";
cin>>tmp_name;
cout<<"Insert-->Class:";
cin>>tmp_class;
cout<<"Insert-->Mark of Math:";
cin>>tmp_math;
cout<<"Insert-->Mark of English:";
cin>>tmp_english;
stvec.push_back(student(tmp_ID,tmp_name,tmp_class,tmp_math,tmp_english));
printMenu();
cin>>order;
break;
case 3:
{
string search_name;
bool isFind=false;
cout<<"\nOrignal_Update-->Name:";
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
isFind=true;
cout<<"New_Update-->ID:";
cin>>tmp_ID;
cout<<"New_Update-->Name:";
cin>>tmp_name;
cout<<"New_Update-->Class:";
cin>>tmp_class;
cout<<"New_Update-->Mark of Math:";
cin>>tmp_math;
cout<<"New_Update-->Mark of English:";
cin>>tmp_english;
(*iter).setID(tmp_ID);
(*iter).setName(tmp_name);
(*iter).setClass(tmp_class);
(*iter).setMath(tmp_math);
(*iter).setEnglish(tmp_english);
}
}
if(!isFind)
{
cout<<"There no student named "<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
case 4:
string search_name;
int search_ID;
int name_ID=0;
bool isFind=false;
cout<<"-----------"<<endl;
cout<<"1.Name:"<<endl;
cout<<"2.ID:"<<endl;
cout<<"-----------"<<endl;
cin>>name_ID;
if (name_ID==1)
{
cout<<"\nSearch-->name:"<<endl;
cin>>search_name;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getName()==search_name )
{
if(!isFind)
{
cout<<endl<<"Your search:"<<endl;
printHead();
}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student named :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
if (name_ID==2)
{
cout<<"\nSearch-->ID:"<<endl;
cin>>search_ID;
vector<student>::iterator iter=stvec.begin();
vector<student>::iterator iter_end=stvec.end();
for(;iter!=iter_end;iter++)
{
if( (*iter).getID()==search_ID)
{
if(!isFind)
{cout<<endl<<"Your search:"<<endl;
printHead();}
(*iter).print();
isFind=true;
}
}
if(isFind){ cout<<"-------------------------------------------------"<<endl;}
if(!isFind)
{
cout<<"There no student ID :"<<search_name<<endl;
}
printMenu();
cin>>order;
break;
}
}
}
}
void printMenu(void)
{
cout<<endl<<"*************Make**your**choice***************"<<endl;
cout<<"1. View the data"<<endl;
cout<<"2. ADD the data"<<endl;
cout<<"3. Update the data"<<endl;
cout<<"4. Search the data"<<endl;
cout<<"5. Quit"<<endl;
cout<<"********************************************"<<endl<<endl;
}
void printHead(void)
{
cout<<"-------------------------------------------------"<<endl;
cout<<"ID\tName\tClass\tMath\tEnglish\tTotal"<<endl;
}
void printTail(int i)
{
cout<<"There are total ";
if (i ==1)
{cout<< i<<" student"<<endl;}
else if(i >1)
{cout<<i<<" students"<<endl;}
cout<<"-------------------------------------------------"<<endl;
}
2017-09-29
展开全部
百度 C语言 结构体 保存文件
~
~
~
~
~
~
~
~
~
~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于代码量超过了百度知道答题的字数上限,下面只给出了部分代码,完整代码我已上传到百度网盘,请自行下载。下载链接:(点击下载)成绩管理程序。
30个学生的数据要手动输入,我已手动输入,测试通过。下面是测试结果。你自己测试的时候需要重新输入!输入学号的时候可以不按顺序输,这样更能体现程序的排序功能。排序的算法是简单的,也就是说效率不怎么样,但对新手来说,到这个程度就好。
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#include <conio.h>
#define mcr__stu_name_max_len 30
#define mcr__stu_inf_file_name ("stu_inf.dat") //保存学生信息的文件
#define mcr__new(data_type) (data_type*)malloc(sizeof(data_type))
typedef struct _Student
{
unsigned long ulng_stu_num; //学号
char chr1_stu_name[mcr__stu_name_max_len + 1]; //学生姓名
int int_scores; //C语言成成绩
struct _Student* next;
} Student;
typedef struct _RankStudent
{
Student stu_inf;
int ranking; //该学生的排名
struct _RankStudent* next;
} RankStudent;
void SwapRankStudent(RankStudent* p_1, RankStudent* p_2)
{
char chr1_name[mcr__stu_name_max_len + 1];
int scores, ranking;
unsigned long stu_num;
strcpy(chr1_name, p_1->stu_inf.chr1_stu_name);
strcpy(p_1->stu_inf.chr1_stu_name, p_2->stu_inf.chr1_stu_name);
strcpy(p_2->stu_inf.chr1_stu_name, chr1_name);
scores = p_1->stu_inf.int_scores;
p_1->stu_inf.int_scores = p_2->stu_inf.int_scores;
p_2->stu_inf.int_scores = scores;
stu_num = p_1->stu_inf.ulng_stu_num;
p_1->stu_inf.ulng_stu_num = p_2->stu_inf.ulng_stu_num;
p_2->stu_inf.ulng_stu_num = stu_num;
ranking = p_1->ranking;
p_1->ranking = p_2->ranking;
p_2->ranking = ranking;
}
long GetStudentDataSize()
{
return sizeof(unsigned long) + (sizeof(char) * (mcr__stu_name_max_len + 1)) + sizeof(int);
}
void ClearScreen() //清屏
{
system("cls");
}
void Pause() //暂停
{
_getch();
}
void RealseMemory(Student* p_stu_head) //释放动态申请的内存
{
Student* p_stu_remove;
while (p_stu_head)
{
p_stu_remove = p_stu_head;
p_stu_head = p_stu_head->next;
free(p_stu_remove);
}
}
void RealseMemory_2(RankStudent* p_stu_head)
{
RankStudent* p_stu_remove;
while (p_stu_head)
{
p_stu_remove = p_stu_head;
p_stu_head = p_stu_head->next;
free(p_stu_remove);
}
}
/* 处理文件的部分 */
int AppendStuInfToFile(Student* p_stu_head) //向文件尾部追加若干数据,返回0表示操作失败。
{
if (p_stu_head == NULL)
{
return 0;
}
FILE* p_file = fopen(mcr__stu_inf_file_name, "a");
if (p_file == NULL)
{
return 0;
}
while (p_stu_head)
{
fwrite(&p_stu_head->ulng_stu_num, sizeof(unsigned long), 1, p_file);
fwrite(p_stu_head->chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
fwrite(&p_stu_head->int_scores, sizeof(int), 1, p_file);
p_stu_head = p_stu_head->next;
}
fclose(p_file);
return 1;
}
RankStudent* GetStuInfFromFile() //参数返回获取的学生信息的数目
{
FILE* p_file = fopen(mcr__stu_inf_file_name, "r");
if (p_file == NULL)
{
printf("文件打开失败,按任意键返回主菜单!");
Pause();
ClearScreen();
return NULL;
}
RankStudent *p_stu_head = NULL, *p_stu_cur, *p_stu_new;
p_stu_new = p_stu_cur = p_stu_head = mcr__new(RankStudent);
p_stu_new->next = NULL;
fread(&p_stu_new->stu_inf.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fread(p_stu_new->stu_inf.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
fread(&p_stu_new->stu_inf.int_scores, sizeof(int), 1, p_file);
while (1)
{
p_stu_new = mcr__new(RankStudent);
p_stu_new->next = NULL;
fread(&p_stu_new->stu_inf.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fread(p_stu_new->stu_inf.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
if (fread(&p_stu_new->stu_inf.int_scores, sizeof(int), 1, p_file) <= 0)
{
break;
}
p_stu_cur->next = p_stu_new;
p_stu_cur = p_stu_new;
}
fclose(p_file);
return p_stu_head;
}
/* 界面 */
int MainUI() //主界面
{
printf(" C语言成绩管理\n\n\n");
printf(" 1.增加新信息\n");
printf(" 2.修改信息\n");
printf(" 3.查询信息\n");
printf(" 4.显示60分以下学生的信息\n");
printf(" 5.显示分数在60至79之间的学生的信息\n");
printf(" 6.显示分数在80至89之间的学生的信息\n");
printf(" 7.显示90分以上学生的信息\n");
printf(" 8.显示及格率和平均分,最高分和最低分\n");
printf(" 9.显示所有学生排名(按学号排序)\n");
printf(" 10.退出\n\n");
printf(" 输入对应的序号来选择相应的选项: ");
int num = 9;
scanf("%d", &num);
return num;
}
void AppendInfUI() //增加新信息界面
{
int count; //将要输入的信息条数
printf("你要输入多少条学生信息?在此输入数目: ");
scanf("%d", &count);
if (count <= 0)
{
printf("输入数目不能小于或等于0!输入错误,按任意键返回主菜单。");
Pause();
ClearScreen();
return; //输入不合理的数目,将退出该界面。
}
Student *p_stu_new, *p_stu_head, *p_stu_cur;
int count_tmp = 1;
printf("共要输入%d条信息,这是第%d条\n", count, count_tmp);
p_stu_cur = p_stu_head = p_stu_new = mcr__new(Student);
p_stu_new->next = NULL;
printf("姓名: ");
scanf("%s", p_stu_new->chr1_stu_name);
printf("学号: ");
scanf("%d", &p_stu_new->ulng_stu_num);
printf("分数: ");
scanf("%d", &p_stu_new->int_scores);
ClearScreen();
for (++ count_tmp; count_tmp <= count; count_tmp ++)
{
printf("共要输入%d条信息,这是第%d条\n", count, count_tmp);
p_stu_new = mcr__new(Student);
p_stu_new->next = NULL;
printf("姓名: ");
scanf("%s", p_stu_new->chr1_stu_name);
printf("学号: ");
scanf("%lu", &p_stu_new->ulng_stu_num);
printf("分数: ");
scanf("%d", &p_stu_new->int_scores);
p_stu_cur->next = p_stu_new;
p_stu_cur = p_stu_new;
ClearScreen();
}
if (AppendStuInfToFile(p_stu_head)) //返回真,表示保存成功。
{
printf("数据已保存,按任意键回主菜单!");
}
else
{
printf("数据保存失败,按任意键回主菜单!");
}
RealseMemory(p_stu_head);
Pause();
ClearScreen();
}
/*
* 修改信息界面。如果开放按姓名修改信息的方法,
* 那么如果有重名的学生,界面将更加复杂。所以
* 没必要按姓名修改。其实在查询信息的界面开放
* 了“按姓名查找”;可以在修改数据之前,先去按
* 姓名查找一下,以得到学号,然后再去修改信息。
*/
void ModifyInfUI()
{
unsigned long stu_num;
printf("请输入你要修改的学生的信息的学号: ");
scanf("%lu", &stu_num); //输入unsigned long的格式为 %lu
FILE* p_file = fopen(mcr__stu_inf_file_name, "r+"); //可读可写方式打开文件
if (p_file == NULL)
{
printf("文件打开失败,按任意键返回主菜单!");
Pause();
ClearScreen();
return;
}
long stu_data_size = GetStudentDataSize();
Student stu;
while (!feof(p_file))
{
fread(&stu.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fread(stu.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
fread(&stu.int_scores, sizeof(int), 1, p_file);
if (stu.ulng_stu_num == stu_num)
{
printf("学号为%lu的学生的信息如下\n", stu_num);
printf("姓名: %s\n", stu.chr1_stu_name);
printf("学号: %lu\n", stu.ulng_stu_num);
printf("分数: %d\n\n", stu.int_scores);
printf("请输入新的信息,如果不想修改某项内容,那么将原来的内容填上即可。\n");
printf("新姓名: ");
scanf("%s", stu.chr1_stu_name);
printf("新学号: ");
scanf("%lu", &stu.ulng_stu_num);
printf("新分数: ");
scanf("%d", &stu.int_scores);
fseek(p_file, -1 * stu_data_size, SEEK_CUR); //跑到该数据之前
//用新数据覆盖旧数据
fwrite(&stu.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fwrite(stu.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
fwrite(&stu.int_scores, sizeof(int), 1, p_file);
fclose(p_file);
printf("修改成功,按任意键返回主菜单。");
Pause();
ClearScreen();
return;
}
}
fclose(p_file);
printf("当前没有找到学号为%lu的学生的信息,按任意键返回主菜单。\n", stu_num);
Pause();
ClearScreen();
}
void SearchInfUI() //查询信息界面
{
int num = 1;
printf("1.按学号查找。\n\n");
printf("2.按姓名查找。\n\n");
printf("请在此输入你的选择: ");
scanf("%d", &num);
if (num == 1) //按学号查找
{
unsigned long stu_num;
printf("请输入你要查找的学生的信息的学号: ");
scanf("%lu", &stu_num); //输入unsigned long的格式为 %lu
FILE* p_file = fopen(mcr__stu_inf_file_name, "r");
if (p_file == NULL)
{
printf("文件打开失败,按任意键返回主菜单!");
Pause();
ClearScreen();
return;
}
long stu_data_size = GetStudentDataSize();
Student stu;
while (!feof(p_file))
{
fread(&stu.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fread(stu.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
fread(&stu.int_scores, sizeof(int), 1, p_file);
if (stu.ulng_stu_num == stu_num)
{
printf("学号为%lu的学生的信息如下\n", stu_num);
printf("姓名: %s\n", stu.chr1_stu_name);
printf("学号: %lu\n", stu.ulng_stu_num);
printf("分数: %d\n\n", stu.int_scores);
printf("按任意键返回主菜单。");
Pause();
ClearScreen();
return;
}
}
fclose(p_file);
printf("当前没有找到学号为%lu的学生的信息,按任意键返回主菜单。\n", stu_num);
Pause();
ClearScreen();
}
else if (num == 2)//按姓名查找
{
char chr1_name[mcr__stu_name_max_len + 1];
int count = 0;
printf("请输入你要查找的学生的信息的姓名: ");
scanf("%s", chr1_name);
FILE* p_file = fopen(mcr__stu_inf_file_name, "r");
if (p_file == NULL)
{
printf("文件打开失败,按任意键返回主菜单!");
Pause();
ClearScreen();
return;
}
long stu_data_size = GetStudentDataSize();
Student stu;
while (1) //用!feof(p_file)作判断会多跑一次
{
fread(&stu.ulng_stu_num, sizeof(unsigned long), 1, p_file);
fread(stu.chr1_stu_name, sizeof(char), mcr__stu_name_max_len + 1, p_file);
if (fread(&stu.int_scores, sizeof(int), 1, p_file) <= 0)
{
break;
}
if (strcmp(stu.chr1_stu_name, chr1_name) == 0)
{
printf("姓名: %s\n", stu.chr1_stu_name);
printf("学号: %lu\n", stu.ulng_stu_num);
printf("分数: %d\n\n", stu.int_scores);
count ++;
}
}
fclose(p_file);
printf("共找到%d个结果,按任意键返回主菜单。", count);
Pause();
ClearScreen();
}
else
{
printf("没有这个选项,按任意键返回主菜单。");
Pause();
ClearScreen();
}
}
void ScoresUI(int min, int max) //显示分数在min到max之间的学生的信息
{
int count = 0;
FILE* p_file = fopen(mcr__stu_inf_file_name, "r");
if (p_file == NULL)
{
printf("文件打开失败,按任意键返回主菜单!");
Pause();
ClearScreen();
return;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询