学生管理系统apk级源码_基于安卓的学生信息管理系统

hacker|
140

文章目录:

学生信息管理系统最简单源代码。

方法一:

1、创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。

2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。

3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入intmian()代码。

4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。

5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。

6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。

方法二:

1、新建一个学生实体类,用于存放学生的各项信息。

2、新建一个链表节点类,每个节点存放一个学生信息及下一个节点的引用。

3、添加一个主操作类,并添加本系统的菜单方法。

4、定义链表的头节点,当前最后一个节点,以及主控制逻辑信息。

5、使用io流逐行读取存有学生信息的文本文件,对每行字符串,采用\t分割后得到一个字符串数组,数据各项即为一个学生的具体信息。然后新建一个节点加入到链表。

6、运行结果:

求学生学籍管理系统的源代码

这种问题就得去网站上查看你想用哪个版本的工具.里面就会有说明.你看哪一个适合你.就可以了

学生信息管理系统源代码

void Sort(student *head, char type,char maxOrMin)

{

/*参数说明:

type=='1' 按 语文 排列

type=='2' 按 数学 排列

type=='3' 按 英语 排列

type=='4' 按 总分 排列

type=='5' 按 平均分 排列

type=='6' 按 座号 排列

*/

student *pHead,*pH;

pHead=pH=head;

int len=GetLength(head);

float *array=new float[len];

int i;

int x=0;

float num=0;

while(head)

{

Count(head);

if(type=='1')

{

num=head-chinaNum;

}

else if(type=='2')

{

num=head-mathNum;

}

else if(type=='3')

{

num=head-englishNum;

}

else if(type=='4')

{

num=head-result;

}

else if(type=='5')

{

num=head-average;

}

else if(type=='6')

{

num=head-num;

}

array[x]=num;

x++;

head=head-next;

}

head=pHead;

if(maxOrMin=='1')

{

for( i=1; ilen; i++)

{

for(int j=0; jlen-i; j++)

{

if(array[j]array[j+1])

{

float num;

num=array[j];

array[j]=array[j+1];

array[j+1]=num;

}

}

}

}

else

{

for( i=1; ilen; i++)

{

for(int j=0; jlen-i; j++)

{

if(array[j]array[j+1])

{

float num;

num=array[j];

array[j]=array[j+1];

array[j+1]=num;

}

}

}

}

int pos=1;

for(i=0; ilen; i++)

{

head=pHead;

while(head)

{

if(type=='1')

{

num=head-chinaNum;

}

else if(type=='2')

{

num=head-mathNum;

}

else if(type=='3')

{

num=head-englishNum;

}

else if(type=='4')

{

num=int(head-result);

}

else if(type=='5')

{

num=int(head-average);

}

else if(type=='6')

{

num=int(head-num);

}

int n=0;

if(int(array[i])==int(num))

{

if(int(array[i])!=int(array[i+1]))

{

if(n==0)

{

n=pos;

}

head-pos=pos;

pos++;

}

else

{

head-pos=n;

}

}

head=head-next;

}

}

head=pH;

delete []array;

}

void Count(student *head)

{

head-result=head-chinaNum+head-englishNum+head-mathNum;

head-average=head-result/3;

}

void DeleteAll(student* head)

{

student *cp,*np;

cp=head;

while(cp)

{

np=cp-next;

delete cp;

cp=np;

}

head=NULL;

}

void ChaXun(string str,student *head)

