华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部)

合集下载

华中科技大学计算机学院C语言课设实验报告参考模板

华中科技大学计算机学院C语言课设实验报告参考模板

华中科技大学计算机科学与技术学院《C语言程序设计》课程设计实验报告题目:科研项目信息管理系统专业:计算机班级:学号:姓名:成绩:指导教师:李开完成日期:2009年10 月20 日科研项目信息管理系统一、系统功能结构模块图二、数据结构设计及其用法说明typedef struct lakey{char name[30];/*团队名称*/int total;/*自然科学基金的科研项目数*/float dudu;/*经费数*/struct lakey *next;}*plakey;/*统计3中用到的数据结构*/typedef struct emmey{char name[30];/*团队名称*/int teacher;/*老师人数*/int harden;/*项目数*/float bizhi;/*比值*/struct emmey *next;}*pemmey;/*统计4中用到的数据结构*/typedef struct kPro{char code[15];/*项目编号*/char sort;/*项目种类*/int aking1;char time[8];/*项目时间*/float dudu;/*项目经费*/int aking2;char beiler[15];/*负责人*/int aking3;char keynoName[30];/*所在团队名称*/struct kPro *next;}harden,*pHarden;typedef struct Komo{int teacher;/*老师人数*/char name[20];/*院系名称*/int student;/*学生人数*/float bizhi;/*二者比值*/struct Komo *next;}*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/typedef struct kTea{char name[30];/*团队名称*/char beiler[15];/*负责人*/int stuNum;/*学生人数*/int aking2;int coco;/*老师人数*/char colName[20];/*所在院系的名称*/int aking1;struct kTea *next;pHarden child;}keyno,*pKeyno;typedef struct edward{char name[20];/*院系名称*/int totalnum;/*项目总数*/int num973;/*973项目数*/int num863;/*863项目数*/float amount;/*经费数*/struct edward *next;}*pedward;/*统计2中用到的数据结构*/typedef struct kCol{char name[20];/*院系名称*/int aking;char beiler[15];/*院系负责人*/struct kCol *next;char call[15];/*负责人电话号码*/pKeyno child;}kekey,*pKekey;三、程序结构四、各模块的功能1、pKekey Charge(pKekey alpha)/*这个函数将文件中的内容写入链表中*/2、pKekey temption(int aking,int aking1,int aking2,pKekey item1,pKeynoitem2,pHarden item3,pKekey alpha,int sort)/*这个函数用于向指定位置(aking)添加指定节点(item),alpha是头结点。

华中科技大学-C语言程序设计_上机2019

华中科技大学-C语言程序设计_上机2019
• 课后习题 • 上机指导书
华中科技大学信息学院平台课—C语言程序设计
8
第五次上机
• 程序编写 ➢ 输入 n 个整数( n<10),排序后输出。排序的原则由函数 的一个参数决定,参数值为 1,按递减顺序排序,否则按递 增顺序排序。 ➢ 课后习题15
➢ 插入排序
• 课后习题 • 上机指导书
华中科技大学信息学院平台课—C语言程序设计
7
第四次上机
• 1. 已知五位数a2b3c能被23整除,编程求此五位数。 • 2. 编写函数GetMaxMin,求3个整形数据的最大值和最小值,
main函数完成输入3个整数值,调用所编函数计算最大值和最小 值,在main函数中输出最大和最小值。 • 3. 掌握程序调试方法,包括断点、单步、观察变量。(验证第四 章一(1-3))
➢ 输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9
。取2位小数。
• 课后习题
➢ 五、程序3
➢ 表达式的值
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
6
第三次上机
• 程序编写 ➢ 第3章 二 4、6、8、12、14
• 课后习题ቤተ መጻሕፍቲ ባይዱ
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
华中科技大学信息学院平台课—C语言程序设计
3
上机要求
• 教学方式上机需要实验报告(上机前准备好
),给出测试内容(包括定义程序目标、设
计程序),写出代码
• 上机调试,记录出现问题,给出解释
• 用不同颜色笔修改上机报告中的程序
• 交上机报告
华中科技大学信息学院平台课—C语言程序设计
4
第一次上机

华中科技大学C语言课程设计实验报告

华中科技大学C语言课程设计实验报告

华中科技大学计算机科学与技术学院《C语言程序设计》课程设计基础部分实验报告题目:科技成果信息管理系统专业:计算机科学与技术班级:1204学号:姓名:成绩:指导教师:目录一、系统功能结构设计 (1)二、数据结构设计 (1)三、程序结构 (4)四、函数原型及功能 (9)五、试验结果 (13)六、实验体会 (29)七、附录1:参考文献 (31)八、附录2:程序清单 (31)一、系统功能结构设计航科技成果信息管理系统由五大功能模块组成:文件模块,编辑模块,查询模块,统计模块,帮助模块。

如下图所示:二、数据结构设计1.单位信息链结点结构(DEPT_NODE)及用法typedef struct dept_node{char number[8];/*单位编号*/char name[30];/*单位名称*/char PIC[20];/*负责人*/struct dept_node *next;/*指向下一结点*/struct archs_node *achs;/*指向科技成果信息链结点的指针*/GtkTreeIter iter;/*treeview 中对应treeiter*/}DEPT_NODE;2.科技成果信息链结点结构(ACHS_NODE)及用法typedef struct achs_node {char number[12];/*成果编号*/char name[50];/*成果名称*/char field[20];/*所属技术领域*/char first_dept_name[30];/*第一完成单位*/char first_dept_number[8];/*第一完成单位编号*/char first_member_name[20];/*第一完成人*/char award_name[30];/*获奖名称*/char award_level[10];/*获奖档次*/char award_grade[10];/*获奖等级*/struct arhs_node *next;/*指向下一节点*/struct member_node *members;/*指向完成人员信息结点的指*/GtkTreeIter iter;/*treeview 中对应treeiter*/}ACHS_NODE;中文字段名类型及长度变量名举例成果编号char[12]numbe 200703150001成果名称char[40]name The_method_of_study 所属技术领域char[20]fieldcomputer第一完成单位char[30]first_dept_name Huazhong_university_of _sci&tech 第一完成单位编号first_dept_numberfirst_dept_number 43007401第一完成人char[20]first_member_name Lu_zhengding获奖名称char[30]award_name Natural_science_of_hub ie_province 获奖档次char[10]award_levelprovince/*省级*/中文字段名类型及长度变量名举例单位编号char[8]number 43007401单位名称char[30]name Huazhong_university_of_sci&tech 负责人char[20]PICLi_peigeng获奖等级int award_grade1/*一等奖*/3.完成人员信息链结点结构(MEMBER_NODE)及用法typedef struct member_node{char number[18];/*身份证号*/char name[20];/*姓名*/char dept_name[30];/*工作单位*/char sex[4];/*性别*/int age;/*年龄*/char title[15];/*职称*/int rank;/*成果排名*/char achs_name[40];/*所属成果名称*/struct member_node*next;/*指向下一个结点*/GtkTreeIter iter;/*treeview中对应treeiter*/}MEMBER_NODE;中文字段名类型及长度举例姓名char[20]number Lu_zhengding身份证号char[18]name420111************工作单位char[30]dept_name Huazhong_university_of_sci&tech 性别char sex m年龄int age60职称char[15]title professor成果排名int rank1所属成果名称char[40]achs_name The_method_of_study4.三方向的十字交叉链表结构……5.登陆窗体控件结构体(wgt)及用法struct login_widget{GtkWidget*window;//主窗体GtkWidget*label_tips;//用于信息提示的标签GtkWidget*button_login;//两个按钮,一个点击后登录,一个点击后退出GtkWidget*button_exit;GtkWidget*entry_username;//两个文本框,用于输入用户名和密码GtkWidget*entry_pwd;GtkWidget*label_username;//两个标签用于显示username文本框和password文本框提示GtkWidget*label_pwd;GtkWidget*vbox;//垂直布局盒子,包含以下三个水平布局盒子GtkWidget*hbox_username;//包含用户名提示标签和用户名文本框,下面的HBOX作用类似GtkWidget*hbox_pwd;GtkWidget*hbox_button;}wgt;说明:将登陆窗体相关控件独立成一个结构体6.指向3种节点的指针联合及用法typedef union nodep{struct dept_node*dept;struct achs_node*achs;struct member_node*member;}nodep;说明:用于3种结构都会用到但不会同时用到的情形7.两个传递参数的结构及其用法struct nodecreate{GtkWidget*window;GtkWidget*entry[9];nodep unp;int type;};struct query_judge{GtkWidget*entry;int flag;};说明:GTK信号连接g_signal_connected将函数与信号链接后之内传递一个参数给函数,所以定义这两个结构分别将几个参数结合在一起传递三、程序结构1.主程序运行流程开始登陆框出现输入用户名与密码主界面初始化加载数据或重新添加系统功能模块的选择及运行退出系统前提示保存链表数据清理内存中的缓存信息,关闭系统结束2.数据保存流程YNYNYN开始打开航班,经停机场,经停航班信息文件P1==NULL在文件1写入一条单位信息P2==NULLP1=P1->next在文件2写入一条科技成果信息P2=p2->nextP3==NULL关闭文件退出系统在文件3写入一条完成人员信息P3=p3->next结束3.添加流程4.单位查询流程5.统计50岁以下第一完成人流程Y NY NNNY开始调用统计函数statis_func3创建一个GtkListStore ,P1=gp_headP1==NULLP1=p1->next 获取第二级链表的链头指针p2=p1->achsP2==NULLP2=p2->next P3=MEMBER_search(p2->first_member_name,p2->members)P3->age<50插入liststore结束将ListStore 传递给Statis_info 展示出来四、函数原型及功能(所有GtkWidget*button参数均为与消息链接用)1.登陆模块//功能:登录框初始化函数//输入参数://返回值:无void init_login_widget()//功能:登录验证函数,点击login按钮时调用//输入参数://返回值:无void login(GtkWidget*widget,gpointer data)2.图形界面模块/**初始化部分变量,再依次调用各函数初始化界面各部分*/int main(int argc,char*argv[])/**初始化菜单栏*/void init_menubar(GtkWidget*menubar)/**初始化目录*/void create_view_and_model(void)/**初始化显示栏*/void init_show(GtkWidget*list)/**改变状态栏及显示栏*/void on_changed(GtkWidget*widget,gpointer statusbar)//功能:将选中的节点信息在显示栏中显示出来//输入参数:iter//返回值:无int Show_Node(GtkTreeIter iter)//值传递不影响selectediter/**对应3个节点显示的3个函数,返回对应GtkListStore*/ GtkListStore*Show_Dept(char*name);GtkListStore*Show_Achs(char*name,char*P_name);GtkListStore*Show_Member(char*name,char*P_name,char*PP_name);3.文件模块//功能:读取数据文件//输入参数://返回值:re的二进制前3位记录了三个数据文件是否成功打开,1为成功int LoadData(GtkWidget*button)//功能:读取数据文件中数据到链表中//输入参数:phead单位节点头指针的地址//返回值:re的二进制前3位记录了三个数据文件是否成功打开,1为成功int LoadList(DEPT_NODE**phead)//功能:将链表中节点添加到左侧树状列表中//输入参数://返回值:void rebuildtree()//功能:存储数据文件//输入参数://返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功int SaveData(GtkWidget*button)//功能:将链表中数据存储在数据文件中//输入参数:phead单位节点头指针//返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功int SaveList(DEPT_NODE*phead)//功能:推出前提示保存//输入参数://返回值:void quit_save(GtkWidget*button)4.查询模块//功能:根据type弹出一个查询框,再分别调用对应的Query函数//输入参数:type对应枚举的几种类型//返回值:无void Query_info(GtkWidget*button,int type)//功能:查询学院//输入参数:in包含iter和名称的结构//返回值:无void Query_Dept(GtkWidget*button,struct query_judge*in)//功能:根据type弹出一个查询框,再分别调用对应的Query函数//输入参数:type对应枚举的几种类型//返回值:无void Query_info(GtkWidget*button,int type)//功能:查询完成人员//输入参数:in包含iter和名称的结构//返回值:无void Query_Member(GtkWidget*button,struct query_judge*in)//功能:展开并跳转至指定iter//输入参数:iter treeview中的一个目标iter//返回值:无void expand_select(GtkTreeIter iter)//功能:按名称搜索单位//输入参数:D_name单位名称//返回值:单位节点指针DEPT_NODE*DEPT_search(char*D_name)//功能:按名称搜索科技成果节点//输入参数:A_name科技成果节点名称,ACHS所在学院头科技成果节点指针//返回值:科技成果节点节点指针ACHS_NODE*ACHS_search(char*A_name,ACHS_NODE*ACHS)//功能:按名称搜索完成人员节点//输入参数:M_name完成人员节点名称,ACHS所属科技成果头完成人员节点指针//返回值:完成人员节点节点指针MEMBER_NODE*MEMBER_search(char*M_name,MEMBER_NODE*MEMBER)5.添加模块//功能:弹出一个输入框//输入参数:type对应枚举的几种类型//返回值:无void entry_info(GtkWidget*button,int type)//功能:添加3种节点统一函数,由entry_info确定按钮调用//输入参数://返回值:无void Add_node(GtkWidget*button,struct nodecreate*nodec)//功能:插入科技成果节点函数,由Add_Node中情况3调用//输入参数:pNew指向新节点的指针//返回值:对应单位节点指针DEPT_NODE*insert_ACHS(ACHS_NODE*pNew)//功能:插入完成人员节点函数,由Add_Node中情况4调用//输入参数:pNew指向新节点的指针//返回值:对应科技成果节点指针ACHS_NODE*insert_MEMBER(MEMBER_NODE*pNew)6.删除模块//功能:删除3种节点统一函数,由“删除”按钮调用//输入参数://返回值:无void Del_Node(GtkWidget*button)//功能:删除单位节点,由Del_Node函数case2调用//输入参数:name单位名称//返回值:int1为有错,0为正常int Del_Dept(char*name)//功能:删除科技成果节点,由Del_Node函数case2调用//输入参数:name科技成果名称,P_name对应单位名称//返回值:int1为有错,0为正常int Del_Achs(char*name,char*P_name)//功能:删除完成人员节点,由Del_Node函数case4调用//输入参数:name完成人员名称,P_name对应科技成果名称,PP_name对应单位名称//返回值:int1为有错,0为正常int Del_Member(char*name,char*P_name,char*PP_name)7.编辑模块//功能:弹出一个编辑框//输入参数://返回值:无int Edit_info(GtkWidget*button)//功能:编辑节点//输入参数://返回值:无void Edit_Node(GtkWidget*button,struct nodecreate*nodec)8.统计模块//功能:弹出一个统计框,由传入参数设置具体内容//输入参数:title统计框标题,col1第一列标题,col2第二列标题,in传入的model//返回值:无void Statis_info(char*title,char*col1,char*col2,GtkListStore*in)//功能:统计各单位科技成果数量,调用Statis_info显示统计结果//输入参数://返回值:无void statis_func1(GtkWidget*button)//功能:统计各单位完成人员成果排名,调用Statis_info显示统计结果//输入参数://返回值:无void statis_func2(GtkWidget*button)//功能:统计所有50岁以下第一完成人,调用Statis_info显示统计结果//输入参数://返回值:无void statis_func3(GtkWidget*button)9.帮助模块//功能:弹出软件信息及作者信息//输入参数://返回值:无void help_about(GtkWidget*button)五、试验结果编译环境:Ubuntu linux64位Mingw Gcc(源代码配置好后可跨平台编译)GTK版本:GTK+2.41开发IDE:Codeblocks12.111.系统登陆输对自动进入输错显示错误2.登陆成功进入主界面3.全屏模式4.读取数据5.读取成功6.添加单位(添加成功提示)7.添加科技成果8.添加完成人员9.添加错误返回信息(选中节点后点击左下角编辑按钮)弹出确认框12.查询单位查询成功,左侧已跳转至并展开机械学院查询成功,左侧已跳转至并展开网络磁盘阵列未查询到时弹出提示14.查询完成人员从头查询,跳转至并展开第一个张江点击查询,跳转至并展开第二个张江15.统计各单位科技成果总数及各类成果数16.统计各单位成果排名17.统计50岁以下第一完成人18.软件信息及作者信息19.退出前提示保存六、实验体会首先我看了一下实验书上的编程规范和几个基本模块的实现思想,但当我开始做的时候我发现光用face.c自己看不懂文本菜单操作肯定会有很多问题的,于是我想同样是学,不如直接学图形界面的开发。

华中科技大学自动化学院C语言课设实验报告

华中科技大学自动化学院C语言课设实验报告

华中科技大学自动化学院《C语言程序设计》课程设计实验报告题目:南海军演模拟系统专业:测控班级: 1301学号: U201314492 U201314494姓名:柳焜剑杨渊超成绩:指导教师:周凯波完成日期:2014年11 月 1 日一系统功能结构模块及程序结构二各模块的功能1、maine();/*这个函数将第一张欢迎图片展示出来*/2、void init();/*画图初始化*/3、process0();process00();process01();process02();process03();process03A();process03B();/*实现各个界面的功能,通过if语句来执行不同的界面切换*/4、abc();form();bfjj1();bfjj2();bfjj3();help();/*画图函数以及返回mouse函数,通过返回到达不同界面下的不同按钮效果*/5、end/*结束函数 */6、outhz ()/*汉字和输入函数*7、menue();/*菜单函数,显示主菜单,四个按钮*/8 ……三试验结果1、主菜单页面2、军舰指导3、军演开始一、体会这是我们第一次做这么大型的且比较复杂的一个C程序,从暑假开始边看书边慢慢尝试到如今全部做出来花费了许多时间与精力。

以前接触到的C程序设计都是最简单、最基本的编程,就连最后的期末考试也只是一些小程序,并不像课程设计这样庞大复杂。

小程序是考察我们对基本概念的熟识,而这种大程序则是考察了我们对整体构架的设计以及各种小程序的拼接,看似不难,实则会遇到许多意想不到的困难,当然,这过程当中我们学到了许多。

后来经过网上的搜索资料以及和其他同学的讨论,对这个军演系统进行一些列分块,拆成几个部分,然后再逐个突破,这样显得有条理且方便。

接下来是真正开始动手写程序,随之而来的是一些列的问题,其中最困扰我的是内存模式。

在所有内核做好之后,接下来就是界面的问题,最开始的时候我考虑做图形界面,但是由于时间比较紧迫,不得不放弃,只好做了一个简易菜单,菜单设计容易,可是将界面和程序结合起来却又是一个难题。

C语言实验指导书(第2版)-华中科技大学

C语言实验指导书(第2版)-华中科技大学

C语言程序设计实验指导书(第二版)编著曹计昌卢萍李开张茂元华中科技大学计算机学院2008年3月目录编写说明 (4)实验1 Turbo C 2.0集成开发环境及简单程序调试 (5)一、实验目的 (5)二、实验任务 (5)三.操作指导(结合第1题) (7)实验2 表达式和标准输入与输出 (17)一、实验目的 (17)二、实验题目及要求 (17)1、源程序改错题 (17)2、源程序修改替换题 (18)3、编程设计题 (18)实验3 流程控制实验 (19)一、实验目的 (19)二、实验题目及要求 (19)1.源程序改错题 (19)2.源程序修改替换题 (19)3.编程设计题 (19)4. 选做题 (20)实验4 函数与程序结构实验 (21)一、实验目的 (21)二、实验题目及要求 (21)1.源程序改错题 (21)2.源程序修改替换题 (21)3.跟踪调试题 (22)4.编程设计题 (22)5.选做题 (23)实验5 编译预处理实验 (24)一、实验目的 (24)二、实验题目及要求 (24)1.源程序改错题 (24)2.源程序修改替换题 (24)3.跟踪调试题 (25)4.编程设计题 (26)实验6 标准库及用户自定义库实验 (27)一、实验目的 (27)二、实验题目及要求 (27)1.编程设计题 (27)2.选做题 (28)实验7 数组实验 (29)一、实验目的 (29)二、实验题目及要求 (29)1.源程序改错题 (29)2.源程序完善、修改、替换题 (29)3.跟踪调试题 (30)4.编程设计题 (31)5.选做题 (31)实验8 指针实验 (32)一、实验目的 (32)二、实验题目及要求 (32)1.源程序改错题 (32)2.源程序完善、修改、替换题 (32)3.跟踪调试题 (33)4.编程设计题 (34)5.选做题 (34)实验9 结构与联合实验 (35)一、实验目的 (35)二、实验题目及要求 (35)1.表达式求值的程序验证题 (35)2.源程序修改替换题 (35)3.编程设计题 (37)4.选做题 (37)实验10 文件实验 (38)一、实验目的 (38)二、实验题目及要求 (38)1.文件类型的程序验证题 (38)2.源程序修改替换题 (39)3.编程设计题 (39)编写说明本实验指导书是根据2008年出版发行的《C语言程序设计》教材编写。

华中科技大学C语言课程设计实验报告及源代码

华中科技大学C语言课程设计实验报告及源代码

课程设计报告题目:航班时刻表信息查询系统课程名称: C语言程序设计专业班级:学号:姓名:指导教师:报告日期:计算机科学与技术学院毕业设计[论文]任务书姓名:班号:专业:计算机科学与技术同组姓名:指导教师:一、课题名称航班时刻表查询系统二、主要内容建立航班时刻表查询系统,提供创建、编辑和查询等基本功能和服务。

三、任务要求收集与阅读相关文献资料,确定系统目标与范围,分析系统需求,确定系统功能;设计系统方案,完成系统实现;提交《课程设计报告》。

四、系统功能系统主要提供航班信息的快速查询、检索和统计。

应该具有①按航班、按机场等查询信息的功能;②模糊条件检索航班信息;③统计航班座次情况等。

五、系统数据系统主要涉及“航班”、“经停机场”和“经停航班” 3类信息。

六、基本要求1)、只能使用C语言,源程序要有适当的注释,使程序容易阅读;2)、要有用户界面,要求至少采用教材p215-p216类似的简易菜单,鼓励采用文本菜单界面甚至采用图形菜单界面;3)、必须使用结构和十字交叉链表等数据结构;4)、使用文件保存数据;5)、至少输出一份报表(屏幕输出即可),鼓励自行增加新功能;6)、设计测试的模拟数据,完成系统测试;7)、写实验报告(要求正规打印,A4幅面)。

