第10讲 结构 单元作业

这篇具有很好参考价值的文章主要介绍了第10讲 结构 单元作业。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 

有一组关于学生成绩的信息,编写函数max,该函数返回值为分数最高的学生的信息(包括学号和分数)。再编写主函数对其进行调用并输出最高分者的信息。假设结构类型定义为:

struct student

{

  char  *num;

  int   score;

};

提示:num定义为指针类型,注意向其复制内容之前要先为其申请空间。

 

yzy's version:

第10讲 结构 单元作业第10讲 结构 单元作业
 1 # include <iostream>
 2 #define N 256
 3 using namespace std;
 4 struct student
 5 {
 6     char* num;
 7     int score;
 8 };
 9 struct student max(struct student s[N],int n)
10 {
11     struct student t = {0,s[0].score };
12     t.num = (char*)malloc(sizeof(char));
13     for (int i = 0; i < n; i++)
14     {
15         if (s[i].score > t.score)
16         {
17             t.score = s[i].score;
18             t.num = s[i].num;
19         }
20     }
21     return t;
22 }
23 int main()
24 {
25     struct student s[N] = {}, t = {};
26     int n,i;
27     t.num = (char*)malloc(sizeof(char));
28     cout << "输入学生数:" << endl;
29     /*char a[N];
30     s->num = a;*/
31     cin >> n;
32     cout << "输入各学生序号及成绩:" << endl;
33     for (i = 0; i < n; i++)
34     {
35         s[i].num = (char*)malloc(sizeof(char));
36         cin >> s[i].num >> s[i].score;
37     }
38     t=max(s,n);
39     cout << "最高分者序号为" << *t.num <<",分值为:" << t.score << endl;
40     system("pause");
41     return 0;
42 }
View Code

  good version:

第10讲 结构 单元作业第10讲 结构 单元作业
  1 #include <iostream>
  2 
  3 
  4 
  5 using namespace std;
  6 
  7 
  8 
  9 struct Student {
 10 
 11     char* num;
 12 
 13     int score;
 14 
 15 };
 16 
 17 
 18 
 19 Student max(const Student* students, int count) {
 20 
 21     if (count <= 0) {
 22 
 23         cerr << "Error: Empty student array" << endl;
 24 
 25         exit(EXIT_FAILURE);
 26 
 27     }
 28 
 29 
 30 
 31     const Student* maxStudent = &students[0];
 32 
 33 
 34 
 35     for (int i = 1; i < count; ++i) {
 36 
 37         if (students[i].score > maxStudent->score) {
 38 
 39             maxStudent = &students[i];
 40 
 41         }
 42 
 43     }
 44 
 45 
 46 
 47     return *maxStudent;
 48 
 49 }
 50 
 51 
 52 
 53 int main() {
 54 
 55     const int MAX_STUDENTS = 100;
 56 
 57 
 58 
 59     int numStudents;
 60 
 61     cout << "Enter the number of students: ";
 62 
 63     cin >> numStudents;
 64 
 65 
 66 
 67     if (numStudents <= 0 || numStudents > MAX_STUDENTS) {
 68 
 69         cerr << "Invalid number of students" << endl;
 70 
 71         return EXIT_FAILURE;
 72 
 73     }
 74 
 75 
 76 
 77     Student* students = new Student[numStudents];
 78 
 79 
 80 
 81     for (int i = 0; i < numStudents; ++i) {
 82 
 83         students[i].num = new char[20]; // Assuming a maximum length of 19 for the student number
 84 
 85         cout << "Enter student " << i + 1 << " information:" << endl;
 86 
 87         cout << "Student Number: ";
 88 
 89         cin >> students[i].num;
 90 
 91         cout << "Score: ";
 92 
 93         cin >> students[i].score;
 94 
 95     }
 96 
 97 
 98 
 99     Student highestScoreStudent = max(students, numStudents);
100 
101 
102 
103     cout << "Student with the highest score:" << endl;
104 
105     cout << "Student Number: " << highestScoreStudent.num << endl;
106 
107     cout << "Score: " << highestScoreStudent.score << endl;
108 
109 
110 
111     for (int i = 0; i < numStudents; ++i) {
112 
113         delete[] students[i].num;
114 
115     }
116 
117 
118 
119     delete[] students;
120 
121 
122 
123     system("pause");
124 
125 
126 
127     return 0;
128 
129 }
View Code

 

2. 编写程序,定义一个日期结构变量,计算某日期是本年度的第几天。提示:为简单起见,可定义一个存放12个月中每个月总天数的数组。

yzy's version:

第10讲 结构 单元作业第10讲 结构 单元作业
 1 # include <iostream>
 2 #define N 256
 3 using namespace std;
 4 struct time
 5 {
 6     int month;
 7     int date;
 8 };
 9 int change(struct time t,bool run)
