自学C++之自定义数据类型与自定义类之数组使用4例
2014-05-06 16:04
344 查看
2014年05月26日→星座:双子座
二〇一四年四月廿八
甲午〖马〗,己巳月,丁酉日,戊申时
今属:火;五行:木火土金;缺:水。
纳音五行:沙中金。
药王菩萨圣诞纪念日
都是百度知道的答复.
之一:
1、 用数组和自定义函数求某班的及格人数和及格人的平均分(用全局变量)。
2、 用结构描述一个学生的信息,包含:学号、姓名、成绩。从键盘输入一批学生(人数自定)的数据,统计不及格的人数,并将不及格人员的信息输出。
设计完成可后优化:也可依据输出信息是否有特定次序而定是否使用一个循环去完成。
主函数
之二:来自百度知道的提问.
主函数
之三:
主函数:
另一种写法留给练习了
之四:只用有添加,修改,显示,查找,删除这五个功能就行,学生信息有学号,姓名,年龄,性别,住址,电话就行,不要太复杂了,能注释一下更好,可加分!!
主函数调用:
2014年05月26日→星座:双子座
二〇一四年四月廿八
甲午〖马〗,己巳月,丁酉日,戊申时
今属:火;五行:木火土金;缺:水。
纳音五行:沙中金。
药王菩萨圣诞纪念日
都是百度知道的答复.
之一:
1、 用数组和自定义函数求某班的及格人数和及格人的平均分(用全局变量)。
2、 用结构描述一个学生的信息,包含:学号、姓名、成绩。从键盘输入一批学生(人数自定)的数据,统计不及格的人数,并将不及格人员的信息输出。
struct 学生信息类{ int 学号; string 姓名; int 成绩; }; void 学生信息处理(学生信息类 班级信息[], int 人数) { float 平均分数(0.0); int 计数(0); do { 平均分数 += 班级信息[计数].成绩; 计数++; } while (人数 > 计数); cout << "平均分数:" << 平均分数 / 人数 << endl; 计数 = 0; do { if (班级信息[计数].成绩 < 60) cout << "不及格姓名:" << 班级信息[计数].姓名 << endl; 计数++; } while (人数 > 计数); };
设计完成可后优化:也可依据输出信息是否有特定次序而定是否使用一个循环去完成。
void 学生信息处理(学生信息类 班级信息[], int 人数) { float 平均分数(0.0); int 计数(0); do { if (班级信息[计数].成绩 < 60) cout << "不及格姓名:" << 班级信息[计数].姓名 << endl; 平均分数 += 班级信息[计数].成绩; 计数++; } while (人数 > 计数); cout << "平均分数:" << 平均分数 / 人数 << endl; };
主函数
int _tmain(int argc, _TCHAR* argv[]) { 起始: int 成绩(0), 学号(0), 人数(0), 计数(0); string 姓名("");/*C/C++最好养成初始化习惯*/ 学生信息类 班级信息[180]{ { 0 } };/*初始化第一个元素int为0,之下初始化全部在需要时参考,可以不写使用默认初始化int为负值*/ do { 班级信息[计数] = { { 0 } }; 计数++; } while (计数 < 180); cout << "请输入统计人数:"; cin >> 人数; cout << "请输入学生信息:" << endl; 计数 = 0;/*被使用后另一个使用前清零,否则影响程序正确运行,除了下例需要连续性外*/ do { cin >> 学号 >> 姓名 >> 成绩; 班级信息[计数] = { 学号, 姓名, 成绩 }; 计数++; } while (人数 > 计数); 学生信息处理(班级信息, 人数); }
之二:来自百度知道的提问.
struct 菜单数据{ string 菜名; int 价格; }; class 电话食物 { public: void 显示定餐列表(int 数量, string 顾客[], int 菜品[], 菜单数据 菜单[]); void 显示食物列表(菜单数据 菜单[]); 电话食物() : 列(0), 表(0){} private: int 列, 表; }; void 电话食物::显示食物列表(菜单数据 信息[]) { int 计数(1); cout << "荤菜类:" << endl; do { printf("%2d.", 计数); cout << 信息[计数 - 1].菜名 << " "; if (计数 % 3 == 0)cout << endl; 计数++; } while (计数 <= 18); cout << "素菜类:" << endl; do { printf("%2d.", 计数); cout << 信息[计数 - 1].菜名 << " "; if (计数 % 3 == 0)cout << endl; 计数++; } while (计数 <= 30); cout << "汤 类:" << endl; do { printf("%2d.", 计数); cout << 信息[计数 - 1].菜名 << " "; 计数++; } while (计数 <= 34); cout << endl << "面食类:" << endl; do { printf("%2d.", 计数); cout << 信息[计数 - 1].菜名 << " "; 计数++; } while (计数 <= 38); cout << endl << endl; printf("%2d.", 计数); cout << 信息[计数 - 1].菜名; }; void 电话食物::显示定餐列表(int 预订数量, string 顾客信息[], int 菜品信息[], 菜单数据 菜单[]) { int 合计(0); cout << "您定餐的信息如下:" << endl; do { --预订数量; 合计 += 菜单[菜品信息[预订数量]].价格; cout << 菜单[菜品信息[预订数量]].菜名<< endl; } while (预订数量 > 0); cout << "总价:" << 合计 << "元。" << endl; cout << "您的姓名:" << 顾客信息[0] << endl; cout << "您的电话:" << 顾客信息[1] << endl; cout << "用餐人数:" << 顾客信息[2] << endl; cout << "就餐时间:" << 顾客信息[3] << endl; cout << "感谢您惠顾☆☆☆☆☆☆餐馆!" << endl; };
主函数
int _tmain(int argc, _TCHAR* argv[]) { 电话食物 我的食物{}; 菜单数据 菜单信息[39] = { { "清 蒸 鱼 - 10元", 10 }, { "剁椒鱼头 - 10元", 10 }, { "红烧带鱼 - 10元", 10 }, { "清蒸鲈鱼 - 10元", 10 }, { "红烧鲫鱼 - 10元", 10 }, { "红烧鲤鱼 - 10元", 10 }, { "可乐鸡翅 - 30元", 30 }, { "宫保鸡丁 - 30元", 30 }, { "红烧鸡翅 - 30元", 30 }, { "泡椒凤爪 - 30元", 30 }, { "红烧鸡块 - 30元", 30 }, { "香菇炖鸡 - 30元", 30 }, { "油焖大虾 - 40元", 40 }, { "清炒虾仁 - 40元", 40 }, { "红烧排骨 - 40元", 40 }, { "蒸 排 骨 - 40元", 40 }, { "排 骨 - 40元", 40 }, { "蒜香排骨 - 40元", 40 }, { "麻辣豆腐 - 10元", 10 }, { "凉拌豆腐 - 10元", 10 }, { "酸辣土豆 - 10元", 10 }, { "凉拌土豆 - 10元", 10 }, { "蔬菜沙拉 - 10元", 10 }, { "煸豆松仁 - 10元", 10 }, { "玉米干煸 - 10元", 10 }, { "四 季 豆 - 10元", 10 }, { "清炒山药 - 10元", 10 }, { "蚝油生菜 - 10元", 10 }, { "拔丝苹果 - 10元", 10 }, { "拔丝地瓜 - 10元", 10 }, { "海 带 汤 - 10元", 10 }, { "鲫 鱼 汤 - 10元", 10 }, { "鱼 头 汤 - 10元", 10 }, { "乌 鸡 汤 - 10元", 10 }, { "炸 酱 面 - 15元", 15 }, { "凉 拌 面 - 15元", 15 }, { "牛 肉 面 - 15元", 15 }, { "刀 削 面 - 15元", 15 }, { "米饭每碗 - 01元", 1 } }; int 选择(0), 计数(0), 菜品[39]{ 0 }; string 顾客[4]{""}; cout << "*********欢迎光临☆☆☆☆☆☆餐馆*********" << endl; 我的食物.显示食物列表(菜单信息); cout << endl << endl << "请选择您需要的服务(输入序号即可):" << endl; cout << "【1】填写订餐列表 【2】查看订餐情况" << endl; cout << "【3】删除订单 【4】在线刷卡" << endl; cin >> 选择; if (选择 == 1) { cout << "请选择您所需要菜品(输入序号),选择完成输入99结束:" << endl; do { cin >> 选择; if (选择 == 99)break; if (选择 > 39) { cout << "错误?请重新输入正确的序号!" << endl; continue; } else { 菜品[计数] = 选择; 计数++; } } while (选择 <= 39); } cout << "请输入您的姓名:" << endl; cin >> 顾客[0]; cout << "请输入您的电话:" << endl; cin >> 顾客[1]; cout << "请输入您用餐的人数:" << endl; cin >> 顾客[2]; cout << "请输入就餐时间:" << endl; cin >> 顾客[3]; 我的食物.显示定餐列表(计数, 顾客, 菜品, 菜单信息); }
之三:
struct 学生信息类{ string 学号; string 姓名; int 成绩1; int 成绩2; int 成绩3; int 成绩4; int 成绩5; int 成绩6; int 成绩7; int 成绩8; int 成绩9; }; struct 学生信息组类{ string 学号; string 姓名; int 成绩[9]; }; void 学生信息处理(学生信息类 班级信息[], int 人数) { int 计数(0); float 分数(0.0); cout << "学号 姓名 801 802 803 804 805 806 807 808 809 总学分" << endl; do { 分数 = 班级信息[计数].成绩1 + 班级信息[计数].成绩2 + 班级信息[计数].成绩3 + 班级信息[计数].成绩4 + 班级信息[计数].成绩5 + 班级信息[计数].成绩6 + 班级信息[计数].成绩7 + 班级信息[计数].成绩8 + 班级信息[计数].成绩9; cout << 班级信息[计数].学号 << '\t' << 班级信息[计数].姓名 << '\t' << 班级信息[计数].成绩1 << '\t' << 班级信息[计数].成绩2 << '\t' << 班级信息[计数].成绩3 << '\t' << 班级信息[计数].成绩4 << '\t' << 班级信息[计数].成绩5 << '\t' << 班级信息[计数].成绩6 << '\t' << 班级信息[计数].成绩7 << '\t' << 班级信息[计数].成绩8 << '\t' << 班级信息[计数].成绩9 << '\t' << 分数 << endl; 计数++; } while (人数 > 计数); };
主函数:
学生信息类 信息[2] = {}; int 成绩[9], 计数(0); string 姓名(""), 学号(""); do { cin >> 学号 >> 姓名 >> 成绩[0] >> 成绩[1] >> 成绩[2] >> 成绩[3] >> 成绩[4] >> 成绩[5] >> 成绩[6] >> 成绩[7] >> 成绩[8]; 信息[计数] = { 学号, 姓名, 成绩[0], 成绩[1], 成绩[2], 成绩[3], 成绩[4], 成绩[5], 成绩[6], 成绩[7], 成绩[8] }; } while (++计数 < 2); 学生信息处理(信息, 2); //学生信息组类 信息组[2] = {}; //int 成绩组(0), 计数(0); string 姓名(""), 学号(""); //do //{ // cin >> 学号 >> 姓名; // 信息组[计数] = { 学号, 姓名 }; // do // { // cin >> 信息组[计数].成绩[成绩组]; // } while (++成绩组 < 9); // 成绩组 = 0; //} while (++计数 < 2);
另一种写法留给练习了
之四:只用有添加,修改,显示,查找,删除这五个功能就行,学生信息有学号,姓名,年龄,性别,住址,电话就行,不要太复杂了,能注释一下更好,可加分!!
struct 学生个人信息类{ string 学号; string 姓名; int 年龄; string 性别; string 住址; int 电话; };
主函数调用:
学生个人信息类 学生个人信息[1]{}; std::vector<学生个人信息类>学生个人信息组; std::cin >> 学生个人信息[0].学号 >> 学生个人信息[0].姓名 >> 学生个人信息[0].性别 >> 学生个人信息[0].年龄 >> 学生个人信息[0].电话 >> 学生个人信息[0].住址; 学生个人信息组.push_back(学生个人信息[0]);/*添加*/ 学生个人信息组.push_back(学生个人信息[0]);/*添加*/ std::vector<学生个人信息类>::iterator i; i = 学生个人信息组.end(); 学生个人信息[0].学号 = "002";/*修改*/ 学生个人信息组.insert(i, 学生个人信息[0]);/*插入*/ std::vector<学生个人信息类>::iterator s = 学生个人信息组.begin(); 学生个人信息组.erase(s);/*删除*/ int size = 学生个人信息组.size(); for (int a = 0; a < size;a++) if (学生个人信息组.at(a).学号 == "001") { std::cout << 学生个人信息组.at(a).学号 << '\t' << 学生个人信息组.at(a).姓名 << '\t' << 学生个人信息组.at(a).性别 << '\t' << 学生个人信息组.at(a).年龄 << '\t' << 学生个人信息组.at(a).电话 << '\t' << 学生个人信息组.at(a).住址 << std::endl;/*输出和查找,写一个简单的就不用容器适配器写了*/ 学生个人信息组.at(a).学号 = "004";/*修改*/ }
相关文章推荐
- VC++ 下多媒体高精度定时器timeSetEvent
- 求1!+3!+5!+7!......C语言
- 【c++系列13】泛型链表类
- ubuntu 下CGI c语言 获取form表单的数据
- 编程练习------C/C++分别实现字符串与整数的转换
- 编程练习------C/C++分别实现字符串与整数的转换
- NSString 与C++ string字符串的互转
- c语言创建并输出二叉树
- C/C++ -- Gui编程 -- Qt库的使用 -- Qt5总结
- c++继承经典例子
- C++ Templates:深入模板基础
- LeetCode——Word Break II
- C++primer第八章课后变成练习的小问题
- __FUNCSIG__、__FUNCDNAME__、__FUNCTION__和__func__的区别和联系
- 【C语言天天练(四)】回调函数
- c++0x_warning.h:31:2: error
- c++构造函数和析构函数杂记
- 大津法 c++实现
- 读书笔记:C++ Primer系列(13)—— break、continue、goto语句
- C语言中system和exec的本质区别