前言本C语言程序课程设计报告是由wt编写的。

本课程设计主要内容包括,内容中文摘要、Abstract(英文摘要)、正文、致谢、参考文献以及附录,其中: 正文主要内容有:一、系统功能模块,主要介绍该课程设计的航班时刻表查询系统的组成功能模块有哪些;二、数据结构设计及用法说明,主要是介绍说明本航班时刻表查询系统设计时用到的一些数据信息结构的设计思路和用法;三、程序结构流程图,用流程图的方式解释本课程设计中一些功能函数的设计思路和实现方法;四、各模块的功能,主要展示了本系统最终功能的解释说明;五、试验结果,主要展示了本航班时刻表查询系统最终功能的实现效果;六、体会,讲述作者在制作过程中的一些心得体会。

C语言实验报告(精选9篇)

C语言实验报告(精选9篇)

C语言实验报告C语言实验报告(精选9篇)在经济发展迅速的今天,我们都不可避免地要接触到报告,通常情况下,报告的内容含量大、篇幅较长。

写起报告来就毫无头绪?下面是小编帮大家整理的C语言实验报告,欢迎阅读与收藏。

C语言实验报告1在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c 语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

华科C语言课程设计报告

华科C语言课程设计报告

华中科技大学计算机科学与技术学院C语言课程设计报告题目:菜市场商品销售管理系统专业:计算机科学与技术专业班级:学号:姓名:成绩:指导教师:完成日期:2016年10月7日目录一、系统需求分析 (1)1.1数据维护功能 (1)1.2数据查询功能 (1)1.3数据统计功能 (1)1.4数据存取功能 (2)1.5辅助功能 (2)二、总体设计 (2)2.1文件模块 (2)2.2数据维护模块 (3)2.3数据查询模块 (4)2.4数据统计模块 (5)2.5帮助 (6)三、数据结构设计 (6)四、详细设计与系统实现 (11)4.0主程序 (11)4.1数据维护 (11)4.1.1分类信息维护 (12)4.1.2基本信息维护 (15)4.1.3销售信息维护 (19)4.2数据查询 (22)4.2.1分类信息查询 (22)4.2.2基本信息查询: (23)4.2.3销售信息查询 (25)4.3数据统计 (28)4.3.1按类别统计: (28)4.3.2按品种统计 (31)4.3.3按客户名称统计 (36)五、运行测试与结果分析 (40)5.1输入数据 (40)5.2初始化界面 (42)5.3系统主界面 (42)5.4数据维护界面 (43)5.5数据查询界面: (52)5.6数据统计界面 (57)5.7帮助模块界面 (62)六、总结 (64)七、参考文献 (65)附录1 程序源代码 (66)头文件:market.h (66)main.c文件: (74)一、系统需求分析菜市场商品销售管理系统用于管理人员对于菜市场的各类商品销售信息进行管理,主要包括商品分类信息,商品基本信息,商品销售信息等三类信息,以帮助商场管理人员及时了解产品销售情况和变化。