{

Sort(head,'4','1');

cout"欢迎使用查询功能"endlendl;

cout"请输入你要按什么查询 1-一般查询 2-查找最多 3-查找最少"endl;

string s;

cins;

while(s[0]!='1's[0]!='2's[0]!='3')

{

cout"你输入错误,请重新输入."endl;

cins;

}

if(s[0]=='1')

{

cout"按什么查询?"endl;

cout"1-姓名 2-座号 3-语文成绩 4-数学成绩 "

"5-英语成绩 6-总分 7-平均分 8-排名"endl;

cinstr;

while(str[0]!='1' str[0]!='2'

str[0]!='3' str[0]!='4'

str[0]!='5' str[0]!='6'

str[0]!='7' str[0]!='8' )

{

cout"你输入错误,请重新输入."endl;

cinstr;

}

char findStr[30];

cout"请输入要查找的关键字或关键数:"endl;

cinfindStr;

switch(str[0])

{

case '1':

Find(head,findStr,'1');

break;

case '2':

Find(head,findStr,'2');

break;

case '3':

Find(head,findStr,'3');

break;

case '4':

Find(head,findStr,'4');

break;

case '5':

Find(head,findStr,'5');

break;

case '6':

Find(head,findStr,'6');

break;

case '7':

Find(head,findStr,'7');

break;

case '8':

Find(head,findStr,'8');

break;

}

}

else if(s[0]=='2')

{

cout"请输入要按什么查询?"endl;

cout"1-语文成绩 2-数学成绩 "

"3-英语成绩 4-总分 5-平均分 6-排名"endl;

string s;

cins;

switch(s[0])

{

case '1':

FindMaxOrMin(head,'1','1');

break;

case '2':

FindMaxOrMin(head,'2','1');

break;

case '3':

FindMaxOrMin(head,'3','1');

break;

case '6':

FindMaxOrMin(head,'6','1');

break;

case '5':

FindMaxOrMin(head,'5','1');

break;

default:

FindMaxOrMin(head,'4','1');

break;

}

}

else if(s[0]=='3')

{

cout"请输入要按什么查询?"endl;

cout"1-语文成绩 2-数学成绩 "

"3-英语成绩 4-总分 5-平均分 6-排名"endl;

string s;

cins;

switch(s[0])

{

case '1':

FindMaxOrMin(head,'1','2');

break;

case '2':

FindMaxOrMin(head,'2','2');

break;

case '3':

FindMaxOrMin(head,'3','2');

break;

case '6':

FindMaxOrMin(head,'6','2');

break;

case '5':

FindMaxOrMin(head,'5','2');

break;

default:

FindMaxOrMin(head,'4','2');

break;

}

}

}

void ZengJia(string str, student* head)

{

student *pNew=new student;

cout"欢迎使用增加功能"endlendl;

cout"请输入新学生的名字 :"endl;

cinpNew-name;

cout"请输入新学生的座号 :"endl;

cinpNew-num;

cout"请输入他的语文分数 :"endl;

cinpNew-chinaNum;

cout"请输入他的数学分数"endl;

cinpNew-mathNum;

cout"请输入他的英语分数"endl;

cinpNew-englishNum;

cout"插入记录的 (1-最前面 2-最后面)"endl;

cinstr;

while(str[0]!='1' str[0]!='2')

{

cout"你输入错误,请重新输入."endl;

cout"插入记录的 (1-最前面 2-最后面)"endl;

cinstr;

}

if(str[0]=='1')

{

InsertFront(head,pNew);

}

else if(str[0]=='2')

{

InsertRear(head,pNew);

}

cout"新学生增加成功."endl;

}

void ShanChu(string str, student *head)

{

char delStr[30];

cout"欢迎使用删除功能"endlendl;

cout"1-查询删除 2-全部删除"endl;

cinstr;

while(str[0]!='1' str[0]!='2')

{

cout"输入错误,请重新输入."endl;

cinstr;

}

if(str[0]=='1')

{

cout"请输入要删除的关键字"endl;

cindelStr;

cout"1-删除第一条找到的记录 2-删除所有找到的记录"endl;

cinstr;

while(str[0]!='1'str[0]!='2')

{

cout"你输入错误,请重新输入."endl;

cinstr;

}

cout"你真的要删除吗? 1-删除 2-取消"endl;

string s;

cins;

if(str[0]=='1')

{

if(str[0]=='1')

{

Delete(head,delStr,1);

}

else

{

Delete(head,delStr,2);

}

}

else

{

cout"你已经取消删除了."endl;

}

}

else

{

cout"你真的要删除全部数据吗?这样会使你的数据全部丢失哦."endl;

cout"1-全部删除 2-取消删除"endl;

cinstr;

if(str[0]=='1')

{

DeleteAll(head);

}

else

{

cout"你已经取消删除了."endl;

}

}

}

void PaiMing(string str, student* head)