10 {
11     int i,num=0, a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }, b[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
12     if (run == 1)
13         for (i = 0; i < t.month-1; i++)
14             num += b[i];
15     else
16         for (i = 0; i < t.month-1; i++)
17             num += a[i];
18     num += t.date;
19     return num;
20 }
21 int main()
22 {
23     struct time t;
24     bool run;
25     int num;
26     cout << "今年是不是闰年?(是:1;否:0)" << endl;
27     cin >> run;
28     cout << "输入一日期(月/日)" << endl;
29     cin >> t.month >> t.date;
30     num = change(t, run);
31     cout << "这是今年的第" << num << "" << endl;
32     system("pause");
33     return 0;
34 }
View Code

  good version:

第10讲 结构 单元作业第10讲 结构 单元作业
 1 #include <iostream>
 2 
 3 
 4 
 5 using namespace std;
 6 
 7 
 8 
 9 struct Date {
10 
11     int year;
12 
13     int month;
14 
15     int day;
16 
17 };
18 
19 
20 
21 int dayOfYear(const Date& date) {
22 
23     const int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
24 
25 
26 
27     int totalDays = 0;
28 
29 
30 
31     for (int i = 1; i < date.month; ++i) {
32 
33         totalDays += daysInMonth[i];
34 
35     }
36 
37 
38 
39     totalDays += date.day;
40 
41 
42 
43     // Adjust for leap year
44 
45     if ((date.year % 4 == 0 && date.year % 100 != 0) || (date.year % 400 == 0 && date.month > 2)) {
46 
47         totalDays++;
48 
49     }
50 
51 
52 
53     return totalDays;
54 
55 }
56 
57 
58 
59 int main() {
60 
61     Date inputDate;
62 
63 
64 
65     cout << "Enter date (year month day): ";
66 
67     cin >> inputDate.year >> inputDate.month >> inputDate.day;
68 
69 
70 
71     int result = dayOfYear(inputDate);
72 
73 
74 
75     cout << "The day of the year for the given date is: " << result << endl;
76 
77 
78 
79     system("pause");
80 
81 
82 
83     return 0;
84 
85 }
View Code

 

 

3. 使用结构数组输入10本书的名称和单价,调用函数按照书名的字母顺序序进行排序,在主函数输出排序结果。

yzy's version:

第10讲 结构 单元作业第10讲 结构 单元作业
 1 #include <iostream>
 2 #define N 5
 3 using namespace std;
 4 struct book
 5 {
 6     char name[100];
 7     int price;
 8 };
 9 struct book *sort(struct book b[])
10 {
11     int i, j;
12     struct book a;
13     for(i=0;i<N-1;i++)
14         for (j = 0; j < N - 1 - i; j++)
15         {
16             //for(int z=0; b[j].name[z] != '\0' && b[j + 1].name[z] != '\0';z++)
17             if (strcmp(b[j].name, b[j+1].name) > 0)
18             {
19                 a = b[j];
20                 b[j] = b[j + 1];
21                 b[j + 1] = a;
22             }
23         }
24     struct book* p = b;
25     return p;
26 }
27 int main()
28 {
29     struct book b[N],*p;
30     int i;
31     for (i = 0; i < N; i++)
32         cin >> b[i].name >> b[i].price;
33     p = sort(b);
34     cout << "排序后结果:" << endl;
35     for (i = 0; i < N; i++)
36         cout << p[i].name << ' ' << p[i].price << endl;
37     system("pause");
38     return 0;
39 }
View Code

 good version:

第10讲 结构 单元作业第10讲 结构 单元作业
 1 #include <iostream>
 2 
 3 #include <cstring>
 4 
 5 #include <algorithm>
 6 
 7 
 8 
 9 using namespace std;
10 
11 
12 
13 struct Book {
14 
15     char title[100];
16 
17     double price;
18 
19 };
20 
21 
22 
23 bool compareBooks(const Book& book1, const Book& book2) {
24 
25     return strcmp(book1.title, book2.title) < 0;
26 
27 }
28 
29 
30 
31 int main() {
32 
33     const int NUM_BOOKS = 10;
34 
35     Book books[NUM_BOOKS];
36 
37 
38 
39     for (int i = 0; i < NUM_BOOKS; ++i) {
40 
41         cout << "Enter details for book " << i + 1 << ":" << endl;
42 
43         cout << "Title: ";
44 
45         cin.getline(books[i].title, sizeof(books[i].title));
46 
47         cout << "Price: ";
48 
49         cin >> books[i].price;
50 
51         cin.ignore(); // Ignore the newline character left in the input buffer
52 
53     }
54 
55 
56 
57     sort(books, books + NUM_BOOKS, compareBooks);
58 
59 
60 
61     cout << "Books sorted by title:" << endl;
62 
63     for (int i = 0; i < NUM_BOOKS; ++i) {
64 
65         cout << "Title: " << books[i].title << ", Price: " << books[i].price << endl;
66 
67     }
68 
69 
70 
71     system("pause");
72 
73 
74 
75     return 0;
76 
77 }
View Code

 文章来源地址https://www.toymoban.com/news/detail-758485.html

