ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:165KB ,
资源ID:1506029      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1506029.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(简单学生管理系统设计.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

简单学生管理系统设计.doc

1、广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室 2011 年12月28日 学院 计算机科学于教育软件学院 年级/专业/班 计算机02 姓名 杨华奇 学号 1006100096 实验课程名称 程序设计课程设计 成绩 实验项目名称 简单学生管理系统设计 指导老师 田际平 王建雄 (***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***) 一、实验目的 通过本课程的教学实践,使学生达到加深对计算机高级语言程序设计特点、结构化程 序设计方法和面向对象程序设

2、计的理解、提高学生对可视化编程的动手能力之目的 二、 实验内容 “简单学生管理系统设计” 1. 系统功能简介:本系统有包括7个主要功能供给用户,用于管理学生信息。输入和储存学生信息 用户可以使用系统储存学生信息,包括学生姓名,学号,性别,成绩(物理,英语,数学,计算机导论,C程序) 2. 查看学生信息 通过使用系统可以查看已统计好的学生信息 3. 学生成绩统计: 使用系统可以浏览学生已排好的成绩统计,包括名次,总分,平均分,最高和最低分。 4. 查找学生信息: 使用系统可以浏览单个学生的信息,分为按学号和姓名查找。 5. 修改学生信息:当学生信息有误时就可以通过系

3、统来修改。 6. 删除学生信息:使用系统可以要删除某个学生信息。 7. 增加学生信息:不能在第一个功能上增加学生信息,只能在这个功能上实现。 8. 退出。 系统主程序 退 出 输入和储存学生信息 查 看 学 生 信 息 学 生 成 绩 统 计 查 找 学 生 信 息 修 改 学 生 信 息 删 除 学 生 信 息 增 加 学 生 信 息 按学生学号查找 按学生姓名查找 三、实验原理 本设计内容可用程序设计基础方法完成,参考程序设计课程设计实

4、验指导书 四、实验设备 软件Visual Studio 2010 五、实验要求 必修 六、 实验程序 #include "StdAfx.h" #include #include #include using namespace std; //全局量 int n=0; int nk=0; char *filename; long num[1000]; int work_l=0; int level = 1; int build = 0; fstream f; //成绩类

5、struct student { public: //个人信息 char name[20]; char sex[10]; long number; //各科成绩变量 float m_english; float m_math; float m_computer; float m_programming; float m_phisic; float m_total; float m_reverage; float m_highest; float m_lowest; }s; // 1.11 求平均分 void reverag

6、e(student &st) { st.m_reverage = st.m_total/5; } //1.12 求总分 void total(student &st) { 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 &st) { cout << "\t英语\t数学\t物理\t导论\t程序\t"<< "总分\t" << "平均分

7、\n";; cout << "\t" << st.m_english << '\t' << st.m_math << '\t' << st.m_phisic << '\t' << st.m_computer << '\t' << st.m_programming <<'\t'; cout << st.m_total << "\t" << st.m_reverage <

8、 << level << endl; ++level; } cout << "\t姓名\t性别\t学号\n"; cout << "\t"<< st.name << "\t" << st.sex << "\t" << st.number<=0&&grade<=150)) { cout << "成绩不符合要求!请输入0~150之间的数。\n"; cin >> grade; }

9、 return grade; } //判断学号是否重复 long judge1(long s_num) { if(nk) { int work01 = 1; int l = 0; for(;l> s_num; num[nk] = s_num; s_num = judge1(s_num); work01 = 0; } else

10、 work01 = 1; } if(work01==1) { return s_num; } } return s_num; } //1.4 输入 void input(student &st) { int sex; char *ss; //输入各项信息 cout << "姓名:"; cin >> st.name; cout << "学号:"; //输入学号。 cin >> st.number; num[nk] = st.number; st.number = judge1(st.number);

11、cout << "性别(男:1,女:0):"; cin >> sex; if(sex==1) ss = "男"; else if(sex==0) ss = "女"; else ss ="未知"; strcpy_s(st.sex,ss); cout << "英语:"; cin >> st.m_english; st.m_english = judge(st.m_english); cout << "数学:"; cin >> st.m_math; st.m_math = judge(st.m_math); cout << "物理:

12、"; cin >> st.m_phisic; st.m_phisic = judge(st.m_phisic); cout << "导论:"; cin >> st.m_computer; st.m_computer = judge(st.m_computer); cout << "程序:"; cin >> st.m_programming; st.m_programming = judge(st.m_programming); cout << endl << endl; total(st); f.write((char*)&st,sizeof(stu

13、dent)); } //1.5 判断是否已经创建操作员输入的文件名的文件 int judge() { if(!build) { cout << "还未创建文件!请重新选择操作!" << endl; return 0; } else return 1; } //1.5 写入信息 void set() { cout << "人数:"; cin >> n; //打开文件 f.open(filename,ios::out); for(int i = 0;i

14、nput(s); } //表明已经创建了文件 build = 1; //关闭文件 f.close(); } //2 浏览 void skim(student &st) { int work0 = 1; work0 = judge(); if(work0==0) { return; } f.open(filename,ios::in); if(!f) { cerr << "打不开文件。\

15、n"; abort(); } //移动流指针到文件头 f.seekg( 0,ios::beg ); for(int i = 0;i

16、 return; } f.open(filename,ios::in|ios::out); if(!f) { cerr << "打不开文件。\n"; abort(); } //将真值赋给名次工作机制判断变量 work_l = 1; //移动流指针到文件头 f.seekg( 0,ios::beg ); student *temp = new student[n]; int work; for(int i = 0;i

17、p[i],sizeof(student)); } //对数组排序 for(int pass = 1;pass < n;++pass) { work = 0; int p =0; for(p;p < n-pass;++p) if(temp[p].m_total

18、 //若没有重新排序则证明已排序好,退出当前操作 if(work) break; } f.seekp(0,ios::beg); for(int p = 0;p

19、1]); } delete (temp); } //4 查找 void find() { //judge(); int work0 = 1; work0 = judge(); if(work0 == 0) { return; } f.open(filename,ios::in); if(!f) { cerr << "打不开文件。\n"; abort(); } //声明本函数需要用到的变量 int work = 0; char name

20、[20]; unsigned long num; int choice; cout << "---按姓名查找:0---" << endl << "---按学号查找: 1---" << endl; cin>>choice; //选择用户及其信息来操作 if(choice==0) { cout << "输入目标学生姓名:"; cin >> name; } else if(choice==1) { cout << "输入目标学生学号:"; cin >> num; } else {cout << "操作错误!\n";f.cl

21、ose();return;} //移动流指针到文件头 f.seekg( 0,ios::beg ); for(int i = 0;i

22、 { cout << "信息找到!\n"; show(s); work = 1; break; } default:;break; } } } if(!work) { cout << "找不到该学生信息!\n"; } f.close(); } //5 修改 void correct() { int work0 = 1; work0 = judge(); if(work0==0) { return; } f.open(filename,ios::in);

23、 if(!f) { cerr << "打不开文件。\n"; abort(); } int work = 0; int work_correct = 0; int ch; int i = 0; unsigned long num1; student *temp = new student[n]; //移动流指针到文件头 f.seekg( 0,ios::beg ); for(i;i

24、sizeof(student)); } f.close(); cout << "输入目标学生学号:"; cin >> num1; //已删除现有内容的方式打开文本 f.open(filename,ios::trunc|ios::out); if(!f) { cerr << "打不开文件。\n"; abort(); } for(i=0;i

25、 cout << "信息找到!\n"; work = 1; cout<< "*****选择需要修改的数据***** \n" << "***** 1: 姓 名 ***** ***** \n" << "***** 2: 学 号 ***** ***** \n" << "***** 3: 性 别(男:1,女:0) \n" << "***** 4: 英 语 ***** ***** \n" << "***** 5: 数 学 ***** ***** \n" << "***** 6: 物 理 ***** *

26、 \n" << "***** 7: 导 论 ***** ***** \n" << "***** 8: 程 序 ***** ***** \n" << endl; cin >> ch; int sex; char *s; //重新输入需要修改的数据 switch(ch) { case 1:cin >> temp[i].name;break; case 2: { for(int m = 0;m