{

string s;

cout"欢迎使用排名功能"endlendl;

cout"排名选择: 1-升序 2-降序"endl;

cins;

cout"请输入要按什么排名?"endl;

cout"1-语文成绩 2-数学成绩 3-英语成绩 "

"4-总分 5-平均分 6-座号"endl;

cinstr;

while(str[0]!='1' str[0]!='2'

str[0]!='3' str[0]!='4'

str[0]!='5' str[0]!='6' )

{

cout"你输入错误,请重新输入."endl;

cinstr;

}

cout"姓名:"setw(8)"座号:"setw(10)

"语文分数:"setw(10) "数学分数:"

setw(10)"英语分数:"setw(8)"总分数:"

setw(8)"平均分:"setw(6)"名次:"endlendl;

if(s[0]=='2')

{

switch(str[0])

{

case '1':

Sort(head,'1','1');

break;

case '2':

Sort(head,'2','1');

break;

case '3':

Sort(head,'3','1');

break;

case '4':

Sort(head,'4','1');

break;

case '5':

Sort(head,'5','1');

break;

case '6':

Sort(head,'6','1');

break;

}

}

else

{

switch(str[0])

{

case '1':

Sort(head,'1','2');

break;

case '2':

Sort(head,'2','2');

break;

case '3':

Sort(head,'3','2');

break;

case '4':

Sort(head,'4','2');

break;

case '5':

Sort(head,'5','2');

break;

case '6':

Sort(head,'6','2');

break;

}

}

ShowList(head);

return ;

}

void XianShi(string str, student *head)

{

Sort(head,'4','1');

string s;

cout"欢迎使用显示功能"endl;

cout"1-显示全部记录 2-显示记录数目"endl;

cins;

if(s[0]=='2')

{

cout"记录的数目是:"GetLength(head)endl;

}

else

{

ShowList(head);

}

}

void XuiGai(string str, student *head)

{

string s;

student *std;

cout"欢迎使用修改功能"endl;

cout"请输入你要按什么查询"endl;

cout"1-姓名 2-座号 3-语文成绩 4-数学成绩 "

"5-英语成绩 "endl;

cinstr;

while(str[0]!='1' str[0]!='2'

str[0]!='3' str[0]!='4'

str[0]!='5' )

{

cout"你输入错误,请重新输入."endl;

cinstr;

}

char findStr[30];

cout"请输入要查找的关键字或关键数:"endl;

cinfindStr;

switch(str[0])

{

case '1':

std=Find(head,findStr,'1');

Reword(std);

break;

case '2':

std=Find(head,findStr,'2');

Reword(std);

break;

case '3':

std=Find(head,findStr,'3');

Reword(std);

break;

case '4':

std=Find(head,findStr,'4');

Reword(std);

break;

case '5':

std=Find(head,findStr,'5');

Reword(std);

break;

}

Write(head);

if(std!=NULL)

{

cout"修改成功."endl;

}

}

int Run()

{

bool isLoad=false;

student* head=NULL;

student *pNew=new student;

head=Read();

SetTitle(false);

if(head!=NULL)

{ Sort(head,'5','1');

Count(head);

}

string str;

SetTitle(false);

cout" 欢迎使用学生管理系统 "endlendl;

cout" 1-用户登陆 2-退出程序 "endl;

cinstr;

if(str[0]=='2')

{

AboutMe();

return 0;

}

else

{

isLoad=Enter('1');

system("cls");

if(isLoad==true)

{

SetTitle(true);

cout" 恭喜,您输入的密码正确.可以对本系统的进行任何操作."endl;

}

else

{

cout" Sorry,您输入的密码错误.你不能修改本系统的任何内容."endl;

}

}

begin:

coutendlendl;

cout" 欢迎使用学生管理系统 "endlendl;

cout" 1-增加功能 2-查询功能"endl;

cout" 3-删除功能 4-排名功能"endl;

cout" 5-显示功能 6-修改功能"endl;

cout" 7-用户设置 8-退出程序"endl;

cout"请输入您的选择: "endl;

cinstr;

while(str[0]!='8')

{

if(isLoad==true head!=NULL)

{

coutendlendl;

if(str[0]=='1')

{

ZengJia(str, head);

Sort(head,'4','1');

Write(head);

}

else if(str[0]=='2')

{

ChaXun(str,head);

}

else if(str[0]=='3')

{

ShanChu(str,head);

Sort(head,'4','1');

Write(head);

}

else if(str[0]=='4')

{

PaiMing(str,head);

}

else if(str[0]=='5')

{

XianShi(str,head);

}

else if(str[0]=='6')

{

XuiGai(str,head);

Write(head);

}

else if(str[0]=='7')

{

cout"欢迎使用用户修改功能"endl;

isLoad=Enter('2');

}

else if(str[0]=='8')

{

AboutMe();

return 0;

}

else

{

cout"你输入错误,请重新输入."endl;

goto begin;

}

}

else if(isLoad==false head!=NULL)

{

if(str[0]=='2')

{

ChaXun(str,head);

}

else if(str[0]=='4')

{

PaiMing(str,head);

}

else if(str[0]=='5')

{

XianShi(str,head);

}

else

{

cout"你不是管理员,不能进行此项功能."endl;

cout"你只能进行 查询功能 显示功能 排名功能"endl;

}

}

else if( head==NULL isLoad==true)

{

cout"系统检查到你没有任何记录,不能进行任何操作,只能增加记录."endl;

ZengJia(str, head);

Write(head);

head=Read();

}

else if( head==NULL isLoad==false)

{

cout"因为你没有登陆,系统又检查到你没有任何记录,你不能进行任何操作."endl;

}

coutendlendl;

cout"按任何键继续进行操作."endl;

getchar();

getchar();

system("cls");

goto begin;

}

AboutMe();

return 0;

}

