学生信息系统(支持课)
来源:互联网 发布:电话号码归属地数据库 编辑:程序博客网 时间:2024/04/29 20:33
#include <iostream>#include <fstream>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <iomanip>using namespace std;//银行中最大的账户数量#define MAXACCOUNTNUMBER 200struct Student{ int stunum; string name; string sex; int age; double score; int state;//代表学生状态 1为正常 0为删除};Student A[MAXACCOUNTNUMBER];int size=0;void welcome();//欢迎界面void menu();//菜单界面void increase();//增加学生void search();//找学生并显示信息void delet();//删除学生void show();//显示成绩单void sort();//排序输出void change();//改变学生信息void Save();//保存学生信息void read();//读入学生信息int main(){ welcome(); menu(); return 0;}void read(){ //读文件ifstream infile("成绩.txt",ios::in); //文件目标if(!infile){cerr<<endl<<"open error!"<<endl<<endl;exit(1);} while(infile>>A[size].stunum>>A[size].name>>A[size].sex>>A[size].age>>A[size].score>>A[size].state) //依次检索文件{size++;}infile.close();}void welcome(){ read(); cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| 欢迎登陆学生系统 |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl;}void menu(){ int chose; cout <<"请选择以下命令:"<<endl; cout<<'\t'<<"*--------------------------------------*"<<endl; cout<<'\t'<<"1.增加学生信息 2.查找学生信息"<<endl; cout<<'\t'<<"3.删除学生信息 4.显示学生信息"<<endl; cout<<'\t'<<"5.学生成绩排序 6.修改学生信息"<<endl; cout<<'\t'<<"0.退出 "<<endl; cout<<'\t'<<"*--------------------------------------*"<<endl; cin>>chose; switch(chose) { case 0: cout<<"谢谢使用!"; exit(1); case 1: increase(); break; case 2: search(); break; case 3: delet(); break; case 4: show(); break; case 5: sort(); break; case 6: change(); break; default: cout<<endl; cout<<"您输入的指令有误! 系统退出!"<<endl; cout<<endl; exit(1); break; }}void increase(){ cout<<"请输入学号、姓名、性别、年龄、成绩:"<<endl; size=size+1; cin>>A[size].stunum>>A[size].name>>A[size].sex>>A[size].age>>A[size].score; A[size].state=1; Save(); cout<<"增加成功,按任意键返回!"<<endl; fflush(stdin); getchar(); menu();}void search(){ int num,chose,i; string sname; cout<<"请输入查找方式:"<<endl; cout<<"1.学号查找:"<<endl; cout<<"2.姓名查找:"<<endl; cin>>chose; if(chose==1) { cout<<"请输入学号:"<<endl; cin>>num; for(i=0; i<=size; i++) { if((num==A[i].stunum)&&(A[i].state=1)) { cout<<"学号 姓名 性别 年龄 成绩"<<endl; cout<<A[i].stunum<<" "<<A[i].name<<" "<<A[i].sex<<" "<<A[i].age<<" "<<A[i].score<<endl; cout<<endl<<"查询成功,按任意键返回"<<endl; fflush(stdin); getchar(); menu(); break; } } if((num!=A[i].stunum)||(A[i].state=0)) { cout<<"查无此人!"<<endl; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); } }else if(chose==2) { cout<<"请输入姓名:"<<endl; cin>>sname; for(i=0; i<=size; i++) { if(sname==A[i].name) { cout<<"学号 姓名 性别 年龄 成绩"<<endl; cout<<A[i].stunum<<setw(10)<<A[i].name<<setw(10)<<A[i].sex<<setw(10)<<A[i].age<<setw(12)<<A[i].score<<endl; cout<<endl<<"查询成功,按任意键返回"<<endl; fflush(stdin); getchar(); menu(); break; } } if((sname!=A[i].name)||(A[i].state=0)) { cout<<"查无此人!"<<endl; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); } }else { cout<<"选择错误请注意!"; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); }}void delet(){ int num,i; cout<<"请输入要删除的同学的学号:"<<endl; cin>>num; for(i=0; i<=size; i++) { if(num==A[i].stunum) { A[i].state=0; Save(); cout<<"删除成功!"<<endl; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); break; } } if((num!=A[i].stunum)||(A[i].state=0)) { cout<<"查无此人!"<<endl; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); }}void show(){ int i; cout<<"学号 姓名 性别 年龄 成绩"<<endl; for(i=0; i<=size; i++) { if(A[i].state==1) { cout<<A[i].stunum<<setw(10)<<A[i].name<<setw(10)<<A[i].sex<<setw(10)<<A[i].age<<setw(12)<<A[i].score<<endl; } } cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu();}void sort(){ int i,j,chose; Student t; cout<<"请输入排序方式:"<<endl; cout<<"1.学号排序(升序)"<<endl; cout<<"2.成绩排序(降序)"<<endl; cin>>chose; if(chose==1) { for(i=0; i<size-1; i++) { for(j=i+1; j<size; j++) { if(A[i].stunum>A[j].stunum) { t=A[i]; A[i]=A[j]; A[j]=t; } } } show(); }else if (chose==2) { for(i=0; i<size-1; i++) { for(j=i+1; j<size; j++) { if(A[i].score<A[j].score) { t=A[i]; A[i]=A[j]; A[j]=t; } } } show(); }else { cout<<"选择错误请注意!"; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); menu(); }}void change(){ int num,i; int stunum1; string name1; string sex1; int age1; double score1; cout<<"请输入您要修改的学生的学号"; cin>>num; for(i=0; i<=size; i++) { if(num==A[i].stunum) { cout<<"请重新输入学号、姓名、性别、年龄、成绩:"<<endl; cin>>stunum1>>name1>>sex1>>age1>>score1; A[i].stunum=stunum1; A[i].name=name1; A[i].sex=sex1; A[i].age=age1; A[i].score=score1; A[i].state=1; Save(); cout<<"修改成功!"<<endl; show(); break; } else { cout<<"查无此人!"<<endl; menu(); } }}//保存文件void Save(){ofstream outfile("成绩.txt",ios::out);if(!outfile){cout<<endl<<"open error!"<<endl;exit(1);}else{for(int i=0;i<=size;i++) //依次写入文件{ outfile<<A[i].stunum<<" "<<A[i].name<<" "<<A[i].sex<<" "<<A[i].age<<" "<<A[i].score<<endl;}outfile.close();}}
心得:越编越想完善。。。可总是到不了自己想要的程度。。。
慢慢来一切会好的。
周末把周二的程序补上。。还在研究中
链表依旧不太懂。。
时间程序也没写。。。
喵。。。
事情的最后一定是好的,如果它不好就代表还没到最后。。。。
0 0
- 学生信息系统(支持课)
- 学生信息系统总结(1)
- 学生信息系统优化(一)
- 学生信息系统优化(二)
- 学生信息系统
- 学生信息系统错误集(一)
- 学生信息系统之优化(一)
- 学生信息系统之优化(二)
- 2..学生信息系统DOS
- 学生信息系统之总结
- 学生信息系统模块注释
- 学生信息系统知识点1
- 学生信息系统总结
- 学生信息系统---优化
- 网络版学生信息系统
- 学生信息系统样例
- 学生信息系统1
- 学生信息系统优化总结
- java时间戳
- 各种语言匹配的正则
- 2014/03/13 关于“= =”;“compareTo”;“equals”的区别
- 【转】丰田栽了的原因,嵌入式软件工程师都该看看
- rails中的form表单总结
- 学生信息系统(支持课)
- Android 自动编译、打包生成apk文件 1 - 命令行方式
- MySQL---修复MyISAM表
- Linux添加用户(user)到用户组(group)
- ORACLE NUMBER类型详解(二)
- 数据挖掘方法:(6) 逻辑回归
- Codeforces Round #196 (Div. 2) / 337D Book of Evil (树的直径变形——树的最长标记弦)
- 剑指offer(33)-在O(1)时间删除链表结点[数据结构]
- 项目结构