到了这里,关于第10讲 结构 单元作业的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java学生成绩管理信息系统

    学生成绩管理信息系统是一个基于Java Swing的桌面应用程序,旨在方便学校、老师和学生对学生成绩进行管理和查询。本文档将提供系统的详细说明,包括系统特性、使用方法和技术实现。 添加学生信息:录入学生基本信息,包括学号、姓名、班级等。 编辑学生信息:修改学

    2024年01月18日
    浏览(52)
  • C语言:输入学生信息(学号姓名成绩)并按成绩高低升序输出

    定义学生结构体Student(含学号、姓名、成绩)和排序函数sort,该函数使用冒泡排序法按成绩升序排序。在主函数中输入5个学生的学号、姓名和成绩,调用sort函数对学生数据排序,最后输出排序后的学生全部信息。 结构体数组的元素输入输出。 结构体作为参数传递。 冒泡排序

    2024年02月12日
    浏览(38)
  • C++之学生成绩信息管理系统

    为了加深对自己所学到的C++相关知识的理解,熟悉C++程序设计语言编程以及调试的基本技能,锻炼自己利用C++语言程序设计进行简单软件设计的基本思路和方法,提高运用高级语言解决实际问题的能力。我用C++做了一个学生成绩信息管理系统,下面介绍它所实现的功能以及具

    2024年02月03日
    浏览(38)
  • 学生成绩管理系统(合并文件,查找,总分排序,保存补考学生信息)

    目录 题目及要求: 录入学生成绩信息到链表中 合并文件 直接插入排序(总分降序) 冒泡排序(总分降序) 顺序查找(名字查找) 二分查找(名字查找)  这里是先按字母首字母排序再查找 保存不及格学生到文件中 现有学生成绩信息文件 1(1.txt),内容如下(同学自己补

    2024年02月10日
    浏览(49)
  • android课程设计-学生成绩管理系统(Android期末作业,Android课设,AndroidStudio毕业设计)

    博主介绍: 本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮

    2024年02月02日
    浏览(50)
  • Java基础——学生成绩信息管理系统(简单实现)

    1、 定义一个学生类 Student,包含姓名、成绩信息; 2、使用 ArrayList集合存储学生对象; 3、 对集合中的元素进行增删查改的操作。 学生类可以包含姓名、成绩、学号、年龄等等,这里只包含了前两项学生类属性。 在该类中定义了简单的增、删、查、改的方法。 其中,遍历集

    2024年02月11日
    浏览(36)
  • C语言学生成绩信息管理系统(超详细版)

    主题:一个简易成绩管理系统 功能介绍: 1.以文本形式存储学生信息 2.对以存信息进行   1. 插入 2. 修改3. 删除  4.查询  5.成绩数字特征 目录 一:分析 二:查询  三:菜单 四:初始化函数 五:插入函数 六:修改函数 七:删除函数 八:数字特征 九:显示函数 要进行 插入

    2024年02月12日
    浏览(46)
  • 学生信息及成绩管理系统(Python+Sqlite)数据库版

    目录 功能模块: 运行功能演示:  具体代码实现过程: 创建sqlite 数据库  Python代码 引入os和sqlite3包: 初始化数据库: 连接数据库: 关闭并提交数据到数据库: 查询数据并显示: 添加并插入数据到数据库: 更新数据到数据库: 删除数据并更新数据库:  导入和导出数据

    2024年02月04日
    浏览(47)
  • 基于mysql+jdbc+java swing的学生成绩信息管理系统

    来csdn也有两年了,在这期间学了很多的知识,也跟着许多的大神做了几个小项目。但自己也在想什么时候能够有个自己的项目,之前在学校做过一个基于集合存储数据的学生信息管理系统,现在想着改进一下,于是趁着暑假做了一个小项目吧(基于mysql+jdbc+java swing的学生成绩

    2024年02月04日
    浏览(55)
  • 数据结构课程设计:学生成绩管理系统

    目  录 第一章   需求分析 第二章 概要设计 第三章 详细设计 第四章 测试报告 第五章 安装及使用 第六章 项目总结 第七章 源码 一.需求分析        学生成绩管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及学生家长来说都至关重要,所以一个良好

    2024年02月02日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包