void SetTitle(bool isLoad)

{

HWND hwnd=GetForegroundWindow();

if(isLoad==false)

{

SetWindowText(hwnd," 学生管理系统(没有登陆)");

}

else

{

SetWindowText(hwnd," 学生管理系统(已经登陆)");

}

system("color a");

}

void AboutMe()

{

char*pStr= " ┃ \n"

" ┃ \n"

" ┏━━━━┻━━━━┓ \n"

" ┃ 关于作者 ┃ \n"

" ┏━━━━┻━━━━━━━━━┻━━━━┓\n"

" ┃ ┃\n"

" ┃ Aauthor:********** ┃\n"

" ┃ QQ: ********* ┃\n"

" ┃ E-mail:********@**.com ┃\n"

" ┃ ┃\n"

" ┗━━━━━━━━━━━━━━━━━━━┛\n";

system("cls");

srand(time(0));

for(int i=0; istrlen(pStr); i++)

{

if(pStr[i]!=' ')

{

Sleep(20);

}

coutpStr[i];

}

cout"Good-bye ."endl;

coutendlendlendlendl;

}

int main()

{

Run();

return 0;

}

求学生成绩管理系统的源代码

#include stdio.h

#include stdlib.h

#define FILENAME "student.dat"

typedef enum{MAN, WOMAN} SEX;

typedef struct tagStudent

{

int num; //学生的编号

char name[20]; //学生的姓名

SEX sex; //学生的性别

int age; //学生的年龄

char major[20]; //学生的专业

struct tagStudent *next;//下一个节点的指针

}STUDENT, *PSTUDENT;

STUDENT g_head; //头节点

//1.显示菜单

void ShowMenu();

//2.获取用户选择的菜单的编号

int GetMenuChoose();

//3.创建一个节点,它会返回一个新创建的学生信息节点的指针

PSTUDENT CreateStudent();

//4.把学生信息节点加入到链表中

int AddStudent(PSTUDENT pstu);

//5.返回指定编号学生节点的上一个节点的指针

PSTUDENT GetPrevAddr(int num);

//6.显示所有学生信息

void ShowAll();

//7.显示信息数量

int ShowStudentCount();

//8.修改学生信息,参数为要修改的学生的编号

void ModityStudent(int num);

//9.获取用户的选择

int Question(const char *pstr);

//10.获取用户输入的学生的编号

int GetInputNum();

//11.删除编号为num的学生信息

void DelStudent(int num);

//12.删除所有的学生信息

void DelAll();

//13.把学生信息保存到文件当中

void SaveToFile();

//14.从文件中读取学生信息

void LoadFromFile();

int main()

{

int running = 1;

while(running)

{

switch(GetMenuChoose())

{

case 0:

running = 0;

break;

case 1:

// printf("你选择了菜单1\n");

AddStudent(CreateStudent());

break;

case 2:

// printf("你选择了菜单2\n");

DelStudent(GetInputNum());

break;

case 3:

printf("你选择了菜单3\n");

break;

case 4:

// printf("你选择了菜单4\n");

ModityStudent(GetInputNum());

break;

case 5:

// printf("你选择了菜单5\n");

DelAll();

break;

case 6:

// printf("你选择了菜单6\n");

ShowAll();

break;

case 7:

// printf("你选择了菜单7\n");

ShowStudentCount();

break;

case 8:

// printf("你选择了菜单8\n");

LoadFromFile();

break;

case 9:

// printf("你选择了菜单9\n");

SaveToFile();

break;

}

system("pause");

}

return 0;

}

