中南大学C语言课程设计报告
中南大学大一下学期c++程序设计实验报告1.0
中南大学本科生课程设计(实践)任务书、设计报告(C++语言程序设计)题目多功能集成程序系统学生姓名闵杰指导教师罗芳学院材料科学与工程专业班级材料类1003学生学号**********计算机基础教学实验中心2011 年 6 月 30 日《集合简单计算、信息管理、绘图及多媒体系统设计》C++实践报告关键词:C++程序设计MFC[.exe] 面向对象计算信息管理绘图播放器一、引言1.1实践任务:1、计算程序设计。
如:计算器、一元二次方程的求解、华氏温度和摄氏温度之间的转换、求阶乘等。
2、文本编辑程序设计。
3、绘图程序设计。
如:吹泡泡程序、曲线等图形绘制。
4、信息管理程序设计。
能完成信息的添加、删除和修改等功能。
5、多媒体程序设计。
如:音频播放器、flash动画播放器等。
1.2实践目的:当今社会是信息时代,科技的高速发展要求我们能过熟练掌握并运用新的科学技术。
而信息的获取需要我们能够掌握应用程序的深层代码,运用所掌握的计算机程序知识对数据进行管理。
C++是由C发展而来的,与C兼容。
所以它可以用于面向过程的结构化程序设计,但是它又有自己的特点,它也可以用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
通过本次实践,1、可以加深我们对面向对象的认识,巩固C++的基础知识,了解基于对话框的应用程序、文档/视图应用程序的框架结构和运行机制,初步掌握创建MFC应用程序的方法、过程。
2、掌握常用的控件的重要属性、主要消息、常用成员函数,并熟练地应用这些控件设计应用程序。
3、掌握绘制图形的方法、定时器的使用,鼠标消息处理函数和键盘消息处理函数的编写、对话框使用和菜单设计的技术。
4、培养我们的独立思考、设计综合程序的能力;同时培养自学能力;训练小论文撰写能力。
因此,计算机程序设计是大多数专业的必修课。
随着软件工程技术的不断发展,面向对象的程序设计方法已成为当今软件开发的主流技术,我们肩负着博采众长的使命,运用好该程序将使我们受益匪浅。
中南大学c语言课程设计
中南大学c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法结构,包括变量声明、数据类型、运算符、表达式等;2. 学会使用C语言进行顺序、选择、循环等基本控制结构;3. 理解函数的定义与调用,并能编写简单的自定义函数;4. 掌握数组和字符串的使用,了解其应用场景;5. 了解指针的概念,学会使用指针进行内存操作。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,如代码规范、注释清晰、调试与优化;3. 学会使用编译器进行程序编译、链接和运行;4. 能够通过阅读和分析代码,理解他人的程序设计思路。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发自主学习编程的动力;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 培养学生的创新思维和解决问题的能力,敢于面对挑战;4. 增强学生的自信心,使其在学习过程中体验到成就感。
课程性质:本课程为中南大学计算机专业的基础课程,旨在培养学生的编程能力和逻辑思维能力。
学生特点:学生具备一定的计算机基础知识,但对编程尚处于入门阶段,需要系统学习C语言的语法和应用。
教学要求:教师应注重理论与实践相结合,通过案例教学、上机实践等方式,引导学生掌握C语言的基本知识和技能。
在教学过程中,关注学生的学习进度和需求,及时调整教学方法和内容,确保课程目标的实现。
同时,注重培养学生的自主学习能力和团队合作精神,提高其综合素质。
二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式、语句;2. 控制结构:顺序结构、选择结构(if-else、switch)、循环结构(for、while、do-while);3. 函数:函数定义、函数调用、局部变量、全局变量、递归;4. 数组:一维数组、二维数组、数组初始化、数组操作;5. 指针:指针定义、指针操作、指针与数组、指针与函数;6. 字符串:字符串表示、字符串操作、字符串函数;7. 预处理器:宏定义、文件包含、条件编译;8. 编程规范与调试:代码风格、注释、调试技巧、性能优化;9. 综合应用实例:求解数学问题、文件操作、简单游戏开发。
C语言程序设计实践报告
2
目录
一、功能设计 二、详细设计 三辑器模块
1、添加:当光标所在位置及后面没有字符时,系统会以添加的方式 输入字符。 2、插入:当光标所在位置及后面有字符时,系统会以插入的方式输 入字符。 3、删除:用户可以通过 Backspace 键删除光标前一个字符,也可以 使用 Del 键删除当前位置的字符。 4、选定:用户可以使用左移键(←)、右移键、上移键、下移键来移 动光标位置。也可以通过 Ctrl+左移键(或右移键)来选定多个字符。
(五)帮助及其他模块
1、帮助:帮助功能可以提示使用者如何进入菜单中的各个项目。 2、关于:关于功能是描述此文本文件编辑系统的设计者。 3、快速预览:用户可按 F10 功能键来打开快速预览窗口,在快速预 览窗口中没有功能菜单条。
6
二、详细设计
1、程序预处理。首先有头文件的加载,再有宏定义上下左右、 退格、换行、复制、粘贴、剪切等热键,使用户可以直接从键盘上录 入字符进行操控(字符即 ASCII 码字符),为了方便下面程序的运行, 还要定义 3 个结构体,分别与剪贴板、列单链表和行单链表相关。
(一)文件操作模块
1、新建:新建功能应该要可以不只是单纯地把输入文本框清空, 而且还应该可以智能判断文本框中是否有数据,如果有数据未 保存 或者保存过后又有数据变动,则会弹出提示信息询问是否 保存。新 建功能可以通过选择 File 菜单上的 New 子菜单来实现。 2、打开:打开功能应该要可以通过记事本读入文件。打开功能可以 通过选择 File 菜单上的 Open 子菜单来实现。在文件打开时,保存和 另存为操作中,系统会提示用户输入文件路径及文件名。特别注意的 是,当用户打开一个文件时,指定的文件必须存在,否则系统会报错。 3、保存:保存功能应该要可以直接将文本框中的内容记忆保存。保 存功能可以通过选择 File 菜单上的 Save 子菜单来实现。 4、另存为:另存为功能应该要可以将文本框中的内容记忆保存,并 且可以进一步把整个文件保存到指定地方。另存为功能可以通过选择 File 菜单上的 Save as 子菜单来实现。 5、退出:退出功能应该要可以直接退出文本文件编辑系统。退出功 能可以通过选择 File 菜单上的 Exit 子菜单来实现。
中南大学程序设计语言C课程设计级
智能15级《程序设计语言(C++)》课程设计任务书一、课程设计目的本课程设计是智能科学及技术专业的重要实践性课程。
是学习完《计算机及程序设计语言基础》课程后进行的一次全面的综合练习。
通过课程设计,一方面可以结合课程的教学内容循序渐进地进行设计方面的实践训练,另一方面,在参及一系列综合项目的实践过程中,还能提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。
为后续课程面向对象程序设计等课程奠定必要的实践基础。
设计目的如下:1.进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
2.针对C++语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3.掌握C++语言的编程技巧和上机调试程序的方法。
4.掌握程序设计中的常用算法。
为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,一类为基础训练题目,从中学习到程序设计的常用算法,另一类为综合题目。
学生可根据自己的能力和兴趣从两类中各选择一个设计题完成。
二、课程设计内容分组形式:可2-4人组队题目要求:A类题目必须全部完成,B类题目3题内选择2题完成A组题型:基本知识单项训练()设计题1、数据连接编写函数实现两个字符单向链表的连接。
函数以对两个链表头的引用作为参数,把第二个链表连接到第一个链表后面。
设计题2、字符处理设计函数,实现英文字符的大小写转换并去除其他字符。
要求:字符串中的小写字符自动变换成对应的大写字符,而大写字符则变换成对应的小写字符。
另,如果字符串中存在除英文大小写之外的字符请去除掉。
设计题3、数据统计求数组中离平均数最近的那个数。
假定函数int mid(int a[], int len);计算数组a中所有数的平均值,并返回数组中离该平均值最近的那个数。
设计题4、抓交通肇事犯一辆卡车违反交通规则,撞人后逃跑。
现场有三人目击事件,但都没有记住车号,只记下车号中后4位数字的一些特征。
中南大学c语言课程实践报告
中南大学c语言课程实践报告Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】中南大学??C语言程序设计实践报告??????题目学生信息管理系统学生姓名张眼指导教师刘伟荣学院信息科学与工程学院专业班级电气信息1113班完成时间 2012年6月28日星期四?printf("\t\t\t|学生信息管理系统欢迎您|\n");printf("\t\t\t+---------------------------+\n");printf("\t\t\t+设计者:张眼\n");printf("\t\t\t+指导老师:刘伟荣\n");printf("重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作\n");do{printf("\n\t\t\t+++++++++++++++++++++++++++++\n");printf("\t\t\t|**菜单**|\n");printf("\t\t\t+++++++++++++++++++++++++++++++++\n");printf("\t\t\t*[1]----录入/插入学生信息*\n");printf("\t\t\t*[2]----浏览学生信息*\n");printf("\t\t\t*[3]----查询学生信息*\n");printf("\t\t\t*[4]----删除学生信息*\n");printf("\t\t\t*[5]----修改学生信息*\n");printf("\t\t\t*[6]----不及格学生列表*\n");printf("\t\t\t*[7]----成绩信息查询*\n");printf("\t\t\t*[8]----平均成绩*\n");printf("\t\t\t*[0]----退出系统*\n");printf("\t\t\t********************************\n");printf("请输入您的选择:");scanf("%d",&z);switch(z){case0:tc();break;case1:lr();break;case2:ll();break;case3:cx();break;case4:sc();break;case5:xg();break;case6:bj();break;case7:kc();break;case8:pj();break;default:printf("\n无效选项!");}}while(z!=0);}②输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,可以通过函数void lr() 实现此功能。
中南大学C实践报告
中南大学C实践报告 The document was prepared on January 2, 2021中南大学C++程序设计实践报告学院:材料院专业班级:学号:姓名:一、实践目的C++是一种运用广泛的电脑程序式设计语言。
在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++语言程序。
我们在老师的指导下进行了C++程序设计实践,用C++语言编制学生档案管理软件。
二、实践要求1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。
2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。
3)、系统的主程序中,要求会使用口令判断功能函数。
使得程序体对信息的修改更为方便。
4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。
三、实践内容实践内容包括了:学生档案管理软件的总设计框架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。
学生档案管理软件总框架:系统口令流程图:主菜单流程图:数据修改流程图:数据删除流程图:数据显示流程图:退出流程图:四、实践体会在指导老师的耐心教导下,我们完成了此次C++程序设计实践。
在实践过程中,我们学会了如何运用C++语言编写一个学生档案管理软件。
首先,我们要对所编软件有相应的认识,了解该学生档案管理系统应有的功能,对相应的功能思考需要运行的函数。
例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。
然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。
此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。
通过此次程序设计实践,用理论联系实际,加深了我对C++语言的理解与掌握,提高了我的实践能力及计算机操作能力。
中南大学c课程设计报告
中南大学《高级程序设计实践(C++)》课程设计报告设计题目教学设备管理系统指导老师设计者专业班级设计日期目录一课题的基本内容和要求二程序功能简介三主体内容:1 设计分析2 程序整体结构3 部分模块的结构4 相关模块源程序5 操作方法6试验结果7设计体会8 参考文献一基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C++ 6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。
2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。
4、程序要求:界面美观、可操作性强、稳定性好。
(二)基本内容:教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。
系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。
二程序功能简介(1)添加:增加一台设备的记录到管理系统中。
(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。
(3)修改:在管理系统中修改一台设备的记录。
(4)保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。
(5)读取:从文件中读取已保存了数据。
(6)删除:从管理系统中删除一条记录。
(7)恢复:能恢复被删除的记录。
(8)统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200~800元之间和800元以上的设备总台数及总金额。
(D)以表格形式打印教学设备明细表。
(9)其他:可以根据自己的思路设计其他功能。
三主体内容1 设计分析根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。
中南大学数学院C课程设计报告
中南大学《C++课程设计》设计报告题目C++课程设计学生姓名学号专业班级数学类0901指导老师袁修贵数学科学与计算技术学院2010年6月一、实验目的、内容1.用户任意输入一个年份以及该年的1月1日是星期几,而后再输入该年的任意一个月份,由程序负责在屏幕上按照你所设计的格式显示出这一个月的月历。
思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入任意一个年份和一个月份,则程序就应按格式显示出该年那一个月的月历。
2.编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一个词汇索引。
按字母顺序显示所有单词(仅一次),后面紧跟着它们所在的行号。
大写与小写字母被认为是相同的。
例如,对于下列的输入文件:To be ornot to be,that is the question.产生的词汇索引如下:be 1 2is 3not 2or 1question 3that 3the 3to 1 23.模拟计算器程序问题描述设计一个程序来模拟一个简单的手持计算器。
程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。
基本要求程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’ 符号后,窗口显示出结果。
测试数据程序输入不少于5种不同的表达式进行测试。
实现提示可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。
二、实验程序设计及结构1、需求分析○1对需求的信息进行模糊查询○2模拟电子辞典○3模拟计算器2、设计结构(1)#include <stdio.h>#include <stdlib.h>int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){int i,n,s = 0,r = 0,year,month,days = 0,day,date = 1;int b[42] ={1,2,3,4,5,6,7}; //日历中的星期puts("Please input the weekday of date month 1/day 1:");scanf("%d",&n);puts("Please input the date you want:");scanf("%d%d%d",&year,&month,&day);if((year % 4 == 0 && year % 100 != 0)||year % 400 == 0)a[2] = 29;for(i=1;i<month;i++)days += a[i];s = day + days;if((s + n - 1) >= 7)s = (s + n - 1) % 7;elses = s + n - 1;printf("weekday:");switch(s){case 0: puts("7\n");break;case 1: puts("1\n");break;case 2: puts("2\n");break;case 3: puts("3\n");break;case 4: puts("4\n");break;case 5: puts("5\n");break;case 6: puts("6\n");break;}if((days +n)>= 7)r = (days + n)%7;elser = days +n;for(i = 0;i < 42;i++){if(i == r + 6&&date < a[month]) {b[i] = date;date++;r++;}printf("%d\t",b[i]);if(i > 5&&(i+1) % 7 == 0)printf("\n");}return 0;}(2)#include <iostream>#include <fstream>#include <vector>#include <string>using namespace std;typedef struct _unit{string word;int line;}unit;int main(){vector<unit> list;ifstream in;string fileName;cout<<"输入文件路径: ";cin>>fileName;in.open(fileName.c_str());if (in.fail()){cout<<"文件打开错误,退出"<<endl;exit(0);}unit temp;int lineNumber = 1;while(!in.eof()){in>>temp.word;temp.line = lineNumber;list.push_back(temp);if (in.peek()=='\n'){lineNumber++;}}in.close();bool isIn = false;vector<string> copy;for (unsigned int i=0; i<list.size(); i++) {isIn = false;for (unsigned int j=0; j<copy.size(); j++) {if (list[i].word == copy[j]){isIn = true;break;}}if (!isIn)copy.push_back(list[i].word);}vector<int> lineNo;for (unsigned int m=0; m<copy.size(); m++){for (unsigned int n=0; n<list.size(); n++){if (list[n].word == copy[m]){lineNo.push_back(list[n].line);}}lineNo.push_back(0);}int current=0;for (unsigned int o=0; o<copy.size(); o++){cout<<copy[o]<<" ";for (unsigned int p=current; p<lineNo.size(); p++){if (lineNo[p] == 0){current=p+1;break;}elsecout<<lineNo[p]<<" ";}cout<<endl;}return 0;}(3)#include <stdio.h>#include <string>#include <cctype>#include <iostream>#include <map>#include <sstream>#include <strstream>using namespace std;istream* input; // pointer to input streamint no_of_errors; // note: default initialized to 0double error(const char* s){no_of_errors++;cerr << "error: " << s << '\n';return 1;}enum Token_value {NAME, NUMBER, END,PLUS='+', MINUS='-', MUL='*', DIV='/',PRINT=';', ASSIGN='=', LP='(', RP=')'};Token_value curr_tok = PRINT;double number_value;string string_value;Token_value get_token(){char ch;do { // skip whitespace except '\en'if(!input->get(ch)) return curr_tok = END;} while (ch!='\n' && isspace(ch));switch (ch) {case ';':case '\n':return curr_tok=PRINT;case '*':case '/':case '+':case '-':case '(':case ')':case '=':return curr_tok=Token_value(ch);case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '.':input->putback(ch);*input >> number_value;return curr_tok=NUMBER;default: // NAME, NAME=, or errorif (isalpha(ch)) {string_value = ch;while (input->get(ch) && isalnum(ch))string_value += ch; // string_value.push_back(ch); // to work around library buginput->putback(ch);return curr_tok=NAME;}error("bad token");return curr_tok=PRINT;}}map<string,double> table;double expr(bool); // cannot do withoutdouble prim(bool get) // handle primaries{if (get) get_token();switch (curr_tok) {case NUMBER: // floating-point constant{ double v = number_value;get_token();return v;}case NAME:{ double& v = table[string_value];if (get_token() == ASSIGN) v = expr(true); return v;}case MINUS: // unary minusreturn -prim(true);case LP:{ double e = expr(true);if (curr_tok != RP) return error(") expected"); get_token(); // eat ')'return e;}default:return error("primary expected");}}double term(bool get) // multiply and divide {double left = prim(get);for (;;)switch (curr_tok) {case MUL:left *= prim(true);break;case DIV:if (double d = prim(true)) {left /= d;break;}return error("divide by 0");default:return left;}}double expr(bool get) // add and subtract {double left = term(get);for (;;) // ``forever''switch (curr_tok) {case PLUS:left += term(true);break;case MINUS:left -= term(true);break;default:return left;}}int main(int argc, char* argv[]){switch (argc) {case 1: // read from standard inputinput = &cin;break;case 2: // read argument string// input = new istringstream(argv[1]);input = new istrstream(argv[1]);break;default:error("too many arguments");return 1;}table["pi"] = 3.1415926535897932385; // insert predefined names table["e"] = 2.7182818284590452354;while (*input) {get_token();if (curr_tok == END) break;if (curr_tok == PRINT) continue;cout << expr(false) << '\n';}if (input != &cin) delete input;return no_of_errors;d}三、设计过程写出设计过程,实验源代码可不写出,但实验中出错信息及处理方法及解决错误的方法要写。
中南大学(C++实践报告)
中南大学(C++实践报告)第一篇:中南大学(C++实践报告)中南大学本科生课程设计(实践)设计报告(程序设计基础)题目MFC课程设计学生学号学生姓名指导教师学院专业班级计算机基础教学实验中心 2015年06月 14日一、引言MFC(Microsoft Foundation Class Library, 微软基础类库)是微软基Windows平台下的C++类库集合。
MFC包含了所有与系统相关的类,其中封装了大多数的API(Application Program Interface)函数,提供了应用程序框架和开发应用程序的工具,如应用程序向导、类向导、可视化资源设计等高效工具,用消息映射处理消息响应,大大简化了Windows应用程序的开发工作,使程序员可以从繁重的编程工作中解脱出来,提高了工作效率。
程序设计实践旨在课堂学习的基础上帮助学生掌握C++应用系统的开发方法和技巧。
在系统学习完《C++程序设计》这门课程后,通过实践对几个小型C++应用程序实例设计与实现过程分析,帮助学生利用C++开发应用系统的一般方法和步骤,掌握MFC的基本知识。
这次实践采用学生上机与老师集体辅导的方式,以完成老师下发的《C++语言课程设计任务书》为要求和目的,运用课堂上学习的C++基础知识,采用Visual C++ MFC编程系统,以全新的角度和感知去认识C++语言在编程方面的优越性。
在实践过程中,基于对话框的MFC应用程序,达到了解基本控件,如静态文本框、命令按钮、编辑框、列表框、组合框等的使用的目的。
还有理解Windows应用程序采用“消息传递、事件驱动”的运行机制。
本次实践的任务主要分为两个部分:使用Visual C++ MFC编程实现以下功能:输入一元二次方程ax2+bx+c=0 的系数a、b、c,计算并输出两个根x1、x2.编写一个能对列表框进行项目添加、修改和删除操作的应用程序。
编写一个程序,绘制-2π~2π之间的sin曲线。
中南大学C语言课程实践报告
printf("\t\t\t|**
菜单
**|\n");
printf("\t\t\t+++++++++++++++++++++++++++++++++\n");
printf("\t\t\t* [1]----录入/插入学生信息 *\n");
printf("\t\t\t* [2]----浏览学生信息 *\n");
printf("\t\t\t* [3]----查询学生信息 *\n");
printf("\t\t\t* [4]----删除学生信息 *\n");
printf("\t\t\t* [5]----修改学生信息 *\n");
printf("\t\t\t* [6]----不及格学生列表 *\n");
printf("\t\t\t* [7]----成绩信息查询 *\n");
2.总体设计
将整个系统分成若干子模块, 设计流程图如下:
学生信息管理系统
【1】输 入学生 信息
【2】浏 览学生 信息
【3】查 询学生 信息
【4】删 除学生 信息
【5】修 改学生 信息
【6】不 及格学 生列表
【7】学 生平均 成绩
【8】学 生课程 信息查 询
【0】退 出系统
3.详细设计
①主函数:一般比较简单,只提供输入,处理,输出的调用函数,
中南大学C++课程设计实践报告!
中南大学本科生课程设计(实践)任务书、设计报告(C++程序设计)题目学生成绩管理系统学生姓名指导教师学院专业班级学生学号计算机基础教学实验中心年月日学生成绩管理系统关键字:学生成绩 MFC 编写系统内容:定义一个结构体,存放下列信息:学号、姓名、性别、系名、班级名、成绩等1.学生成绩管理系统开发设计思想要求:一:数据输入:输入学生的相关信息,若用户输入数据或信息不正确,给出“错误”信息显示,重复刚才的操作;至少要输入10个学生的数据;可以随时插入学生信息记录;二:每个学生数据能够进行修改并进行保存;三:可以根据学号或者姓名删除某学生数据;四:查询模块要求能按学号,按姓名,按班级等条件进行查询;五:界面要求美观,提示信息准确,所有功能可以反复使用。
学生成绩管理程序从总体设计方面来看,基本的功能包括主控模块,数据输入模块,数据修改模块,数据查询模块等。
设计模块图:2.系统功能及系统设计介绍详细设计:对于总体设计说明的软件模块,进一步细化,要说明各个模块的逻辑实现方法。
下面逐个说明。
主控模块:主要完成初始化工作,包括屏幕的初始化,显示初始操作界面。
初始界面中主要包括功能的菜单选择项。
输入处理:利用链表技术输入多名学生的数据,直到输入学生的学号以“@”开头,则结束数据的输入。
程序运行流程图如下:删除处理:利用链表技术删除某学号的学生成绩信息,如果找到该学号则进行删除,否则输出“未找到”的信息。
程序运行流程图略。
查找处理:利用链表技术根据学生学号或姓名等方式查找某学号的学生成绩信息,其程序流程图略。
排序处理:利用链表技术根据学生学号对学生数据进行排序,其部分源代码如下:/***********xuesheng.c***********//******头文件(.h)***********/#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*其它说明*/#include "string.h" /*字符串函数*/#include "conio.h" /*屏幕操作函数*/#include "mem.h" /*内存操作函数*/#include "ctype.h" /*字符操作函数*/#include "alloc.h" /*动态地址分配函数*/#define N 3 /*定义常数*/typedef struct z1 /*定义数据结构*/{char no[11];char name[15];char sex[5];char major[15];char class[15];char tele[15];char address[15];int order;struct z1 *next;}STUDENT;/*以下是函数原型*/STUDENT *init(); /*初始化函数*/STUDENT *create(); /*创建链表*/STUDENT *dele(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/STUDENT *sort(STUDENT *h); /*排序*/int menu_select(); /*菜单函数*/STUDENT *insert(STUDENT *h); /*插入记录*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void inputs(char *prompt, char *s, int count);/******主函数开始*******/main(){int i;STUDENT *head; /*链表定义头指针*/head=init(); /*初始化链表*/clrscr(); /*清屏*/for(;;) /*无限循环*/{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/case 0:head=init();break; /*执行初始化*/case 1:head=create();break; /*创建链表*/case 2:head=dele(head);break; /*删除记录*/case 3:print(head);break; /*显示全部记录*/case 4:search(head);break; /*查找记录*/case 5:head=insert(head); break; /*插入记录*/case 6:head=sort(head);break; /*排序*/case 7:save(head);break; /*保存文件*/case 8:head=load(); break; /*读文件*/case 9:exit(0); /*如菜单返回值为14程序结束*/}}}/*菜单函数,返回值为整数*/int menu_select(){char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/" 0. init list", /*初始化*/" 1. Input", /*输入记录*/" 2. Delete", /*删除记录*/" 3. List", /*显示记录*/" 4. Seek(name)", /*查找*/" 5. insert record to list ", /*插入记录到表中*/" 6. Sort", /*排序*/" 7. Save", /*保存*/" 8. Load", /*从文件中读入记录*/" 9. Quit",/*退出*/3.系统开发的体会本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。
中南大学c语言课程设计
中南大学c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力,能够运用C语言解决实际问题。
1.掌握C语言的基本语法和数据类型。
2.熟悉控制结构和函数的定义与调用。
3.理解指针的概念和应用。
4.掌握数组、字符串和动态内存管理。
5.了解常用库函数和预处理指令。
6.能够使用C语言编写简单的程序,解决实际问题。
7.具备基本的调试和排错能力。
8.能够阅读和理解C语言的程序代码。
9.掌握基本的编程规范和技巧。
情感态度价值观目标:1.培养学生的编程兴趣,提高学习积极性。
2.培养学生勇于探索、解决问题的精神。
3.增强学生的团队协作能力和交流沟通能力。
二、教学内容教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。
具体安排如下:1.C语言概述:介绍C语言的发展历史、特点和应用领域。
2.基本语法:数据类型、变量、运算符、表达式、语句等。
3.控制结构:顺序结构、分支结构、循环结构。
4.函数:函数的定义与声明、调用、参数传递、返回值等。
5.数组和字符串:一维、多维数组、字符串的基本操作。
6.指针:指针的概念、声明、运算、指针与数组、指针与函数等。
7.动态内存管理:内存分配与释放、动态数组、链表等。
8.预处理指令:宏定义、文件包含、条件编译等。
9.常用库函数:数学函数、输入输出函数、字符串处理函数等。
10.编程实践:综合实例分析与编程,解决实际问题。
三、教学方法本课程采用多种教学方法相结合,包括讲授法、案例分析法、实验法等。
1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握知识要点。
2.案例分析法:分析典型程序案例,让学生了解实际应用,提高编程能力。
3.实验法:上机实验,让学生动手编写代码,培养实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得,提高团队协作能力。
四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
中南大学C++课程设计报告
中南大学C++程序设计基础课程设计题目学生成绩管理系统姓名学号班级指导教师刘嫔学院信息科学与工程学院日期二〇一四年七月设计任务书1、题目:C++课程设计报告2、程序功能组成:✧数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;✧数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;✧数据的插入:插入某个学生信息;✧数据的查询:如按学号查询、按姓名查询等;✧数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;✧平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;✧列出不及格学生清单(学号、姓名、不及格的课程和成绩)。
3、 进度安排:目 录一、总设计方案 (1)序号 设计内容名称 完成时间 备注 1 组队;确定题目;分工 6.25 2初步的需求分析与设计建模6.25~6.273 详细的需求分析与设计建模6.28~6.304 关键模块的实现与测试 7.015 编写课程设计报告 7.01~7.02 6最后总结,修改。
7.03二、使用说明及运行实例 (2)三、成员设计内容简介 (6)四、项目源程序代码 (7)五、设计心得 (19)一、总设计方案系统流程图:开始 结束选择操作输入数据排序 显示数据查询 删除 主菜单插入数据 退出系统按学号按姓名保存数据按景平均成绩选择选择选择选择选择选择选择选择按平均成绩高读取数据选择班级学号性别 姓名二、使用说明及运行实例主界面1.数据录入2.数据修改3. 数据插入4.数据查询5.数据删除6.平均值计算7.列出不及格学生三、成员设计内容简介1.数据录入:数据录入的功能是将需要的数据进行录入,用于后面的各项操作。
实现:用输入函数对数据进行录入,先确定学生的个数,再用一个循环进行输入,选修课程数量亦然。
2. 数据修改:数据修改的主要功能是为修改数据输入出现的错误,实现:先指定该生的学号,找到该生,再输出该生当前的信息,用一个if语句对数据进行修改,再用一个循环语句对选修课信息进行修改。
中南大学c课程设计
中南大学c课程设计一、课程目标知识目标:1. 理解中南大学C课程的基本概念和原理,掌握数据类型、变量、运算符等基础知识;2. 学会使用控制结构和函数,能够进行简单的程序设计;3. 了解数组、指针和字符串的基本操作,能够运用它们解决实际问题;4. 掌握基本的文件操作,能够读写文件,存储和获取数据。
技能目标:1. 培养学生运用C语言进行问题分析和程序设计的能力;2. 培养学生编写规范、高效、可读性强的代码,养成良好的编程习惯;3. 提高学生调试程序和解决问题的能力,培养其独立思考和协作学习的技巧;4. 培养学生运用计算思维解决实际问题的能力。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣和热情,激发其探索精神和创新意识;2. 培养学生具备团队协作精神,学会倾听、沟通和分享;3. 增强学生的自信心和责任感,使其认识到编程在现代社会中的重要性;4. 培养学生遵守学术道德,尊重他人知识产权,养成良好的职业道德。
本课程针对中南大学学生的特点和教学要求,注重理论与实践相结合,以培养学生的编程能力和计算思维为核心。
通过本课程的学习,学生将能够掌握C语言的基本知识,具备解决实际问题的编程能力,同时培养良好的情感态度价值观。
为实现课程目标,后续教学设计和评估将围绕具体的学习成果展开。
二、教学内容1. C语言概述:介绍C语言的发展历程、特点和应用领域,使学生对其有全面了解。
教材章节:第一章2. 基本数据类型、变量和常量:讲解C语言的基本数据类型、变量定义、赋值和常量的概念。
教材章节:第二章3. 运算符与表达式:介绍C语言的运算符及其优先级,学会编写表达式和计算结果。
教材章节:第三章4. 控制结构:讲解顺序结构、分支结构(if语句和switch语句)和循环结构(for、while、do-while循环)的使用。
教材章节:第四章5. 函数:介绍函数的定义、调用、参数传递和返回值,学会模块化编程。
教材章节:第五章6. 数组、指针和字符串:讲解数组的定义和使用、指针的基本概念和操作、字符串的存储和操作。
中南大学C++课程设计
中南⼤学C++课程设计中南⼤学⼆○⼀⼆~⼆○⼀三学年第⼆学期信息科学与⼯程学院计算机与程序设计语⾔课程设计报告课程名称:计算机与程序设计语⾔C++班级:电⽓信息2012级1207班学号:0909120703姓名:黎毅刚指导教师:向遥⼆○⼀三年七⽉⽬录⼀.需求分析⼆.程序结构三.算法分析四.运⾏结果五.学之⼼得六.程序源码⼀.需求分析(⼀)⼩型学⽣成绩管理系统1、需要处理的基础数据学⽣基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。
学⽣选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。
2、系统的基本功能数据的录⼊:如录⼊学⽣的基本信息,以及该学⽣选修课程的基本信息;数据的修改:如修改指定学号、或者指定姓名的学⽣信息,或者修改其选修课程信息;数据的插⼊:插⼊某个学⽣信息;数据的查询:如按学号查询、按姓名查询等;数据的删除:如删除指定学号、或者指定姓名的学⽣及其选修课程信息;平均成绩的计算:计算每个学⽣各门功课的平均成绩,并按平均成绩从⾼到低的次序输出学⽣信息;⼆.程序结构(1)程序框图(2)功能模块的划分与功能实现⼀.输⼊学⽣信息利⽤友元函数:friend void Input(Stu stud[ ])可以实现,学⽣基本信息和课程信息的录⼊的功能,并且能够能够将信息保存到student.dat⽂件中。
⼆.浏览统计信息利⽤友元函数:friend void Statistic(Stu stud[ ])可以实现,浏览学⽣的基本信息和平均分数信息的功能三.查询学⽣信息利⽤友元函数:friend void Lookup(Stu stud[ ])可以实现,分别按学号和姓名两种⽅式来查询信息的功能。
四.修改学⽣信息利⽤友元函数:friend void Modify(Stu stud[ ])可以实现,分别按学号和姓名两种⽅式来修改信息的功能,修改后的信息可以保存进⽂件中。
中南大学李力老师C++语言程序设计报告
中南大学本科生课程设计(实践)任务书、设计报告(C++课程设计)题目统计足球比赛数据学生姓名唐苑峰指导教师李力学院能源科学与工程学院专业班级能源动力类1101班学生学号1003110114计算机基础教学实验中心2012年 06 月 28 日一、实践内容:①实践时间:2011—2012年下学期18周至19周,共计40学时。
②实践任务与要求:运用所学的知识,用c++语言编程。
编程题目为:统计足球比赛数据,要求能用菜单实现如下功能:(1)输入每场比赛的主队名称,客队名称,比赛日期,主队得分,客队得分。
(2)按总得分从高到低排出每个队的名称,总得分,胜,和,负的次数。
(3)根据用户要求输出某队某月(从键盘输入队名和月份)的所有比赛数据。
(4)根据用户要求输出某队主场总得分,客场总得分(5) 根据用户输入,绘制某队成绩历史趋势图。
(自学利用C++提供的库函数绘制曲线图)。
要求:利用类实现,数据采用文件输入,排序。
数据的组织可采用对象数组。
查阅相关资料并写出系统设计说明书。
写出实践报告。
二、实践目的:计算机实践是本科计算机基础教学的一个重要环节。
它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。
(1)掌握c++语言编程的基础知识,《c++程序设计》课程是高校计算机科学与技术专业的一门重要的专业基础课,也是某些专业的选修课程,在整个专业教学体系中占有非常重要的地位。
《c++程序设计》不仅具有很强的理论性,更是一门实践性非常强的课程,其实践教学环节的效果直接影响着理论教学的效果。
本课程注重边学边练,但由于课堂教学和实验的深度与广度与有限,练习的深度也受到了一定的限制。
为了弥补这一点,而设置了《C++程序设计》实践教学方案,主要以教学实习的方式对学生进行综合训练,培养了实际分析问题、编程和动手能力,通过教学实习,帮助我们学生系统地掌握面向对象程序设计方法及各种编程技巧,努力成为自由驾驭程序设计语言的软件能手;(2)通过自学来利用C++提供的库函数绘图,是自己又掌握了更多关于C++的知识,通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C++程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关,更加了解了C++的好处和其可用性,同时增加了同学之间的团队合作精神,更加也体会到以后在工作中团队合作的重要性和必要性,通过C++课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
中南大学c语言课程设计报告
学号中南大学《C语言程序设计》课程设计报告题目:数据的图形化处理学院:专业:班级:姓名:指导老师:2015年1月3日目录1 设计内容及要求 (3)1.1设计要求 (3)1.2程序设计流程图 (3)2 详细设计 (5)2.1详细设计 (5)2.2数据结构与程序评析 (7)2.3用法说明 (8)3 设计结果与分析 (8)3.1调试与测试 (8)3.2测试结果与分析 (8)4 小结(心得体会) (11)5 附录 (12)1设计内容及要求1.1设计要求用c语言绘图函数绘制函数图像;要根据输入的信息,用c语言画出相应函数y=sin(x),y=cos(x),...;画出的点数为N个,即N个像素点;可以不画出坐标值,N的值要大于20。
程序界面设计合理,色彩得体大方,显示正确,界面清晰、美观。
1.2程序设计流程图开始输出可选函数列表设置背景色和线条色画出坐标轴设置文本属性标记坐标轴和原点绘制基本初等函数关闭图像处理系统结束图1:总程序流程开始float i,x0,y0,x,y; int a,b;i nt gd=DETECT,gm;for(b=0;b<=20;b++)initgraph(&gd,&gm,""); printf linesettextstyle outtextxyswitchcase1 case2 ......Putpixel(x,y,RED);break; defaultgetch();closegraph();结束图2:总程序流程图2详细设计2.1详细设计(1)#include<stdio.h>调用系统提供的标准库函数#include<math.h>调用math库文件里的函数#include<conio.h>调用通过控制台进行数据输入和数据输出的函数 #include<graphics.h>调用图像处理函数(2)main(){float i,x0,y0,x,y;int a,b;int gd=DETECT,gm;定义变量(3) for(b=0;b<=20;b++){实现程序的多次循环使用(4)initgraph(&gd,&gm,"");初始化图形系统(5)printf("Choose a function to see its functional image!\n"); printf("1.y=x\n");printf("2.y=sinx\n");printf("3.y=cosx\n");printf("4.y=e^x\n");printf("5.y=log(e)(x)\n");printf("6.y=x^2\n");printf("7.y=tanx\n");printf("Number 1-7,just try them!\n");printf("Please enter number:");输出一个基本初等函数可选列表 scanf("%d",&a);输入一个整型变量(6)cleardevice();清除屏幕和图形缓冲区setbkcolor(WHITE);设置背景色setcolor(GREEN);设置前景颜色line(100,350,100,180);line(95,190,100,180);line(100,180,105,190);line(40,250,500,250);line(495,245,500,250);line(500,250,495,255);画坐标轴和箭头settextstyle(SANS_SERIF_FONT,HORIZ_DIR,1);设置字体outtextxy(500,250,"x");标记x轴outtextxy(110,180,"y");标记y轴outtextxy(90,245,"o");标记原点(7)switch(a)实现多分支选择{case 1:第一种情况{for(x0=0;x0<=21;x0+=1){y0=x0;要画出的函数表达式x=6*x0+100; x,y的坐标控制,使点落在屏幕适当位置 y=-6*y0+250;putpixel(x,y,RED);画点函数,画出红色像素点}break;跳出多分支选择结构}case 2:第二种情况{for(x0=0;x0<=10*3.14159;x0+=0.1){y0=50*sin(x0+2*3.14159);正弦函数x=10*x0+100;y=-y0+250;putpixel(x,y,RED);}break;}case 3:第三种情况{for(x0=0;x0<=10*3.14159;x0+=0.1){y0=50*sin(x0+3.14159/2);余弦函数x=10*x0+100;y=-y0+250;putpixel(x,y,RED);}break;}..........其他常见函数default:printf("Enter data error!\n");否则输出数据错误提示}(8) getch();从控制台读取一个字符,但不显示在屏幕上,等待你按下任意键,再继续执行下面的语句closegraph();关闭图形系统}}2.2数据结构与程序评析(1)对图形处理函数作比较全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并作出正确的解决方案。
中南大学学生信息管理系统课程设计报告.docx1
中南大学二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:电气信息2010级1班学号:姓名:指导教师:季桂树二○一一年六月一.需求分析课题要求编写一个学生信息管理系统。
其中学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:A、系统以菜单方式工作;B、学生信息录入功能(学生信息用文件保存)——输入;C、学生信息浏览功能——输出;D、查询、排序功能——算法;a、按学号查询;b、按姓名查询。
E、学生信息的删除与修改。
其次功能要求:A、界面比较美观;B、有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入。
二. 总体设计是否找到数据文件 读入上次保存的数据YN操作选择浏览学生信息录入学生信息修改学生信息查询学生信息删除学生信息读入数据,新增一个结点按顺序浏览全部学生信息查找到目标结点查找到目标结点,并进行删除查找修改节点,并修改将现有数据写入文件结束开始退出系统三.详细设计结构体:该结构由“学号,姓名,年龄,性别,出生年月,地址,电话,E-mail ”八个成员组成。
功能函数&模块:从键盘读入一个人的信息,并储存入学生信息。
将数据写入数据文件。
读入文件中的数据,如果有数据文件返回1否则返回0。
菜单选择,返回0~6的含义分别是“退出”、“录入”、“浏览”、“查询”、“删除”、“修改”、“读取”。
从学生信息管理系统中删除一个人的信息。
修改一个人的信息。
struct student { long int num; char name[20]; int age; char sex[4]; char birth[10]; char add[30]; long int tele; char mail[20];struct student *next;};void writeData()void readData() void menu()void del ()void modify() void record()void displayAll()输出所有的记录。
中南大学c课程设计实践报告
中南大学c 课程设计实践报告一、教学目标本课程的教学目标是使学生掌握中南大学C课程的核心知识,包括基本概念、原理和应用。
具体目标如下:1.知识目标:学生能够准确理解并掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
2.技能目标:学生能够熟练运用C语言进行程序设计,包括编写、调试和运行C程序。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生的问题解决能力和创新意识。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法和数据类型,包括变量、常量、数据类型、运算符等。
2.控制结构,包括条件语句、循环语句等。
3.函数,包括函数的定义、声明、调用和返回值等。
4.指针和数组,包括指针的概念、指针的运算、数组的基本操作等。
5.结构体和文件操作等高级内容。
三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:通过教师的讲解和演示,使学生掌握C语言的基本知识和技能。
2.讨论法:通过小组讨论和课堂讨论,激发学生的思考和问题解决能力。
3.案例分析法:通过分析实际案例,使学生了解C语言在实际应用中的作用和意义。
4.实验法:通过编写和调试C程序,培养学生的实际编程能力和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将使用以下教学资源:1.教材:选择一本适合学生水平的C语言教材,作为学生学习的主要参考资料。
2.参考书:提供一些相关的参考书籍,供学生进一步深入学习和参考。
3.多媒体资料:制作一些教学PPT、视频等多媒体资料,帮助学生更好地理解和掌握知识。
4.实验设备:提供计算机实验室,让学生能够进行实际编程和实验操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试等。
具体评估方式如下:1.平时表现:通过学生的课堂参与、提问、回答问题等方式评估学生的学习态度和理解程度。
2.作业:布置适量的作业,包括编程练习和理论题目,以巩固学生对知识的理解和应用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计第一题题目要求data1.txt和data2.txt,两个文件中都有很多数字,用空格隔开。
运行程序,计算这两个文件中数字的交集,并且排好序,存放在jiao.txt中;计算这两个文件中数字的并集,并且排好序,存放在bing.txt需求分析(1)输入两组若干个int型类型的数据;(2)输出两组数据以及它们的交集和并集;(3)程序可对输入的两组数据进行交并集处理,并分别保存在文件中;(4)第一组->data1:3 67 45 2 4data2:4 76 89 125 7第二组->data1:56 78 90 3 77 18 45 3 168data2:88 4 77 35 8 46 0 85 78 99 23 1……概要设计(1)输入若干个int类型的数据给data1.txt,再随机输入若干个int类型的数据给data2.txt。
(2)程序将根据所给的data1和data2的数据通过调用jiao函数对它们的交集进行求解,通过调用save1函数将其结果保存在jiao.txt文件中。
(3)程序将根据所给的data1和data2的数据通过调用bing函数对它们的并集进行求解,通过调用save2函数将其结果保存在bing.txt文件中。
(4)在交并集保存在相应文件之前,通过调用sort函数对其进行从小到大的排序详细设计流程图:(sort函数)(save2函数)(save4函数)(fun函数)(main函数)测试结果:第一组:data1:data2:输出结果:并集:第二组:data1:data2:输出结果:并集:第三组:data1:data2:输出结果:并集:课程设计第二题题目要求文件conf.txt中保存了很多字符,如:ajgdjauqwieueuiwqwgdakdhkjduiwhdsdhkjdk.运行程序,计算这个文件中各个字母出现的频率,频率=出现的次数/总字母数。
将频率存储在文件rate.txt中。
格式为:a : 3.20%k : 3.80%……需求分析(1)从键盘键入若干小写字母组成的字符,以回车键结束字符输入;(2)计算机将输出a—z所对应的出现频率;(3)程序自动统计a—z的出现频率,并将结果保存到文本文件中;(4)测试数据:例如:输入 gsjfa fhj fh h hsdgfyuweguthfer eutguierghuerhguiergiueugtuerigi结果 a: 1.5% b: 0.0% c: 0.0% d: 1.5% e: 12.3%f: 7.7% g: 13.8% h: 10.8% i: 7.7% j: 3.1%k: 0.0% l: 0.0% m: 0.0% n: 0.0% o: 0.0%p: 0.0% q: 0.0% r: 7.7% s: 3.1% t: 4.6%u: 13.8% v: 0.0% w: 1.5% x: 0.0% y: 1.5%z: 0.0%……概要设计(1)从键盘键入小写字母所组成的字符串,通过count来记录实际键入的字符个数。
(2)通过调用save1函数将输入的字符串保存到conf.txt文件中。
(3)调用search函数计算出各个字母所出现的频率,同时将其频率分别存放在WORD 的数组中。
(4)在通过调用save2函数将字母及其频率保存在rate.txt文件中。
详细设计流程图:(search函数)(save1函数)(save2函数)(main函数)测试结果第一组:输入字符:输出结果:统计结果:第二组输入字符:输出结果:统计结果:参考文献《C语言程序设计》(谭浩强著)用到的软件:Visual C++ 6.0 C-Free 4.0 C流程图生成器课程设计总结一周的课程设计已经结束了。
回想学习C语言的过程中,既有快乐又有烦恼。
从领到书的那一刻,我就很郁闷,《C 语言程序设计》到底事学什么的,有什么用。
刚开始上课时,还在迷茫这门课程是用来做什么的。
不过,这些感受都是在对这门课程不了解的情况下产生的。
后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。
尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。
通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行一周的课程设计当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一边。
到了下午的时候,老师发过来四道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一天结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。
但是,到了第二天,我们由不得不再次陷入困境。
在整个程序的编写过程中。
最难的就是修改和删除这两个模块,这也是我们第二天要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。
困难之时,我们组的其他人,帮助了我,完成了修改和删除。
这样的话,整个程序基本上全部完成了,就剩下完善工作了。
我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足:* 1.警告句。
程序中缺少一些警告句,例如:“是否真的删除(y/n)”;* 2. 重名的情况。
由于考虑的不周全,没有设计遇到重名的情况该怎么处理;* 3. 选择单一。
我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
短短的一周课程设计结束了,但是这段时间里我又学到了更多C 知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。
也看到了团队精神和互帮互助的重要性。
这一点会让我终生受益。
通过一周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这一周过的挺充实!通过这次实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
附录:第一题源程序#include<stdio.h>#include<stdlib.h>#define N 100int del(int *a,int n){int count=1;int i,j;for(i=1;i<n;i++){for( j=0;j<count;j++){if(a[i]==a[j]) break;}if(j==count){if(i>count) a[count]=a[i];count++;}}return count;}void sort(int b[],int k) /*排序*/ {int i,j,t,flag;for(j=0;j<k-1;j++){flag=0;for(i=0;i<k-j-1;i++)if(b[i]>b[i+1]){t=b[i];b[i]=b[i+1];b[i+1]=t;flag=1;}if(flag==0)break;}}void save1(int num[],int a) /*建立data1.txt*/{int i,*p;FILE *fp;p=num;if((fp=fopen("data_1.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<a;i++){fprintf(fp,"%4d",*(p+i));}fclose(fp);}void save2(int num[],int b) /*建立data2.txt*/ {int i,*p;FILE *fp;p=num;if((fp=fopen("data_2.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<b;i++){fprintf(fp,"%4d",*(p+i));}fclose(fp);}void save3(int num[],int k) /*建立jiao.txt*/{int i,*p;FILE *fp;p=num;if((fp=fopen("Jiao.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<k;i++){fprintf(fp,"%4d",*(p+i));}fclose(fp);}void save4(int num[],int k) /*建立bing.txt*/{int i,*p;FILE *fp;p=num;if((fp=fopen("Bing.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<k;i++){fprintf(fp,"%4d",*(p+i));}fclose(fp);}void fun(int num1[],int num2[],int a,int b) /*求交并集*/ {int i,j,k,m=0,n=0,jiao[N],bing[4*N];for(i=0;i<a;i++)for(j=0;j<b;j++)if(num1[i]==num2[j])jiao[m++]=num1[i];sort(jiao,m);printf("\ndata1与data2的交集:\n");for(i=0;i<(k=del(jiao,m));i++){printf("%5d",jiao[i]);if((i+1)%10==0)printf("\n");}printf("\n");save3(jiao,k);for(i=0;i<a;i++)bing[n++]=num1[i];for(i=0;i<b;i++)bing[n++]=num2[i];sort(bing,n);printf("\ndata1与data2的并集:\n");for(i=0;i<(k=del(bing,n));i++){printf("%5d",bing[i]);if((i+1)%10==0)printf("\n");}printf("\n");save4(bing,k);}main(){int i,j=1,a,b,num1[N],num2[N];printf("输入data1的个数->");scanf("%d",&a);if(a>N)goto stop;printf("\n输入data1的数据:\n");for(i=0;i<a;i++){scanf("%d",&num1[i]);}printf("\n输入data2的个数->");scanf("%d",&b);if(b>N)goto stop;printf("\n输入data2的数据:\n");for(i=0;i<b;i++){scanf("%d",&num2[i]);}printf("\ndata1:\n");for(i=0;i<a;i++){printf("%3d",num1[i]);if((i+1)%10==0)printf("\n");}save1(num1,a);printf("\ndata2:\n");for(i=0;i<b;i++){printf("%3d",num2[i]);if((i+1)%10==0)printf("\n");}save2(num2,b);fun(num1,num2,a,b);if(a>N||b>N)stop: printf("错误!输入的数据过多\n");}第二题源程序#include<stdio.h>#define N 100float search(char str[],float count,char word) /*查询待查字符*/ {int ji;float num=0;char *cp;cp=str;for(ji=0;ji<count;ji++){if(*(cp+ji)==word)num++;}num=num/count*100;return num;}void save1(char str[],int count) /*建立conf.txt*/ {int i;char *p;FILE *fp;p=str;if((fp=fopen("conf.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<count;i++){fprintf(fp,"%c",*(p+i));}fclose(fp);}void save2(float WORD[],int count) /*建立rate.txt*/ {int i;float *p;char a=97;FILE *fp;p=WORD;if((fp=fopen("rate.txt","w"))==NULL){printf("Can't open this flie\n");exit(0);}for(i=0;i<count;i++){fprintf(fp,"%c:%5.1f%% ",a+i,*(p+i));}fclose(fp);}main(){char str[N],*cp,word;int ji;float a,count=0,WORD[26];cp=str;word='a';printf("Enter the string:\n");gets(str);for(ji=0;ji<N;ji++) /*用count统计字符的长度*/ {if(*(cp+ji)!='\0'){count++;}else break;}save1(str,count);for(ji=0;ji<26;ji++){WORD[ji]=search(str,count,(word+ji));}save2(WORD,26);for(ji=0;ji<26;ji++){printf("%c:%5.1f%% ",word+ji,WORD[ji]);if((ji+1)%6==0)printf("\n");}printf("\n");}。