以史为魂,铸文化脊梁:钱穆与他的学术坚守与家国情怀

钱穆,这位在中国近现代学术史上熠熠生辉的人物,于 1895 年 7 月 30 日出生在江苏无锡。他字宾四,晚号素书老人,斋号素书堂、素书楼,祖籍浙江临安,乃吴越太祖武肃王钱镠之后 。钱穆的一生,是为中国传统文化传承与弘扬不懈奋斗的一生,其在历史学、思想、教育等诸多领域造诣深厚,成为当之无愧的国学大师,与吕思勉、陈垣、陈寅恪并称为 “史学四大家” 。

钱穆的学术之路始于乡村教育。1912 年,年仅 18 岁的他便投身教育事业,在乡村担任小学教师,此后辗转厦门、无锡、苏州等地中学任教。尽管未曾接受过正规大学教育,钱穆凭借着对知识的强烈渴望与惊人的自学能力,在教学之余如饥似渴地阅读各类书籍,从《孟子》《史记》到乾嘉诸儒著作,广泛涉猎,为日后的学术研究奠定了坚实基础。1930 年,钱穆凭借《刘向歆父子年谱》一鸣惊人,经顾颉刚推荐,成功受聘为燕京大学国文讲师,就此踏入学术界,开启了辉煌的学术生涯。此后,他先后在燕京大学、北京大学、清华大学、北平师范大学等高校任教,讲授学术思想史,逐渐确立了自己在学术界的重要地位 。

《国史大纲》正是诞生于那风雨飘摇的抗日战争时期。1937 年,全面抗战爆发,北平沦陷,钱穆随北京大学南渡,一路颠沛流离至云南昆明。在西南联大任教期间,他亲眼目睹了战争的残酷、国土的沦丧、文化的损毁以及百姓的苦难,内心满是悲愤与忧虑 。

怀着 “中国人写中国最后一本史书” 的悲壮使命感,钱穆在昆明岩泉寺开始全身心投入《国史大纲》的撰写。他深知,在国家生死存亡之际,若不幸战败覆亡,至少要为后人留下一部能展现中国悠久历史与灿烂文明的史书,让中华民族的精神得以延续,激励后人复兴中华 。1939 年 6 月,经过钱穆废寝忘食的努力,《国史大纲》终于完稿,并于 1940 年 6 月由商务印书馆出版。

20 世纪中叶,中国社会深陷内忧外患、风雨飘摇的困境,西方思潮如汹涌浪潮般强势涌入,猛烈冲击着传统的文化与价值观,致使国内部分民众对本土历史文化的认同感大幅降低,民族精神呈现出涣散之态 。与此同时,国家面临着严峻的政治、经济和社会转型挑战,急需一种强大的精神力量来凝聚人心、激发斗志 。在此艰难时局下,钱穆先生怀着炽热的爱国情怀与强烈的使命感,以 “抗战精神” 为强大动力,毅然投身于《国史新论》的创作之中 。他深切意识到,国人对本国历史的陌生与疏离,已然成为民族精神萎靡、国家发展受阻的关键因素 。因而,他期望借由这部著作,为国人呈上一部系统且全面的中国通史,以此唤醒民众心底的民族意识与爱国热忱,重塑民族自信,增强民族凝聚力,助力国家冲破艰难险阻,实现复兴之梦 

《大学》直从诚意、正心、修身、齐家、治国、平天下一以贯之,而归宿到“一是皆以修身为本”。庄周亦说“内圣外王之道”。内圣即是诚意、正心、修身、齐家,外王即是治国、平天下。治国、平天下,亦只在实现人生文化理想。此种理想,必先能在各个人身上实现,始可在大群人身上实现。若这一套文化理想,并不能在各个人身上实现,哪有能在大群人身上实现之理?因为大群人只是各个人之集合,没有各个人,即不会有大群人。