//1.显示菜单

void ShowMenu()

{

system("cls");

printf("-----------------------------学生管理系统--------------------------------\n");

printf("\n\t1.添加学生信息    2.删除某个学生信息    3.显示某个学生信息\n");

printf("\t4.修改学生信息    5.删除所有学生信息    6.显示所有学生信息\n");

printf("\t7.显示信息数量    8.读取文件学生信息    9.保存学生信息至文件\n");

printf("\t0.退出系统\n");

printf("\n-------------------------------------------------------------------------\n");

}

//2.获取用户选择的菜单的编号

int GetMenuChoose()

{

int num;//保存用户选择的菜单编号

ShowMenu();

printf("请选择菜单(0 ~ 9):");

while(1 != scanf("%d", num) || num  0 || num  9)

{

ShowMenu();

printf("选择菜单错误,请重新选择(0 ~ 9):");

fflush(stdin);//清空输入缓冲区

}

return num;

}

//3.创建一个节点,它会返回一个新创建的学生信息节点的指针

PSTUDENT CreateStudent()

{

int sex;

PSTUDENT pstu = (PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息

if(!pstu)

{

printf("申请内存空间失败!\n");

return NULL;

}

printf("请输入学生的编号(整型):");

while(1 != scanf("%d", pstu-num) || GetPrevAddr(pstu-num))

{

printf("学生编号输入错误或已经存在,请重新输入学生的编号(整型):");

fflush(stdin);

}

printf("请输入学生的姓名(小于20字符):");

scanf("%20s", pstu-name);//(*pstu).name

printf("请选择学生的性别(1.男  2.女):");

while(1 != scanf("%d", sex) || sex  1 || sex  2)

{

printf("性别选择错误,请重新选择学生的性别(1.男  2.女):");

fflush(stdin);

}

if(1 == sex)

pstu-sex = MAN;

else

pstu-sex = WOMAN;

printf("请输入学生的年龄(10 ~ 40):");

while(1 != scanf("%d", pstu-age) || pstu-age  10 || pstu-age  40)

{

printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");

fflush(stdin);

}

printf("请输入学生的专业(小于20字符):");

scanf("%20s", pstu-major);

pstu-next = NULL;

return pstu;

}

//4.把学生信息节点加入到链表中

int AddStudent(PSTUDENT pstu)

{

PSTUDENT ps = g_head;

if(!pstu)

{

return 0;

}

//判断一下该学生信息是不是已经存在

if(GetPrevAddr(pstu-num))

{

printf("编号为%d的学生信息已经存在!\n", pstu-num);

free(pstu);//释放该节点内存空间

return 0;

}

//while循环的作用是找到当前链表的最后一个节点

while(ps-next)

ps = ps-next;

//把新节点加入到最后那个节点的后面

ps-next = pstu;

pstu-next = NULL;

return 1;

}

//5.返回指定编号学生节点的上一个节点的指针

PSTUDENT GetPrevAddr(int num)

{

PSTUDENT pstu = g_head;

while(pstu-next)

{

if(pstu-next-num == num)

return pstu;

pstu = pstu-next;

}

return NULL;

}

//6.显示所有学生信息

void ShowAll()

{

PSTUDENT pstu = g_head;

printf("--------------------------------------------------------------------\n");

printf("  编号        姓名            性别     年龄               专业\n");

printf("--------------------------------------------------------------------\n");

while(pstu-next)

{

printf("  %-8d  ", pstu-next-num);

printf("%-20s", pstu-next-name);

printf("%-6s", pstu-next-sex == MAN ? "男" : "女");

printf("%4d", pstu-next-age);

printf("%20s\n", pstu-next-major);

pstu = pstu-next;//让指针指向下一个节点

}

printf("--------------------------------------------------------------------\n");

}

//7.显示信息数量

int ShowStudentCount()

{

int count = 0;

PSTUDENT pstu = g_head;

while(pstu-next)

{

++count;

pstu = pstu-next;

}

printf("\n当前共有%d位学生信息。\n", count);

return count;

}

//8.修改学生信息,参数为要修改的学生的编号

void ModityStudent(int num)

{

PSTUDENT pstu = GetPrevAddr(num);//获取要修改的学生节点的上一个节点

int choose;

if(!pstu)

{

printf("没有编号为%d的学生信息。\n", num);

return;

}

pstu = pstu-next;//将要修改的学员节点的指针改为指向自己的

printf("当前学生的姓名为%s,", pstu-name);

if(Question("确定要修改吗?"))

{

printf("请输入学生的姓名(小于20字符):");

scanf("%20s", pstu-name);

}

printf("当前学生的性别为%s,", pstu-sex == MAN ? "男" : "女");

if(Question("确定要修改吗?"))

{

printf("请输入学生的性别(1.男 2.女):");

while(1 != scanf("%d", choose) || choose  1 || choose  2)

{

printf("输入错误,请重新输入学生的性别(1.男 2.女):");

fflush(stdin);

}

if(1 == choose)

pstu-sex = MAN;

else

pstu-sex = WOMAN;

}

printf("当前学生的年龄为%d,", pstu-age);

if(Question("确定要修改吗?"))

{

printf("请输入学生的年龄(10 ~ 40):");

while(1 != scanf("%d", pstu-age) || pstu-age  10 || pstu-age  40)

{

printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):");

fflush(stdin);

}

}

printf("当前学生的专业为%s,", pstu-major);

if(Question("确定要修改吗?"))

{

printf("请输入学生的专业(小于20字符):");

scanf("%20s", pstu-major);

}

printf("修改完毕!\n");

}