菜市场商品销售管理系统要求实现以下几方面的基本功能:1.1数据维护功能菜市场商品销售管理系统的基本信息主要包括以下三类:(1)商品分类信息:分类编码、分类名称等数据项。

(2)商品基本信息:商品编号、商品名称、分类码、产地、单价、售出数量等数据项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流程图如下:
【程序】
<>
()
{
(" :\");
;
("");
(>''<'')
{
("\");
}
(>''<'')
{
("\"'''');
}
{
(" .");
}
;
}
【测试】
()测试大写变小写。若输入,应输出,程序运行结果如下,程序正确。
()测试其他字符。若输入,应输出,程序运行结果如下,程序正确。
、编写一个程序,输入无符号短整数,m,n(≤m≤,≤n≤m),取出从第m位开始向左的n位(m从右至左编号为~),并使其向左端(第位)靠齐。
在做改错题时,先浏览一遍,找出明显的错误,然后将初步修改后的代码输入编译器并编译,再根据编译器的警告与错误提示修改程序至完全正确,这个过程很需要细心和耐心,这个过程能够很好的帮助我再今后不犯类似错误。
源程序修改与替换题锻炼我们举一反三的能力,我们在平时写程序时就应该思考对于一个问题有没有多钟解决方案,不使用中间变量交换两个整数是很常见的问题,我利用一个数异或自身等于,异或任意位保留原位的原理来交换。
改正:() {
();
错误原因:后续用到了变量但并未声明
改正:;
()(“”, );
错误原因:应该把要读入的变量的地址传递给才能正确写入
改正:("");
()*() ;
错误原因:和是整型常数,相除会截断小数部分,应该将其中任意一个输表示为或转换为浮点数类型
改正:*();
()("", );
错误原因:类型对应的占位符是
改正:("");
()("\ \\");
错误原因:要输出的值应该将作为参数传递给,不应传递其地址
改正:("\ \\");
()(" ", , );
(" \\");
错误原因:为类型,对应十六进制占位符应为
改正:(" ");
(" \\");
()()()<<;
错误原因:要求将的高字节作为结果的低字节,应该将的高字节提取出后右移至低字节
* *
(" , :");
(" ", , );
()()<<;
(" \\");
}
【分析及改正】本程序共存在处错误,分析如下:
();
错误原因:宏定义在预处理时会将后续程序中的标示符展开为对应全部字符串,而不需要分号。
改正:去掉其后分号
()() {
错误原因:函数返回值与函数名之间应加空格,标准建议函数应返回一个作为状态值
改正:()((()>>));
源程序修改替换
下面的程序利用常用的中间变量法实现两数交换,请改用不使用第个变量的方法实现。该程序中是中间变量,要求将定义语句中的删除,修改下划线处的语句,使之实现两数对调的操作。
程序代码:
<>
( )
{
, , ;
(“ :”);
(“ ”);
;;;
(“\”);
}
【分析】将中的任何一个看做原码,另一个当做密钥进行加密,再将加密过的内容与密钥做加密运算即得到原码。由此使用异或运算进行交换。
()掌握简单程序(顺序结构程序)的编写方法。
实验内容及结果
.源程序改错
下面给出了一个简单语言程序例程,用来完成以下工作:
()输入华氏温度,将它转换成摄氏温度后输出;
()输入圆的半径值r,计算并输出圆的面积s;
()输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;
()使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。
在这个例子程序中存在若干语法和逻辑错误。要求参照和的步骤对下面程序进行调试修改,使之能够正确完成指定任务。
程序代码:
<>
;
( )
{
;
, ;
, , ;
* *
(“ :” ) ;
(“”, ) ;
*() ;
( “ \ () ()\\ ”, , ) ;
* *
(" :");
("", );
* * ;
("\ \\");
流程图如下:
【程序】
<>
<>
(){
;
(" :");
(" ");
^ ;
^ ;
^ ;
("\, ");
;
}
【测试】如果输入,,应该输出:,,程序运行结果如下,程序正确。
程序设计
、编写一个程序,输入字符c,如果c是大写字母,则将c转换成对应的小写,否则c的值不变,最后输出c。
【分析】因为同一个字母的大小写字母的码值相差,若为大写字母,则为对应的小写字母。
程序设计题提高了我们对所学知识的熟练度和理解程度,只有实践才能学会语言,在亲手编写代码的过程中发现问题,理解概念。
流程控制实验
实验目的
()掌握复合语句、语句、语句的使用,熟练掌握、、三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
()熟练运用、、语句来编写程序。
()练习转移语句和标号语句的使用。
【分析】分别利用逻辑尺取出读入的长整形数的四部分,从最低位起每位(个字节)为一个部分,然后按照正常顺序输出其对应的十进制地址。
程序框图如下:
【程序】
<>
(){
;
, , , ;
(" :");
("");
()>>;
()>>;
()>>;
;
("");
}
【测试】若输入,应输出。运行结果如下,表明程序正确。
实验体会
结构与联合实验 ·············
文件实验 ················
表达式和标准输入与输出实验
实验目的
()熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
()掌握和函数的用法。
华中科技大学
语言实验与课程设计
实验报告
计算机科学与技术学院
指导老师:
表达式和标准输入输出实验 ········
流程控制实验 ··············
函数程序与结构实验 ···········
编译预处理实验 ·············
数组实验 ················
指针实验 ················
【分析】将首先右移位,再左移()位,则末尾会补,即可将第位开始向左的位且向最高位靠齐
流程图如下:
【程序】
<>
(){
;
(" :");
("");
>>;
<<( );
("\");
;
}
【测试】若,,,因为() ( ),处理后为( ) (),程序应该输出十六进制数:,运行结果如下,程序正确。
、地址通常是个用句点分隔的小整数(即点分十进制),如。这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网地址,对其译码,然后用常见的句点分隔的部分的形式输出。例如,整形二进制表示就是:,按照位一组可表示为:,由于处理数据的差异,它的顺序是颠倒的,所有最终格式为。
相关文档
最新文档