学生成绩管理组织系统的C源代码.doc
,网页 图片 视频 地图 资讯 音乐 问答 来吧 更多 购物 财经 博客 翻译 265导航 日历 照片 文档 输入法 工具栏 软件精选 更多 登录天涯 | 注册天涯 | 帮助 由于浏览器不支持或者禁用JavaScript,您可能不能使用到本网站的所有功能。 参见如何启用JavaScript脚本. 窗体顶端搜索问答 我要提问 窗体底端首页 > 提问列表 > 提问 谁能提供学生成绩管理系统的C+源代码? 编程 互联网 电脑软件 悬赏点数 10 1个回答 385次浏览 0惜澈今生 2008-11-23 16:54:36 172.30.211.* 举报 项目名称 学生成绩管理程序 项目简介 利用Visual C+,结合本专业所学课程知识实现一个简单的控制台学生成绩管理程序 功能列表 1 能进行数据记录的增加 2 能进行数据记录的删除 3 能进行数据记录的列表显示 4 能进行数据记录查找 5 能对数据记录进行排序 开发环境 软件环境: ? 操作系统:Windows 2000以上 ? 开发工具:Visual C+ 6.0以上, 硬件环境: ? CPU:P500以上 ? 内存:128M以上 ? 硬盘:20G以上 其它环境 ? 黑板 回答 窗体顶端窗体底端引用: 添加引用: 登录并发表回答 取消 在谷歌搜索谁能提供学生成绩管理系统的C+源代码? 正在发表回答,请稍候 您输入的内容将会在您成功登录之后自动发表。 系统推荐答案 0邀月710 2008-11-23 18:04:03 59.39.41.* 举报 "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退出:nnn " 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 ch20; 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 t255; /将 L1.listlen() 赋予字符串中的数字 sprintf(t, "The Length Of Link: %dn", 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 c20; 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 (string0 = /) | (string0 = n); return; nodetype* List:load() FILE *fp; nodetype *p; char c255; 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); readstr(fp, c); strcpy(p->te.XD, c); p=p->next; fclose(fp); return p; void List:dispnode(nodetype* p) /显示一个学生的所有信息 if(p!=NULL) dispperson(p); dispscore(p); disptelephone(p); void List:dispname() /显示所有学生姓名 nodetype* p=head; cout<<"现有的学生: "<<endl; if(p=NULL) cout<<"没有任何学生数据"<<endl; while(p!=NULL) cout<<"姓名: "<<p->pe.name; p=p->next; int List:listlen() /返回链表长度 int i=0; nodetype* p=head; while(p!=NULL) p=p->next; i+; return i; nodetype* List:findnode (int i) /通过查找序号返回节点的指针 nodetype* p=head; int j=1; if( i>listlen()|i<=0 ) / i 上溢或下溢 return NULL; else while( p!=NULL && j<i ) /查找第 i 个节点并由 p 指向该节点 j+; p=p->next; return p; nodetype* List:find(char c) /通过查找姓名返回节点的指针 nodetype* p=head; int j=1; strcat(c, "n"); /从外部读入的字符串末尾都带了一个换行符 while( p!=NULL && !(check(c, p->pe.name) /查找第 i 个节点并由 p 指向该节点 j+; p=p->next; return p; int List:find2(char c) /通过查找姓名返回节点的序号 nodetype* p=head; int j=1; strcat(c, "n"); /从外部读入的字符串末尾都带了一个换行符 while( p!=NULL && !(check(c, p->pe.name) /查找第 i 个节点并由 p 指向该节点 j+; p=p->next; return j; nodetype* List:insnode(int i) nodetype *h=head, *p, *s; s=(nodetype*)malloc(sizeof(nodetype); /创建节点 s s->next=NULL; if(i=0) /i=0 时 s 作为该单链表的第一个节点 s->next = h; h=s; /重新定义头节点 else p=findnode(i); /查找第 i 个节点,并由 p 指向该节点 if(p!=NULL) s->next=p->next; p->next=s; else cout<<"输入的 i 值不正确"<<endl; head=h; return s; void List:delnode(int i) /删除第 i 个节点 nodetype *h=head, *p=head, *s; int j=1; if(i=1) /删除第一个节点 h=h->next; free(p); else p=findnode(i-1); /查找第 i-1 个节点,并由 p 指向这个节点 if(p!=NULL && p->next!=NULL) s=p->next; / s 指向要删除的节点 p->next=s->next; free(s); else cout<<"输入的 i 值不正确"<<endl; head=h; void List:editperson(nodetype* p) char c100; cout<<"请输入学号: "<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.num, c); cout<<"请输入姓名: "<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.name, c); cout<<"请输入性别:"<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.sex, c); cout<<"请输入生日(格式举例:2007-6-1): "<<endl; cin>>c; strcat(c, "n"); strcpy(p->birthday, c); cout<<"请输入民族:"<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.MZ, c); cout<<"请输入国籍:"<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.GJ, c); cout<<"请输入学历:"<<endl; cin>>c; strcat(c, "n"); strcpy(p->pe.XL, c); cout<<"请输入家庭住址(例如:河南洛阳市洛龙路71号"<<endl; cin>>c; strcat(c, "n"); strcpy(p->address, c); cout<<"编辑个人信息完成!"<<endl; dispperson(p); void List:editscore(nodetype* p) char a50; cout<<"请输入vc成绩: "<<endl; cin>>a; strcat(a, "n"); strcpy(p->sc.vc, a); cout<<"请输入英语成绩: "<<endl; cin>>a; strcat(a, "n"); strcpy(p->sc.english, a); cout<<"请输入数学成绩: "<<endl; cin>>a; strcat(a, "n"); strcpy(p->sc.math, a); cout<<"请输入vb成绩: "<<endl; cin>>a; strcat(a, "n"); strcpy(p->sc.vb, a); cout<<"编辑学科成绩完成!"<<endl; dispscore(p); void List:edittelephone(nodetype* p) char c50; cout<<"请输入手机号码: "<<endl; cin>>c; strcat(c, "n"); strcpy(p->te.SJ, c); cout<<"请输入家庭电话号码: "<<endl; cin>>c; strcat(c, "n"); strcpy(p->te.JD, c); cout<<"请输入学校电话号码: "<<endl; cin>>c; strcat(c, "n"); strcpy(p->te.XD, c); cout<<"编辑联系方式完成!"<<endl; disptelephone(p); void List:dispperson(nodetype* p) cout<<"姓名: "<<p->pe.name; cout<<"性别: "<<p->pe.sex; cout<<"民族: "<<p->pe.MZ; cout<<"国籍: "<<p->pe.GJ; cout<<"学历: "<<p->pe.XL; cout<<"出生日期: "<<p->birthday; cout<<"家庭住址: "<<p->address; void List:dispscore(nodetype* p) cout<<"vc成绩: "<<p->sc.vc; cout<<"英语成绩: "<<p->sc.english; cout<<"数学成绩: "<<p->sc.math; cout<<"vb成绩: "<<p->sc.vb; void List:disptelephone(nodetype* p) cout<<"手机号码是: "<<p->te.SJ; cout<<"家庭电话是: "<<p->te.JD; cout<<"学校电话是: "<<p->te.XD; void List:help() 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; List:List() nodetype *pa=head, *pb; if(pa!=NULL) pb=pa->next; if(pb=NULL) free(pa); else while(pb!=NULL) free(pa); pa=pb; pb=pb->next; free(pa); "List.h" / List.h: 类的所有成员都在头文件里声明 #include <iostream.h> #include <malloc.h> / 用到申请内存函数 malloc() 和释放内存函数 free() #include <string.h> / 字符串处理 #include <stdio.h> / 文件操作 #include <stdlib.h> / system("cls") class address /家庭地址 public: char city10; /城市 char town10; /县城 char village10; /乡镇 ; class telephone /联系方式 public: char SJ50; /手机 char JD30; /家庭电话 char XD30; /学校电话 ; class person /个人信息 public: char name20; /名字 char num20; /学号 char sex10 ; /性别 char MZ16; /民族 char GJ17; /国籍 char XL19; /学历 ; struct score /成绩 char english20; char vc20; char math20; char vb20; ; /定义节点的类型 typedef class linknode public: char address100; /地址 char birthday100; /出生日期 class person pe;/个人信息 struct score sc; class telephone te; /联系方式 bool flag; class linknode* next; nodetype; class List nodetype* head; public: List(); List:List(); linknode* creatlist(int); /创建链表 int listlen(); /返回链表长度 nodetype* findnode(int); /通过查找序号返回节点的指针 nodetype* find(char c); /通过查找姓名返回节点的指针 int find2(char c); /通过查找姓名返回节点的序号 nodetype* insnode(int); /插入节点 void delnode(int); /删除节点 nodetype* load(); /初始化:从外部读入数据 void readstr(FILE *f,char *string); /读行函数 bool check(char *a, char *b); /对比两个字符串是否相等 void help(); /显示帮助菜单 void editperson(nodetype*); /编辑个人说明 void editscore(nodetype*); /编辑学科成绩 void edittelephone(nodetype*); /编辑联系方式 void dispname(); /显示所有学生姓名 void dispnode(nodetype* p); /显示一个学生的所有信息 void dispperson(nodetype*); /显示一个学生的个人说明 void dispscore(nodetype*); /显示一个学生的学科成绩 void disptelephone(nodetype*); /显示一个学生的联系方式 回答 您可能会感兴趣 求学生成绩管理系统源代码? -2个回答 202次浏览 求学生成绩管理系统源代码 SQL+JAVA -5个回答 617次浏览 谁有这些关于学生信息管理系统C/C+ 的源代码? -2个回答 246次浏览 谁有学生学籍管理系统C+源代码? -7个回答 224次浏览 求C+学生成绩管理系统程序。 -2个回答 432次浏览 java成绩分析问题代码 -1个回答 86次浏览 如何用Visual C+6.0 C+ 完成“学生通讯录管理系统”代码? -2个回答 427次浏览 求Visual C+程序开发范例宝典 一书的源代码? -1个回答 151次浏览 关于天涯 | 服务条款 | 隐私政策 | 网站地图 | 联系方式 | 商务合作 | 站务管理 | 联系我们 琼B2-20060032 | (琼)-经营性-2005-0002 正在加载 .