//9.获取用户的选择

int Question(const char *pstr)

{

char answer;

printf("%s请选择(y or n):", pstr);

while(1 != scanf(" %c", answer) || (answer != 'y'  answer != 'n'))

{

printf("输入错误!%s请重新选择(y or n):", pstr);

fflush(stdin);//清空输入缓冲区,C库函数

}

if('y' == answer)

return 1;

else

return 0;

}

//10.获取用户输入的学生的编号

int GetInputNum()

{

int num;

printf("请输入学生的编号(整型):");

while(1 != scanf("%d", num))

{

printf("编号输入错误!请重新输入学生的编号(整型):");

fflush(stdin);

}

return num;

}

//11.删除编号为num的学生信息

void DelStudent(int num)

{

PSTUDENT pstu, ptmp;

if(pstu = GetPrevAddr(num))

{

if(!Question("确定要删除该学生信息吗?"))

{

return;

}

ptmp = pstu-next;

pstu-next = ptmp-next;

free(ptmp);

printf("删除了编号为%d的学生信息。\n", num);

}

else

{

printf("没有找到编号为%d的学生信息。\n", num);

}

}

//12.删除所有的学生信息

void DelAll()

{

PSTUDENT pstu = g_head.next, ptmp;

int count = 0;

if(!Question("确定要删除当前所有的学生信息吗?"))

{

return;

}

while(pstu)

{

ptmp = pstu;

pstu = pstu-next;

free(ptmp);

++count;

}

printf("共删除了%d位学生信息。\n", count);

g_head.next = NULL;

}

//13.把学生信息保存到文件当中

void SaveToFile()

{

FILE *pf = fopen(FILENAME, "wb");

PSTUDENT pstu = g_head;

int i = 0, count = ShowStudentCount();

if(!pf)

{

printf("打开待写入的文件失败!\n");

return;

}

if(!Question("确定要将当前学生信息保存到文件中吗?"))

{

fclose(pf);

return;

}

fwrite(count, 1, sizeof(count), pf);//把学生信息的数量先写入到文件头

while(pstu-next)

{

fwrite(pstu-next, 1, sizeof(STUDENT), pf);//把每位学生信息写入文件

++i;

pstu = pstu-next;

}

fclose(pf);

if(i == count)

{

printf("成功的写入了%d条学生信息。\n", count);

}

else

{

printf("应写入%d条学生信息,实际写入%d条学生信息。\n", count, i);

}

}

//14.从文件中读取学生信息

void LoadFromFile()