人生本来平等,人人都可是圣人,治国平天下之最高理想,在使人人能成圣人。换言之,在使人人到达一种理想的文化人生之最高境界。这一工夫,先从各个人自身做起,此即所谓修身,所谓挈矩之道。大方小方一切方,总是一个方,一切人总是一个人。认识一方形,可以认识一切方形。一个人的理想境界,可以是每个人的理想境界。政治事业不过在助人促成这件事,修身则是自已先完成这件事。此理论由儒家特别提出,实则墨家、道家,在此点上并不与儒家相违异。此是中国传统思想一普通大规范,个人人格必先在普通人格中规定其范畴。圣人只是一个共通范畴,一个共通典型,只是理想中的普通人格在特殊人格上之实践与表现。圣人人格即是最富共通性的人格。

——钱穆先生《国史新论》

钱穆先生一生以笔为剑,以史为盾,在动荡不安的时代中,始终坚守着对中华文化的信仰与传承。无论是《国史大纲》中对民族精神的深情守护,还是《国史新论》里对传统智慧的深刻挖掘,都彰显着他 “为往圣继绝学,为万世开太平” 的宏愿。他的学术研究,不仅是对历史的回溯,更是对未来的启迪;他对修身与治国平天下关系的阐述,为后人指明了个人价值与家国责任交融的方向。钱穆先生的思想与著作,如同一座不朽的灯塔,照亮了中华文化前行的道路,激励着一代又一代国人在传承与创新中,找寻民族复兴的精神密码,让中国文化的璀璨光芒,在历史的长河中永恒闪耀。​

