写在大二的软考之后

这周本就是考试周,昨天11.9也是全国软考的日子。

想起来我大概是8月15号左右,决定参加今天十一月份的软考的。现在想想当初莽撞的很。可能我没有一个说走就走的旅行。但是对于其他的事,说干就干的情况还是蛮多的。比如暑假时候去北大。。当时也是脑袋一热就去了。这是我的缺点,也是我的优点。。

试考完了,结果我不确定。上午好多也是不懂,但也以一种自己认为合理的逻辑推理出来了。上午呢,感觉计算机组成原理和设计模式确实薄弱。策略模式本来选了后来改了。。。下午总体感觉比上午轻松,只是那道c语言的算法题,我是基本上全蒙的。。汗颜啊。枉费我曾经花过那么多时间去ACM。。。不过这几个月我看了很多软考的知识点,唯独忽略了数据结构和算法。因为我的自负吧,呵呵。。。应该是自大。。。以为软考的算法要比acm简单太多,故没有去花时间。。

不管怎么说,即便是两个月后,我得知我没有通过软考,我也不会太遗憾,太伤心,因为通过准备这个考试,我确实学到了很多东西,因为软考,我真的认识到、了解到太多太多的东西,解开了我许多的疑惑。大大加快了我学习计算机的步伐。。因为软考,我第一次看数据库。因为软考,我第一次学计算机网络,因为软考,我了解了软件工程,体会了面向对象的思想和原则,意识到了设计模式的强大。因为软考,我明白了uml是个什么东西。因为软考,我去尝试并努力地理解计算机底层。。因为软考,我终于搞懂图片分辨率、像素点和图片存储空间的关系。因为软考,我开始发掘对网络通信的兴趣,试着去了解协议,也终于明白了,快播的(qvod协议)的强大,明白了p2p是peer to peer而不是point to point,明白了p2psearcher的原理是在使用电骡(电驴)的ed2k和kad协议。因为软考,我了解到的还有软件开发方法学,还有敏捷开发、极限编程(最有趣的是其中的结对编程),还有知识产权,还有考前两天才明白的dfd图。呵呵,还有,还有,还有很多。。。

所以即使我最后没有通过软考,我这笔买卖也是稳赚不赔。。

我昨天是五点四十起床,没有抱怨,没有抵触,没有不情愿。下了楼,发现门关着,刷卡也不开。。然后和寝室楼的老大爷磨蹭了一会我才开了门出去。坐公交的时候,到了市公交总公司站,下了225.本来应该像往常一样坐6路的。但是等了一会还是不出现。我沉不住气了,5路有很多,看看5路的路线也是去南昌大学青山湖校区的。就坐上去了。谁知它开到火车站就提示说到了终点站了。。坑啊,难道我看错方向了。越赶时间,越出乱子。这难道就是传说中的“墨菲定律”?.百度地图查查,火车站,10路可以去南大青山湖。没想到,我站的地方就是10路的候车点。一会就上车了。最后到了软件学院,比计划还要早个十分钟左右。或许是天早没有堵车的缘故。。好事多磨。。

题外话是,在10路公交车上,我发现自己新买的瑞士军刀*威戈的包包破了个洞。我好桑心,花了268买个包就是因为不想再用几十块钱的烂包了(上个包40元,没多久,下面就开线了),这个两百多的包下面又破了。。。我自己真是难以原谅自己。四十块的破旧破了。这个有什么理由破。想退货,但是发票被自己丢掉了。。呜呜。自己被坑了。。顿时心情到了谷底。。。后来发现,种种迹象表明是一只老鼠所为。。为了偷吃我包包里的面包,咬破了我的包。。。该死的老鼠。不过心情较之刚才好了许多。我想原因应该是这样:起初我以为是包的质量问题,而破洞。我就是为了要个不容易破的高质量的包而花了268大洋。结果还破了,这就怪厂家坑我,我自己也傻,把发票丢了,更蠢到家,不过后来发现是老鼠所为,我就释然了,原来责任不在我身上,厂家没有问题,这个包质量本也是好的,我没有被坑。错在老鼠身上。呵呵。虽然结果是一样的。破了的洞还是破着,但是心情却不一样了。。。

软件学院门前还有很多大人,或者称之为已工作人士。。当然他们是考的高级,。。。高贵的系统架构师。。我是中级。。

未来大门已经打开,待我缓步向前。。