{

int i, count = 0, repeat = 0;

FILE *pf;

PSTUDENT pstu;

printf("提示:从文件中读取学生信息会询问是否清空当前学生信息(不清空表示合并所有信息)。\n");

if((pf = fopen(FILENAME, "rb")) == NULL)

{

printf("文件还没有创建,请手工输入学生信息并保存吧!\n");

return;

}

DelAll();//删除之前的所有学生信息,然后从文件中读取

fread(count, 1, sizeof count, pf);//获取学生信息的数量

for(i = 0; i  count; ++i)

{

pstu = (PSTUDENT)malloc(sizeof(STUDENT));

fread(pstu, 1, sizeof(STUDENT), pf);

if(!AddStudent(pstu))

{

++repeat;//保持有多少个和当前链表中相重复的学生信息

}

}

fclose(pf);

printf("文件读取完毕!新增学生信息%d条。\n", count - repeat);

}

这个累死我了,我要财富值。。。为了这个不容易啊

学生管理系统源代码c++

#include iostream.h

#include string.h

#include "h1.h"

void menu();

void clear()

{

cin.clear();

cin.ignore();

}

void stu::init_name_grade() //输入学生姓名、班级

{

cout"请输入学生姓名:";

cinname;

clear();

cout"请输入学生班级号:";

cingrade;

clear();

}

void stu::init_first() //输入学生第一学期成绩

{

cout"学生"name"第一学期成绩"endl;

cout"请输入英语成绩:";

cinfirst.english;

clear();

cout"请输入数学成绩:";

cinfirst.math;

clear();

first.total=first.english+first.math;

first.aver=first.total/2;

}

void stu::init_second() //输入学生第二学期成绩

{

cout"学生"name"第二学期成绩"endl;

cout"请输入英语成绩:";

cinsecond.english;

clear();

cout"请输入数学成绩:";

cinsecond.math;

clear();

second.total=second.english+second.math;

second.aver=second.total/2;

}

void stu::show_first() //显示学生第一学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第一学期英语成绩:"first.englishendl;

cout"学生第一学期数学成绩:"first.mathendl;

cout"学生第一学期总成绩:"first.totalendl;

cout"学生第一学期平均成绩:"first.averendl;

}

void stu::show_second() //显示学生第二学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第二学期英语成绩:"second.englishendl;

cout"学生第二学期数学成绩:"second.mathendl;

cout"学生第二学期总成绩:"second.totalendl;

cout"学生第二学期平均成绩:"second.averendl;

}

void stu::show_grade() //显示学生所有学期成绩

{

cout"学生姓名:"nameendl;

cout"学生班级:"gradeendl;

cout"学生第一学期英语成绩:"first.englishendl;

cout"学生第一学期数学成绩:"first.mathendl;

cout"学生第一学期总成绩:"first.totalendl;

cout"学生第一学期平均成绩:"first.averendl;

cout"学生第二学期英语成绩:"second.englishendl;

cout"学生第二学期数学成绩:"second.mathendl;

cout"学生第二学期总成绩:"second.totalendl;

cout"学生第二学期平均成绩:"second.averendl;

}

stu_info::stu_info() //stu_info的构造函数

{

num=0;

}

void stu_info::add_name_grade() //添加学生信息(班级、姓名)到数组中

{

int choose;

do

{

per[num].init_name_grade();

num++;

cout"继续输入学生信息吗?(0:退出,任意数字键继续...)";

cinchoose;

clear();

}while(choose!=0);

}

void stu_info::add_first(int gra) //添加第一学期成绩

{

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].init_first();

}

}

}

void stu_info::add_second(int gra) //添加第二学期成绩

{

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].init_second();

}

}

}

void stu_info::query_aver(int gra,int term) //按班级、学期及平均分排序显示学生成绩

{

stu temp[100];

stu t;

int sum=0;

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

temp[sum]=per[i];

sum++;

}

}

for(int j=0;jsum-1;j++)

{

for(int k=sum-1;kj;k--)

{

if(term==1)

{

if(temp[k].first.avertemp[k-1].first.aver)

{

t=temp[k];

temp[k]=temp[k-1];

temp[k-1]=t;

}

}

else if(term==2)

{

if(temp[k].second.avertemp[k-1].second.aver)

{

t=temp[k];

temp[k]=temp[k-1];

temp[k-1]=t;

}

}

else

{

cout"该学期不存在!"endl;

return;

}

}

}

for( i=0;isum;i++)

{

if(term==1)

{

temp[i].show_first();

}

else

{

temp[i].show_second();

}

}

}

void stu_info::modify(int gra,char name[10]) //按班级、姓名查询学生信息并修改学生信息