好的,那我开始编写代码。以下是完整的代码注释和功能实现。 ```C++ #include <iostream> #include <fstream> #include <vector> #include <algorithm> using namespace std; // 建立书籍类 class Book { public: Book() {} Book(int id, string name, string author, string type, string press, double price, int total, int rest) { this->id = id; this->name = name; this->author = author; this->type = type; this->press = press; this->price = price; this->total = total; this->rest = rest; } int getId() const { return id; } string getName() const { return name; } string getAuthor() const { return author; } string getType() const { return type; } string getPress() const { return press; } double getPrice() const { return price; } int getTotal() const { return total; } int getRest() const { return rest; } void setName(string name) { this->name = name; } void setAuthor(string author) { this->author = author; } void setType(string type) { this->type = type; } void setPress(string press) { this->press = press; } void setPrice(double price) { this->price = price; } void setTotal(int total) { this->total = total; } void setRest(int rest) { this->rest = rest; } private: int id; // 书籍编号 string name; // 书籍名称 string author; // 作者 string type; // 类型 string press; // 出版社 double price; // 价格 int total; // 总数 int rest; // 剩余数量 }; // 建立图书类型类 class BookType { public: BookType() {} BookType(int id, string type) { this->id = id; this->type = type; } int getId() const { return id; } string getType() const { return type; } void setType(string type) { this->type = type; } private: int id; // 图书类型编号 string type; // 图书类型名称 }; // 建立图书类 class Library { public: Library() {} // 初始化 void init(); // 添加书籍 void addBook(); // 修改书籍 void modifyBook(); // 删除书籍 void deleteBook(); // 查找书籍 void searchBook(); // 输出所有书籍信息 void printBooks(); // 按编号排序 void sortById(); // 按书名排序 void sortByName(); // 保存到文件 void saveToFile(); // 从文件中读取 void readFromFile(); private: vector<Book> books; // 书籍信息 vector<BookType> bookTypes; // 图书类型信息 }; void Library::init() { // 初始化图书类型信息 bookTypes.push_back(BookType(1, "计算机")); bookTypes.push_back(BookType(2, "文学")); bookTypes.push_back(BookType(3, "历史")); bookTypes.push_back(BookType(4, "经济")); bookTypes.push_back(BookType(5, "哲学")); bookTypes.push_back(BookType(6, "心理学")); bookTypes.push_back(BookType(7, "教育")); bookTypes.push_back(BookType(8, "体育")); bookTypes.push_back(BookType(9, "医学")); bookTypes.push_back(BookType(10, "法律")); // 初始化书籍信息 books.push_back(Book(1, "C++程序设计基础", "谭浩强", "计算机", "清华大学出版社", 69.0, 10, 10)); books.push_back(Book(2, "三体", "刘慈欣", "文学", "重庆出版社", 29.0, 20, 20)); books.push_back(Book(3, "明朝那些事儿", "当年明月", "历史", "湖南文艺出版社", 49.0, 15, 15)); books.push_back(Book(4, "经济学原理", "曼昆", "经济", "机械工业出版社", 99.0, 8, 8)); books.push_back(Book(5, "论语", "孔子", "哲学", "中华书局", 9.9, 30, 30)); books.push_back(Book(6, "心理学生活", "吉列", "心理学", "人民邮电出版社", 39.0, 12, 12)); books.push_back(Book(7, "小学数学竞赛", "王德忠", "教育", "人民教育出版社", 25.0, 18, 18)); books.push_back(Book(8, "篮球技术战术", "何勇", "体育", "北京体育大学出版社", 59.0, 5, 5)); books.push_back(Book(9, "内科学", "王振英", "医学", "人民卫生出版社", 129.0, 3, 3)); books.push_back(Book(10, "宪法", "钱穆", "法律", "北京大学出版社", 19.9, 25, 25)); } void Library::addBook() { int id, total, rest, typeId; string name, author, type, press; double price; cout << "请输入书籍编号:"; cin >> id; cout << "请输入书籍名称:"; cin >> name; cout << "请输入作者:"; cin >> author; cout << "请输入书籍类型(如:计算机):"; cin >> type; cout << "请输入出版社:"; cin >> press; cout << "请输入价格:"; cin >> price; cout << "请输入总数:"; cin >> total; cout << "请输入剩余数量:"; cin >> rest; // 查找图书类型 bool found = false; for (int i = 0; i < bookTypes.size(); i++) { if (bookTypes[i].getType() == type) { typeId = bookTypes[i].getId(); found = true; break; } } if (!found) { typeId = bookTypes.size() + 1; bookTypes.push_back(BookType(typeId, type)); } books.push_back(Book(id, name, author, type, press, price, total, rest)); cout << "添加成功!" << endl; } void Library::modifyBook() { int id; cout << "请输入需要修改的书籍编号:"; cin >> id; for (int i = 0; i < books.size(); i++) { if (books[i].getId() == id) { string name, author, type, press; double price; int total, rest, typeId; cout << "请输入书籍名称:"; cin >> name; cout << "请输入作者:"; cin >> author; cout << "请输入书籍类型(如:计算机):"; cin >> type; cout << "请输入出版社:"; cin >> press; cout << "请输入价格:"; cin >> price; cout << "请输入总数:"; cin >> total; cout << "请输入剩余数量:"; cin >> rest; // 查找图书类型 bool found = false; for (int j = 0; j < bookTypes.size(); j++) { if (bookTypes[j].getType() == type) { typeId = bookTypes[j].getId(); found = true; break; } } if (!found) { typeId = bookTypes.size() + 1; bookTypes.push_back(BookType(typeId, type)); } books[i] = Book(id, name, author, type, press, price, total, rest); cout << "修改成功!" << endl; return; } } cout << "未找到该书籍!" << endl; } void Library::deleteBook() { int id; cout << "请输入需要删除的书籍编号:"; cin >> id; for (int i = 0; i < books.size(); i++) { if (books[i].getId() == id) { books.erase(books.begin() + i); cout << "删除成功!" << endl; return; } } cout << "未找到该书籍!" << endl; } void Library::searchBook() { int id; cout << "请输入需要查找的书籍编号:"; cin >> id; for (int i = 0; i < books.size(); i++) { if (books[i].getId() == id) { cout << "编号\t书名\t作者\t类型\t出版社\t价格\t总数\t剩余数量" << endl; cout << books[i].getId() << "\t" << books[i].getName() << "\t" << books[i].getAuthor() << "\t" << books[i].getType() << "\t" << books[i].getPress() << "\t" << books[i].getPrice() << "\t" << books[i].getTotal() << "\t" << books[i].getRest() << endl; return; } } cout << "未找到该书籍!" << endl; } void Library::printBooks() { cout << "编号\t书名\t作者\t类型\t出版社\t价格\t总数\t剩余数量" << endl; for (int i = 0; i < books.size(); i++) { cout << books[i].getId() << "\t" << books[i].getName() << "\t" << books[i].getAuthor() << "\t" << books[i].getType() << "\t" << books[i].getPress() << "\t" << books[i].getPrice() << "\t" << books[i].getTotal() << "\t" << books[i].getRest() << endl; } } void Library::sortById() { sort(books.begin(), books.end(), [](Book a, Book b) { return a.getId() < b.getId(); }); } void Library::sortByName() { sort(books.begin(), books.end(), [](Book a, Book b) { return a.getName() < b.getName(); }); } void Library::saveToFile() { ofstream outfile("books.txt"); for (int i = 0; i < books.size(); i++) { outfile << books[i].getId() << " " << books[i].getName() << " " << books[i].getAuthor() << " " << books[i].getType() << " " << books[i].getPress() << " " << books[i].getPrice() << " " << books[i].getTotal() << " " << books[i].getRest() << endl; } outfile.close(); outfile.open("booktypes.txt"); for (int i = 0; i < bookTypes.size(); i++) { outfile << bookTypes[i].getId() << " " << bookTypes[i].getType() << endl; } outfile.close(); cout << "保存成功!" << endl; } void Library::readFromFile() { ifstream infile("books.txt"); int id, total, rest; string name, author, type, press; double price; while (infile >> id >> name >> author >> type >> press >> price >> total >> rest) { // 查找图书类型 int typeId; bool found = false; for (int i = 0; i < bookTypes.size(); i++) { if (bookTypes[i].getType() == type) { typeId = bookTypes[i].getId(); found = true; break; } } if (!found) { typeId = bookTypes.size() + 1; bookTypes.push_back(BookType(typeId, type)); } books.push_back(Book(id, name, author, type, press, price, total, rest)); } infile.close(); infile.open("booktypes.txt"); int typeId; while (infile >> typeId >> type) { bookTypes.push_back(BookType(typeId, type)); } infile.close(); cout << "读取成功!" << endl; } int main() { Library library; library.init(); int choice; while (true) { cout << "请选择操作:" << endl; cout << "1.添加书籍" << endl; cout << "2.修改书籍" << endl; cout << "3.删除书籍" << endl; cout << "4.查找书籍" << endl; cout << "5.输出所有书籍信息" << endl; cout << "6.按编号排序" << endl; cout << "7.按书名排序" << endl; cout << "8.保存到文件" << endl; cout << "9.从文件中读取" << endl; cout << "0.退出" << endl; cin >> choice; switch (choice) { case 1: { library.addBook(); break; } case 2: { library.modifyBook(); break; } case 3: { library.deleteBook(); break; } case 4: { library.searchBook(); break; } case 5: { library.printBooks(); break; } case 6: { library.sortById(); break; } case 7: { library.sortByName(); break; } case 8: { library.saveToFile(); break; } case 9: { library.readFromFile(); break; } case 0: { cout << "谢谢使用!" << endl; return 0; } default: { cout << "输入有误,请重新输入!" << endl; break; } } } return 0; } ``` 以上就是完整的代码实现了。这个图书管管理系统包含了建立书籍类、图书类型类、图书类,书籍、图书类型、图书信息的初始化、添加、修改、删除、查找,图书信息的输出,对图书信息按编号、书名排序,文件的保存和文件的读取。您可以根据需要进行修改和扩展。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值