以下是一些适合大二学生的C++项目: ### 1. 图书管理系统 该项目可以帮助学生熟悉面向对象编程的概念。可以设计类来表示图书、读者和管理员,实现图书的添加、删除、借阅、归还等功能,同时可以使用文件操作来存储和读取图书及读者信息。 ```cpp #include <iostream> #include <fstream> #include <vector> class Book { public: std::string title; std::string author; bool isBorrowed; Book(const std::string& t, const std::string& a) : title(t), author(a), isBorrowed(false) {} }; class Library { private: std::vector<Book> books; public: void addBook(const Book& book) { books.push_back(book); } void displayBooks() { for (const auto& book : books) { std::cout << "Title: " << book.title << ", Author: " << book.author; if (book.isBorrowed) { std::cout << " (Borrowed)" << std::endl; } else { std::cout << " (Available)" << std::endl; } } } }; int main() { Library library; Book book1("C++ Primer", "Stanley Lippman"); library.addBook(book1); library.displayBooks(); return 0; } ``` ### 2. 简单的计算器 这个项目可以锻炼学生对基本数据类型、运算符和控制结构的使用。可以实现加、减、乘、除等基本运算,还可以扩展到支持括号和复杂表达式的计算。 ```cpp #include <iostream> double add(double a, double b) { return a + b; } double subtract(double a, double b) { return a - b; } double multiply(double a, double b) { return a * b; } double divide(double a, double b) { if (b != 0) { return a / b; } std::cout << "Error: Division by zero!" << std::endl; return 0; } int main() { double num1, num2; char op; std::cout << "Enter first number: "; std::cin >> num1; std::cout << "Enter operator (+, -, *, /): "; std::cin >> op; std::cout << "Enter second number: "; std::cin >> num2; double result; switch (op) { case '+': result = add(num1, num2); break; case '-': result = subtract(num1, num2); break; case '*': result = multiply(num1, num2); break; case '/': result = divide(num1, num2); break; default: std::cout << "Invalid operator!" << std::endl; return 1; } std::cout << "Result: " << result << std::endl; return 0; } ``` ### 3. 贪吃蛇游戏 此项目能让学生了解图形界面编程和游戏开发的基本原理。可以使用简单的控制台界面或图形库(如 SFML)来实现。通过控制蛇的移动方向,吃食物增长身体,避免撞到墙壁或自己的身体。 ```cpp #include <iostream> #include <vector> #include <cstdlib> #include <ctime> #include <conio.h> #include <windows.h> #define WIDTH 20 #define HEIGHT 20 struct Point { int x, y; }; std::vector<Point> snake; Point food; int score; bool gameOver; void setup() { gameOver = false; score = 0; snake.push_back({WIDTH / 2, HEIGHT / 2}); srand(time(NULL)); food = {rand() % WIDTH, rand() % HEIGHT}; } void draw() { system("cls"); for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { bool isSnakePart = false; for (const auto& part : snake) { if (part.x == j && part.y == i) { isSnakePart = true; break; } } if (isSnakePart) { std::cout << "O"; } else if (food.x == j && food.y == i) { std::cout << "F"; } else { std::cout << " "; } } std::cout << std::endl; } std::cout << "Score: " << score << std::endl; } void input() { if (_kbhit()) { switch (_getch()) { case 'a': // Move left break; case 'd': // Move right break; case 'w': // Move up break; case 's': // Move down break; case 'x': gameOver = true; break; } } } void logic() { // Snake movement logic // Check if snake eats food // Check if snake hits the wall or itself } int main() { setup(); while (!gameOver) { draw(); input(); logic(); Sleep(100); } return 0; } ``` ### 4. 学生成绩管理系统 学生可以运用结构体或类来存储学生信息和成绩,实现成绩的录入、查询、排序等功能。还可以使用文件操作来保存和读取学生数据。 ```cpp #include <iostream> #include <fstream> #include <vector> #include <algorithm> struct Student { std::string name; int id; double score; }; void addStudent(std::vector<Student>& students, const Student& student) { students.push_back(student); } void displayStudents(const std::vector<Student>& students) { for (const auto& student : students) { std::cout << "Name: " << student.name << ", ID: " << student.id << ", Score: " << student.score << std::endl; } } bool compareByScore(const Student& a, const Student& b) { return a.score > b.score; } void sortStudentsByScore(std::vector<Student>& students) { std::sort(students.begin(), students.end(), compareByScore); } void saveToFile(const std::vector<Student>& students, const std::string& filename) { std::ofstream file(filename); if (file.is_open()) { for (const auto& student : students) { file << student.name << " " << student.id << " " << student.score << std::endl; } file.close(); } } std::vector<Student> loadFromFile(const std::string& filename) { std::vector<Student> students; std::ifstream file(filename); if (file.is_open()) { std::string name; int id; double score; while (file >> name >> id >> score) { students.push_back({name, id, score}); } file.close(); } return students; } int main() { std::vector<Student> students; addStudent(students, {"Alice", 1, 85.5}); addStudent(students, {"Bob", 2, 90.0}); displayStudents(students); sortStudentsByScore(students); std::cout << "Sorted by score:" << std::endl; displayStudents(students); saveToFile(students, "students.txt"); std::vector<Student> loadedStudents = loadFromFile("students.txt"); std::cout << "Loaded from file:" << std::endl; displayStudents(loadedStudents); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值