1、通过使用系统可以查看已统计好的学生信息3 学生成绩统计:使用系统可以浏览学生已排好的成绩统计,包括名次,总分,平均分,最高和最低分。4 查找学生信息:使用系统可以浏览单个学生的信息,分为按学号和姓名查找。5 修改学生信息:当学生信息有误时就可以通过系统来修改。6 删除学生信息:使用系统可以要删除某个学生信息。7 增加学生信息:不能在第一个功能上增加学生信息,只能在这个功能上实现。8. 退出。三、实验原理 本设计内容可用程序设计基础方法完成,参考程序设计课程设计实验指导书四、实验设备 软件Visual Studio 2010五、实验要求 必修 6、实验程序#include StdAfx.h#in
2、clude fstreamcstringusing namespace std;/全局量int n=0;int nk=0;char *filename;long num1000;int work_l=0;int level = 1;int build = 0;fstream f;/成绩类struct studentpublic: /个人信息 char name20; char sex10; long number; /各科成绩变量 float m_english; float m_math; float m_computer; float m_programming; float m_phis
3、ic; float m_total; float m_reverage; float m_highest; float m_lowest;s;/ 1.11 求平均分void reverage(student &st) st.m_reverage = st.m_total/5;/1.12 求总分void total(student & st.m_total = st.m_math + st.m_english + st.m_computer + st.m_programming + st.m_phisic; reverage(st);/1.13 显示各科成绩void s_show(student
4、 & cout t英语t数学t物理t导论t程序t总分t 平均分n;t st.m_english t st.m_math st.m_phisic st.m_computer st.m_programming st.m_total st.m_reverage endlendl;/1.2 显示数据函数void show(student & if(work_l=1&level=n) cout 名次: level endl; +level; t姓名t性别t学号n st.name st.sex st.numberendl =0&grade grade; return grade;/判断学号是否重复long
5、 judge1(long s_num) if(nk) int work01 = 1; int l = 0; for(;lnk;+l) if(s_num=numl) cout s_num; numnk = s_num; s_num = judge1(s_num); work01 = 0; else work01 = 1; if(work01=1) return s_num; return s_num;/1.4 输入void input(student & int sex; char *ss; /输入各项信息姓名: cin st.name;学号: /输入学号。 st.number; numnk =
6、 st.number; st.number = judge1(st.number);性别(男:1,女:0): sex; if(sex=1) ss = 男 else if(sex=0)女 else ss =未知 strcpy_s(st.sex,ss);英语: st.m_english; st.m_english = judge(st.m_english);数学: st.m_math; st.m_math = judge(st.m_math);物理: st.m_phisic; st.m_phisic = judge(st.m_phisic);导论: st.m_computer; st.m_comp
7、uter = judge(st.m_computer);程序: st.m_programming; st.m_programming = judge(st.m_programming); endl total(st); f.write(char*)&st,sizeof(student);/1.5 判断是否已经创建操作员输入的文件名的文件int judge()build)还未创建文件!请重新选择操作! return 0; return 1;/1.5 写入信息void set()人数: n; /打开文件 f.open(filename,ios:out); for(int i = 0;in;+i)
8、nk = i; input(s); /表明已经创建了文件 build = 1; /关闭文件 f.close(); /2 浏览 void skim(student &st) int work0 = 1; work0 = judge(); if(work0=0) return;in);f) cerr 打不开文件。 abort(); /移动流指针到文件头 f.seekg( 0,ios:beg ); f.read(char*)&第 i+1 个人n show(st);/3 统计void manage() if(work0 = 0)in|ios: /将真值赋给名次工作机制判断变量 work_l = 1;
9、student *temp = new studentn; int work;tempi,sizeof(student); /对数组排序 for(int pass = 1;pass +pass) work = 0; int p =0; for(p;p n-pass;+p) if(tempp.m_totaltempp+1.m_total) student st; /比较总分,进行相应操作 st = tempp; tempp = tempp+1; tempp+1 = st; work = 0; /若没有重新排序则证明已排序好,退出当前操作 if(work) break; f.seekp(0,ios:beg); for(int p = 0;p f.write(char*)&tempp,sizeof(student); /浏览统计后的数据信息 skim(s); if(n) cou
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1