{

for(int i=0;inum;i++)

{

if(per[i].grade==grastrcmp(per[i].name,name)==0)

{

per[i].init_name_grade();

per[i].init_first();

per[i].init_second();

return;

}

else

{

cout"该学生不存在!"endl;

}

}

}

void stu_info::query(int gra,char name[10]) //按班级、姓名查询学生信息并输出

{

for(int i=0;inum;i++)

{

if(per[i].grade==grastrcmp(per[i].name,name)==0)

{

per[i].show_grade();

return;

}

else

{

cout"该学生不存在!"endl;

}

}

}

void stu_info::query_grade(int gra) //按班级输出该班全部学生成绩

{

coutgra"班级学生的成绩如下:"endl;

for(int i=0;inum;i++)

{

if(per[i].grade==gra)

{

per[i].show_grade();

}

}

}

void stu_info::show_fail(int grade,int term,int course)

{

cout"不及格名单如下:"endl;

for(int i=0;inum;i++)

{

if(per[i].grade==grade)

{

if(term==1)

{

if(course==1)

{

if(per[i].first.english60)

{

coutper[i].nameendl;

}

}else if(course==2)

{

if(per[i].first.math60)

{

coutper[i].nameendl;

}

}

}

else if(term==2)

{

if(course==1)

{

if(per[i].second.english60)

{

coutper[i].nameendl;

}

}else if(course==2)

{

if(per[i].second.math60)

{

coutper[i].nameendl;

}

}

}

else

{

cout"该学期不存在!"endl;

return;

}

}

}

}

void main()

{

stu_info people;

int grade;

int term;

int choose;

int course;

char name[10];

while(1)

{

menu();

cinchoose;

clear();

switch(choose)

{

case 1:

people.add_name_grade();break;

case 2:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

if(term==1)

people.add_first(grade);

else

people.add_second(grade);

break;

case 3:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学生姓名:";

cinname;

clear();

people.modify(grade,name);

break;

case 4:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

people.query_aver(grade,term);

break;

case 5:

cout"请输入班级号:";

cingrade;

clear();

people.query_grade(grade);

break;

case 6:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学期:";

cinterm;

clear();

cout"请输入课程号(1:english,2:math):";

cincourse;

people.show_fail(grade,term,course);

break;

case 7:

cout"请输入班级号:";

cingrade;

clear();

cout"请输入学生姓名:";

cinname;

clear();

people.query(grade,name);

break;

case 8:return;

default:cout"选择错误,请重新选择!"endl;

}

}

}

void menu()

{

cout" 请选择操作"endl;

cout"-------------------------------------------------------------"endl;

cout" 1、输入学生姓名、班级"endl;

cout" 2、按学期、班级录入学生成绩"endl;

cout" 3、修改学生成绩"endl;

cout" 4、按班级平均分对学生成绩排序"endl;

cout" 5、按班级输出学生的成绩单"endl;

cout" 6、按科目输出不及格学生名单"endl;

cout" 7、查询学生成绩单"endl;

cout" 8、退出系统"endl;

}

这上面是实现功能,下面是类的定义和声明 希望对你有用

struct term

{

int english;

int math;

int aver;

int total;

};

class stu

{

char name[10];

int grade;

struct term first;

struct term second;

public:

friend class stu_info;

void init_name_grade();

void init_first();

void init_second();

void show_grade();

void show_first();

void show_second();

};

class stu_info

{

stu per[100];

int num;

public:

stu_info();

void add_name_grade();

void add_first(int gra);

void add_second(int gra);

void query_aver(int gra,int term);

void modify(int gra,char name[10]);

void query(int gra,char name[10]);

void query_grade(int gra);

void show_fail(int grade,int term,int course);

};

java学生管理系统源码用什么软件打开

源码本身也是文本文件,可以直接用记事本打开,也可以将项目导入到eclipse或

myeclipse

去看,如果是编译后的.

class文件

,可以去网上找找查看.class文件的工具。

2条大神的评论

  • avatar
    访客 2022-07-16 上午 01:11:17

    ); break; case '2': FindMaxOrMin(head,'2','2'); break; case '3': FindMaxOrMin(head,'3','2'); break; case '6':

  • avatar
    访客 2022-07-16 上午 08:45:47

    为你没有登陆,系统又检查到你没有任何记录,你不能进行任何操作."endl; } coutendlendl; cout"按任何键继续进行操作."endl;

发表评论