27、ber) num[m] = -1000; nk = n; cin >> temp[i].number; num[n] = temp[i].number; temp[i].number = judge1(temp[i].number); break; } case 3: { cin >> sex; if(sex) s = "男"; else s = "女"; strcpy_s(temp[i].sex,s); break;

28、 } case 4:cin >> temp[i].m_english;break; case 5:cin >> temp[i].m_math;break; case 6:cin >> temp[i].m_phisic;break; case 7:cin >> temp[i].m_computer;break; case 8:cin >> temp[i].m_programming;break; default :cout << "操作错误!\n";break; } total(temp[i]); } f.wr

29、ite((char*)&temp[i],sizeof(student)); } if(!work) { cout << "找不到该学生信息!\n"; } delete(temp); f.close(); } //6 删除 void del() { int work0 = 1; work0 = judge(); if(work0==0) { return; } f.open(filename,ios::in); if(!f) { cerr << "打不开文件。\n"

30、 abort(); } //声明该函数需要的一些变量 int work = 0; unsigned long num1; int i = 0; student *temp = new student[n]; //移动流指针到文件头 f.seekg( 0,ios::beg ); for(i;i

31、 cin >> num1; //已删除现有内容的方式打开文本 f.open(filename,ios::trunc|ios::out); if(!f) { cerr << "打不开文件。\n"; abort(); } //重新写入 int nn = n; for(i=0;i

32、temp[i]); cout << "是:Y,否:N:"; cin >> ch2; if(ch2=='y'||ch2=='Y') { num[i] = -1000; cout << "信息已删除!\n"; --n; nk = n; } else f.write((char*)&temp[i],sizeof(student)); work = 1; } else f.write((char*)&temp[i],sizeof(student)); } if(!w

33、ork) { cout << "找不到该学生信息!\n"; } //取消名次操作变量的真值状态 work_l = 0; delete(temp); f.close(); } //7 增加 void add() { int work0 = 1; work0 = judge(); if(work0==0) { return; } f.open(filename,ios::app); if(!f) { cerr << "打不开文件。\n"; abort();

34、 } student st; f.seekp(0,ios::end); //调用输入信息函数 nk = n; input(st); ++n; //取消名次操作变量的真值状态 work_l = 0; f.close(); } int _tmain() { cout<< "\t\t\t********************\n" << "\t\t\t* *\n" << "\t\t\t* 学生管理系统 *\n" << "\t\t\t*

35、 *\n" << "\t\t\t********************\n" << endl; char choice; filename = "E:\\student.txt"; cout << filename << endl; //输入信息 while(1) { cout<< "\t\t\t*******选择操作*******\n\n" << "\t\t\t*i: 输入&储存学生信息*\n" << "\t\t\t*s: 查 看 学 生 信 息*\n" << "\t\t\t*m: 学 生 成 绩 统 计*\n"

36、 << "\t\t\t*f: 查 找 学 生 信 息*\n" << "\t\t\t*c: 修 改 学 生 信 息*\n" << "\t\t\t*d: 删 除 学 生 信 息*\n" << "\t\t\t*a: 增 加 学 生 信 息*\n" << "\t\t\t*q: 退 出*************\n"; cin >> choice; if(choice>=65&&choice<=90) choice +=32; switch(choice) { case 'i':set();break; case 's':s

37、kim(s);break; case 'm':manage();break; case 'f':find();break; case 'c':correct();break; case 'd':del();break; case 'a':add();break; case 'q':exit(0);break; default:cout << "操作错误!" << endl;break; } } return 0; } 截图: 写入:void set(); 查看:void skim(); 统计:void manage();

38、 姓名查找:void find(); 学号查找:void find(); 修改:void correct(); 修改后再查看 删除:void del(); 增加:void add(); 退出: 七、总结心得 1:对IO流的操作中,要时刻注意是否打开的文本在用完后是否关闭了,否则很容易出错。 2:对IO流指针的赋值和流对象的引用要谨慎,否则会导致数据传输的乱码和错误。就比如这个程序中,刚开始时的查找信息函数由于流对象f的传输不仔细,把f引用到输出函数后不知道在哪里出错了,导致了查找并判断信息是否符合要求时,输出的数据并不是要查找的数据。 3. 对输入相同数据的删除处理不好会出现乱码。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服