⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student- system.txt

📁 学生管理系统
💻 TXT
📖 第 1 页 / 共 2 页
字号:
学生成绩管理系统,C++源代码
"operater.cpp" 
#include "operater.h" 
void Operater::welcome() 
{ 
cout<<endl<<endl<<endl<<endl<<endl<<endl; 
cout<<" 欢 迎 进 入 学 生 信 息 系 统 "<<endl<<endl<<endl<<endl; 
cout<<" 制作人:***"<<endl<<endl<<endl<<endl; 
cout<<" 请输入密码或输入A退出:\n\n\n "; 
} 
void Operater::display() 
{ 
cout<<endl<<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<<"0: 退出系统"<<endl; 
cout<<"********************************************************************"<<endl; 
} 
void Operater::Loop() 
{ 
List L1; //List 对象 
char ch[20]; 
nodetype *p, *head; 
int i; //存放节点序号 

p=L1.load(); //初始化:从外部读入数据创建链表 

head=p; 
display(); 

while(1) 
{ 
cout<<endl<<endl; 
cout<<"请输入选择(帮助选项--> 6 ): "<<endl; 
cin>>ch; 

system("cls"); 
if(L1.check(ch, "1")) 
{ 
p=L1.insnode(0); 
head=p; 

system("cls"); 
cout<<endl; 
cout<<"************** 添加一个学生信息 ******************"<<endl; 
cout<<"下面输入个人信息: "<<endl; 
L1.editperson(p); 
cout<<"下面输入学科成绩: "<<endl; 
L1.editscore(p); 
cout<<"下面输入联系方式: "<<endl; 
L1.edittelephone(p); 
} 

if(L1.check(ch, "2")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 删除一个学生信息 ******************"<<endl; 
L1.dispname(); 
cout<<"请输入学生姓名: "<<endl; 
cin>>ch; 
i=L1.find2(ch); 
L1.delnode(i); 
} 

if(L1.check(ch, "3")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 显示所有学生姓名 ******************"<<endl; 
L1.dispname(); 
} 

if(L1.check(ch, "4")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 根据姓名显示单个学生所有信息 ******************"<<endl; 
L1.dispname(); 
cout<<"请输入学生姓名: "<<endl; 
cin>>ch; 
p=L1.find(ch); 
L1.dispnode(p); 

} 
if(L1.check(ch, "6")) 
{ 
display(); 
} 

if(L1.check(ch, "7")) //保存数据 
{ 
FILE *fp; 
if((fp=fopen("student.txt", "w"))==NULL) 
{ 
cout<<"打开文件失败"<<endl; 
return; 
} 

int i; 
char t[255]; 

//将 L1.listlen() 赋予字符串中的数字 
sprintf(t, "The Length Of Link: %d\n", L1.listlen()); 

fputs(t, fp); 
strcpy(t, "\n"); 
fputs(t, fp); 

p=L1.findnode(1); //将链表头指针赋予 p 

for(i=0; i<L1.listlen(); i++) 
{ 
fputs(p->address, fp); //输出地址 
fputs(p->birthday, fp); //输出生日 
fputs(p->pe.num, fp); //输出学号 
fputs(p->sc.english, fp); //输出英语成绩 
fputs(p->sc.vc, fp); //输出C++成绩 

fputs(p->sc.math, fp); //输出数学成绩 
fputs(p->sc.vb, fp); //输出vb成绩 
fputs(p->pe.name, fp); //输出姓名 
fputs(p->pe.sex, fp); //输出性别 
fputs(p->pe.GJ, fp); //输出国籍 
fputs(p->pe.MZ, fp); //输出民族 
fputs(p->pe.XL, fp); //输出学历 
fputs(p->te.SJ, fp); //输出手机 
fputs(p->te.JD, fp); //输出家庭电话 
fputs(p->te.XD, fp); //输出学校电话 
fputs(t, fp); 
p=p->next; 
} 
p=head; 
fclose(fp); 
} 

if(L1.check(ch, "5")) 
{ 
char c[20]; 
system("cls"); 
cout<<endl; 
cout<<"************** 根据姓名对单个学生进行编辑 ******************"<<endl; 
L1.dispname(); 
cout<<"请输入学生姓名: "<<endl; 
cin>>c; 
p=L1.find(c); 

system("cls"); 
cout<<endl<<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; 
cout<<"9: 返回上一级菜单"<<endl; 
cout<<"*********************************************************"<<endl; 

while(1) 
{ 
cout<<endl<<endl; 
cout<<"请输入选择(帮助选项--> 6 ): "<<endl; 
cin>>c; 
system("cls"); 

if(L1.check(c, "1")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 编辑个人信息 ******************"<<endl; 
L1.editperson(p); 
} 
else if(L1.check(c, "2")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 编辑学科成绩 ******************"<<endl; 
L1.editscore(p); 
} 


else if(L1.check(c, "3")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 编辑联系方式 ******************"<<endl; 
L1.edittelephone(p); 
} 

else if(L1.check(c, "4")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 显示个人信息 ******************"<<endl; 
L1.dispperson(p); 
} 
else if(L1.check(c, "5")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 显示学科成绩 ******************"<<endl; 
L1.dispscore(p); 
} 


else if(L1.check(c, "6")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"************** 显示联系方式 ******************"<<endl; 
L1.disptelephone(p); 
} 

else if(L1.check(c, "7")) 
{ 
system("cls"); 
cout<<endl; 
cout<<"7: 显示该学生所有信息"<<endl; 
L1.dispnode(p); 
} 

else if(L1.check(c, "8")) 
{ 
cout<<"8: 帮助菜单"<<endl; 
cout<<endl; 
system("cls"); 
L1.help(); 
} 

else if(L1.check(c, "9")) 
{ 
cout<<"9: 返回上一级菜单"<<endl; 
cout<<endl; 
display(); 
break; //用 break 跳出本循环,不要用 return ,return 是退出程序 
} 
} 
} 

else if(L1.check(ch, "0")) 
return; 
} 
return; 
} 


"operater.h" 
#include <iostream.h> // cin 及 cout 
#include <string.h> // strcpy(): 字符串复制 
#include <stdlib.h> // system("cls") 
#include <stdio.h> // 文件操作 
#include "list.h" // 我们要创建类 List 的对象和节点指针,所以要把类的头文件包含进来 

class Operater 
{ 
List L1; 
public: 
void welcome();//欢迎登录界面 
void display();//显示菜单 
void Loop(); //主循环 

}; 
"List.cpp" 
#include "list.h" 
List::List() 
{ 
head = NULL; 
} 

bool List::check(char *a, char *b) //对比两个字符串是否相等 
{ 
int i; 
int j=strlen(b); 
for(i=0; i<j; i++) 
{ 
if(*a==*b) 
{ 
a++; 
b++; 
} 
else 
return 0; 
} 
return 1; 
} 
nodetype* List::creatlist (int n) //创建链表 
{ 
nodetype *h=NULL, *s, *t; 
int i=1; 

for(int j=0; j<n; j++) 
{ 
if(i==1) //创建第一个节点 
{ 
h=(nodetype*)malloc(sizeof(nodetype)); 
h->next=NULL; 
t=h; 
} 
else //创建其余节点 
{ 
s=(nodetype*)malloc(sizeof(nodetype)); 
s->next=NULL; 
t->next=s; 
t=s; //t 始终指向生成的单链表的最后一个节点 
} 

i++; 
} 
head=h; 
return h; 
} 
void List::readstr(FILE *f,char *string) 
{ 
do 
{ 
// 先读入一行文本 
fgets(string, 255, f); //fgets(): 从文件 f 读入长度为 255-1 的字符串 
// 并存入到 string 中 
} while ((string[0] == '/') || (string[0] == '\n')); 

return; 
} 
nodetype* List::load() 
{ 
FILE *fp; 
nodetype *p; 
char c[255]; 
int num; 
if((fp=fopen("student.txt", "r"))==NULL) 
{ 
cout<<"打开文件失败"<<endl; 
return 0; 
} 
readstr(fp, c); 
sscanf(c, "The Length Of Link: %d", &num); //获取链表长度 

p=creatlist(num); //创建链表 

for(int i=0; i<num; i++) 
{ 
readstr(fp, c); 
strcpy(p->address, c); 
readstr(fp, c); 
strcpy(p->birthday, c); 
readstr(fp, c); 
strcpy(p->pe.num, c); 
readstr(fp, c); 
readstr(fp, c); 
strcpy(p->sc.vc, c); 
readstr(fp, c); 
strcpy(p->sc.english, c); 
readstr(fp, c); 
strcpy(p->sc.math, c); 
readstr(fp, c); 
strcpy(p->sc.vb, c); 
strcpy(p->pe.name, c); 
readstr(fp, c); 
strcpy(p->pe.sex, c); 
readstr(fp, c); 
strcpy(p->pe.GJ, c); 
readstr(fp, c); 
strcpy(p->pe.MZ, c); 
readstr(fp, c); 
strcpy(p->pe.XL, c); 
readstr(fp, c); 
strcpy(p->te.SJ, c); 
readstr(fp, c); 
strcpy(p->te.JD, c); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -